diff --git a/assets/css/style.css.map b/assets/css/style.css.map
index 1dd71ea..2600c48 100755
--- a/assets/css/style.css.map
+++ b/assets/css/style.css.map
@@ -3,12 +3,12 @@
"file": "style.css",
"sources": [
"style.scss",
- "../../tmp/jekyll-remote-theme-20230511-1-1po9spq/_sass/minima/skins/classic.scss",
- "../../tmp/jekyll-remote-theme-20230511-1-1po9spq/_sass/minima/skins/auto.scss",
- "../../tmp/jekyll-remote-theme-20230511-1-1po9spq/_sass/minima/initialize.scss",
+ "../../tmp/jekyll-remote-theme-20230521-1-19821k6/_sass/minima/skins/classic.scss",
+ "../../tmp/jekyll-remote-theme-20230521-1-19821k6/_sass/minima/skins/auto.scss",
+ "../../tmp/jekyll-remote-theme-20230521-1-19821k6/_sass/minima/initialize.scss",
"_sass/minima/custom-variables.scss",
- "../../tmp/jekyll-remote-theme-20230511-1-1po9spq/_sass/minima/_base.scss",
- "../../tmp/jekyll-remote-theme-20230511-1-1po9spq/_sass/minima/_layout.scss",
+ "../../tmp/jekyll-remote-theme-20230521-1-19821k6/_sass/minima/_base.scss",
+ "../../tmp/jekyll-remote-theme-20230521-1-19821k6/_sass/minima/_layout.scss",
"_sass/minima/custom-styles.scss",
"_sass/minima/fastpages-styles.scss",
"_sass/minima/dark-mode.scss",
diff --git a/assets/js/search-data.json b/assets/js/search-data.json
index 2393dd5..5152812 100755
--- a/assets/js/search-data.json
+++ b/assets/js/search-data.json
@@ -2,6 +2,17 @@
"post0": {
+ "title": "JavaScript Practice",
+ "content": "%%html <html> <head> <style> #output { background-color: #f86ddf; padding: 50px; border: 40px solid #1a334f; } </style> </head> <body> <div id="output"> Hello world! </div> </body> </html> . . Hello world! . %%html <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> </head> <style> table { border-collapse: collapse; margin: auto; background-color: black; } th { background-color: black; color: white; padding: 10px; } td { padding: 10px; color: white; } td:nth-child(odd) { background-color: black; } td:nth-child(even) { background-color: black; } tr:nth-child(odd) { background-color: black !important; } tr:nth-child(even) { background-color: black !important; } </style> <body> <table> <tr> <th>Name</th> <th>Planet</th> <th>Species</th> </tr> <tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr> <tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr><tr class = "data-row"></tr> </table> <script> const starwars = { "async": true, "crossDomain": true, "url": "https://star-wars-characters.p.rapidapi.com/46DYBV/star_wars_characters", "method": "GET", "headers": { "X-RapidAPI-Key": "bf09b94566msh22c602dfe97bd97p19c2fajsn1d42e34f8724", "X-RapidAPI-Host": "star-wars-characters.p.rapidapi.com" } }; // object is being intialized and contains //the url, rapid api key and host, method: GET // ajax lets us to load the data without needing to reload the page $.ajax(starwars).done(function (response) { console.log(response); // main method that requests the data from the server for (var i = 0; i < response.length; i++) { // having i < response.length lets me display all // the data but it depends on how much table space I have var newDataName = document.createElement("td"); // where the data will be shown in the data newDataName.innerHTML = response[i].name; var newDataHomeworld = document.createElement("td"); newDataHomeworld.innerHTML = response[i].homeworld; var newDataSpecies = document.createElement("td"); newDataSpecies.innerHTML = response[i].species; $(".data-row").eq(i).append(newDataName) $(".data-row").eq(i).append(newDataHomeworld) $(".data-row").eq(i).append(newDataSpecies) } } ); </script> </body> </html> . . Name Planet Species . . . . . . . . %%html <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.13.3/css/jquery.dataTables.min.css"> <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script> <style> table { border-collapse: collapse; margin: auto; background-color: black; } th { background-color: black; color: white; padding: 10px; } td { padding: 10px; color: white; } td:nth-child(odd) { background-color: black; } td:nth-child(even) { background-color: black; } tr:nth-child(odd) { background-color: black !important; } tr:nth-child(even) { background-color: black !important; } </style> </head> <body> <table id="starWarsTable"> <thead> <tr> <th>Name</th> <th>Planet</th> <th>Species</th> </tr> </thead> <tbody></tbody> </table> <script> $(document).ready(function() { var starWarsAPI = { "async": true, "crossDomain": true, "url": "https://star-wars-characters.p.rapidapi.com/46DYBV/star_wars_characters", "method": "GET", "headers": { "X-RapidAPI-Key": "bf09b94566msh22c602dfe97bd97p19c2fajsn1d42e34f8724", "X-RapidAPI-Host": "star-wars-characters.p.rapidapi.com" } }; $.ajax(starWarsAPI).done(function (response) { console.log(response); var table = $('#starWarsTable').DataTable({ data: response, columns: [ { data: 'name' }, { data: 'homeworld' }, { data: 'species' } ] }); $('#starWarsTable thead th').each(function () { var title = $(this).text(); $(this).html('<input type="text" placeholder="Search ' + title + '" />'); }); table.columns().every(function () { var that = this; $('input', this.header()).on('keyup change', function () { if (that.search() !== this.value) { that.search(this.value).draw(); } }); }); }); }); </script> </body> </html> . . Name Planet Species . .",
+ "url": "https://rohitd3.github.io/rohitfastpages/javascript/2023/05/20/_05_21_javascript.html",
+ "relUrl": "/javascript/2023/05/20/_05_21_javascript.html",
+ "date": " • May 20, 2023"
+ }
+
+
+
+
+ ,"post1": {
"title": "JavaScript Tutorial",
"content": "JavaScript and Jupyter references . JavaScript is the most important language you need to learn as a frontend developer. Jupyter Notebooks is a convenient way to learn the language without the overhead of creating a full Website. Jupyter Notebooks had ChatGPT plugins to assist with design and troubleshooting problems. This Notebook has colors on HTML pages that were designed with a dark mode background. . JavaScript / Jupyter General References . W3Schools JS Reference - ChatGPT AI assistant for Chrome/Jupyter | Theme setup for Jupyter Article. Or do these commands from shell... Install pip: pip install jupyterthemes | Revert to original theme: jt -r | List themes: jt -l | Install with Theme, Name, Logo: jt -t onedork -T -N -kl | . | Chrome Dev Tools | . | Coding with jQuery . Jupyter Notebook GitHub, wget: https://raw.githubusercontent.com/nighthawkcoders/APCSA/master/_notebooks/2023-05-10-PBL-javascript_tutorial.ipynb | Markdown Fetch example in GitHub project for APCSP | HTML Static example in GitHub project for flask_portfolio | . | . output using HTML and CSS . Multiple cells are used to setup HTML in this lesson. Many of the JavaScript cells will use the output tag(s) to write into the HTML that has been setup. . %%html is used to setup HTML code block | "style" tag enables visuals customization | "div" tag is setup to receive data | . %%html <html> <head> <style> #output { background-color: #353b45; padding: 10px; border: 3px solid #ccc; } </style> </head> <body> <div id="output"> Hello! </div> </body> </html> . . Hello! . output explored . There are several ways to ouput the classic introduction message: "Hello, World!" . Before you go further, open Console on your Browser. JavaScript developer leaves Console open all the time!!! | The function console.log() outputs to Console, this is often used for inspection or debugging. | "Hello, World" is a String literal. This is the referred to as Static text, as it does not change. Developer call this a hard coded string. | "Hello, World" literal is a parameter to console.log(), element.txt() and alert(). | The element.txt function is part of Jupyter Notebook %%js magic. This is convenient for Notebook and testing. | The alert command outputs the parameter to a dialog box, so you can see it in this Jupyter notebook. The alert commands are shown, but are commented out as the stop run all execution of the notebook. | Note, in a Web Application Debugging: An alert is often used for less savy Developers. Console is used by more savy developers; console often requires setting up a lot of outputs. Source level debugging is the most powerful solution for debugging and does not require alert or console commands. | . %%js // required to allow cell to be JavaScript enabled console.log("JavaScript/Jupyter Output Intro"); // Browser Console output; debugging or tracing console.log("Hello, World!"); console.log("Hello, World Again!"); // Document Object Model (DOM) output; output to HTML, CSS which is standard for a Web Page // <mark>select element method</mark>: DOM native JavaScript get, document.getElementByID document.getElementById("output").textContent = "Hello, World!"; // <mark>jQuery CSS-style method</mark>: Tag for DOM selector, $('#output') $('#output').append('<br><b>Hello World Again!'); // br is break or new line, b is bold // Jupyter built in magic element for testing and convenience of development element.text("Hello, World!"); // element is output option as part of %%js magic element.append('<br><b>Hello World Again!'); //alert("Hello, World!"); . multiple outputs using one variable . This second example is a new sequence of code, two or more lines of code forms a sequence. This example defines a variable, thank goodness!!! In the previous example we were typing the string "Hello, World" over and over. Observe with the variable msg="Hello, World!"; we type the string once and now use msg over and over. . The variable "var msg =" is used to capture the data | The console.log(msg) outputs to console, be sure to Inspect it! | The element.text() is part of Jupyter Notebooks and displays as output blow the code on this page. Until we build up some more interesting data for Web Site, we will not use be using the Python HTML, CSS technique. | The alert(msg) works the same as previous, but as the other commands uses msg as parameter. | . %%js console.log("Variable Definition"); var msg = "Hello, World!"; // Use msg to output code to Console and Jupyter Notebook console.log(msg); //right click browser select Inspect, then select Console to view element.text(msg); //alert(msg); . output showing use of a function . This example passes the defined variable "msg" to the newly defined "function logIt(output)". . There are multiple steps in this code.. The "definition of the function": "function logIt(output) {}" and everything between curly braces is the definitions of the function. Passing a parameter is required when you call this function. | The "call to the function:"logIt(msg)" is the call to the function, this actually runs the function. The variable "msg" is used a parameter when calling the logIt function. | . | Showing reuse of function... There are two calls to the logIt function | This is called Prodedural Abstraction, a term that means reusing the same code | . | . %%js console.log("Function Definition"); /* Function: logIt * Parameter: output * Description: The parameter is "output" to console and jupyter page */ function logIt(output) { console.log(output); element.append(output + "<br>"); //alert(output); } // First sequence calling logIt function var msg = "Hello, World!"; logIt(msg); // Second sequence calling logIt function var msg = "Hello, <b>Students</b>!" // replaces content of variable var classOf = "Welcome CS class of 2023-2024." logIt(msg + " " + classOf); // concatenation of strings . output showing Loosely typed data . JavaScript is a loosely typed language, meaning you don't have to specify what type of information will be stored in a variable in advance. . To define a variable you prefix the name with var or const. The variable type is determined by JavaScript at runtime. | Python and many interpretive languages are loosely typed like JavaScript. This is considered programmer friendly. | Java which is a compiled language is strongly typed, thus you will see terms like String, Integer, Double, and Object in the source code. | In JavaScript, the typeof keyword returns the type of the variable. Become familiar with type as it is valuable in conversation and knowing type help you understand how to modify data. Each variable type will have built in methods to manage content within the data type. | . %%js console.log("Examine Data Types"); // Function to add typeof to output function getType(output) { return typeof output + ": " + output; } // Function defintion function logIt(output) { console.log(getType(output)); // logs string console.info(output); // logs object element.append(getType(output) + "<br>"); // adds to Jupyter output //alert(getType(output)); } // Common Types element.append("Common Types <br>"); logIt("Mr M"); // String logIt(1997); // Number logIt(true); // Boolean element.append("<br>"); // Object Type, this definition is often called a array or list element.append("Object Type, array <br>"); var scores = [ 90, 80, 100 ]; logIt(scores); element.append("<br>"); // Complex Object, this definition is often called hash, map, hashmap, or dictionary element.append("Object Type, hash or dictionary <br>"); var person = { // key:value pairs seperated by comma "name": "Mr M", "role": "Teacher" }; logIt(person); logIt(JSON.stringify(person)); //method used to convert this object into readable format . Build a Person object and JSON . JavaScript and other languages have special properties and syntax to store and represent data. In fact, a class in JavaScript is a special function. . Definition of class allows for a collection of data, the "class Person" allows programmer to retain name, github id, and class of a Person. | Instance of a class, the "const teacher = new Person("Mr M", "jm1021", 1977)" makes an object "teacher" which is an object representation of "class Person". | Setting and Getting properties After creating teacher and student objects, observe that properties can be changed/muted or extracted/accessed. | . %%html <!-- load jQuery and tablesorter scripts --> <html> <head> <!-- load jQuery and tablesorter scripts --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/js/jquery.tablesorter.min.js"></script> <style> /* CSS-style selector maps to table id or other id's in HTML */ #jsonTable, #flaskTable { background-color: #353b45; padding: 10px; border: 3px solid #ccc; box-shadow: 0.8em 0.4em 0.4em grey; } </style> </head> <body> <!-- Table for writing and extracting jsonText --> <table id="jsonTable"> <thead> <tr> <th>Classroom JSON Data</th> </tr> </thead> <tbody> <tr> <td id="jsonText">{"classroom":[{"type":"object","name":"sample","ghID":"sample","classOf":2000,"role":"sample"}]}</td> </tr> </tbody> </table> </body> </html> . . Classroom JSON Data . {"classroom":[{"type":"object","name":"sample","ghID":"sample","classOf":2000,"role":"sample"}]} | . . %%js console.log("Person objects"); /* class: Person * Description: A collection of Person data */ class Person { /* method: constructor * parameters: name, ghID - GitHub ID, classOf - Graduation Class * description: returns object when "new Person()" is called with matching parameters * assignment: this.name, this.ghID, ... are properties retained in the returned object * default: role uses a default property, it is set to "Student" */ constructor(name, ghID, classOf, role="Student") { this.name = name; this.ghID = ghID; this.classOf = classOf; this.role = role; } /* method: setter * parameters: role - role in classroom * description: this.role is updated from default value to value contained in role parameter */ setRole(role) { this.role = role; } /* method: getter * description: turns properties of object into JSON object * return value: JSON object */ getJSON() { const obj = {type: typeof this, name: this.name, ghID: this.ghID, classOf: this.classOf, role: this.role}; const json = JSON.stringify(obj); return json; } /* method: logIT * description: "this" Person object is logged to console */ logIt() { //Person Object console.info(this); //Log to Jupter element.append("Person object in JSON <br>"); element.append(this.getJSON() + "<br>"); //alert(this.getJSON()); } } // make a new Person Object const teacher = new Person("Mr M", "jm1021", 1977); // object type is easy to work with in JavaScript // update role to Teacher teacher.setRole("Teacher"); // set the role teacher.logIt(); // log to console // make a new Person Object const student = new Person("Jane Doe", "jane", 2007); // object type is easy to work with in JavaScript student.logIt(); // log to console . Build a Classroom Array/List of Persons and JSON . Many key elements are shown again. New elements include... . Building an Array, "var students" is an array of many persons | Building a Classroom, this show forEach iteration through an array and .push adding to an array. These are key concepts in all programming languages. | . %%js console.log("Classroom object"); /* class: Person * Description: A collection of Person data */ class Person { /* method: constructor * parameters: name, ghID - GitHub ID, classOf - Graduation Class * description: returns object when "new Person()" is called with matching parameters * assignment: this.name, this.ghID, ... are properties retained in the returned object * default: this.role is a default property retained in object, it is set to "Student" */ constructor(name, ghID, classOf, role="Student") { this.name = name; this.ghID = ghID; this.classOf = classOf; this.role = role; } /* method: setter * parameters: role - role in classroom * description: this.role is updated from default value to value contained in role parameter */ setRole(role) { this.role = role; } /* method: getter * description: turns properties of object into JSON object * return value: JSON object */ getJSON() { const obj = {type: typeof this, name: this.name, ghID: this.ghID, classOf: this.classOf, role: this.role}; const json = JSON.stringify(obj); return json; } /* method: logIT * description: "this" Person object is logged to console */ logIt() { //Person Object console.info(this); //Log to Jupter element.append("Person json <br>"); element.append(this.getJSON() + "<br>"); //alert(this.getJSON()); } } /* class: Classroom * Description: A collection of Person objects */ class Classroom { /* method: constructor * parameters: teacher - a Person object, students - an array of Person objects * description: returns object when "new Classroom()" is called containing properties and methods of a Classroom * assignment: this.classroom, this.teacher, ... are properties retained in the returned object */ constructor(teacher, students) { /* spread: this.classroom contains Teacher object and all Student objects * map: this.json contains of map of all persons to JSON */ this.teacher = teacher; this.students = students; this.classroom = [teacher, ...students]; // ... spread option this.json = '{"classroom":[' + this.classroom.map(person => person.getJSON()) + ']}'; } /* method: logIT * description: "this" Classroom object is logged to console */ logIt() { //Classroom object console.log(this); //Classroom json element.append("Classroom object in JSON<br>"); element.append(this.json + "<br>"); //alert(this.json); } } /* function: constructCompSciClassroom * Description: Create data for Classroom and Person objects * Returns: A Classroom Object */ function constructCompSciClassroom() { // define a Teacher object const teacher = new Person("Mr M", "jm1021", 1977, "Teacher"); // optional 4th parameter // define a student Array of Person objects const students = [ new Person("Anthony", "tonyhieu", 2022), new Person("Bria", "B-G101", 2023), new Person("Allie", "xiaoa0", 2023), new Person("Tigran", "Tigran7", 2023), new Person("Rebecca", "Rebecca-123", 2023), new Person("Vidhi", "VidhiKulkarni", 2024) ]; // make a CompSci classroom from formerly defined teacher and student objects return new Classroom(teacher, students); // returns object } // assigns "compsci" to the object returned by "constructCompSciClassroom()" function const compsci = constructCompSciClassroom(); // output of Objects and JSON in CompSci classroom compsci.logIt(); // enable sharing of data across jupyter cells $('#jsonText').text(compsci.json); // posts/embeds/writes compsci.json to HTML DOM element called jsonText . for loop to generate Table Rows in HTML output . This code extracts JSON text from HTML, that was placed in DOM in an earlier JavaScript cell, then it parses text into a JavaScript object. In addition, there is a for loop that iterates over the extracted object generating formated rows and columns in an HTML table. . Table generation is broken into parts... table data is obtained from a classroom array inside of the extracted object. | the JavaScript for loop allows the construction of a new row of data for each Person hash object inside of the the Array. | in the loop a table row <tr> ... </tr> is created for each Hash object in the Array. | in the loop table data, a table column, <td> ... </td> is created for name, ghID, classOf, and role within the Hash object. | . | . %%js console.log("Classroom Web Page"); // extract JSON text from HTML page const jsonText = document.getElementById("jsonText").innerHTML; console.log(jsonText); element.append("Raw jsonText element embedded in HTML<br>"); element.append( jsonText + "<br>"); // convert JSON text to Object const classroom = JSON.parse(jsonText).classroom; console.log(classroom); // from classroom object creates rows and columns in HTML table element.append("<br>Formatted data sample from jsonText <br>"); for (var row of classroom) { element.append(row.ghID + " " + row.name + '<br>'); // tr for each row, a new line $('#classroom').append('<tr>') // td for each column of data $('#classroom').append('<td>' + row.name + '</td>') $('#classroom').append('<td>' + row.ghID + '</td>') $('#classroom').append('<td>' + row.classOf + '</td>') $('#classroom').append('<td>' + row.role + '</td>') // tr to end row $('#classroom').append('</tr>'); } . %%html <head> <!-- load jQuery and DataTables scripts --> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.25/css/jquery.dataTables.min.css"> <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.min.js"></script> </head> <table id="flaskTable" class="table" style="width:100%"> <thead id="flaskHead"> <tr> <th>ID</th> <th>Name</th> <th>DOB</th> <th>Age</th> </tr> </thead> <tbody id="flaskBody"></tbody> </table> <script> $(document).ready(function() { fetch('https://flask.nighthawkcodingsociety.com/api/users/', { mode: 'cors' }) .then(response => { if (!response.ok) { throw new Error('API response failed'); } return response.json(); }) .then(data => { for (const row of data) { // BUG warning/resolution - DataTable requires row to be single append $('#flaskBody').append('<tr><td>' + row.id + '</td><td>' + row.name + '</td><td>' + row.dob + '</td><td>' + row.age + '</td></tr>'); } // BUG warning - Jupyter does not show Datatable controls, works on deployed GitHub pages $("#flaskTable").DataTable(); }) .catch(error => { console.error('Error:', error); }); }); </script> . . ID Name DOB Age .",
"url": "https://rohitd3.github.io/rohitfastpages/techtalk/javascript",
@@ -12,7 +23,7 @@
- ,"post1": {
+ ,"post2": {
"title": "FRQ 2017 Running Code",
"content": "2017 FRQ . import java.util.*; import java.lang.*; public class Digits { private ArrayList<Integer> digitList; public Digits(int num){ digitList = new ArrayList<Integer>(); int remainderNum = 0; if(num != 0){ while(num != 0){ remainderNum = num % 10; System.out.println("Remainder: "+ remainderNum); digitList.add(0,remainderNum); num = num / 10; System.out.println("Number: " + num); } }else{ digitList.add(num); } } public String toString(){ String digitListPrint = ""; for(int i = 0; i < digitList.size(); i++){ digitListPrint+=digitList.get(i); } return digitListPrint; } public static void main(String[] args){ Digits d1 = new Digits(15704); System.out.println(d1); Digits d2 = new Digits(0); System.out.println(d2); } } Digits.main(null); . Remainder: 4 Number: 1570 Remainder: 0 Number: 157 Remainder: 7 Number: 15 Remainder: 5 Number: 1 Remainder: 1 Number: 0 15704 0 . a) . +1 Constructs digitList . +1 Identifies a digit in num . +1 Adds at least one identified digit to a list . +1 Adds all identified digits to a list (must be in context of a loop) . +1 On exit: digitList contains all and only digits of num in the correct order . b) . +1 Compares at least one identified consecutive pair of digitList elements . +1 Determines if a consecutive pair of digitList is out of order (must be in context of a digitList traversal) . +1 Compares all necessary consecutive pairs of elements (no bounds errors) . +1 Returns true iff all consecutive pairs of elements are in order; returns false otherwise . a) 5/5 all reqiuirements are met . b) 4/4 all reqiuirements are met . public interface StudyPractice{ // defintion of the method is given, not the implementation String getProblem(); void nextProblem(); } . public class MultPractice implements StudyPractice { private int firstInt = 0; private int secondInt = 0; public MultPractice(int firstInt, int secondInt){ this.firstInt = firstInt; this.secondInt = secondInt; } public String getProblem(){ return firstInt + " TIMES " + secondInt; } public void nextProblem(){ secondInt+=1; } public static void main(String[] args){ StudyPractice p1 = new MultPractice(7, 3); System.out.println(p1.getProblem()); p1.nextProblem(); System.out.println(p1.getProblem()); p1.nextProblem(); System.out.println(p1.getProblem()); p1.nextProblem(); System.out.println(p1.getProblem()); StudyPractice p2 = new MultPractice(4, 12); p2.nextProblem(); System.out.println(p2.getProblem()); System.out.println(p2.getProblem()); p2.nextProblem(); p2.nextProblem(); System.out.println(p2.getProblem()); p2.nextProblem(); System.out.println(p2.getProblem()); } } MultPractice.main(null); . 7 TIMES 3 7 TIMES 4 7 TIMES 5 7 TIMES 6 4 TIMES 13 4 TIMES 13 4 TIMES 15 4 TIMES 16 . a) +1 Declares header: public class MultPractice implements StudyPractice . +1 Declares all necessary private instance variables . +1 Initializes all instance variables using parameters . +1 Declares header: public String getProblem() . +1 Builds string with current values of instance variables . +1 Returns constructed string . +1 Declares header: public void nextProblem() . +1 Updates instance variable(s) to reflect incremented second number . 8/9 requirements are met . public class Phrase{ private String currentPhrase = ""; public Phrase(String p){ currentPhrase = p; } public int findNthOccurrence(String str, int n){ return 3; } public void replaceNthOccurrence(String str, int n, String repl){ int indexOccurence = findNthOccurrence(str, n); if(indexOccurence != -1){ String str1 = currentPhrase.substring(0, indexOccurence); String str2 = currentPhrase.substring(indexOccurence + str.length()); currentPhrase = str1 + repl + str2; } } public int findLastOccurrence(String str){ String newPhrase = new String(currentPhrase); int n = currentPhrase.indexOf(str); int lastIndex = 0; while(n != -1){ newPhrase = newPhrase.substring(n+1); System.out.println(newPhrase); n = newPhrase.indexOf(str); System.out.println(n); } if(newPhrase.length() != 0){ lastIndex = currentPhrase.length() - newPhrase.length() -1; System.out.println("Last occurrence: " + lastIndex); return lastIndex; } else { System.out.println("Last occurrence: -1"); return -1; } } public String toString(){ return "Phrase: " + currentPhrase; } public static void main(String[] args){ Phrase phrase1 = new Phrase("A cat ate late."); phrase1.replaceNthOccurrence("at", 1, "rane"); // System.out.println(new String("A cat ate late.").length()); Phrase phrase2 = new Phrase("A cat ate late."); phrase2.findLastOccurrence("at"); } } Phrase.main(null); . t ate late. 2 te late. 4 te. -1 Last occurrence: 11 . a) +1 Calls findNthOccurrence to find the index of the nth occurrence . +1 Preserves currentPhrase only if nth occurrence does not exist . +1 Identifies components of currentPhrase to retain (uses substring to extract before/after) . +1 Creates replacement string using identified components and repl . +1 Assigns replacement string to instance variable (currentPhrase) . b) . +1 Calls findNthOccurrence to find the index of the nth occurrence . +1 Increments (or decrements) the value used as n when finding nth occurrence . +1 Returns the index of the last occurrence, if it exists . +1 Returns -1 only when no occurrences exist . a) 4/4 all reqiuirements are met . b) Does not utilize findNthOccurrence therefore 3/4 . public class Position{ // int[][] intArr = { { 15, 5, 9 ,10 }, { 12, 16, 11, 6 }, { 14, 8, 13, 7}}; private int row = 0; private int col = 0; public Position(int r, int c){ row = r; col = c; } public static Position findPosition(int num, int[][] intArr){ for(int i = 0; i < intArr.length; i++){ for(int g = 0; g < intArr[i].length; g++){ if(intArr[i][g] == num){ System.out.println("row: " + i + " column: " + g); return new Position(i, g); } } } System.out.println("null"); return null; } public static Position[][] getSuccessorArray(int[][] intArr){ Position[][] posArray = new Position[intArr.length][intArr[0].length]; for(int i = 0; i < intArr.length; i++){ for(int g = 0; g < intArr[i].length; g++){ posArray[i][g] = findPosition(intArr[i][g] + 1, intArr); } } return posArray; } public static void main(String[] args){ int[][] intArr = { { 15, 5, 9 ,10 }, { 12, 16, 11, 6 }, { 14, 8, 13, 7}}; Position.findPosition(8, intArr); Position.findPosition(15, intArr); Position.findPosition(17, intArr); } } Position.main(null); . row: 2 column: 1 row: 0 column: 0 null . a) . +1 Accesses all necessary elements of intArr (no bounds errors) . +1 Identifies intArr element equal to num (in context of an intArr traversal) . +1 Constructs Position object with same row and column as identified intArr element . +1 Selects constructed object when intArr element identified; null when not . +1 Returns selected value . b) . +1 Creates 2D array of Position objects with same dimensions as intArr . +1 Assigns a value to a location in 2D successor array using a valid call to findPosition . +1 Determines the successor Position of an intArr element accessed by row and column (in context of intArr traversal) . +1 Assigns all necessary locations in successor array with corresponding position object or null (no bounds errors) . a) 5/5 all reqiuirements are met . b) 4/4 all reqiuirements are met . 2015 FRQ . public class ArrayManipulation{ public static int arraySum(int[] arr){ int arraySum = 0; for(int i = 0; i < arr.length; i++){ // System.out.println("array sum: " + arraySum); // System.out.println("arr i "+ arr[i]); arraySum += arr[i]; } System.out.println(arraySum); return arraySum; } public static int[] rowSums(int[][] arr2D){ int rowSum; int[] rowSumS = new int[arr2D.length]; for(int i = 0; i < arr2D.length; i++){ rowSum = 0; for(int h = 0; h < arr2D[i].length; h++){ rowSum += arr2D[i][h]; } rowSumS[i] = rowSum; System.out.println(rowSumS[i]); } return rowSumS; } public static void main(String[] args){ int[] arr = {1, 3, 2, 7 ,3}; ArrayManipulation.arraySum(arr); int[][] arr2D = {{1, 3, 2, 7 ,3}, {10, 10, 4, 6, 2}, {5, 3, 5, 9 ,6 }, {7,6,4,2,1}}; ArrayManipulation.rowSums(arr2D); } } ArrayManipulation.main(null); . 16 16 32 28 20 . a) . +1 Accesses all elements of arr, (no bounds errors on arr) . +1 Initializes, computes, and returns sum of elements . b) . +1 Constructs correctly-sized 1D array of ints . +1 Accesses all rows in arr2D (no bounds errors on arr2D) . +1 Computes sum of row in arr2D using arraySum and assigns to element in 1D array . +1 Returns 1D array where kth element is computed sum of corresponding row in 2D array for all rows . a) 2/2 all reqiuirements are met . b) 4/4 all reqiuirements are met . c) incomplete .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/04/27/frqpractice2017.html",
@@ -23,7 +34,7 @@
- ,"post2": {
+ ,"post3": {
"title": "Hacks Unit 5,9,10 - Rohit, Nathan, Jun",
"content": "// UNIT 5 import java.util.*; public class Car { private String carBrand; private String modelName; private String modelYear; private int carMileage = 0; private int carId = 0; private static int carsForSale = 0; private static ArrayList<Car> carsInMarket = new ArrayList<Car>(); /** * Constructor with 3 arguments * @param carBrand * @param modelName * @param modelYear * * everytime this method is called, car id is added and a new car is added to the array */ public Car(String carBrand, String modelName, String modelYear, int carMileage){ this.carBrand = carBrand; this.modelName = modelName; this.modelYear = modelYear; this.carMileage = carMileage; carId = uniqueID(); Car.carsInMarket.add(this); } /** * * @return number of cars */ public static int getCarsCount(){ return Car.carsInMarket.size(); } /** * * @return unique id for each car */ private int uniqueID(){ Random randid = new Random(); carId = randid.nextInt(9999); return carId; } /** * * @return calling the car array */ public static List<Car> getCarsInMarket(){ return Car.carsInMarket; } /** * printing the object */ public String toString(){ return "Id: " + carId + " Brand: " + carBrand + " Model: " + modelName + " Year: " + modelYear + " Mileage: " + carMileage; } public static void main(String[] args){ System.out.println("Car available: " + Car.getCarsCount()); Car BMWX1 = new Car("BMW","X1","2002",30); Car HondaCRV = new Car("Honda","CRV","2015",40); for(int i = 0; i < Car.getCarsCount(); i++){ System.out.println((Car.getCarsInMarket().get(i))); } System.out.println("Car available: " + Car.getCarsCount()); } } Car.main(null); . Car available: 0 Id: 3967 Brand: BMW Model: X1 Year: 2002 Mileage: 30 Id: 667 Brand: Honda Model: CRV Year: 2015 Mileage: 40 Car available: 2 . // UNIT 9 PART 1 class Vehicle { public String name; public Vehicle(String name){ this.name = name; } public void honk(){ System.out.println("HONK MEEP BEEEEEEEP!"); } } class Car extends Vehicle { public Car(String name){ super(name); } // methods and attributes } public class Main { public static void main(String[] args) { Car car1 = new Car("Lexus GS430"); car1.honk(); System.out.println(car1.name); } } Main.main(null); . HONK MEEP BEEEEEEEP! Lexus GS430 . // UNIT 9 PART 2 // Parent class public class Animal { protected String name; protected int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void speak() { System.out.println("I AM AN ANIMALIO!!!!!!!!"); } } // Subclass 1 public class Turtle extends Animal { private String breed; public Turtle(String name, int age, String breed) { super(name, age); this.breed = breed; } @Override public void speak() { System.out.println("Turtle Noises Commence"); } public void eat() { System.out.println("I nomp lettuce."); } } // Subclass 2 public class Cat extends Animal { private boolean isIndoor; public Cat(String name, int age, boolean isIndoor) { super(name, age); this.isIndoor = isIndoor; } @Override public void speak() { System.out.println("Meow!"); } public void scratch() { System.out.println("I am scratching the furniture."); } } // Tester method public class AnimalTester { public static void main(String[] args) { Animal animal1 = new Turtle("Shellby", 3, "Russian Tortoise"); Animal animal2 = new Cat("Whiskers", 2, true); animal1.speak(); ((Turtle) animal1).eat(); System.out.println(animal1.name); animal2.speak(); ((Cat) animal2).scratch(); System.out.println(animal2.age); } } AnimalTester.main(null); . Turtle Noises Commence I nomp lettuce. Shellby Meow! I am scratching the furniture. 2 . // UNIT 10 public class Fibonacci { public static long fib(long n) { if ((n == 0) || (n == 1)) return n; else return fib(n - 1) + fib(n - 2); } public static void main(String[] args) { System.out.println("The 0th fibonacci number is: " + fib(0)); System.out.println("The 7th fibonacci number is: " + fib(7)); System.out.println("The 12th fibonacci number is: " + fib(12)); } } Fibonacci.main(null); . The 0th fibonacci number is: 0 The 7th fibonacci number is: 13 The 12th fibonacci number is: 144 .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/04/26/labhacks.html",
@@ -34,7 +45,7 @@
- ,"post3": {
+ ,"post4": {
"title": "Extra Car Simulation",
"content": "import java.util.*; public class Car { private String carBrand; private String modelName; private String startingYear; private int carMileage = 0; private final int CURRENTYEAR = 2023; private int carId = 0; private static int carsForSale = 0; private static ArrayList<Car> carsInMarket = new ArrayList<Car>(); /** * Constructor with 3 arguments * @param carBrand * @param modelName * @param startingYear * * everytime this method is called, car id is added and a new car is added to the array */ public Car(String carBrand, String modelName, String startingYear, int carMileage){ this.carBrand = carBrand; this.modelName = modelName; this.startingYear = startingYear; this.carMileage = carMileage; carId = uniqueID(); Car.carsInMarket.add(this); } /** * * @return number of cars */ public static int getCarsCount(){ return Car.carsInMarket.size(); } /** * * @return unique id for each car */ private int uniqueID(){ Random randid = new Random(); carId = randid.nextInt(9999); return carId; } /** * * @return calling the car array */ public static List<Car> getCarsInMarket(){ return Car.carsInMarket; } public int getMarketLife(){ return CURRENTYEAR - startingYear; } public void ageMarketLife() { this.life -= Book.YEAR; // remove a year if (getShelfLife() < 0.1) // small number zero out, this is for double floating point condition this.life = this.created; } public void setMarketLife(int years) /** * printing the object */ public String toString(){ return "Id: " + carId + " Brand: " + carBrand + " Model: " + modelName + " Year: " + startingYear + " Mileage: " + carMileage; } public static void main(String[] args){ System.out.println("Car available: " + Car.getCarsCount()); Car BMWX1 = new Car("BMW","X1",30); Car HondaCRV = new Car("Honda","CRV",40); for(int i = 0; i < Car.getCarsCount(); i++){ System.out.println((Car.getCarsInMarket().get(i))); } System.out.println("Car available: " + Car.getCarsCount()); } } Car.main(null); . Car available: 0 Id: 4722 Brand: BMW Model: X1 Mileage: 30 Id: 5579 Brand: Honda Model: CRV Mileage: 40 Car available: 2 . public class ElectricCar extends Car{ private int numBatteries; private long chargeTime; private boolean hasGear; public ElectricCar(String carBrand, String modelName, String startingYear, int carMileage, int numBatteries, long chargeTime){ super(carBrand, modelName, startingYear, carMileage); this.numBatteries = numBatteries; this.chargeTime = chargeTime; } public void setHasGear(boolean hasGear){ this.hasGear = hasGear; } public boolean getHasGear(){ return hasGear; } } .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/04/24/carparts123.html",
@@ -45,7 +56,7 @@
- ,"post4": {
+ ,"post5": {
"title": "Random Test - Part 1,2,3",
"content": "import java.util.Random; import java.lang.Thread; public class Book{ private String titlle; private int bookId; private static int BookCounter = 0; private long startTime; public Book(String title){ titlle = title; BookCounter++; uniqueBookId(); startTime = System.nanoTime(); } public String toString(){ return "Booktitle: " + titlle + " Id: " + bookId + " Super: " + super.toString(); } public void testBook(){ System.out.println(this); } private int uniqueBookId(){ Random randid = new Random(); bookId = randid.nextInt(9999); return bookId; } public static int getBookCount(){ return BookCounter; } public long getshelfLife() { return System.nanoTime() - startTime; // difference from start to current } public static void main(String[] args){ System.out.println("Bookcount: " + Book.getBookCount()); Book book1 = new Book("Book1"); Book book2 = new Book("Book2"); System.out.println(book1); System.out.println(book2); System.out.println("Bookcount: " + Book.getBookCount()); // testing for book 1 try{ Thread.sleep(5000); // milliseconds System.out.println("Book1 shelflife: " + book1.getshelfLife()); } catch (Exception e) { // catching the exception if there is an interruption System.out.println(e); } Book[] bookss = { // array iniitialization to add book new Book("Barron's Computer Science "A ""), // Set a new Book object as array element. new Book("Angels and Demons"), new Book("Lion, Witch, and a Wardrobe") }; for (Book book : bookss) { // for each syntax to iterate over array System.out.println(book); // same as book.toString() } System.out.println("Libary Book Count: " + Book.getBookCount()); // String [][] books = { { "e=MC^2 a Biography", "Pan Books (January 1, 2001)"}, // row 0 { "The Practice of Programming", "Addison-Wesley Professional Computing" } // row 1 }; TextBook[] txtbooks= new TextBook[books.length]; for (int k =0; k<books.length; k++) { txtbooks[k] = new TextBook(books[k][0]); txtbooks[k].setPublisher(books[k][1]); try{ Thread.sleep(5000); System.out.println("Textbook"); System.out.println(txtbooks[k]); System.out.println("Publisher : " + txtbooks[k].getPublisher()); System.out.println("shelflife textbook: " + txtbooks[k].getshelfLife()); System.out.println("textbook expires: " + txtbooks[k].shelfLifeExpiry()); // only for textbook } catch (Exception e) { // catching the exception System.out.println(e); } } // String [][] novelbooks = { { "novel1 ", "authorofnovel1"}, // row 0 { "novel2", "authorofnovel2" } // row 1 }; Novel[] novbooks= new Novel[novelbooks.length] ;; for (int k =0; k<novelbooks.length; k++) { novbooks[k] = new Novel(novelbooks[k][0]); novbooks[k].setAuthor(novelbooks[k][1]); } for (int i =0; i<novbooks.length; i++) { System.out.println("Novel"); System.out.println(novbooks[i]); System.out.println("Author: " + novbooks[i].getAuthor()); System.out.println("Expiry: " + novbooks[i].shelfLifeExpiry(4)); } } } Book.main(null); . Bookcount: 0 Booktitle: Book1 Id: 8027 Super: REPL.$JShell$16G$Book@1b2e4e9a Booktitle: Book2 Id: 786 Super: REPL.$JShell$16G$Book@fa73688 Bookcount: 2 Book1 shelflife: 5007731458 Booktitle: Barron's Computer Science "A" Id: 2653 Super: REPL.$JShell$16G$Book@63bb21ee Booktitle: Angels and Demons Id: 7505 Super: REPL.$JShell$16G$Book@6001dfbf Booktitle: Lion, Witch, and a Wardrobe Id: 1971 Super: REPL.$JShell$16G$Book@517350c8 Libary Book Count: 5 Textbook Booktitle: e=MC^2 a Biography Id: 9039 Super: REPL.$JShell$13D$TextBook@33ca166e Publisher : Pan Books (January 1, 2001) shelflife textbook: 5006280250 textbook expires: true Textbook Booktitle: The Practice of Programming Id: 5674 Super: REPL.$JShell$13D$TextBook@7874f5cf Publisher : Addison-Wesley Professional Computing shelflife textbook: 5007632667 textbook expires: true Novel Booktitle: novel1 Id: 5397 Super: REPL.$JShell$12D$Novel@2e0c3b36 Author: authorofnovel1 Expiry: true Novel Booktitle: novel2 Id: 6802 Super: REPL.$JShell$12D$Novel@357dea04 Author: authorofnovel2 Expiry: true . public class Novel extends Book{ private String author; private final int SHELFLIFEEXPIRY = 3; public Novel(String title){ super(title); } public void setAuthor(String authorName){ author = authorName; } public String getAuthor(){ return author; } public boolean shelfLifeExpiry(int returnstamp){ if (returnstamp < SHELFLIFEEXPIRY){ return false; } return true; } } . public class TextBook extends Book{ private String publishingcomp; private final long SHELFLIFEEXPIRY = 3000; public TextBook(String title){ super(title); } public void setPublisher(String publisher){ publishingcomp = publisher; } public String getPublisher(){ return publishingcomp; } public boolean shelfLifeExpiry(){ if (getshelfLife() < SHELFLIFEEXPIRY){ return false; // returns that it is not expired } return true; } } .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/04/21/try3.html",
@@ -56,7 +67,7 @@
- ,"post5": {
+ ,"post6": {
"title": "Sorting Algorithim",
"content": "public class FavoriteSorts { public int comparisons = 0; public int swaps = 0; public int getComparisons(){ return this.comparisons; } public int getSwaps(){ return this.swaps; } // bubble sort with input array public void bubbleSort(int[] arr) { for (int x = 0; x < arr.length; x++) { // iterate through the array to compare each element with its adjacent element for (int m = 0; m < arr.length - 1; m++) { // if the current element is greater than the adjacent element, swap them if (arr[m] > arr[m + 1]) { int temp = arr[m]; arr[m] = arr[m + 1]; arr[m + 1] = temp; swaps++; // increment swaps } comparisons++; // increment comparisons } } } // selection sort with input array public void selectionSort(int[] arr) { for (int x = 0; x < arr.length; x++) { // assume the current element is the smallest int min = x; // iterate through the array to find the actual smallest element for (int m = x + 1; m < arr.length; m++) { // if the current element is smaller than the assumed smallest element, update the index of the smallest element if (arr[m] < arr[min]) { min = m; } comparisons++; // increment comparisons } // swap the current element with the smallest element int temp = arr[x]; arr[x] = arr[min]; arr[min] = temp; swaps++; // increment swaps } } // array of size 5000 public static int[] randomArray() { int[] array = new int[5000]; for (int i = 0; i < array.length; i++) { array[i] = (int) (Math.random()); } return array; } public static void main(String[] args) { int[] avgTimes = new int[2]; for (int i = 0; i < 12; i++) { int[] arr = randomArray(); FavoriteSorts fs = new FavoriteSorts(); // create an instance of FavoriteSorts long startTime = System.nanoTime(); fs.bubbleSort(arr); long endTime = System.nanoTime(); long time = endTime - startTime; avgTimes[0] += time; System.out.println("~BUBBLE Sort Time: " + time + " nanoseconds"); System.out.println("Number of Comparisons: " + fs.getComparisons()); System.out.println("Number of Swaps: " + fs.getSwaps()); arr = randomArray(); fs = new FavoriteSorts(); arr = randomArray(); startTime = System.nanoTime(); fs.selectionSort(arr); endTime = System.nanoTime(); time = endTime - startTime; avgTimes[1] += time; System.out.println("*SELECTION Sort Time: " + time + " nanoseconds"); System.out.println("Number of Comparisons: " + fs.getComparisons()); System.out.println("Number of Swaps: " + fs.getSwaps()); } System.out.println("!!BUBBLE Sort average time: " + avgTimes[0] / 12 + " nanoseconds"); System.out.println("@@SELECTION sort average time : " + avgTimes[1] / 12 + " nanoseconds"); } } FavoriteSorts.main(null); . ~BUBBLE Sort Time: 10673625 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4664625 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10507667 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4574292 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10682167 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4565917 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10549375 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4582584 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10506375 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4568167 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10597375 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4572958 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10490125 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4567125 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10597583 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4569750 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10552792 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4582125 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10619958 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4575417 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10573166 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4565833 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 ~BUBBLE Sort Time: 10575250 nanoseconds Number of Comparisons: 24995000 Number of Swaps: 0 *SELECTION Sort Time: 4801458 nanoseconds Number of Comparisons: 12497500 Number of Swaps: 5000 !!BUBBLE Sort average time: 10577121 nanoseconds @@SELECTION sort average time : 4599187 nanoseconds . /* This is wrapper class... Objective would be to push more functionality into this Class to enforce consistent definition */ public abstract class Collectable implements Comparable <Collectable> { public final String masterType = "Collectable"; private String type; // extender should define their data type // enumerated interface public interface KeyTypes { String name(); } protected abstract KeyTypes getKey(); // this method helps force usage of KeyTypes // getter public String getMasterType() { return masterType; } // getter public String getType() { return type; } // setter public void setType(String type) { this.type = type; } // this method is used to establish key order public abstract String toString(); // this method is used to compare toString of objects public int compareTo(Collectable obj) { return this.toString().compareTo(obj.toString()); } // static print method used by extended classes public static void print(Collectable[] objs) { // print 'Object' properties System.out.println(objs.getClass() + " " + objs.length); // print 'Collectable' properties if (objs.length > 0) { Collectable obj = objs[0]; // Look at properties of 1st element System.out.println( obj.getMasterType() + ": " + obj.getType() + " listed by " + obj.getKey()); } // print "Collectable: Objects' for(Object o : objs) // observe that type is Opaque System.out.println(o); System.out.println(); } } . /* * People class extends Collectable and defines abstract methods */ public class People extends Collectable { // Class data public static KeyTypes key = KeyType.title; // static initializer public static void setOrder(KeyTypes key) { People.key = key; } public enum KeyType implements KeyTypes {title, name, age, hairColor} // Instance data private final String name; private final int age; private final String hairColor; /* constructor * */ public People(String name, int age, String hairColor) { super.setType("People"); this.name = name; this.age = age; this.hairColor = hairColor; } /* 'Collectable' requires getKey to help enforce KeyTypes usage */ @Override protected KeyTypes getKey() { return People.key; } /* Getters / Accessors * */ public String getName() { return this.name; } public int getAge() { return this.age; } public String getColor() { return this.hairColor; } /* 'Collectable' requires toString override * toString provides data based off of Static Key setting */ @Override public String toString() { String output=""; if (KeyType.name.equals(this.getKey())) { output += this.name; } else if (KeyType.age.equals(this.getKey())) { output += "00" + this.age; output = output.substring(output.length() - 2); } else if (KeyType.hairColor.equals(this.getKey())) { output += this.hairColor; } else { output += super.getType() + ": " + this.name + ", " + this.hairColor + ", " + this.age; } return output; } // Test data initializer public static People[] animals() { return new People[]{ new People("math", 5, "Black"), new People("apush", 18, "Black"), new People("csa", 18, "Black"), new People("apgov", 17, "Red"), new People("apush", 19, "Black"), new People("apel", 18, "Blonde") }; } /* main to test People class * */ public static void main(String[] args) { // Inheritance Hierarchy People[] objs = animals(); // print with title People.setOrder(KeyType.title); People.print(objs); // convert to Coolection and sort in name order People.setOrder(KeyType.name); List<People> animals = new ArrayList<People>(Arrays.asList(objs)); // Array has asList conversion Collections.sort(animals); People.setOrder(KeyType.title); for (People people : animals) System.out.println(people); } } People.main(null); . class [LREPL.$JShell$79$People; 6 Collectable: People listed by title People: Nathan, Black, 5 People: Rohit, Black, 18 People: Jun, Black, 18 People: Rose, Red, 17 People: Alvin, Black, 19 People: Vinny, Blonde, 18 People: Alvin, Black, 19 People: Jun, Black, 18 People: Nathan, Black, 5 People: Rohit, Black, 18 People: Rose, Red, 17 People: Vinny, Blonde, 18 . import java.util.HashMap; public class Students { // create a new HashMap HashMap<String, People> names = new HashMap<>(); /* Add Students * */ public Students() { // add some key-value pairs to the HashMap names.put("Ritvik", new People("math", 17, "Black")); names.put("Alvin", new People("apush", 18, "Black")); names.put("Jun", new People("csa", 18, "Black")); names.put("Nathan", new People("apgov", 17, "Red")); names.put("Mark", new People("apush", 19, "Black")); names.put("Vinny", new People("apel", 18, "Blonde")); } /* Remove Pet * */ public People remove(String key) { // check if a key exists in the HashMap then remove People people = null; if (names.containsKey(key)) { people = names.get(key); names.remove(key); } return people; } /* Print Students * */ public void print() { // iterate over the keys in the HashMap for (String name: names.keySet()) { People obj = names.get(name); System.out.println(name + " is a " + obj.getColor() + " haired " + obj.getName() + " student and is " + obj.getAge() + " years old."); } System.out.println(); } /* Tester Method * */ public static void main(String[] args) { // intialize Students Students students = new Students(); students.print(); // remove a Pet String key = "Mathew"; People people = students.remove(key); if (people == null) { System.out.println(key + " not found"); } else { System.out.println("Removed: " + key + ", " + people); } students.print(); } } Students.main(null); . Ritvik is a Black haired math student and is 17 years old. Jun is a Black haired csa student and is 18 years old. Nathan is a Red haired apgov student and is 17 years old. Alvin is a Black haired apush student and is 18 years old. Mark is a Black haired apush student and is 19 years old. Vinny is a Blonde haired apel student and is 18 years old. Mathew not found Ritvik is a Black haired math student and is 17 years old. Jun is a Black haired csa student and is 18 years old. Nathan is a Red haired apgov student and is 17 years old. Alvin is a Black haired apush student and is 18 years old. Mark is a Black haired apush student and is 19 years old. Vinny is a Blonde haired apel student and is 18 years old. .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/04/01/sortalgo.html",
@@ -67,7 +78,7 @@
- ,"post6": {
+ ,"post7": {
"title": "CSUSM Event Write Up",
"content": "Ashley and John talked about their experience and the opportunities available at Cal State San Marcos (CSUSM). John began his academic journey at Palomar College and pursued a computer science degree, which took him six years to complete. They mentioned that CSUSM is a leader in social mobility and offers various pathways such as chemistry, biochemistry, physics, applied physics, computer science, computer engineering, math, electrical engineering, software engineering, and mechanical engineering. They also highlighted the various clubs, hackathons, and internship opportunities available at CSUSM, such as the cyber security club, robotics, women in STEM, and the Society of Physics Students. Ashley and John emphasized the importance of networking and attending career fairs to find internships and job opportunities. They also mentioned the Quantum Bridge program, research opportunities in meteorites, quantum information sciences, and microplastics, and the availability of privately funded scholarships and government-funded grants. . Overall they emphasized that in college we should take every opportunity we are given to further our education and curiosity. Both Ashley and John have different interests in computer science and they are on their own separate paths. We should follow our own pace and explore our personal interests that we believe will help us in the real world and industry. . Little electrical project . .",
"url": "https://rohitd3.github.io/rohitfastpages/entry/2023/03/28/CSUSMevent.html",
@@ -78,7 +89,7 @@
- ,"post7": {
+ ,"post8": {
"title": "Challenge 4",
"content": "/** * Implementation of a Double Linked List; forward and backward links point to adjacent Nodes. * */ public class LinkedList<T> { private T data; private LinkedList<T> prevNode, nextNode; /** * Constructs a new element * * @param data, data of object * @param node, previous node */ public LinkedList(T data, LinkedList<T> node) { this.setData(data); this.setPrevNode(node); this.setNextNode(null); } /** * Clone an object, * * @param node object to clone */ public LinkedList(LinkedList<T> node) { this.setData(node.data); this.setPrevNode(node.prevNode); this.setNextNode(node.nextNode); } /** * Setter for T data in DoubleLinkedNode object * * @param data, update data of object */ public void setData(T data) { this.data = data; } /** * Returns T data for this element * * @return data associated with object */ public T getData() { return this.data; } /** * Setter for prevNode in DoubleLinkedNode object * * @param node, prevNode to current Object */ public void setPrevNode(LinkedList<T> node) { this.prevNode = node; } /** * Setter for nextNode in DoubleLinkedNode object * * @param node, nextNode to current Object */ public void setNextNode(LinkedList<T> node) { this.nextNode = node; } /** * Returns reference to previous object in list * * @return the previous object in the list */ public LinkedList<T> getPrevious() { return this.prevNode; } /** * Returns reference to next object in list * * @return the next object in the list */ public LinkedList<T> getNext() { return this.nextNode; } } . /** * Queue Iterator * * 1. "has a" current reference in Queue * 2. supports iterable required methods for next that returns a generic T Object */ class QueueIterator<T> implements Iterator<T> { LinkedList<T> current; // current element in iteration // QueueIterator is pointed to the head of the list for iteration public QueueIterator(LinkedList<T> head) { current = head; } // hasNext informs if next element exists public boolean hasNext() { return current != null; } // next returns data object and advances to next position in queue public T next() { T data = current.getData(); current = current.getNext(); return data; } } /** * Queue: custom implementation * @author John Mortensen * * 1. Uses custom LinkedList of Generic type T * 2. Implements Iterable * 3. "has a" LinkedList for head and tail */ public class Queue<T> implements Iterable<T> { LinkedList<T> head = null, tail = null; /** * Add a new object at the end of the Queue, * * @param data, is the data to be inserted in the Queue. */ public void add(T data) { // add new object to end of Queue LinkedList<T> tail = new LinkedList<>(data, null); if (this.head == null) // initial condition this.head = this.tail = tail; else { // nodes in queue this.tail.setNextNode(tail); // current tail points to new tail this.tail = tail; // update tail } } /** * Returns the data of head. * * @return data, the dequeued data */ public T delete() { T data = this.peek(); if (this.tail != null) { // initial condition this.head = this.head.getNext(); // current tail points to new tail if (this.head != null) { this.head.setPrevNode(tail); } } return data; } /** * Get the number of elements in the Queue. */ public int size() { int count = 0; for (T data : this) { count++; } return count; } /* * Returns true if Queue is empty. */ public boolean isEmpty() { return this.head == null; } /** * Return data in Queue. */ public String toString() { String str = ""; for (T data : this) { str += data + " "; } return str; } /** * Returns data as List. */ public List<T> asList() { List<T> list = new ArrayList<>(); for (T data : this) { list.add(data); } return list; } /** * Returns the data of head. * * @return this.head.getData(), the head data in Queue. */ public T peek() { return this.head.getData(); } /** * Returns the head object. * * @return this.head, the head object in Queue. */ public LinkedList<T> getHead() { return this.head; } /** * Returns the tail object. * * @return this.tail, the last object in Queue */ public LinkedList<T> getTail() { return this.tail; } /** * Returns the iterator object. * * @return this, instance of object */ public Iterator<T> iterator() { return new QueueIterator<>(this.head); } } . /** * Queue Manager * 1. "has a" Queue * 2. support management of Queue tasks (aka: titling, adding a list, printing) */ class QueueManager<T> { // queue data private final String name; // name of queue private int count = 0; // number of objects in queue public final Queue<T> queue = new Queue<>(); // queue object /** * Queue constructor * Title with empty queue */ public QueueManager(String name) { this.name = name; } /** * Queue constructor * Title with series of Arrays of Objects */ public QueueManager(String name, T[]... seriesOfObjects) { this.name = name; this.addList(seriesOfObjects); } /** * Add an element to queue */ public void add(T data) { System.out.println("Enqueued data: " + data); this.queue.add(data); this.count++; } /** * Add a list of objects to queue */ public void addList(T[]... seriesOfObjects) { //accepts multiple generic T lists for (T[] objects: seriesOfObjects) for (T data : objects) { this.queue.add(data); this.count++; } } /** * Delete an element from queue */ public void delete() { // print data else print null System.out.println("Dequeued data: " + this.queue.delete()); this.count--; } /** * Print any array objects from queue */ public void printQueue() { System.out.print(this.name + " count: " + count + " n" + "Data: "); for (T data : queue) System.out.print(data + " "); System.out.println(); } } . public class ReverseQueue { public static void main(String[] args) { Stack<Object> stack = new Stack<Object>(); Object[] numbers = new Integer[] { 1, 2, 3, 4, 5}; // create a queue manager for the array of integers QueueManager<Object> q = new QueueManager<Object>("Numbers", numbers); q.printQueue(); // place elements from Queue into Stack while (!q.queue.isEmpty()) { // loop until the queue is empty stack.push(q.queue.delete()); // remove the first element from the queue and add it to the top of the stack } // place elements from Stack back into Queue while (!stack.isEmpty()) { // loop until the stack is empty q.queue.add(stack.pop()); // remove the top element from the stack and add it to the end of the queue } q.printQueue(); } } ReverseQueue.main(null); . Numbers count: 5 Data: 1 2 3 4 5 Numbers count: 5 Data: 5 4 3 2 1 .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/03/27/chck2chall4.html",
@@ -89,7 +100,7 @@
- ,"post8": {
+ ,"post9": {
"title": "Challenge 3",
"content": "/** * Implementation of a Double Linked List; forward and backward links point to adjacent Nodes. * */ public class LinkedList<T> { private T data; private LinkedList<T> prevNode, nextNode; /** * Constructs a new element * * @param data, data of object * @param node, previous node */ public LinkedList(T data, LinkedList<T> node) { this.setData(data); this.setPrevNode(node); this.setNextNode(null); } /** * Clone an object, * * @param node object to clone */ public LinkedList(LinkedList<T> node) { this.setData(node.data); this.setPrevNode(node.prevNode); this.setNextNode(node.nextNode); } /** * Setter for T data in DoubleLinkedNode object * * @param data, update data of object */ public void setData(T data) { this.data = data; } /** * Returns T data for this element * * @return data associated with object */ public T getData() { return this.data; } /** * Setter for prevNode in DoubleLinkedNode object * * @param node, prevNode to current Object */ public void setPrevNode(LinkedList<T> node) { this.prevNode = node; } /** * Setter for nextNode in DoubleLinkedNode object * * @param node, nextNode to current Object */ public void setNextNode(LinkedList<T> node) { this.nextNode = node; } /** * Returns reference to previous object in list * * @return the previous object in the list */ public LinkedList<T> getPrevious() { return this.prevNode; } /** * Returns reference to next object in list * * @return the next object in the list */ public LinkedList<T> getNext() { return this.nextNode; } } . /** * Queue Iterator * * 1. "has a" current reference in Queue * 2. supports iterable required methods for next that returns a generic T Object */ class QueueIterator<T> implements Iterator<T> { LinkedList<T> current; // current element in iteration // QueueIterator is pointed to the head of the list for iteration public QueueIterator(LinkedList<T> head) { current = head; } // hasNext informs if next element exists public boolean hasNext() { return current != null; } // next returns data object and advances to next position in queue public T next() { T data = current.getData(); current = current.getNext(); return data; } } /** * Queue: custom implementation * @author John Mortensen * * 1. Uses custom LinkedList of Generic type T * 2. Implements Iterable * 3. "has a" LinkedList for head and tail */ public class Queue<T> implements Iterable<T> { LinkedList<T> head = null, tail = null; /** * Add a new object at the end of the Queue, * * @param data, is the data to be inserted in the Queue. */ public void add(T data) { // add new object to end of Queue LinkedList<T> tail = new LinkedList<>(data, null); if (this.head == null) // initial condition this.head = this.tail = tail; else { // nodes in queue this.tail.setNextNode(tail); // current tail points to new tail this.tail = tail; // update tail } } /** * Returns the data of head. * * @return data, the dequeued data */ public T delete() { T data = this.peek(); if (this.tail != null) { // initial condition this.head = this.head.getNext(); // current tail points to new tail if (this.head != null) { this.head.setPrevNode(tail); } } return data; } /** * Get the number of elements in the Queue. */ public int size() { int count = 0; for (T data : this) { count++; } return count; } /* * Returns true if Queue is empty. */ public boolean isEmpty() { return this.head == null; } /** * Return data in Queue. */ public String toString() { String str = ""; for (T data : this) { str += data + " "; } return str; } /** * Returns data as List. */ public List<T> asList() { List<T> list = new ArrayList<>(); for (T data : this) { list.add(data); } return list; } /** * Returns the data of head. * * @return this.head.getData(), the head data in Queue. */ public T peek() { return this.head.getData(); } /** * Returns the head object. * * @return this.head, the head object in Queue. */ public LinkedList<T> getHead() { return this.head; } /** * Returns the tail object. * * @return this.tail, the last object in Queue */ public LinkedList<T> getTail() { return this.tail; } /** * Returns the iterator object. * * @return this, instance of object */ public Iterator<T> iterator() { return new QueueIterator<>(this.head); } } . /** * Queue Manager * 1. "has a" Queue * 2. support management of Queue tasks (aka: titling, adding a list, printing) */ class QueueManager<T> { // queue data private final String name; // name of queue private int count = 0; // number of objects in queue public final Queue<T> queue = new Queue<>(); // queue object /** * Queue constructor * Title with empty queue */ public QueueManager(String name) { this.name = name; } /** * Queue constructor * Title with series of Arrays of Objects */ public QueueManager(String name, T[]... seriesOfObjects) { this.name = name; this.addList(seriesOfObjects); } /** * Add an element to queue */ public void add(T data) { System.out.println("Enqueued data: " + data); this.queue.add(data); this.count++; } /** * Add a list of objects to queue */ public void addList(T[]... seriesOfObjects) { //accepts multiple generic T lists for (T[] objects: seriesOfObjects) for (T data : objects) { this.queue.add(data); this.count++; } } /** * Delete an element from queue */ public void delete() { // print data else print null System.out.println("Dequeued data: " + this.queue.delete()); this.count--; } /** * Print any array objects from queue */ public void printQueue() { System.out.print(this.name + " count: " + count + " n" + "Data: "); for (T data : queue) System.out.print(data + " "); System.out.println(); } } . public class ShuffleQueue { public static QueueManager<Object> shuffle(QueueManager<Object> q) { // convert the QueueManager to an ArrayList List<Object> list = new ArrayList<Object>(q.queue.asList()); // Shuffle the ArrayList Collections.shuffle(list); // creating a new QueueManager with the shuffled elements QueueManager<Object> shuffled = new QueueManager<Object>("Shuffled"); shuffled.addList(list.toArray()); return shuffled; } public static void main(String[] args) { // array of integers Object[] numbers = new Integer[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // creating a QueueManager with the integers QueueManager<Object> q = new QueueManager<Object>("Numbers", numbers); q.printQueue(); QueueManager<Object> shuffled = shuffle(q); shuffled.printQueue(); // array of strings Object[] words = new String[] { "Ephemeral" }; // creating a QueueManager with the string array QueueManager<Object> qw = new QueueManager<Object>("Words", words); qw.add("Serendipity"); qw.add("Quixotic"); qw.add("Melancholy"); qw.add("Perfidious"); qw.printQueue(); // shuffling the queue and store the result in a new QueueManager QueueManager<Object> shuffledwords = shuffle(qw); shuffledwords.printQueue(); } } ShuffleQueue.main(null); . Numbers count: 10 Data: 1 2 3 4 5 6 7 8 9 10 Shuffled count: 10 Data: 9 6 8 10 2 1 4 3 7 5 Enqueued data: Serendipity Enqueued data: Quixotic Enqueued data: Melancholy Enqueued data: Perfidious Words count: 5 Data: Ephemeral Serendipity Quixotic Melancholy Perfidious Shuffled count: 5 Data: Serendipity Quixotic Ephemeral Perfidious Melancholy .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/03/27/chck2chall3.html",
@@ -100,7 +111,7 @@
- ,"post9": {
+ ,"post10": {
"title": "Challenge 2",
"content": "import java.util.*; public class MergeQueues { public static Queue<Integer> merge(Queue<Integer> q1, Queue<Integer> q2) { // creating a new queue to store the merged elements Queue<Integer> mergedQueue = new LinkedList<>(); // merging until both q1 and q2 queues are empty while (q1.size() > 0 || q2.size() > 0) { // if q1 is empty then add all elements of q2 to the merged queue if (q1.size() == 0) { mergedQueue.add(q2.poll()); } // if q2 is empty then add all elements of q1 to the merged queue else if (q2.size() == 0) { mergedQueue.add(q1.poll()); } // comparing the smallest element of each queue and adding the smaller one to the merged queue else if (q1.peek() <= q2.peek()) { mergedQueue.add(q1.poll()); } else { mergedQueue.add(q2.poll()); } // poll is pulling and deleting the first element of the queue, this while loop continues till either queue is empty } return mergedQueue; } public static void main(String[] args) { // two queues of integers Queue<Integer> q1 = new LinkedList<>(Arrays.asList(1, 4, 11, 3, 5, 9, 8)); Queue<Integer> q2 = new LinkedList<>(Arrays.asList(2, 4, 6, 3, 10)); System.out.println("Q1: " + q1); System.out.println("Q2: " + q2); // merge the two queues using the merge method Queue<Integer> mergedQueue = merge(q1, q2); // converting the merged queue to a list and sort it by least to greatest or greatest to least List<Integer> sortedQ = new ArrayList<>(mergedQueue); Collections.sort(sortedQ); System.out.println("Merged queue in least to greatest: " + sortedQ); Collections.sort(sortedQ, Collections.reverseOrder()); System.out.println("Merged queue in greatest to least: " + sortedQ); } } MergeQueues.main(null); . Q1: [1, 4, 11, 3, 5, 9, 8] Q2: [2, 4, 6, 3, 10] Merged queue in least to greatest: [1, 2, 3, 3, 4, 4, 5, 6, 8, 9, 10, 11] Merged queue in greatest to least: [11, 10, 9, 8, 6, 5, 4, 4, 3, 3, 2, 1] .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/03/27/chck2chall2.html",
@@ -111,7 +122,7 @@
- ,"post10": {
+ ,"post11": {
"title": "Generics and Collections + Challenge 1",
"content": "Queue<String> queue = new LinkedList<>(); // Queue interface uses LL implementation queue.add("John"); queue.add("Jane"); queue.add("Bob"); // Collections has a toArray conversion Object[] arr = queue.toArray(); . // Iterate of array System.out.println("Iterate over Array"); for (Object a : arr){ // Type is Object from conversion System.out.println(a); // remove() method is called to remove and print the next element in the queue } . Iterate over Array John Jane Bob . // Empty queue System.out.println("Empty Queue"); while (queue.size() > 0) // Interate while size System.out.println(queue.remove()); // remove() method is called to remove and print the next element in the queue System.out.println(queue); . Empty Queue John Jane Bob [] . /* This is wrapper class... Objective would be to push more functionality into this Class to enforce consistent definition */ public abstract class Generics { public final String masterType = "Generic"; private String type; // extender should define their data type // generic enumerated interface public interface KeyTypes { String name(); } protected abstract KeyTypes getKey(); // this method helps force usage of KeyTypes // getter public String getMasterType() { return masterType; } // getter public String getType() { return type; } // setter public void setType(String type) { this.type = type; } // this method is smallSize to establish key order public abstract String toString(); // static print method smallSize by extended classes public static void print(Generics[] objs) { // print 'Object' properties // System.out.println(objs.getClass() + " " + objs.length); System.out.println(objs.length); // print 'Generics' properties if (objs.length > 0) { Generics obj = objs[0]; // Look at properties of 1st element System.out.println( obj.getMasterType() + ": " + obj.getType() + " listed by " + obj.getKey()); } // print "Generics: Objects' for(Object o : objs) // observe that type is Opaque System.out.println(o); System.out.println(); } } . public class Turtle extends Generics { public static KeyTypes key = KeyType.title; public static void setOrder(KeyTypes key) { Turtle.key = key; } public enum KeyType implements KeyTypes {title, name, age, weight, smallSize} private final String name; private final int age; private final double weight; private final boolean smallSize; public Turtle(String name, int age, double weight, boolean smallSize) { super.setType("Turtle"); this.name = name; this.age = age; this.weight = weight; this.smallSize = smallSize; } @Override protected KeyTypes getKey() { return Turtle.key; } @Override public String toString() { String output=""; if (KeyType.name.equals(this.getKey())) { output += this.name; } else if (KeyType.age.equals(this.getKey())) { output += "00" + this.age; output = output.substring(output.length() - 2); } else if (KeyType.weight.equals(this.getKey())) { output += this.weight; } else if (KeyType.smallSize.equals(this.getKey())) { output += this.smallSize; } else { output += super.getType() + ": " + this.name + ", " + this.smallSize + ", " + this.age + ", " + this.weight; } return output; } // Test data initializer public static Turtle[] Turtles() { return new Turtle[]{ new Turtle("Shellbert", 5, 2.22, false), new Turtle("Eggbert", 4, 3.34, true), new Turtle("Seabert", 3, 6.54, true) }; } public static void main(String[] args) { // Inheritance Hierarchy Turtle[] objs = Turtles(); // print with title Turtle.setOrder(KeyType.title); Turtle.print(objs); // print name only Turtle.setOrder(KeyType.name); Turtle.print(objs); // print by weight only Turtle.setOrder(KeyType.weight); Turtle.print(objs); } } Turtle.main(null); . 3 Generic: Turtle listed by title Turtle: Shellbert, false, 5, 2.22 Turtle: Eggbert, true, 4, 3.34 Turtle: Seabert, true, 3, 6.54 3 Generic: Turtle listed by name Shellbert Eggbert Seabert 3 Generic: Turtle listed by weight 2.22 3.34 6.54 . /** * Implementation of a Double Linked List; forward and backward links point to adjacent Nodes. * */ public class LinkedList<T> { private T data; private LinkedList<T> prevNode, nextNode; /** * Constructs a new element * * @param data, data of object * @param node, previous node */ public LinkedList(T data, LinkedList<T> node) { this.setData(data); this.setPrevNode(node); this.setNextNode(null); } /** * Clone an object, * * @param node object to clone */ public LinkedList(LinkedList<T> node) { this.setData(node.data); this.setPrevNode(node.prevNode); this.setNextNode(node.nextNode); } /** * Setter for T data in DoubleLinkedNode object * * @param data, update data of object */ public void setData(T data) { this.data = data; } /** * Returns T data for this element * * @return data associated with object */ public T getData() { return this.data; } /** * Setter for prevNode in DoubleLinkedNode object * * @param node, prevNode to current Object */ public void setPrevNode(LinkedList<T> node) { this.prevNode = node; } /** * Setter for nextNode in DoubleLinkedNode object * * @param node, nextNode to current Object */ public void setNextNode(LinkedList<T> node) { this.nextNode = node; } /** * Returns reference to previous object in list * * @return the previous object in the list */ public LinkedList<T> getPrevious() { return this.prevNode; } /** * Returns reference to next object in list * * @return the next object in the list */ public LinkedList<T> getNext() { return this.nextNode; } } . import java.util.Iterator; /** * Queue Iterator * * 1. "has a" current reference in Queue * 2. supports iterable required methods for next that returns a generic T Object */ class QueueIterator<T> implements Iterator<T> { LinkedList<T> current; // current element in iteration // QueueIterator is pointed to the head of the list for iteration public QueueIterator(LinkedList<T> head) { current = head; } // hasNext informs if next element exists public boolean hasNext() { return current != null; } // next returns data object and advances to next position in queue public T next() { T data = current.getData(); current = current.getNext(); return data; } } /** * Queue: custom implementation * @author John Mortensen * * 1. Uses custom LinkedList of Generic type T * 2. Implements Iterable * 3. "has a" LinkedList for head and tail */ public class Queue<T> implements Iterable<T> { LinkedList<T> head = null, tail = null; /** * Add a new object at the end of the Queue, * * @param data, is the data to be inserted in the Queue. */ public void add(T data) { // add new object to end of Queue LinkedList<T> tail = new LinkedList<>(data, null); if (this.head == null) // initial condition this.head = this.tail = tail; else { // nodes in queue this.tail.setNextNode(tail); // current tail points to new tail this.tail = tail; // update tail } } /** * Returns the data of head. * * @return data, the dequeued data */ public T delete() { T data = this.peek(); if (this.tail != null) { // initial condition this.head = this.head.getNext(); // current tail points to new tail if (this.head != null) { this.head.setPrevNode(tail); } } return data; } /** * Returns the data of head. * * @return this.head.getData(), the head data in Queue. */ public T peek() { return this.head.getData(); } /** * Returns the head object. * * @return this.head, the head object in Queue. */ public LinkedList<T> getHead() { return this.head; } /** * Returns the tail object. * * @return this.tail, the last object in Queue */ public LinkedList<T> getTail() { return this.tail; } /** * Returns the iterator object. * * @return this, instance of object */ public Iterator<T> iterator() { return new QueueIterator<>(this.head); } } . /** * Queue Manager * 1. "has a" Queue * 2. support management of Queue tasks (aka: titling, adding a list, printing) */ class QueueManager<T> { // queue data private final String name; // name of queue private int count = 0; // number of objects in queue public final Queue<T> queue = new Queue<>(); // queue object /** * Queue constructor * Title with empty queue */ public QueueManager(String name) { this.name = name; } /** * Queue constructor * Title with series of Arrays of Objects */ public QueueManager(String name, T[]... seriesOfObjects) { this.name = name; this.addList(seriesOfObjects); } /** * Add a list of objects to queue */ public void addList(T[]... seriesOfObjects) { //accepts multiple generic T lists for (T[] objects: seriesOfObjects) for (T data : objects) { this.queue.add(data); this.count++; } } /** * Print any array objects from queue */ public void printQueue() { System.out.println(this.name + " count: " + count); System.out.print(this.name + " data: "); for (T data : queue) System.out.print(data + " "); System.out.println(); } } . /** * Driver Class * Tests queue with string, integers, and mixes of Classes and types */ class QueueTester { public static void main(String[] args) { // Create iterable Queue of NCS Generics Turtle.setOrder(Turtle.KeyType.name); // Illustrates use of a series of repeating arguments QueueManager qGenerics = new QueueManager("My Generics", Turtle.Turtles()); qGenerics.printQueue(); qGenerics.queue.add(new Turtle("Beachbert", 5, 5.22, false)); qGenerics.printQueue(); qGenerics.queue.add(new Turtle("Sheldon", 7, 4.42, false)); qGenerics.queue.delete(); qGenerics.printQueue(); qGenerics.queue.delete(); qGenerics.printQueue(); } } QueueTester.main(null); . My Generics count: 3 My Generics data: Shellbert Eggbert Seabert My Generics count: 3 My Generics data: Shellbert Eggbert Seabert Beachbert My Generics count: 3 My Generics data: Eggbert Seabert Beachbert Sheldon My Generics count: 3 My Generics data: Seabert Beachbert Sheldon . FRQ 2018 Q4 . class Main { public static void main(String[] args) { int[][] arr1 = {{0,1,2}, {1, 2, 0}, {2, 0, 1}}; int[][] arr2 = {{0,1,2}, {1, 2, 0}, {2, 1, 0}}; printArray(arr1); System.out.println(ArrayTester.isLatin(arr1)); printArray(arr2); System.out.println(ArrayTester.isLatin(arr2)); } public static void printArray(int[][] arr) { for(int[] i: arr) { for(int j: i) { System.out.print(j + " t"); } System.out.println(); } } } class ArrayTester { public static int[] getColumn(int[][] arr, int col) { int[] column = new int[arr.length]; for(int i = 0; i < arr.length; i++) { column[i] = arr[i][col]; } return column; } public static boolean hasAllValues(int[] arr1, int[] arr2) { for(int i = 0; i < arr1.length; i++) { boolean found = false; for(int j = 0; j < arr2.length; j++) { if(arr1[i] == arr2[j]) { found = true; break; } } if(!found) { return false; } } return true; } public static boolean containsDuplicates(int[] arr) { for(int i = 0; i < arr.length - 1; i++) { if(arr[i] == arr[i+1]) { return true; } } System.out.print("Result: "); return false; } public static boolean isLatin(int[][] square) { if(containsDuplicates(square[0])) { return false; } for(int i = 1; i < square.length; i++) { if(!hasAllValues(square[0], square[i]) || !hasAllValues(square[0], getColumn(square, i))) { return false; } } return true; } } Main.main(null); . 0 1 2 1 2 0 2 0 1 Result: true 0 1 2 1 2 0 2 1 0 Result: false . Checkpoint #2 . Challenge 1 . /** * Driver Class * Tests queue with string, integers, and mixes of Classes and types */ class QueueTester { public static void main(String[] args) { // Create iterable Queue of Words Object[] words = new String[] { "Serendipity", "Quixotic", "Melancholy", "Perfidious", "Ephemeral"}; QueueManager qWords = new QueueManager("Words", words); qWords.printQueue(); // Create iterable Queue of Integers Object[] numbers = new Integer[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; QueueManager qNums = new QueueManager("Integers", numbers ); qNums.printQueue(); } } QueueTester.main(null); . Words count: 5 Words data: Serendipity Quixotic Melancholy Perfidious Ephemeral Integers count: 10 Integers data: 0 1 2 3 4 5 6 7 8 9 . import java.util.Iterator; public class LinkedList<T> { private T data; private LinkedList<T> prevNode, nextNode; // Create new node with T data and reference to previous LinkedList<T> node public LinkedList(T data, LinkedList<T> node) { setData(data); setPrevNode(node); setNextNode(null); } // Create new node using copy public LinkedList(LinkedList<T> node) { setData(node.data); setPrevNode(node.prevNode); setNextNode(node.nextNode); } // Getters public T getData() { return this.data; } public LinkedList<T> getPrev() { return this.prevNode; } public LinkedList<T> getNext() { return this.nextNode; } // Setters public void setData(T data) { this.data = data; } public void setPrevNode(LinkedList<T> node) { this.prevNode = node; } public void setNextNode(LinkedList<T> node) { this.nextNode = node; } } /** * Queue Iterator * * 1. "has a" current reference in Queue * 2. supports iterable required methods for next that returns a generic T Object */ class QueueIterator<T> implements Iterator<T> { LinkedList<T> current; // current element in iteration // QueueIterator is pointed to the head of the list for iteration public QueueIterator(LinkedList<T> head) { current = head; } // hasNext informs if next element exists public boolean hasNext() { return current != null; } // next returns data object and advances to next position in queue public T next() { T data = current.getData(); current = current.getNext(); return data; } } /** * Queue: custom implementation * @author John Mortensen * * 1. Uses custom LinkedList of Generic type T * 2. Implements Iterable * 3. "has a" LinkedList for head and tail */ public class Queue<T> implements Iterable<T> { LinkedList<T> head = null, tail = null; /** * Add a new object at the end of the Queue, * * @param data, is the data to be inserted in the Queue. */ public void add(T data) { // add new object to end of Queue LinkedList<T> tail = new LinkedList<>(data, null); if (this.head == null) // initial condition this.head = this.tail = tail; else { // nodes in queue this.tail.setNextNode(tail); // current tail points to new tail this.tail = tail; // update tail } } /** * Returns the data of head. * * @return data, the dequeued data */ public T delete() { try { T data = this.peek(); if (this.tail != null) { // initial condition this.head = this.head.getNext(); // current tail points to new tail if (this.head != null) { this.head.setPrevNode(tail); } } return data; } catch (Exception E) { return null; } } /** * Returns the data of head. * * @return this.head.getData(), the head data in Queue. */ public T peek() { try { return this.head.getData(); } catch (Exception E) { return null; } } /** * Returns the head object. * * @return this.head, the head object in Queue. */ public LinkedList<T> getHead() { return this.head; } /** * Returns the tail object. * * @return this.tail, the last object in Queue */ public LinkedList<T> getTail() { return this.tail; } /** * Returns the iterator object. * * @return this, instance of object */ public Iterator<T> iterator() { return new QueueIterator<>(this.head); } } /** * Queue Manager * 1. "has a" Queue * 2. support management of Queue tasks (aka: titling, adding a list, printing) */ class QueueManager<T> { // queue data private final String name; // name of queue private int count = 0; // number of objects in queue public final Queue<T> queue = new Queue<>(); // queue object /** * Queue constructor * Title with empty queue */ public QueueManager(String name) { this.name = name; } /** * Queue constructor * Title with series of Arrays of Objects */ public QueueManager(String name, T[]... seriesOfObjects) { this.name = name; this.addList(seriesOfObjects); } /** * Add a list of objects to queue */ public void addList(T[]... seriesOfObjects) { //accepts multiple generic T lists for (T[] objects: seriesOfObjects) for (T data : objects) { this.queue.add(data); this.count++; } } // Challenge 1 public T delete() { count--; return this.queue.delete(); } /** * Print any array objects from queue */ public void printQueue() { System.out.println(this.name + " count: " + count); System.out.print(this.name + " data: "); for (T data : queue) System.out.print(data + " "); System.out.println(); } } /** * Driver Class * Tests queue with string, integers, and mixes of Classes and types */ class QueueTester { public static void main(String[] args) { // Create iterable Queue of Words Object[] words = new String[] { "Serendipity", "Quixotic", "Melancholy", "Perfidious", "Ephemeral"}; QueueManager qWords = new QueueManager("Words", words ); qWords.printQueue(); while (qWords.delete() != null) { qWords.printQueue(); } } } QueueTester.main(null); . Words count: 5 Words data: Serendipity Quixotic Melancholy Perfidious Ephemeral Words count: 4 Words data: Quixotic Melancholy Perfidious Ephemeral Words count: 3 Words data: Melancholy Perfidious Ephemeral Words count: 2 Words data: Perfidious Ephemeral Words count: 1 Words data: Ephemeral Words count: 0 Words data: .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/03/19/generic.html",
@@ -122,7 +133,7 @@
- ,"post11": {
+ ,"post12": {
"title": "2015 Practice Exam MCQ Review and Corrections",
"content": ". Question 2 . Answer D is incorrect. This would be the result if the outer loop started at 1 and continued as long as r <= 3 was true, increasing r by 1 after each iteration, and if the inner loops were written with the second inner loop being before the first inner loop. Answer A is correct. The outer for loop iterates three times with r being assigned the values 3, 2, and 1. The two inner loops iterates a different number of times for each iteration of the outer loop depending on the value of r. During the first iteration of the outer loop, when r is 3, the first inner loop iterates two times for when c is equal to 1 and 2. This results in -- being printed. The second inner loop iterates one time for when c equals 3. This results in * being printed. Then the cursor moves to the next line and that concludes the first iteration of the outer loop. This pattern then continues. . Question 5 . Answer C is incorrect. The value of (x && y) is true only when x is true and y is true, however, the value of (x || y) && x could be true if x is true and y is false. Therefore, these statements are not equivalent. Answer A is correct. For the expression to evaluate to true, the expressions on either side of the && operator must be true. If x is true then x || y is true regardless of the value of y, meaning (x || y) && x evaluates to true. If x is false, the expression evaluates to false regardless of the value of (x || y). . Question 7 . Answer A is incorrect. This would be the result if the outer loop counter variable, outer, was incremented by 2 for each iteration. Answer C is correct. The outer loop iterates six times for when outer is assigned the values 1 through 6. For each iteration, the number of times the inner loop iterates is dependent on the value of outer. . Question 8 . Correct answer would be B. In the first iteration of the for loop, j is 0. The value of result[0] is assigned the product of row 1, column 0, which is 1 and row 0, column 2, which is 1. Therefore, result[0] is assigned the value 1. The second iteration of the for loop, when j is 1, result[1] is assigned the product of row 1, column 1, which is 2, and row 1, column 2, which is 3. Therefore, result[1] is assigned the value 6. The third iteration of the for loop, when j is 2, result[2] is assigned the product of row 1, column 2, which is 3, and row 2, column 2, which is 1. Therefore, result[2] is assigned the value 3. The final iteration of the for loop, when j is 3, result[3] is assigned the product of row 1, column 3, which is 4, and row 3, column 2, which is 1. Therefore, result[3] is assigned the value 4. . Question 31 . . This was a misunderstanding error. Answer E is correct. The first set of nested for loops sets each element in board to “O”. The next for loop starts val at 0 and increments by 1 until val is 4, when val is 5 the loop terminates. . Question 34 . Answer D is correct. List is an interface, which an ArrayList implements. Please note that List is no longer tested as part of the AP CSA exam and ArrayList will be used instead. To determine the size of an ArrayList we need to call the method size(). Each word will be separated by a comma, but no comma should appear after the last element in the list. Therefore, a comma is added as long as k does not equal the last index, sizeOfList – 1, since list indices start at 0. . Question 39 . Answer C is the correct option. The first for loop uses the set method to change the value of each element in students to “Alex”. When the set method is called, it returns the value that was originally at this index. So, the first loop will print Alex Bob Carl. At this point all elements have been set to “Alex”. The second for loop uses an enhanced for loop to access every element and will print Alex Alex Alex. .",
"url": "https://rohitd3.github.io/rohitfastpages/cb/2023/03/13/reviewmcthirtynine.html",
@@ -133,7 +144,7 @@
- ,"post12": {
+ ,"post13": {
"title": "Data Types",
"content": "Early Seed Award . static String add(int a1, int b1) { String s1 = Integer.toString(a1); String s2 = Integer.toString(b1); int number0 = Integer.parseInt(s1, 2); int number1 = Integer.parseInt(s2, 2); int total = number0 + number1; String finalvalue = Integer.toBinaryString(total); return finalvalue; } System.out.println(add(1,1)); System.out.println(add(0,1)); System.out.println(add(1,10)); System.out.println(add(1,110)); . 10 1 11 111 . Start with some small code excercises . Write a Jupyter notebook code example on the following primitive types with a code example (4 to 5 lines), preference would be using array and methods like substring and random as applicable: int, double, boolean, char.Now convert each of the examples to corresponding Wrapper classes, using arrays. Expression of these in Class or PBL forms is an option. But the review must be easy for me to see work. . integer . // int System.out.println("integer:"); int[] intArray = new int[5]; int sum = 0; for (int i = 0; i < intArray.length; i++) { intArray[i] = (int) (Math.floor(Math.random() * 100)); System.out.println(i + ": " + intArray[i]); sum += intArray[i]; } System.out.println("Sum: " + sum); // Wrapper Class ArrayList<Integer> intArrayList = new ArrayList<>(); for (int i : intArray){ intArrayList.add(new Integer(i)); } . integer: 0: 36 1: 99 2: 87 3: 0 4: 95 Sum: 317 . double . public class doubleArray { public static void main(String[] args) { // declare an array of doubles double[] dubarray = {1.1, 2.2, 3.34, 5.56}; // print out the values of the array for (int i = 0; i < dubarray.length; i++) { System.out.println("Value " + i + " = " + dubarray[i]); // loop through the array using a for loop and print out each element in the array. Note that we use the double primitive type to declare the array and assign values to it. } } } doubleArray.main(null); . Value 0 = 1.1 Value 1 = 2.2 Value 2 = 3.34 Value 3 = 5.56 . boolean . public class isatortoise { public static void main(String[] args) { boolean tortoise = true; if(tortoise == true){ System.out.println("Shellby is a tortoise"); } else{ System.out.println("Shellby is an aquatic turtle"); } } } isatortoise.main(null); . Shellby is a tortoise . char . import java.util.Random; public class charalphabets { public static void main(String[] args) { Random rand = new Random(); // create random object to generate random number char[] alphabets = {'a', 'b', 'c', 'd', 'e'}; char randomletter = alphabets[rand.nextInt(alphabets.length)]; // next Int method of the rand object generates a random integer that retrieves a random vowel System.out.println("The random letter is " + randomletter); } } charalphabets.main(null); . The random letter is d . What are methods? . In Java, a method is a block of code that, when called, executes the specified tasks listed in it. Consider a method as a little program that performs operations on data and might or might not return a value. Each technique has a unique name. | . What are control structures? . A block of code known as a control structure allows us to alter the course that those instructions take. Conditional branches, loops, and branching statements are the three types. Java has control structures that can alter the course of execution and manage how instructions are carried out. | . What FRQ did you explore? . 2016 FRQ 1 | . Exploring Mr. M's code . Diverse Array . Contains methods and control structures | Multiple control structures . For | While | If statements | . | Because it contains arrays, a data type, it falls under the category of data types. . | The majority of code segments, regardless of what they are on, deal with methods and control structures. | . Random . Gives value between 0 and 1 | Double a Math.random value and add 7 to it if you want a random number between 7 and 9. | . Do nothing by value . As a result of changing the subvalue rather than the variable's real value, you are essentially modifying the variable but it does not actually change. | . Int by Reference . Despite the fact that you are acting locally, the int changes its value. | Essentially states that there is a workaround for the issue that local variable editing is not possible. | . Menu . Use of Try, Catch, and Runnable to regulate program execution | . package com.nighthawk.hacks.methodsDataTypes; import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * Menu: custom implementation * @author John Mortensen * * Uses String to contain Title for an Option * Uses Runnable to store Class-Method to be run when Title is selected */ // The Menu Class has a HashMap of Menu Rows public class Menu { // Format // Key {0, 1, 2, ...} created based on order of input menu // Value {MenuRow0, MenuRow1, MenuRow2,...} each corresponds to key // MenuRow {<Exit,Noop>, Option1, Option2, ...} Map<Integer, MenuRow> menu = new HashMap<>(); /** * Constructor for Menu, * * @param rows, is the row data for menu. */ public Menu(MenuRow[] rows) { int i = 0; for (MenuRow row : rows) { // Build HashMap for lookup convenience menu.put(i++, new MenuRow(row.getTitle(), row.getAction())); } } /** * Get Row from Menu, * * @param i, HashMap key (k) * * @return MenuRow, the selected menu */ public MenuRow get(int i) { return menu.get(i); } /** * Iterate through and print rows in HashMap */ public void print() { for (Map.Entry<Integer, MenuRow> pair : menu.entrySet()) { System.out.println(pair.getKey() + " ==> " + pair.getValue().getTitle()); } } /** * To test run Driver */ public static void main(String[] args) { Driver.main(args); } } // The MenuRow Class has title and action for individual line item in menu class MenuRow { String title; // menu item title Runnable action; // menu item action, using Runnable /** * Constructor for MenuRow, * * @param title, is the description of the menu item * @param action, is the run-able action for the menu item */ public MenuRow(String title, Runnable action) { this.title = title; this.action = action; } /** * Getters */ public String getTitle() { return this.title; } public Runnable getAction() { return this.action; } /** * Runs the action using Runnable (.run) */ public void run() { action.run(); } } // The Main Class illustrates initializing and using Menu with Runnable action class Driver { /** * Menu Control Example */ public static void main(String[] args) { // Row initialize MenuRow[] rows = new MenuRow[]{ // lambda style, () -> to point to Class.Method new MenuRow("Exit", () -> main(null)), new MenuRow("Do Nothing", () -> DoNothingByValue.main(null)), new MenuRow("Swap if Hi-Low", () -> IntByReference.main(null)), new MenuRow("Matrix Reverse", () -> Matrix.main(null)), new MenuRow("Diverse Array", () -> Matrix.main(null)), new MenuRow("Random Squirrels", () -> Number.main(null)) }; // Menu construction Menu menu = new Menu(rows); // Run menu forever, exit condition contained in loop while (true) { System.out.println("Hacks Menu:"); // print rows menu.print(); // Scan for input try { Scanner scan = new Scanner(System.in); int selection = scan.nextInt(); // menu action try { MenuRow row = menu.get(selection); // stop menu if (row.getTitle().equals("Exit")) { if (scan != null) scan.close(); // scanner resource requires release return; } // run option row.run(); } catch (Exception e) { System.out.printf("Invalid selection %d n", selection); } } catch (Exception e) { System.out.println("Not a number"); } } } . 2016 FRQ Part 1 . // PART A public class RandomStringChooser { private ArrayList<String> words; public RandomStringChooser(String[] wordArray) { words = new ArrayList<String>(); for (String w : wordArray) words.add(w); } public String getNext() { if (words.size() == 0) return "NONE"; int i = (int)(Math.random() * words.size()); return words.remove(i); } } // PART B public RandomLetterChooser(String str) { super(getSingleLetters(str)); } .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2023/03/06/extraseed.html",
@@ -144,7 +155,7 @@
- ,"post13": {
+ ,"post14": {
"title": "52 CB MC Tri 2 Corrections + Reflection",
"content": "Total score: 44/52 . Q14 count 2D array columns . Answer B is incorrect. The enhanced for loop in line 8 is intended to traverse the rows of the two-dimensional array arr. Each row o f arr is a one-dimensional array of int values, int[] row. Answer C is correct. Two-dimensional arrays are stored as arrays of one-dimensional arrays. Line 8 is intended to assign to row, a one-dimensional array of int values, a single row of the two-dimensional array arr. The original version of line 8 attempts to assign a row of col, but col is not a two-dimensional array. . Q16 count words in ArrayList wordList . Answer B is incorrect. This result would be printed if the if statement was changed to if (word.indexOf("a") < 0). Answer D is correct. The code segment uses an enhanced for loop to traverse wordList. The value of count is incremented each time a word contains the character "a". There are four elements of wordList that contain an "a", so 4 is printed. . Q24 loop on string abcdef . Iteration error. After writing out what the code results, it should be abbccddeef . Q25 manipulate method and animals List . Answer E is incorrect. List is an interface, which an ArrayList implements. Please note that List is no longer tested as part of the AP CSA exam and ArrayList will be used instead. This would be the result if when words that started with “b” were found, they were added to the end instead of inserted at index animals.size() – k such as if the statement in the for loop was animals.add(animals.remove(k));. Answer B is correct. List is an interface, which an ArrayList implements. Please note that List is no longer tested as part of the AP CSA exam and ArrayList will be used instead. The manipulate method contains a for loop with a loop control variable k that starts at the right most index of animals, decrements by 1 each time, until k is equal to 0. In the first iteration, when k is 5, if the element of animals at 5 (“baboon”) starts with a “b”, which it does, then this value is removed from the list and inserted at index 1. The list would then be {“bear”, “baboon”, “zebra”, “bass”, “cat”, “koala”}. . Q26 mystery method with String parameter and substring . Answer D is incorrect. The reverse of “nono” is “onon”, since these two strings are not equal, the method will return false. Answer E is correct. This algorithm assigns temp the letters of str in reverse by extracting each letter of str starting at the end and moving to the beginning. Each letter is appended to the end of temp. So, if str was “abc”, “c” would be appended followed by “b”, and then “a”, making temp equal to “cba”. This method will return true if str is equal to temp, which is a string with the letters of str in reverse. The string “noon” is the only string that is the same in reverse. . Q30 print from 2D array . After writing out the process for the given code I get the following result: . 15 14 13 12 11 . 25 24 23 22 . 35 34 33 . 45 44 . Q37 processWords method . This was a silly mistake. The value 0 is always printed. . Q41 remove some ArrayList elements . Answer D is incorrect. The expression num % key == 0 is correctly used to identify values of num that are divisible by key. Answer E is correct. When the element at position i is removed from numList, subsequent elements are shifted left. After the removal, the element that used to be at position i + 1 is now at position i. Because the method increments i regardless of whether the element at position i was removed, the method does not always work as intended. For example, if two adjacent elements are both divisible by key, only the first element is removed. The method could be corrected by incrementing i only when the element at position i is not removed or by decrementing i when an element is removed. .",
"url": "https://rohitd3.github.io/rohitfastpages/cb/2023/01/31/correctionsforfiftytwo.html",
@@ -155,7 +166,7 @@
- ,"post14": {
+ ,"post15": {
"title": "66 CB MC Tri 2 Corrections + Reflection",
"content": "Total score: 59/66 . Q12 Compound Boolean expression with variables x and y . Answer B is incorrect. This expression will always evaluate to true since x is always either greater than 1000 or less than 1500. Answer A is correct. The original expression evaluates to true when either y is greater than 10000 or x is between 1000 and 1500. If the value of y is greater than 10000, this equivalent expression will evaluate to true since it is used in both of the or (||) expressions. If y is not greater than 10000, the only way the equivalent expression can evaluate to true is if x is between 1000 and 1500. . Q19 equivalent expressions . C is incorrect. The expressions are not equivalent when a has the value 2, b has the value 1, c has the value 3, and d has the value 4. A is the right answer according to De Morgan's laws, the given expression is equivalent to (a < b) || (c < d). . Q25 error in ItemInventory class . Answer C is incorrect. The constructor parameter is used by the assignment statement to initialize the instance variable numItems. Answer B is correct. The mutator method updateItems must have a return type. In this case, since no value is returned, the return type should be void. . Q34 for loop equivalent to enhanced for loop . A is incorrect. The original code segment prints the sum of twice the value of the elements in the array. This code segment prints a value that is twice the sum of the integers from 0 to arr.length - 1. D is the correct answer. The original code segment uses an enhanced for loop to iterate through the elements of array arr, uses variable sum to accumulate the sum of twice the value of the elements in the array, and prints the value of sum. This code segment produces the same output using a regular for loop. As the index k varies from 0 to arr.length - 1, twice the value of arr[k] accumulates in the variable sum. . Q36 GridWorld getDirection and getMoveLocation calls . Line 4 will causes a compile time error. . Q39 isLeapYear . Answer D is incorrect. The value 2001 is not a multiple of 4, so the expression (val % 4) == 0 evaluates to false and the statement return (val % 400) == 0; is executed and the method returns false, as intended. Answer A is the correct choice because the value 1900 is a multiple of 4, so the expression (val % 4) == 0 evaluates to true and the statement return true; is executed, thereby exiting the method with a return value of true. This is an error because even though 1900 is a multiple of 100, it is not a multiple of 400, so the method should have returned false. Any value that is a multiple of 100 but not a multiple of 400 will pass the first test and return true even though the method was intended to return false. . Q41 mystery call to get 11 . Answer choice B is correct because a is true, !a is false and the body of the first if statement is not executed. Since b is false, the body of the second if statement is not executed. Since c is true, the body of the third if statement is executed and the value 7 + 4 = 11 is returned. .",
"url": "https://rohitd3.github.io/rohitfastpages/cb/2023/01/22/correctionsforsixtysixnoimage.html",
@@ -166,7 +177,7 @@
- ,"post15": {
+ ,"post16": {
"title": "Units 6-10 Review + Vocab List",
"content": "Points . Unit Score Grading Comments . Unit 6 | 0.9/1 | Link | Met all the requirements, showed participation | . Unit 7 | 0.97/1 | Link | Hacks are done with key learnings but quizizz scored 90% | . Unit 8 | 1/1 | Link | N/A | . Unit 9 | Student Lesson Presentation | Link | Started by rotating through dialog on Cars. Sahil shared Car class. Talked about super keyword and had example to show constructor calling super and then assigning custom attribute. Hack was done immediately with bottle/water bottle. Rohit spoke of @Override examples all with println statements. Nathan spoke on super and calling horn method. Kurtis talked about inheritance hierarchy. Nathan spoke again about defining methods with different amount of parameters. Sahil introduced another hack. The activity hacks are well formed and seem well thought out for short examples in classroom. Ritvik finished with the Object superclass and toString method. - Mortensen | . Unit 10 | 0.95/1 | Link | missed one MC question + good implementation of recursion in code | . TOTAL SCORE | 3.82/4 | | | . Unit 6: Arrays . Jupyter Notebook Hacks . array is a type of data structure which contains a collection of data | Making Arrays: using constructors or using pre-initialized arrays Access elements through arrayName[index] | How to declare an array, ex: int[] array dom = new int [9]; (saying array length) or int[] array dom = {1,2,3,4,5} | . Unit 6 Code Examples . String[] candy = {"M&M", "Reeses", "Kisses", "Drops"}; for (int i = 0; i < candy.length; i++) { System.out.println(candy[i]); } . M&M Reeses Kisses Drops . public class ArrayExample { public static void main(String[] args) { int[] numbers = {1,2,3,4,5}; int index = 0; while (index < numbers.length) { System.out.println(numbers[index]); index++; } } } ArrayExample.main(null); . 1 2 3 4 5 . Unit 7 Array List . Fastpages Blog . Methods to know: . size(): # of elements in the list | add(obj): adds an element at the end | add(index, object): adds element at specific index | remove(index): removes element from specific index | set(index, object): replaces element at index with new object | get(index): returns element at inde | . Unit 8 . Fastpages Blog . Array: a data structure used to implement a collection (list) of primitive or object reference data | Element: a single value in the array | Index: the position of the element in the array (starts from 0) | Array Length = the number of elements in the array | public: so can be accessed in any class | Access and update elements: arrayname[r][c] | . Unit 9 . Link to our lesson . Inheritance, order in which attributes, methods and strings called | constructor - where attributes are defined | overriding - subclass or child class can get overridden with another method in subclass | polymorphism - running multiple things with same name | super keyword, use superclass in subclass | . Unit 10 . Fastpages Blog . Learnings . Can be used in situations where loops are used | Must call itself and have a base case | . Recursion . Method that calls itself. Must have two parts: a base case and a recursive call. | . // O(n) time since it must go through n iterations to calculate factorial // factorial calculation public int factorial (int n) { if (n == 0 || n == 1) { return 1; } return n * factorial(n-1); } System.out.println(factorial(4)); System.out.println(factorial(10)); . 24 3628800 .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/12/15/finallesson610.html",
@@ -177,7 +188,7 @@
- ,"post16": {
+ ,"post17": {
"title": "Lesson 7",
"content": "Learnings . Like an array but length is variable | Must sue wrapper class | Works with enhanced loops | Used with arraylist for primitives | . Key Learning on Wrapper Classes . Used with arraylist for primitives | Java auto converts between wrappers and primitives | An ArrayList cannot directly represent primitive datatypes. In the above example, I wanted an ArrayList of integers. The datatype that I provide is not int - it is instead Integer. | At a lower level, wrapper classes are classes that encapsulate data types, so that you can create objects of those datatypes. You can only have an ArrayList of objects, so this is one good use case for wrapper classes. | . Hack 1 . // HACK!!!! // Create an arrayList and use one of the cool methods for it import java.util.ArrayList; import java.lang.Math; public class hack1 { public static void main (String[] args) { ArrayList<Integer> arr = new ArrayList<Integer>(); arr.add(5); arr.add(4); arr.add(3); int min = 0; int max = arr.size(); int range = max - min; for (int i = 0; i < 5; i++) { int rand = (int)(Math.random() * range) + min; System.out.println(arr.get(rand)); } } } hack1.main(null); . 4 4 3 5 3 . Hack 2 . import java.util.ArrayList; public class main { public static void main(String[] args) { ArrayList<String> color = new ArrayList<String>(); color.add("red apple"); color.add("green box"); color.add("blue water"); color.add("red panda"); for (int i = 0; i < color.size(); i++) { if(color.get(i).contains("red")) { color.remove(i); } } System.out.println(color); } } main.main(null); . [green box, blue water] . Hack 3 . ArrayList<Integer> num = new ArrayList<Integer>(); num.add(5); num.add(1); num.add(3); public int sum = 0; for (int i = 0; i<num.size(); i++) { sum = sum + num.get(i); } System.out.println(sum); . 9 .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/12/14/lesson7hwk.html",
@@ -188,7 +199,7 @@
- ,"post17": {
+ ,"post18": {
"title": "Lightboard FRQ 4 Completed",
"content": "public class LightBoard{ /** The lights on the board, where true represents on and false represents off. */ private boolean[][] lights; /** Constructs a LightBoard object having numRows rows and numCols columns. * Precondition: numRows > 0, numCols > 0 * Postcondition: each light has a 40% probability of being set to on. */ public LightBoard(int numRows, int numCols){ lights = new boolean[numRows][numCols]; for (int i = 0; i < numRows; i++) {//for loops for (int j = 0; j < numCols; j++) { lights[i][j] = Math.random() < 0.4;// random chance of being on 40 percent } } } /** Evaluates a light in row index row and column index col and returns a status * as described in part (b). * Precondition: row and col are valid indexes in lights. */ public boolean evaluateLight(int row, int col){ //first find out how many are on in column int columnLights = 0; for (int i = 0; i < lights.length; i++) { if (lights[i][col]) { columnLights++; } } //next check conditions for light if (lights[row][col] == true && columnLights % 2 == 0) {//first condition return false; } else if (lights[row][col] == false && columnLights % 3 == 0) {//second condition return true; } else {//last condition return lights[row][col]; } } public static void main(String[] args) { //tester method LightBoard tester = new LightBoard(10,10); System.out.println(tester.evaluateLight(3,6)); System.out.println(tester.evaluateLight(2,5)); System.out.println(tester.evaluateLight(0,8)); System.out.println(tester.evaluateLight(2,9)); } } LightBoard.main(null); . false false false true .",
"url": "https://rohitd3.github.io/rohitfastpages/cb/2022/12/14/frq4.html",
@@ -199,7 +210,7 @@
- ,"post18": {
+ ,"post19": {
"title": "Lesson 10",
"content": "Notes for unit . Learnings . Can be used in situations where loops are used | Must call itself and have a base case | . Recursion . Method that calls itself. Must have two parts: a base case and a recursive call. | . Big O Notation . Describes time complexity for code to run | . Binary Search . data to be in sorted order to use. | algorithm coninuously halves the data until the wanted value is found | efficient compared to linear search | . Homework . Kahoot complete | Google form - one question missed | .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/12/13/lesson10hwk.html",
@@ -210,7 +221,7 @@
- ,"post19": {
+ ,"post20": {
"title": "Unit 9 - Inheritance",
"content": "Setup . One of the main goals of learning inheritance is to teach you how to structure your code. So, we're going to leave a lot of the hacks up to your creativity, and you can make anything you want as long as it follows the structure of inheritance. . Open up a new notebook in your personal fastpages (you can do this in pairs or groups). The hacks in this lesson will be performed from scratch in this notebook. . What is Inheritance, and why is it useful? . Imagine you wanted to create a racing game. You would need a bunch of different cars-bugattis, lamborghinis, rolls royce. Each of these cars would have different features; they would have different fuel types, tires, and engines. A car like an Aston Martin would have a spoiler inside the car for aerodynamics. Lambos have cools doors for when you pull up to a race. But all of these cars would also have a lot in common; all cars have gear shifts, gas, breaks, and steering. . We could model each car with its own class, with attributes and methods specific to each car. But we would find that we're repeating a lot of the same code over and over - it doesn't really make sense to redefine the methods for gas and breaks for every single car, when it will do the same thing. . This is a great use case for inheritance. We can define a base "Car Class" that has the methods and attributes common to every car - steering methods, gas and break methods, and attributes like speed and miles per gallon. . Each car will "extend" from this base class. This means that it "inherits" the methods and attributes in the base Car Class (this is why it's called Inheritance). But each of the new car classes, for example a Bugatti Class, will have its own special methods and attributes. . SuperClasses and Subclasses with Cars . Let's first look at the base "Car Class" we talked about, with the generic methods all cars would have. This is called the Super Class. . Some vocab: protected is so that the attribute isn't affected by outside modifiers. . public class Car { protected String brandName; protected double range; protected double doorNumber; protected double maxSpeed; // Constructor for the attributes present in the superclass public Car(String brandName, double range, double doorNumber, double maxSpeed) { this.brandName = brandName; this.range = range; this.doorNumber = doorNumber; this.maxSpeed = maxSpeed; } public void gas () { System.out.println("Go!"); } public void brake () { System.out.println("Stop!"); } public void gearShift () { System.out.println("Use the stick"); } public void steer () { System.out.println("turning left..."); } public void horn () { System.out.print("honking... "); } } . public class TeslaModelS extends Car { // Additional attribute not present in the superclass protected String hornSound; // Constructor for Subclass public TeslaModelS(String brandName, double range, double doorNumber, double maxSpeed, String hornSound) { // We use the Superclass constructor for the shared attributes through the keyword "super" super(brandName, range, doorNumber, maxSpeed); // hornSound is not in the Superclass, so we add it separately in the constructor this.hornSound = hornSound; } // We use override to change the functionality in the subclass of an existing method in the superclass @Override public void gearShift () { System.out.println("Use the gear selector next to the wheel"); } public void steer () { System.out.println("turning right..."); } // Here, we don't fully change the functionality of the existing horn method in the superclass // Instead, we take all of the functionality of the superclass method, and then add on to it public void horn () { super.horn(); System.out.print(hornSound); } public static void main(String[] args) { // 5 argument constructor TeslaModelS modelS = new TeslaModelS("Tesla", 396, 4, 200, "eugh"); // We can still use the methods from the child class, even though we didn't mention them in the subclass! modelS.gas(); // Using the overridden method modelS.gearShift(); modelS.steer(); // Using the method we added on to modelS.horn(); } } TeslaModelS.main(null); . Go! Use the gear selector next to the wheel turning right... honking... eugh . Writing Constructors for Subclasses . In the previous example, the TeslaModelS class was a subclass. Recall that a constructor is what initializes the values of the attributes of a class when a new object of the class is created. How do we write constructors for subclasses? . Well, if the attributes of the subclass are exactly the same as the attributes of the superclass, then we can just use the constructor of the superclass. Take a look at the superclass, the Car class. We have defined a constructor within that class already. . To use the constructor of the superclass in our subclass, we need to use some specific syntax. Namely, we need to make use of the super keyword. This allows us to use constructors that we define in the superclass. . Look again at the constructor in the TeslaModelS class. We have passed in 4 attributes to the super constructor, meaning that we are making use of the 4 argument constructor in the superclass. . But our subclass also has an additional attribute: hornSound. We don't include this in the superclass since this isn't customizable for most cars. This attribute needs to be included in the constructor for our subclass, but it doesn't make sense to make a completely new constructor for all 5 attributes when 4 of the attributes are shared with the superclass. . So, what we do is call the superclass constructor with 4 attributes, but then simply add an additional assignment for the 5th, unique, attribute. . Hack 1 . In your own notebook, make any class with 2 attributes and 0 methods. Create a 2 argument constructor for that class. This will be your superclass. Now, create a subclass that extends from the superclass you made. Create 1 additional attribute in your subclass that was not present in the superclass. . Then, create a constructor for the subclass that uses the superclass constructor with the super keyword, and then adds an additional assignment for the third attribute. . Overriding Methods . Overriding allows a subclass or child class to provide a specific implementation of a method that has already been provided by a super-classes or parent classes. When a method in a subclass has the same name, same parameters or signature, and same return type (or sub-type) as a method in its super-class, then the method in the subclass is said to override the method in the super-class. . // the existing method in the superclass public void gearShift () { System.out.println("Use the stick"); } public void steer () { System.out.println("turning left..."); } // We use override to change the functionality in the subclass of an existing method in the superclass @Override public void gearShift () { System.out.println("Use the gear selector next to the wheel"); } public void steer () { System.out.println("turning right..."); } . Hack 2 . Add a method to the superclass you created before. This method should be very general; it should only have functionality that you know for sure will be needed in almost every single subclass. In your subclass, override this method. Remember that overriding the method will give your subclass the specific functionality it needs from that method. . Super Keyword . The two main uses of the super keyword are to use constructors in the superclass and methods in the superclass in a child class. . In this example child class TeslaModelS, the super keyword can be found in the constructor and the method horn. When it says, super(brandName, range, doorNumber, maxSpeed) in the constructor, the super keyword is used to utilize the super class constructor inside the child class. Next, in the horn() method, super.horn() is called. This line utilizes the super keyword to call the method horn() from the parent class Car. . Creating References Using Inheritance Hierarchies . Type Diagram . It is similar to looking at it like a family tree. A is the superclass, or the head of the family. The descendants are the subclasses. . So . public class A public class B extends A public class C extends B . A Reference refers to an object of the class, or the object of an inherited class. So an Inheritance Hierarchy can create references . Polymorphism . public class ToyotaCamry extends Car { public ToyotaCamry (String brandName, double range, double doorNumber, double maxSpeed) { super(brandName, range, doorNumber, maxSpeed); } @Override public void gearShift () { System.out.println("Manual shift!"); } public void turbo (int a) { System.out.println("Engaging turbo " + a); } public void turbo (int a, int b) { System.out.println("Engaging turbo " + a + " and nitro " + b); } public static void main(String[] args) { // 4 superclass argument constructor ToyotaCamry camry = new ToyotaCamry("Toyota", 348, 4, 145); // Using the overridden method camry.gearShift(); // Using the overloaded method camry.turbo(1); camry.turbo(1, 1); } } ToyotaCamry.main(null); . Manual shift! Engaging turbo 1 Engaging turbo 1 and nitro 1 . Polymorphism means "many forms". It means that we do one thing in many ways through inheritance. . For example, the gearShift method defined in the superclass simply says to use the stick. But in manual cars and a Tesla, you need to do different things. So, we show the method to shift gears being used in two different ways in two different classes. We can have two different implementations through overriding methods. . Look at the different outputs for the method in the ToyotaCamry and TeslaModelS class. . This method of polymorphism is called Runtime Polymorphism. It is also called Dynamic Binding or Dynamic Method Dispatch. When you hear any of these things, think of method overriding. . Imagine if you want to do a single method in a single class, but in different ways. For example, in the ToyotaCamry class, we need to either engage a turbo by itself, or a turbo with a nitro. So, we have two methods called turbo. When the method is called, the actual functionality is resolved at compile-time. . When we call camry.turbo(1), then the single argument turbo method is called. When we call camry.turbo(1, 1), the two argument turbo method is called. . Having two methods with the same name but different arguments and functionalities is called method overloading. . This is another form of polymorphism called Compile Time Polymorphism or Static Polymorphism. When you see these terms, think of method overloading. . Hack 3 . Create another subclass from your original superclass. Now, implement method overloading in this subclass. Remember that this means having two methods with the same name, but with different arguments. The method you are using for method overloading doesn't have to exist in the superclass. This will implement Static Polymorphism. . Next, override the method in your superclass in your new subclass. Make sure it has different functionality than your method in the other subclass. This will implement Runtime Polymorphism. . 9.7 Object Superclass . Important Things to Know . Object class is the superclass of all other classes in Java | Object is part of the java.lang package (know for imports) | Important Object class methods include: boolean equals(Object x) & String toString() | Object class' subclasses override the equals and toString methods | . toString Method . Prints out the attributes of an object | Converts string object into a string | . equals Method . Compares two strings | Returns a boolean value of true if equal, otherwise returns false | . // Demonstration of toString method // Utilized toString methods in all FRQs so far, here's an example from FRQ1 public String dayOfWeekToString() { return ("{ "month ": " + this.month + ", " + " "day ": " + this.day + ", " + " "year ": " + this.year + ", " + " "dayOfWeek ": " + this.dayOfWeek + " }"); } public String toString() { return dayOfWeekToString(); } . // Demonstration of equals method // Outputs boolean value of true or false // If one object equals another public class Student { private String name; public Student(String name) { this.name = name; } public static void main(String[] args) { Student student1 = new Student("Bob"); Student student2 = new Student("Jeff"); Student student3 = student1; Student student4 = new Student("A"); Student student5 = student4; System.out.println(student1.equals(student2)); System.out.println(student2.equals(student3)); System.out.println(student1.equals(student3)); System.out.println(student3.equals(student4)); System.out.println(student3.equals(student4)); System.out.println(student5.equals(student4)); } } Student.main(null); . false false true false false true .",
"url": "https://rohitd3.github.io/rohitfastpages/entry/2022/12/08/InheritanceLesson.html",
@@ -221,7 +232,7 @@
- ,"post20": {
+ ,"post21": {
"title": "Lesson 8 - 2D Array",
"content": "Vocabulary . Array = a data structure used to implement a collection (list) of primitive or object reference data | Element = a single value in the array | Index = the position of the element in the array (starts from 0) | Array Length = the number of elements in the array Is public, so can be accessed in any class | Is also final, so can’t change it after array has been created | . | . A 2D array is an array of arrays, and can be a better way to store data | Declaring a 2D array: DataType[][] nameOf2DArray | . Hack 1: Access the last element of the 2D Array list: . public class Test { public static void main(String[] args) { String[][] arr = { { "a", "f", "g" }, { "b", "e", "h" }, { "c", "d", "i" } }; // Print the last element in the array! System.out.println("last element: "+ arr[2][2]); } } Test.main(null); . last element: i . Updating an element: list[r][c] = value; . Hack 2: Changing a Value: . public class Test { public static void main(String[] args) { String[][] arr = { { "Atlanta", "Baltimore", "Chicago" }, { "Australia", "Boston", "Cincinnati" }, { "Austin", "Beaumont", "Columbus" } }; // Change Austin to Athens and print! System.out.println("Change Austin to Athens and print!"); System.out.println(arr[arr.length - 1][arr[0].length - 3]); arr[arr.length - 1][arr[0].length - 3] = "Athens"; System.out.println(arr[arr.length - 1][arr[0].length - 3]); for(int row = 0; row < arr.length; row++) { for(int column = 0; column < arr.length; column++) { System.out.print(arr[row][column] + " "); } System.out.println(" "); } } } Test.main(null); . Change Austin to Athens and print! Austin Athens Atlanta Baltimore Chicago Australia Boston Cincinnati Athens Beaumont Columbus . You can use Nested Loops to traverse 2D Arrays . Hack 3: Unknown Dimensions: . public class Test { public static void main(String[] args) { String[][] arr = { { "Atlanta", "Baltimore", "Chicago" }, { "Australia", "Boston", "Cincinnati" }, { "Austin", "Beaumont", "Columbus" } }; String match = ""; String name = "Boston"; for (String[] row : arr) { for (String item : row) { if (item.equals(name)) { match = name; } } } if (match.length() == 0) { System.out.println("No Match!"); } else { System.out.println(name); } } } Test.main(null); . Boston . Hack 4: Finding the Min/Max Value: . public class Test { public static void main(String[] args) { String[][] arr = { { "Atlanta", "Baltimore", "Chicago" }, { "Australia", "Boston", "Cincinnati" }, { "Austin", "Beaumont", "Columbus" } }; String longest = arr[0][0]; String shortest = arr[0][0]; // Use nested for loops to find the longest or shortest string! System.out.println("Use nested for loops to find the longest or shortest string!"); for(int row =0; row < arr.length; row++) { for(int col=0; col < arr[row].length; col++) { if (arr[row][col].length() > longest.length()) { longest = arr[row][col]; } } } System.out.println("Longest String: " + longest); for(int row =0; row < arr.length; row++) { for(int col=0; col < arr[row].length; col++) { if (arr[row][col].length() < shortest.length()) { shortest = arr[row][col]; } } } System.out.println("Shortest String: " + shortest); } } Test.main(null); . Use nested for loops to find the longest or shortest string! Longest String: Cincinnati Shortest String: Boston . Extra submission . int height = 20; String[][] arr = new String[height][height]; for (int col=0; col<=height; col+=2) { System.out.println(" ".repeat(height - col/2) +"*".repeat(col)); } System.out.println(" ".repeat(height - 1) + "*".repeat(2)); System.out.println(" ".repeat(height - 1) + "*".repeat(2)); . ** **** ****** ******** ********** ************ ************** **************** ****************** ******************** ** ** .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/12/06/lesson8hwk.html",
@@ -232,7 +243,7 @@
- ,"post21": {
+ ,"post22": {
"title": "Unit 1-5 Lesson Notes",
"content": "Unit 1 . Work done . wrapper classes for all primitive data types like char, int, double, boolean where you can call in static methods that return values | primitive wrapper objects or string objects are immutable so the methods can't change Boolean, char, int, float, double are all primitive data types | String, Array, etc. are non-primitive data types | . | String class are unable to be changed | declare a variable that can be accessible and/or changed (=) is used to initialize variables or change its associated value | Operators are + - * / % | Compound operators are +=, -=, *=, /=, %= | Increment/decrement ++ or -- | . | . Unit 2 . Work done . classes are blueprints for creating objects | objects are instances within a class attributes are inherited by objects | Non static methods are dot operators | . | methods are certain set of code that runs a specific task | overloaded methods give multiple methods the same name with different signatures | void methods don't return values | Non void methods return a value of the same type defined in the method signature | static methods are a part of a class instead of an instance of a class which is why it's in a bracket in the class | . Unit 3 . Work done . boolean expression is true or false | If-else statements sets up alternate code if the first expression turns false | Else-if statements allow for more conditions to be defined | De Morgan's law: logical operators && (and) ll(or) and !(not) | . Unit 4 . Work done . While/for loops: repeats lines of code until a specific condition comes out false; can iterate over multiple elements | For loops are most tested | Strings: array chairs | . Unit 5 . Work done . Public classes: no restricted access - constructors | Private classes: restricted access - instance variables | Accessor method (getter): allows other objects to obtain values of instance variables or static variables | Non void methods return a single value | toString() method is a overridden method that provides description of a specific object | Mutator Method (setter): void method that changes value of instance variables/static variable | . Additional Vocab . Primitives: . Doubles - 64 bits | Integers - 32 bits - use int when declaring, not Integer. Integer is non-primitive | Booleans - 1 bit | String is a non-primitive data type | . Non-primitive or Wrapper classes data types use methods to perform actions . String Class . Strings are immutable - unable to be changed . Methods that act upon string objects do not change the state of the defined string object. . Constructors - initialize the attributes for an object . Constructors start with public, and have the same name as the class. In this case, these constructors are for the class Person | . Abstract class: is a restricted class that cannot be used to create objects (to access it, it must be inherited from another class). . Abstract method: can only be used in an abstract class, and it does not have a body. The body is provided by the subclass (inherited from) . Inheritance in Java is the method to create a hierarchy between classes by inheriting from other classes . Casting . change one data type to another. Two casting operators are | int | double . | Division - Seen above, casting can round the division for y/x so that it returns an integer, this is to allow for certain code beyond that that would only be able to take integer values for a specific reason. . | Rounding/Truncating - Seen in both examples above, casting is great for rounding a value to an integer or for another reason in order to simplify code. | . double x = 4.5; double y = 6.52; int z = (int) (y/x); int aa = (int) (x*y); System.out.println(z); System.out.println(aa) . 1 29 . Wrapper Classes - Classes that are able to make primitive types into objects to be used in things such as ArrayLists that would not allow primitives. See below for an example. . // Wrapper classes example ArrayList<Integer> ton = new ArrayList<Integer>(); // ArrayList<int> would not work for this // Concatenation example String a = "Hello"; String b = "World"; int c = 333; String d = a + " " + b + " " + c; System.out.println(d); . Hello World 333 . Concatenation - Concatenation involves combining two or more strings together. This is done by using the + operator. Anything that's not a string is attempted to be converted to a string in order to be concatenated on the end, like the int in this example. . Static/Class Variables - Static variables are variables that are shared across all instances of a class. This means that no matter how many objects you instantiate of the same class, modifying a static variable or method will update it for all instances. This is useful for things like a counter that you want to increment for every instance of a class. . Inheritance/Extends - Using an extends method allows it to inherit attributes and methods from the class it is extending. This is useful when you want to modify or create a subclass of a class without having to rewrite all of the code for the class you are extending. . public int scoreGuess(String guess) { int count = 0; for (int i = 0; i <= secret.length() - guess.length(); i++) { if (secret.substring(i, i + guess.length()).equals(guess)) { count++; } } return count * guess.length(); } . public String findBetterGuess(String guess1, String guess2) { if (scoreGuess(guess1) > scoreGuess(guess2)) { return guess1; } if (scoreGuess(guess2) > scoreGuess(guess1)) { return guess2; } if (guess1.compareTo(guess2) > 0) { return guess1; } return guess2; } . Polymorphism - Polymorphism is the ability to have multiple methods with the same name but different parameters. This is useful when you want to have multiple methods that do the same thing but with different parameters. This is also useful when you want to have a method that can take multiple types of parameters . Overloading is when you have multiple methods with the same name but different parameters. . Overriding is when you have a method with the same name and parameters as a method in a superclass but you want to modify the method in the subclass. . Late binding is when you have allow the compiler to determine which method to use at runtime instead of compile time. Abstract Class - Objects cannot be created from an abstract class, they can only be extended. This is useful when you want to create a class that can be extended but not instantiated . abstract class People { public void walked() { System.out.println("Rohit walked 10 miles"); } } class KURTIS extends People { public void walked() { System.out.println("kurtis walked 9 miles"); } } class NATHAN extends People { public void walked() { System.out.println("nathan walked 8 miles"); } } // Instantiating the People class would throw an error as it is abstract KURTIS kur = new KURTIS(); NATHAN nat = new NATHAN(); kur.walked(); nat.walked(); . kurtis walked 9 miles nathan walked 8 miles . Subclass Constructor / Super - Extending a class and then constructing the new extends class will call the constructor of the superclass. This is useful when you want to have a constructor that will call the constructor of the superclass. . Referencing Superclass - Using the super keyword allows you to reference the superclass of the current class. This is useful when you want to reference the superclass of the current class. . Standard Methods - ToString is a standard method that is used to convert an object into a string. Equals is useful for comparing two objects to see if they are equal. HashCode is useful for getting a unique hash code for an object. . Big O Notation - Implementing Big O notation is useful for determining the efficiency of an algorithm. Making algorithms more efficient is useful for making programs compile and run faster and likely reduce the load of it, which could be especially good for websites where users may be runnning the same function through an api many times. .",
"url": "https://rohitd3.github.io/rohitfastpages/entry/2022/12/02/trioenlessons.html",
@@ -243,7 +254,7 @@
- ,"post22": {
+ ,"post23": {
"title": "Unit 1-5 Lesson Score",
"content": "Unit Score Grading Comments . Unit 1 | 0.9/1 | Link | N/A | . Unit 2 | 0.95/1 | Link | Standard Answers yet a seemlingly perfect blog | . Unit 3 | 0.9/1 | Link.html) | Completed exercises, not FRQ | . Unit 4 | 0.9/1 | Link | N/A | . Unit 5 | 1/1 | Link | N/A | . TOTAL SCORE | 4.65/5 | | | .",
"url": "https://rohitd3.github.io/rohitfastpages/entry/2022/12/02/scoretrione.html",
@@ -254,7 +265,7 @@
- ,"post23": {
+ ,"post24": {
"title": "Unit 1-5 Lesson Blogs",
"content": "Grading . Unit Score Grading . Unit 1 | 0.9/1 | Link | . Unit 2 | 0.95/1 | Link | . Unit 3 | 0.9/1 | Link.html) | . Unit 4 | 0.8/1 | Link | . Unit 5 | 1/1 | Link | . TOTAL SCORE | 4.55/5 | N/A | . Unit 1 . Work done . wrapper classes for all primitive data types like char, int, double, boolean where you can call in static methods that return values | primitive wrapper objects or string objects are immutable so the methods can't change Boolean, char, int, float, double are all primitive data types | String, Array, etc. are non-primitive data types | . | String class are unable to be changed | declare a variable that can be accessible and/or changed (=) is used to initialize variables or change its associated value | Operators are + - * / % | Compound operators are +=, -=, *=, /=, %= | Increment/decrement ++ or -- | . | . Unit 2 . Work done . classes are blueprints for creating objects | objects are instances within a class attributes are inherited by objects | Non static methods are dot operators | . | methods are certain set of code that runs a specific task | overloaded methods give multiple methods the same name with different signatures | void methods don't return values | Non void methods return a value of the same type defined in the method signature | static methods are a part of a class instead of an instance of a class which is why it's in a bracket in the class | . Unit 3 . Work done . boolean expression is true or false | If-else statements sets up alternate code if the first expression turns false | Else-if statements allow for more conditions to be defined | De Morgan's law: logical operators && (and) ll(or) and !(not) | . Unit 4 . Work done . While/for loops: repeats lines of code until a specific condition comes out false; can iterate over multiple elements | For loops are most tested | Strings: array chairs | . Unit 5 . Work done . Public classes: no restricted access - constructors | Private classes: restricted access - instance variables | Accessor method (getter): allows other objects to obtain values of instance variables or static variables | Non void methods return a single value | toString() method is a overridden method that provides description of a specific object | Mutator Method (setter): void method that changes value of instance variables/static variable | . Additional Vocab . Primitives: . Doubles - 64 bits | Integers - 32 bits - use int when declaring, not Integer. Integer is non-primitive | Booleans - 1 bit | String is a non-primitive data type | . Non-primitive or Wrapper classes data types use methods to perform actions . String Class . Strings are immutable - unable to be changed . Methods that act upon string objects do not change the state of the defined string object. . Overloading with Constructors and Methods . Constructors - initialize the attributes for an object . Constructors start with public, and have the same name as the class. In this case, these constructors are for the class Person | . Abstract class: is a restricted class that cannot be used to create objects (to access it, it must be inherited from another class). . Abstract method: can only be used in an abstract class, and it does not have a body. The body is provided by the subclass (inherited from) . Inheritance in Java is the method to create a hierarchy between classes by inheriting from other classes .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/12/02/final15lessons.html",
@@ -265,7 +276,7 @@
- ,"post24": {
+ ,"post25": {
"title": "Collegeboard Test Corrections",
"content": "Score: 36/40 . Corrections for Q4 . The value of 2.33333 is incorrect because it is the result if the division used was floating point division, instead of integer division. . For it to be correct, evaluating x < 10 && y < 0 for x having the value 7 and y have a value of 3, x < 10 is true since 7 is less than 10 and y is less than 0 makes it false since 3 is not less than 0. The operator && evaluates to true when both conditions are true and evaluates to false otherwise. As a result, compiler will skip first output and execute the else statement for integer division for 7 / 3, which is 2. . Corrections for Q5 . B is incorrect as this would be the output if k was initialized to 0. . The correct answer is C. As the method mystery contains a loop that starts k at 1 and iterates, incrementing k by 1 until k exceeds n, which is 6. In each iteration, the Integer value k * k + 3 is added to the ArrayList seq. As the iterations continue {4, 7, 12, 19, 28, 39} is formed. . Corrections for Q12 . D is incorrect. This would be the return value if k was incremented by 1 instead of 2 and the loop condition was changed to k < input.length()- 1. . The correct answer is C. The value of the loop control variable k starts at 1 and is incremented by 2 as long as it is less than input.length. The input is “computer”, so input.length is 8. The values of k are 1, 3, 5, 7, and then when k is 9, the loop terminates. The statement input.substring (k, k + 1) will return the value of input at index k. Output is “o”, “p”, “t”, and “r”. The value “optr” is returned. . Corrections for Q40 . . Answer D is incorrect. When whatsItDo(“W”) is called, nothing is printed since the print occurs in the if statement which does not execute. All previous recursive method calls print a substring of str and not str. . C is correct. The call whatsItDo(“WATCH”) assigns to temp a substring of “WATCH” starting at 0 and ending at 4 – 1 or 3, which is “WATC”. Next the call whatsItDo(“WATC”) is made. The call whatsItDo(“WATC”), sets its local temp to “WAT” and calls whatsItDo(“WAT”). The call whatsItDo(“WAT”), sets its local temp to “WA” and calls whatsItDo(“WA”). The call whatsItDo(“WA”), sets its local temp to “W” and calls whatsItDo(“W”). The call whatsItDo(“W”) reaches the base case and doesn’t do anything since the length of “W” is 1. Then we need to finish the call to whatsItDo(“WA”), which prints the value of its local temp, “W”. . Reflection . Taking AP CSP last year, I wanted to further my computer science education by taking AP CSA the sequential year. The Java syntax was really different than the python syntax I learned last year but it was still very interesting. I believe that our group dynamic was really nice and I also learned from my team members. . What I want to get better at is working with backend and try making my own API next trimester. .",
"url": "https://rohitd3.github.io/rohitfastpages/entry/2022/11/08/cbtest.html",
@@ -276,7 +287,7 @@
- ,"post25": {
+ ,"post26": {
"title": "Lesson 6 - Array",
"content": "HACK 1 . // HACK 1 int[] arrayOne = {1, 3, 5, 7, 9}; for (int num : arrayOne) { if (num % 2 == 0) { System.out.println(num); } } . HACK 2 . // HACK 2 // Answer is B . HACK 3 . // HACK 3 import java.util.Arrays; public class arraySorter { public static void main(int[] a) { Arrays.sort(a); for (int i : a) { System.out.println(i); } } } int[] myNumbers = new int[] {5, 3, 4, 1, 2}; arraySorter.main(myNumbers); . 1 2 3 4 5 . HACK 4 . // HACK 4 // ANSWER IS B . HACK 5 . // HACK 5 public class ForEachDemo { public static void main(String[] args) { int[] highScores = { 10, 9, 8, 8}; String[] names = {"Jamal", "Emily", "Destiny", "Mateo"}; // for each loop with an int array for (int value : highScores) { System.out.println( value ); } // for each loop with a String array for (String value : names) { System.out.println(value); // this time it's a name! } } } . HACK 6 . // HACK 6 // ANSWER IS D . HACK 7 . // HACK 7 public class leftShifted { public static int[] main(int[] a) { int first = a[0]; for (int i=1; i<a.length; i++) { a[i-1] = a[i]; } a[a.length-1] = first; return a; } } int[] array = {7,9,4}; int[] array_out = leftShifted.main(array); Arrays.toString(array_out) . [9, 4, 7] . HACK 8 . // HACK 8 public class findDuplicate { public static int main(int[] a, int b) { int d=0; for (int number : a) { if (number==b) { d++; } } return d; } } int[] array = {7,7,9,4}; findDuplicate.main(array, 7); . 2 . HACK 9 . // HACK 9 public class reverseString { public static char[] main(char[] s) { char[] reverse = new char[s.length]; for (int i=s.length-1; i>=0; i--) { reverse[s.length-i-1] = s[i]; } return reverse; } } String s = "hello"; char[] c = s.toCharArray(); char[] reverse = reverseString.main(c); // Arrays.toString(reverse) String reversed = new String(reverse); System.out.println(reversed); . olleh . FRQ PART A . // FRQ PART A public void addMembers(String[] names, int gradYear) { for (String name : names) { MemberInfo member = new MemberInfo(name, gradYear, true); memberList.add(member); } } . Notes . Arrays: one type of data storage | Reference types | Need import java.util Arrays | Initialize arrays using constructors | Access elements through arrayName[index] | .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/11/01/lesson6hwk.html",
@@ -287,7 +298,7 @@
- ,"post26": {
+ ,"post27": {
"title": "Lesson 5 Homework - Writing Classes",
"content": "2019 FRQ Q2 Rohit and Kurtis . public class StepTracker { private int lowerBound; private int steps; private int totalDays; private int activeDays; public StepTracker(int minSteps) { lowerBound = minSteps; steps = 0; totalDays = 0; activeDays = 0; } public void addDailySteps(int newSteps) { steps += newSteps; totalDays += 1; if (newSteps >= lowerBound) { activeDays += 1; } } public int activeDays(){ return activeDays; } public double averageSteps() { if (totalDays == 0) { return (double) totalDays; } else { return (double) steps / totalDays; } } public static void main(String[] args){ StepTracker tr = new StepTracker(10000); System.out.println(tr.activeDays()); System.out.println(tr.averageSteps()); tr.addDailySteps(9000); System.out.println(tr.averageSteps()); tr.addDailySteps(23000); System.out.println(tr.activeDays()); } } StepTracker.main(null); . 0 0.0 9000.0 1 . Notes . Classes are blueprints to create objects and define attributes | Instances: attributes, constructors, methods, objects | Public classes: no restricted access - constructors | Private classes: restricted access - instance variables | Accessor method (getter): allows other objects to obtain values of instance variables or static variables | Non void methods return a single value | .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/10/28/lesson5hwk.html",
@@ -298,7 +309,7 @@
- ,"post27": {
+ ,"post28": {
"title": "Lesson 4 Homework - Iteration",
"content": "Hack 1 . public class WhileLoops { public double money = 0; public double profit = 5450000; public double goal = 30000000; public double years = 0; public void Calc() { while (this.money < this.goal) { this.money = this.money + this.profit; this.profit = this.profit * 1.05; this.years = this.years + 1; } System.out.println(this.years); } public static void main(String[] args) { WhileLoops obj = new WhileLoops(); obj.Calc(); } } WhileLoops.main(null); . 5.0 . Hack 2 . public class ForLoops { public double temp = 0; public void Calc() { System.out.println("Numbers 10-15"); for (int x = 10; x <= 15; x++) { System.out.println(x); } System.out.println("Convert temperature"); for (int x = 0; x<=100; x+=10) { temp = 0; temp = x + 273.15; System.out.println(x + "c -> " + temp + "k"); } } public static void main(String[] args) { ForLoops obj = new ForLoops(); obj.Calc(); } } ForLoops.main(null); . Numbers 10-15 10 11 12 13 14 15 Convert temperature 0c -> 273.15k 10c -> 283.15k 20c -> 293.15k 30c -> 303.15k 40c -> 313.15k 50c -> 323.15k 60c -> 333.15k 70c -> 343.15k 80c -> 353.15k 90c -> 363.15k 100c -> 373.15k . Caesar Cipher Homework . public class CaesarCipher { public String[] letters = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; public String temp; // Method which takes a string and swaps a character static char[] swap(String str, int i, char j) { char ch[] = str.toCharArray(); ch[i] = j; return ch; } public String Calc(String message) { temp = message; // Looping through each character in the message for (int i=0; i<temp.length(); i++) { // Cast the character to ascii to make substitutions much more efficient int ascii = (int) temp.charAt(i); // Letters at the end of the alphabet behave differently, so we create two separate conditionals if (ascii > 64 && ascii < 88 || (ascii > 96 && ascii < 120)) { ascii = ascii + 3; String tempSwap = new String(swap(temp, i, (char) ascii)); temp = tempSwap; } // This is for the last three letters of the alphabet else if (ascii > 87 && ascii < 91 || ascii > 119 && ascii < 123) { ascii = ascii - 23; String tempSwap = new String(swap(temp, i, (char) ascii)); temp = tempSwap; } } return temp; } public static void main(String[] args) { CaesarCipher cipherCalc = new CaesarCipher(); String message1 = "Kfzb gly!"; String message2 = "zlab zlab zlab"; String message3 = "prmbozxifcoxdfifpqfzbumfxifalzflrp"; System.out.println(cipherCalc.Calc(message1)); System.out.println(cipherCalc.Calc(message2)); System.out.println(cipherCalc.Calc(message3)); } } CaesarCipher.main(null); . Nice job! code code code supercalifragilisticexpialidocious . Notes . While/for loops: repeats lines of code until a specific condition comes out false; can iterate over multiple elements | . | For loops are most tested | Strings: array chairs | Nested iteration: loop within a loop | .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/10/27/lesson4hwk.html",
@@ -309,7 +320,7 @@
- ,"post28": {
+ ,"post29": {
"title": "Lesson 3 Homework - Boolean Expressions and if Statements",
"content": "Conditionals Exercises . 2 . import java.util.Scanner; public class Exercise2 { public static void main(String[] Strings) { Scanner input = new Scanner(System.in); System.out.print("Input a: "); double a = input.nextDouble(); System.out.print("Input b: "); double b = input.nextDouble(); System.out.print("Input c: "); double c = input.nextDouble(); double result = b * b - 4.0 * a * c; if (result > 0.0) { double r1 = (-b + Math.pow(result, 0.5)) / (2.0 * a); double r2 = (-b - Math.pow(result, 0.5)) / (2.0 * a); System.out.println("The roots are " + r1 + " and " + r2); } else if (result == 0.0) { double r1 = -b / (2.0 * a); System.out.println("The root is " + r1); } else { System.out.println("The equation has no real roots."); } } } Exercise2.main(null); . Input a: Input b: Input c: The roots are -0.552786404500042 and -1.4472135954999579 . 4 . import java.util.Scanner; public class Exercise4 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Input value: "); double input = in.nextDouble(); if (input > 0) { if (input < 1) { System.out.println("Positive small number"); } else if (input > 1000000) { System.out.println("Positive large number"); } else { System.out.println("Positive number"); } } else if (input < 0) { if (Math.abs(input) < 1) { System.out.println("Negative small number"); } else if (Math.abs(input) > 1000000) { System.out.println("Negative large number"); } else { System.out.println("Negative number"); } } else { System.out.println("Zero"); } } } Exercise4.main(null); . Input value: Positive number . 6 . import java.util.Scanner; public class Exercise6 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Input floating-point number: "); double x = in.nextDouble(); System.out.print("Input floating-point another number: "); double y = in.nextDouble(); x = Math.round(x * 1000); x = x / 1000; y = Math.round(y * 1000); y = y / 1000; if (x == y) { System.out.println("They are the same up to three decimal places"); } else { System.out.println("They are different"); } } } Exercise6.main(null); . Input floating-point number: Input floating-point another number: They are different . 8 . import java.util.Scanner; public class Exercise8 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Input an alphabet: "); String input = in.next().toLowerCase(); boolean uppercase = input.charAt(0) >= 65 && input.charAt(0) <= 90; boolean lowercase = input.charAt(0) >= 97 && input.charAt(0) <= 122; boolean vowels = input.equals("a") || input.equals("e") || input.equals("i") || input.equals("o") || input.equals("u"); if (input.length() > 1) { System.out.println("Error. Not a single character."); } else if (!(uppercase || lowercase)) { System.out.println("Error. Not a letter. Enter uppercase or lowercase letter."); } else if (vowels) { System.out.println("Input letter is Vowel"); } else { System.out.println("Input letter is Consonant"); } } } Exercise8.main(null); . Input an alphabet: Input letter is Vowel . 10 . public class Exercise10 { public static void main(String[] args) { int i; System.out.println ("The first 10 natural numbers are: n"); for (i=1;i<=10;i++) { System.out.println (i); } System.out.println (" n"); } } Exercise10.main(null); . The first 10 natural numbers are: 1 2 3 4 5 6 7 8 9 10 . 12 . import java.util.Scanner; public class Exercise12 { public static void main(String[] args) { int i,n=0,s=0; double avg; { System.out.println("Input the 5 numbers : "); } for (i=0;i<5;i++) { Scanner in = new Scanner(System.in); n = in.nextInt(); s +=n; } avg=s/5; System.out.println("The sum of 5 no is : " +s+" nThe Average is : " +avg); } } Exercise12.main(null); . Input the 5 numbers : The sum of 5 no is : 18 The Average is : 3.0 . 14 . import java.util.Scanner; public class Exercise14 { public static void main(String[] args) { int j,n; System.out.print("Input the number(Table to be calculated): "); { System.out.print("Input number of terms : "); Scanner in = new Scanner(System.in); n = in.nextInt(); System.out.println (" n"); for(j=0;j<=n;j++) System.out.println(n+" X "+j+" = " +n*j); } } } Exercise14.main(null); . Input the number(Table to be calculated): Input number of terms : 6 X 0 = 0 6 X 1 = 6 6 X 2 = 12 6 X 3 = 18 6 X 4 = 24 6 X 5 = 30 6 X 6 = 36 . 16 . import java.util.Scanner; public class Exercise16 { public static void main(String[] args) { int i,j,n; System.out.print("Input number of rows : "); Scanner in = new Scanner(System.in); n = in.nextInt(); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) System.out.print(j); System.out.println(""); } } } Exercise16.main(null); . Input number of rows : 1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 1234567891011 123456789101112 12345678910111213 1234567891011121314 123456789101112131415 12345678910111213141516 1234567891011121314151617 123456789101112131415161718 12345678910111213141516171819 . 18 . import java.util.Scanner; public class Exercise18 { public static void main(String[] args) { int i,j,n,k=1; System.out.print("Input number of rows : "); Scanner in = new Scanner(System.in); n = in.nextInt(); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) System.out.print(k++); System.out.println(""); } } } Exercise18.main(null); . Input number of rows : 1 23 456 78910 1112131415 161718192021 22232425262728 2930313233343536 373839404142434445 . 20 . import java.util.Scanner; public class Exercise20 { public static void main(String[] args) { int numberOfRows; System.out.print("Input number of rows : "); Scanner in = new Scanner(System.in); numberOfRows = in.nextInt(); int number = 1; for (int row = 1; row <= numberOfRows; row++) { for (int column = 1; column <= row; column++) { System.out.print(number + " "); number++; } System.out.println(); } } } Exercise20.main(null); . Input number of rows : 1 . Notes . if the boolean expression is true or false dictates whether the code will run | if-else statements sets up alternate code if the first expression turns false | else-if statements allow for more conditions to be defined | De Morgan's law: . !(a&&b) = (!a || !b) . | !(a || b) = (!a && !b) . | . | Comparing objects through == | .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/10/25/lesson3hwk.html",
@@ -320,7 +331,7 @@
- ,"post29": {
+ ,"post30": {
"title": "Lesson 2 Homework - Using Objects",
"content": "public int scoreGuess(String guess) { int count = 0; for (int i = 0; i <= secret.length() - guess.length(); i++) { if (secret.substring(i, i + guess.length()).equals(guess)) { count++; } } return count * guess.length(); } . public String findBetterGuess(String guess1, String guess2) { if (scoreGuess(guess1) > scoreGuess(guess2)) { return guess1; } if (scoreGuess(guess2) > scoreGuess(guess1)) { return guess2; } if (guess1.compareTo(guess2) > 0) { return guess1; } return guess2; } . Notes . Classes are blueprints for creating objects | Objects are instances within a class | Methods: certain set of code that runs a specific task | Class attributes are inherited by objects | Learned about myPainter in Code.org | Non static methods are dot operators | .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/10/25/lesson2hwk.html",
@@ -331,7 +342,7 @@
- ,"post30": {
+ ,"post31": {
"title": "Lesson 1 Homework - Primitive Types",
"content": "import java.util.*; public class gradecalc { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Final is part of the test category? true or false"); boolean finalIsTest = sc.nextBoolean(); if (finalIsTest) { System.out.println("Current grade:"); double grade = sc.nextDouble(); System.out.println("What percent of your grade is the tests category?"); int testsPercent = sc.nextInt(); System.out.println("Your current grade (in tests category)?"); double testsGrade = sc.nextDouble(); System.out.println("Total points in tests category currently?"); int testsPoints = sc.nextInt(); System.out.println("Amount of points:"); int finalPoints = sc.nextInt(); System.out.println("The grade you want:"); double finalgrade = sc.nextDouble(); double percentReq = finalgrade - (grade - testsGrade * testsPercent/100.0); double testPointsNeeded = (percentReq/testsPercent) * (testsPoints + finalPoints); double finalPointsNeeded = testPointsNeeded - testsPoints; System.out.println("You need a " + finalPointsNeeded + " on the final."); } else { System.out.println("What is your current grade?"); double grade = sc.nextDouble(); System.out.println("How much percent of your grade is the final?"); int finalPercent = sc.nextInt(); System.out.println("What is your desired grade?"); double target = sc.nextDouble(); double percentReq = target - (grade/100.0)*(100.0-finalPercent); double gradeNeeded = 100.0 * (percentReq/finalPercent); System.out.println("You need a " + gradeNeeded + " on the test."); } } } gradecalc.main(null); . Final is part of the test category? true or false Current grade: What percent of your grade is the tests category? Your current grade (in tests category)? Total points in tests category currently? Amount of points: The grade you want: You need a 32.0 on the final. . Notes . Boolean, char, int, float, double are all primitive data types | String, Array, etc. are non-primitive data types | Learned to declare a variable that can be accessible and/or changed | Learned how to store data as variables | (=) is used to initialize variables or change its associated value | Operators are + - * / % | Compound operators are +=, -=, *=, /=, %= | Increment/decrement ++ or -- | .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/10/24/lesson1hwk.html",
@@ -342,7 +353,7 @@
- ,"post31": {
+ ,"post32": {
"title": "POJO",
"content": "POJO w/ Annotation . import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; // generating getters and setters using lombok annotations import javax.persistence.*; @Data // simplify writing code @NoArgsConstructor @AllArgsConstructor @Entity // Annotation to simplify creating an entity, which is a lightweight persistence domain object. Typically, an entity represents a table in a relational database, and each entity instance corresponds to a row in that table. public class CarBrands { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Lo ng id; // Unique identifier @Column(unique=true) private String brand; // The Joke private int like; // stores joke likes private int dislike; // stores joke jeers } . POJO w/o Annotation . import javax.persistence.*; // without lombok we have more boilerplate code @Entity // Annotation to simplify creating an entity, which is a lightweight persistence domain object. Typically, an entity represents a table in a relational database, and each entity instance corresponds to a row in that table. public class CarBrands { public CarBrands() { this.id = null; this.brand = ""; this.like = 0; this.dislike = 0; } public CarBrands(Long ID, String Brand, int Like, int Dislike) { this.id = null; this.brand = Brand; this.like = Like; this.dislike = Dislike; } @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // Unique identifier @Column(unique=true) private String brand; // The Joke private int like; // Store joke likes private int dislike; // Store joke jeers // Only have a getter for ID // Don't need to set since it auto generates public Long getID() { return this.id; } public String getBrand() { return this.brand; } public void setBrand(String Brand) { this.brand = Brand; } public int getLike() { return this.like; } public void setLike(int Like) { this.like = Like; } public int getDislike() { return this.dislike; } public void setDislike(int Dislike) { this.dislike = Dislike; } } .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/10/10/pojostuff.html",
@@ -353,7 +364,7 @@
- ,"post32": {
+ ,"post33": {
"title": "image rescaling and coloring",
"content": "import javax.imageio.ImageIO; import java.io.File; import java.io.IOException; import java.awt.image.BufferedImage; public class ImageIOTest { public static void main( String[] args ){ BufferedImage img = null; // buffer type try { // Name of file and directories String name = "mort"; String in = "images/"; String out = "images/tmp/"; // Either use URL or File for reading image using ImageIO File imageFile = new File(in + name + ".png"); img = ImageIO.read(imageFile); // set buffer of image data // ImageIO Image write to gif in Java // Documentation https://docs.oracle.com/javase/tutorial/2d/images/index.html ImageIO.write(img, "gif", new File(out + name + ".gif") ); // write buffer to gif } catch (IOException e) { e.printStackTrace(); } System.out.println("Success"); } } ImageIOTest.main(null); . Success . import java.awt.Color; import java.awt.image.BufferedImage; import java.awt.Image; import java.awt.Graphics2D; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import javax.imageio.stream.ImageOutputStream; import javax.imageio.stream.ImageInputStream; import javax.imageio.metadata.IIOMetadata; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; import javax.imageio.ImageReader; import javax.imageio.ImageTypeSpecifier; public class Pics { private final String inDir = "images/"; // location of images private final String outDir = "images/tmp/"; // location of created files private String inFile; private String resizedFile; private String asciiFile; private String grayScaledFile; private String ext; // extension of file private long bytes; private int width; private int height; // Constructor obtains attributes of picture public Pics(String name, String ext) { this.ext = ext; this.inFile = this.inDir + name + "." + ext; this.resizedFile = this.outDir + name + "." + ext; this.asciiFile = this.outDir + name + ".txt"; this.setStats(); } // An image contains metadata, namely size, width, and height public void setStats() { BufferedImage img; try { Path path = Paths.get(this.inFile); this.bytes = Files.size(path); img = ImageIO.read(new File(this.inFile)); this.width = img.getWidth(); this.height = img.getHeight(); } catch (IOException e) { } } // Console print of data public void printStats(String msg) { System.out.println(msg + ": " + this.bytes + " " + this.width + "x" + this.height + " " + this.inFile); } // Convert scaled image into buffered image public static BufferedImage convertToBufferedImage(Image img) { // Create a buffered image with transparency BufferedImage bi = new BufferedImage( img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); // magic? Graphics2D graphics2D = bi.createGraphics(); graphics2D.drawImage(img, 0, 0, null); graphics2D.dispose(); return bi; } // Scale or reduce to "scale" percentage provided public void resize(int scale) { BufferedImage img = null; Image resizedImg = null; int width = (int) (this.width * (scale/100.0) + 0.5); int height = (int) (this.height * (scale/100.0) + 0.5); try { // read an image to BufferedImage for processing img = ImageIO.read(new File(this.inFile)); // set buffer of image data // create a new BufferedImage for drawing resizedImg = img.getScaledInstance(width, height, Image.SCALE_SMOOTH); } catch (IOException e) { return; } try { ImageIO.write(convertToBufferedImage(resizedImg), this.ext, new File(resizedFile)); } catch (IOException e) { return; } this.inFile = this.resizedFile; // use scaled file vs original file in Class this.setStats(); } // convert every pixel to an ascii character (ratio does not seem correct) public void convertToAscii() { BufferedImage img = null; PrintWriter asciiPrt = null; FileWriter asciiWrt = null; try { File file = new File(this.asciiFile); Files.deleteIfExists(file.toPath()); } catch (IOException e) { System.out.println("Delete File error: " + e); } try { asciiPrt = new PrintWriter(asciiWrt = new FileWriter(this.asciiFile, true)); } catch (IOException e) { System.out.println("ASCII out file create error: " + e); } try { img = ImageIO.read(new File(this.inFile)); } catch (IOException e) { } // Changing to go by blocks 2 times as wide as tall for (int i = 0; i < img.getHeight(); i+=2) { for (int j = 0; j < img.getWidth(); j++) { Color col = new Color(img.getRGB(j, i)); double pixVal = (((col.getRed() * 0.30) + (col.getBlue() * 0.59) + (col .getGreen() * 0.11))); try { asciiPrt.print(asciiChar(pixVal)); asciiPrt.flush(); asciiWrt.flush(); } catch (Exception ex) { } } try { asciiPrt.println(""); asciiPrt.flush(); asciiWrt.flush(); } catch (Exception ex) { } } } // Gray scale method public void GrayScale() { BufferedImage img = null; // Reading file try { img = ImageIO.read(new File(this.inFile)); } catch (IOException e) { } // Iterating through all pixels for (int i = 0; i<this.height; i++) { for (int j = 0; j<this.width; j++) { // For each pixel, getting RGB contents int pixel = img.getRGB(j, i); // Creating color object out of RGB contents for easy extraction Color color = new Color(pixel, true); // Using color object's methods to get the R, G, and B values for the pixel int red = color.getRed(); int green = color.getGreen(); int blue = color.getBlue(); // Averaging R, G, and B int avg = (red+green+blue)/3; // Creating a new color object which has R=G=B=average // This is because the average will be a shade of gray Color colorGray = new Color(avg, avg, avg); // Setting the pixel's actual RGB content in the image to be the grayscaled version. img.setRGB(j, i, colorGray.getRGB()); } } // Writing the image out try{ ImageIO.write(img, "png", new File("images/tmp/" + "graymort" + ".png") ); }catch(IOException e){ System.out.println(e); } } public void GreenScale() { BufferedImage img = null; // Reading file try { img = ImageIO.read(new File(this.inFile)); } catch (IOException e) { } // Iterating through all pixels for (int i = 0; i<this.height; i++) { for (int j = 0; j<this.width; j++) { // For each pixel, getting RGB contents int pixel = img.getRGB(j, i); // Creating color object out of RGB contents for easy extraction Color color = new Color(pixel, true); // Using color object's methods to get the R, G, and B values for the pixel int red = color.getRed(); int green = color.getGreen(); int blue = color.getBlue(); // Averaging R, G, and B int avg = (green)/3; // Creating a new color object which has R=G=B=average // This is because the average will be a shade of gray Color colorGreen = new Color(avg, green, avg); // Setting the pixel's actual RGB content in the image to be the grayscaled version. img.setRGB(j, i, colorGreen.getRGB()); } } // Writing the image out try{ ImageIO.write(img, "png", new File("images/tmp/" + "greenmort" + ".png") ); }catch(IOException e){ System.out.println(e); } } public void RedScale() { BufferedImage img = null; // Reading file try { img = ImageIO.read(new File(this.inFile)); } catch (IOException e) { } // Iterating through all pixels for (int i = 0; i<this.height; i++) { for (int j = 0; j<this.width; j++) { // For each pixel, getting RGB contents int pixel = img.getRGB(j, i); // Creating color object out of RGB contents for easy extraction Color color = new Color(pixel, true); // Using color object's methods to get the R, G, and B values for the pixel int red = color.getRed(); int green = color.getGreen(); int blue = color.getBlue(); // Averaging R, G, and B int avg = (red)/3; // Creating a new color object which has R=G=B=average // This is because the average will be a shade of gray Color colorRed = new Color(red, avg, avg); // Setting the pixel's actual RGB content in the image to be the grayscaled version. img.setRGB(j, i, colorRed.getRGB()); } } // Writing the image out try{ ImageIO.write(img, "png", new File("images/tmp/" + "redmort" + ".png") ); }catch(IOException e){ System.out.println(e); } } public void BlueScale() { BufferedImage img = null; // Reading file try { img = ImageIO.read(new File(this.inFile)); } catch (IOException e) { } // Iterating through all pixels for (int i = 0; i<this.height; i++) { for (int j = 0; j<this.width; j++) { // For each pixel, getting RGB contents int pixel = img.getRGB(j, i); // Creating color object out of RGB contents for easy extraction Color color = new Color(pixel, true); // Using color object's methods to get the R, G, and B values for the pixel int red = color.getRed(); int green = color.getGreen(); int blue = color.getBlue(); // Averaging R, G, and B int avg = (blue)/3; // Creating a new color object which has R=G=B=average // This is because the average will be a shade of gray Color colorBlue = new Color(avg, avg, blue); // Setting the pixel's actual RGB content in the image to be the grayscaled version. img.setRGB(j, i, colorBlue.getRGB()); } } // Writing the image out try{ ImageIO.write(img, "png", new File("images/tmp/" + "bluemort" + ".png") ); }catch(IOException e){ System.out.println(e); } } // conversion table, there may be better out there ie https://www.billmongan.com/Ursinus-CS173-Fall2020/Labs/ASCIIArt public String asciiChar(double g) { String str = " "; if (g >= 240) { str = " "; } else if (g >= 210) { str = "."; } else if (g >= 190) { str = "*"; } else if (g >= 170) { str = "+"; } else if (g >= 120) { str = "^"; } else if (g >= 110) { str = "&"; } else if (g >= 80) { str = "8"; } else if (g >= 60) { str = "#"; } else { str = "@"; } return str; } // tester/driver public static void main(String[] args) throws IOException { Pics mort = new Pics("mort", "png"); mort.GrayScale(); mort.GreenScale(); mort.RedScale(); mort.BlueScale(); mort.printStats("Original"); mort.resize(33); mort.printStats("Scaled"); mort.convertToAscii(); } } Pics.main(null); . Original: 621907 627x622 images/mort.png Scaled: 122492 207x205 images/tmp/mort.png . .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/10/02/image.html",
@@ -364,7 +375,7 @@
- ,"post33": {
+ ,"post34": {
"title": "api",
"content": "import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; //RapidAPI header https://rapidapi.com/louislefebure9/api/star-wars-characters/ HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://star-wars-characters.p.rapidapi.com/46DYBV/star_wars_characters")) .header("X-RapidAPI-Key", "bf09b94566msh22c602dfe97bd97p19c2fajsn1d42e34f8724") .header("X-RapidAPI-Host", "star-wars-characters.p.rapidapi.com") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); //RapidAPI request and response HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); //Printing out results System.out.println(response.body()); . [ { "id": 1, "mass": "77", "name": "Luke Skywalker", "gender": "male", "height": "172", "species": "Human", "eye_color": "blue", "homeworld": "Tatooine", "birth_year": "19BBY", "hair_color": "blond", "skin_color": "fair" }, { "id": 2, "mass": "75", "name": "C-3PO", "gender": "NA", "height": "167", "species": "Droid", "eye_color": "yellow", "homeworld": "Tatooine", "birth_year": "112BBY", "hair_color": "NA", "skin_color": "gold" }, { "id": 3, "mass": "32", "name": "R2-D2", "gender": "NA", "height": "96", "species": "Droid", "eye_color": "red", "homeworld": "Naboo", "birth_year": "33BBY", "hair_color": "NA", "skin_color": "white, blue" }, { "id": 4, "mass": "136", "name": "Darth Vader", "gender": "male", "height": "202", "species": "Human", "eye_color": "yellow", "homeworld": "Tatooine", "birth_year": "41.9BBY", "hair_color": "none", "skin_color": "white" }, { "id": 5, "mass": "49", "name": "Leia Organa", "gender": "female", "height": "150", "species": "Human", "eye_color": "brown", "homeworld": "Alderaan", "birth_year": "19BBY", "hair_color": "brown", "skin_color": "light" }, { "id": 6, "mass": "120", "name": "Owen Lars", "gender": "male", "height": "178", "species": "Human", "eye_color": "blue", "homeworld": "Tatooine", "birth_year": "52BBY", "hair_color": "brown, grey", "skin_color": "light" }, { "id": 7, "mass": "75", "name": "Beru Whitesun lars", "gender": "female", "height": "165", "species": "Human", "eye_color": "blue", "homeworld": "Tatooine", "birth_year": "47BBY", "hair_color": "brown", "skin_color": "light" }, { "id": 8, "mass": "32", "name": "R5-D4", "gender": "NA", "height": "97", "species": "Droid", "eye_color": "red", "homeworld": "Tatooine", "birth_year": "NA", "hair_color": "NA", "skin_color": "white, red" }, { "id": 9, "mass": "84", "name": "Biggs Darklighter", "gender": "male", "height": "183", "species": "Human", "eye_color": "brown", "homeworld": "Tatooine", "birth_year": "24BBY", "hair_color": "black", "skin_color": "light" }, { "id": 10, "mass": "77", "name": "Obi-Wan Kenobi", "gender": "male", "height": "182", "species": "Human", "eye_color": "blue-gray", "homeworld": "Stewjon", "birth_year": "57BBY", "hair_color": "auburn, white", "skin_color": "fair" }, { "id": 11, "mass": "84", "name": "Anakin Skywalker", "gender": "male", "height": "188", "species": "Human", "eye_color": "blue", "homeworld": "Tatooine", "birth_year": "41.9BBY", "hair_color": "blond", "skin_color": "fair" }, { "id": 12, "mass": "NA", "name": "Wilhuff Tarkin", "gender": "male", "height": "180", "species": "Human", "eye_color": "blue", "homeworld": "Eriadu", "birth_year": "64BBY", "hair_color": "auburn, grey", "skin_color": "fair" }, { "id": 13, "mass": "112", "name": "Chewbacca", "gender": "male", "height": "228", "species": "Wookiee", "eye_color": "blue", "homeworld": "Kashyyyk", "birth_year": "200BBY", "hair_color": "brown", "skin_color": "NA" }, { "id": 14, "mass": "80", "name": "Han Solo", "gender": "male", "height": "180", "species": "Human", "eye_color": "brown", "homeworld": "Corellia", "birth_year": "29BBY", "hair_color": "brown", "skin_color": "fair" }, { "id": 15, "mass": "74", "name": "Greedo", "gender": "male", "height": "173", "species": "Rodian", "eye_color": "black", "homeworld": "Rodia", "birth_year": "44BBY", "hair_color": "NA", "skin_color": "green" }, { "id": 16, "mass": "1,358", "name": "Jabba Desilijic Tiure", "gender": "hermaphrodite", "height": "175", "species": "Hutt", "eye_color": "orange", "homeworld": "Nal Hutta", "birth_year": "600BBY", "hair_color": "NA", "skin_color": "green-tan, brown" }, { "id": 17, "mass": "77", "name": "Wedge Antilles", "gender": "male", "height": "170", "species": "Human", "eye_color": "hazel", "homeworld": "Corellia", "birth_year": "21BBY", "hair_color": "brown", "skin_color": "fair" }, { "id": 18, "mass": "110", "name": "Jek Tono Porkins", "gender": "male", "height": "180", "species": "Human", "eye_color": "blue", "homeworld": "Bestine IV", "birth_year": "NA", "hair_color": "brown", "skin_color": "fair" }, { "id": 19, "mass": "17", "name": "Yoda", "gender": "male", "height": "66", "species": "Yoda's species", "eye_color": "brown", "homeworld": "NA", "birth_year": "896BBY", "hair_color": "white", "skin_color": "green" }, { "id": 20, "mass": "75", "name": "Palpatine", "gender": "male", "height": "170", "species": "Human", "eye_color": "yellow", "homeworld": "Naboo", "birth_year": "82BBY", "hair_color": "grey", "skin_color": "pale" }, { "id": 21, "mass": "78.2", "name": "Boba Fett", "gender": "male", "height": "183", "species": "Human", "eye_color": "brown", "homeworld": "Kamino", "birth_year": "31.5BBY", "hair_color": "black", "skin_color": "fair" }, { "id": 22, "mass": "140", "name": "IG-88", "gender": "none", "height": "200", "species": "Droid", "eye_color": "red", "homeworld": "NA", "birth_year": "15BBY", "hair_color": "none", "skin_color": "metal" }, { "id": 23, "mass": "113", "name": "Bossk", "gender": "male", "height": "190", "species": "Trandoshan", "eye_color": "red", "homeworld": "Trandosha", "birth_year": "53BBY", "hair_color": "none", "skin_color": "green" }, { "id": 24, "mass": "79", "name": "Lando Calrissian", "gender": "male", "height": "177", "species": "Human", "eye_color": "brown", "homeworld": "Socorro", "birth_year": "31BBY", "hair_color": "black", "skin_color": "dark" }, { "id": 25, "mass": "79", "name": "Lobot", "gender": "male", "height": "175", "species": "Human", "eye_color": "blue", "homeworld": "Bespin", "birth_year": "37BBY", "hair_color": "none", "skin_color": "light" }, { "id": 26, "mass": "83", "name": "Ackbar", "gender": "male", "height": "180", "species": "Mon Calamari", "eye_color": "orange", "homeworld": "Mon Cala", "birth_year": "41BBY", "hair_color": "none", "skin_color": "brown mottle" }, { "id": 27, "mass": "NA", "name": "Mon Mothma", "gender": "female", "height": "150", "species": "Human", "eye_color": "blue", "homeworld": "Chandrila", "birth_year": "48BBY", "hair_color": "auburn", "skin_color": "fair" }, { "id": 28, "mass": "NA", "name": "Arvel Crynyd", "gender": "male", "height": "NA", "species": "Human", "eye_color": "brown", "homeworld": "NA", "birth_year": "NA", "hair_color": "brown", "skin_color": "fair" }, { "id": 29, "mass": "20", "name": "Wicket Systri Warrick", "gender": "male", "height": "88", "species": "Ewok", "eye_color": "brown", "homeworld": "Endor", "birth_year": "8BBY", "hair_color": "brown", "skin_color": "brown" }, { "id": 30, "mass": "68", "name": "Nien Nunb", "gender": "male", "height": "160", "species": "Sullustan", "eye_color": "black", "homeworld": "Sullust", "birth_year": "NA", "hair_color": "none", "skin_color": "grey" }, { "id": 31, "mass": "89", "name": "Qui-Gon Jinn", "gender": "male", "height": "193", "species": "Human", "eye_color": "blue", "homeworld": "NA", "birth_year": "92BBY", "hair_color": "brown", "skin_color": "fair" }, { "id": 32, "mass": "90", "name": "Nute Gunray", "gender": "male", "height": "191", "species": "Neimodian", "eye_color": "red", "homeworld": "Cato Neimoidia", "birth_year": "NA", "hair_color": "none", "skin_color": "mottled green" }, { "id": 33, "mass": "NA", "name": "Finis Valorum", "gender": "male", "height": "170", "species": "Human", "eye_color": "blue", "homeworld": "Coruscant", "birth_year": "91BBY", "hair_color": "blond", "skin_color": "fair" }, { "id": 34, "mass": "66", "name": "Jar Jar Binks", "gender": "male", "height": "196", "species": "Gungan", "eye_color": "orange", "homeworld": "Naboo", "birth_year": "52BBY", "hair_color": "none", "skin_color": "orange" }, { "id": 35, "mass": "82", "name": "Roos Tarpals", "gender": "male", "height": "224", "species": "Gungan", "eye_color": "orange", "homeworld": "Naboo", "birth_year": "NA", "hair_color": "none", "skin_color": "grey" }, { "id": 36, "mass": "NA", "name": "Rugor Nass", "gender": "male", "height": "206", "species": "Gungan", "eye_color": "orange", "homeworld": "Naboo", "birth_year": "NA", "hair_color": "none", "skin_color": "green" }, { "id": 37, "mass": "NA", "name": "Ric Olié", "gender": "male", "height": "183", "species": "NA", "eye_color": "blue", "homeworld": "Naboo", "birth_year": "NA", "hair_color": "brown", "skin_color": "fair" }, { "id": 38, "mass": "NA", "name": "Watto", "gender": "male", "height": "137", "species": "Toydarian", "eye_color": "yellow", "homeworld": "Toydaria", "birth_year": "NA", "hair_color": "black", "skin_color": "blue, grey" }, { "id": 39, "mass": "40", "name": "Sebulba", "gender": "male", "height": "112", "species": "Dug", "eye_color": "orange", "homeworld": "Malastare", "birth_year": "NA", "hair_color": "none", "skin_color": "grey, red" }, { "id": 40, "mass": "NA", "name": "Quarsh Panaka", "gender": "male", "height": "183", "species": "NA", "eye_color": "brown", "homeworld": "Naboo", "birth_year": "62BBY", "hair_color": "black", "skin_color": "dark" }, { "id": 41, "mass": "NA", "name": "Shmi Skywalker", "gender": "female", "height": "163", "species": "Human", "eye_color": "brown", "homeworld": "Tatooine", "birth_year": "72BBY", "hair_color": "black", "skin_color": "fair" }, { "id": 42, "mass": "80", "name": "Darth Maul", "gender": "male", "height": "175", "species": "Zabrak", "eye_color": "yellow", "homeworld": "Dathomir", "birth_year": "54BBY", "hair_color": "none", "skin_color": "red" }, { "id": 43, "mass": "NA", "name": "Bib Fortuna", "gender": "male", "height": "180", "species": "Twi'lek", "eye_color": "pink", "homeworld": "Ryloth", "birth_year": "NA", "hair_color": "none", "skin_color": "pale" }, { "id": 44, "mass": "55", "name": "Ayla Secura", "gender": "female", "height": "178", "species": "Twi'lek", "eye_color": "hazel", "homeworld": "Ryloth", "birth_year": "48BBY", "hair_color": "none", "skin_color": "blue" }, { "id": 45, "mass": "45", "name": "Dud Bolt", "gender": "male", "height": "94", "species": "Vulptereen", "eye_color": "yellow", "homeworld": "Vulpter", "birth_year": "NA", "hair_color": "none", "skin_color": "blue, grey" }, { "id": 46, "mass": "NA", "name": "Gasgano", "gender": "male", "height": "122", "species": "Xexto", "eye_color": "black", "homeworld": "Troiken", "birth_year": "NA", "hair_color": "none", "skin_color": "white, blue" }, { "id": 47, "mass": "65", "name": "Ben Quadinaros", "gender": "male", "height": "163", "species": "Toong", "eye_color": "orange", "homeworld": "Tund", "birth_year": "NA", "hair_color": "none", "skin_color": "grey, green, yellow" }, { "id": 48, "mass": "84", "name": "Mace Windu", "gender": "male", "height": "188", "species": "Human", "eye_color": "brown", "homeworld": "Haruun Kal", "birth_year": "72BBY", "hair_color": "none", "skin_color": "dark" }, { "id": 49, "mass": "82", "name": "Ki-Adi-Mundi", "gender": "male", "height": "198", "species": "Cerean", "eye_color": "yellow", "homeworld": "Cerea", "birth_year": "92BBY", "hair_color": "white", "skin_color": "pale" }, { "id": 50, "mass": "87", "name": "Kit Fisto", "gender": "male", "height": "196", "species": "Nautolan", "eye_color": "black", "homeworld": "Glee Anselm", "birth_year": "NA", "hair_color": "none", "skin_color": "green" }, { "id": 51, "mass": "NA", "name": "Eeth Koth", "gender": "male", "height": "171", "species": "Zabrak", "eye_color": "brown", "homeworld": "Iridonia", "birth_year": "NA", "hair_color": "black", "skin_color": "brown" }, { "id": 52, "mass": "50", "name": "Adi Gallia", "gender": "female", "height": "184", "species": "Tholothian", "eye_color": "blue", "homeworld": "Coruscant", "birth_year": "NA", "hair_color": "none", "skin_color": "dark" }, { "id": 53, "mass": "NA", "name": "Saesee Tiin", "gender": "male", "height": "188", "species": "Iktotchi", "eye_color": "orange", "homeworld": "Iktotch", "birth_year": "NA", "hair_color": "none", "skin_color": "pale" }, { "id": 54, "mass": "NA", "name": "Yarael Poof", "gender": "male", "height": "264", "species": "Quermian", "eye_color": "yellow", "homeworld": "Quermia", "birth_year": "NA", "hair_color": "none", "skin_color": "white" }, { "id": 55, "mass": "80", "name": "Plo Koon", "gender": "male", "height": "188", "species": "Kel Dor", "eye_color": "black", "homeworld": "Dorin", "birth_year": "22BBY", "hair_color": "none", "skin_color": "orange" }, { "id": 56, "mass": "NA", "name": "Mas Amedda", "gender": "male", "height": "196", "species": "Chagrian", "eye_color": "blue", "homeworld": "Champala", "birth_year": "NA", "hair_color": "none", "skin_color": "blue" }, { "id": 57, "mass": "85", "name": "Gregar Typho", "gender": "male", "height": "185", "species": "Human", "eye_color": "brown", "homeworld": "Naboo", "birth_year": "NA", "hair_color": "black", "skin_color": "dark" }, { "id": 58, "mass": "NA", "name": "Cordé", "gender": "female", "height": "157", "species": "Human", "eye_color": "brown", "homeworld": "Naboo", "birth_year": "NA", "hair_color": "brown", "skin_color": "light" }, { "id": 59, "mass": "NA", "name": "Cliegg Lars", "gender": "male", "height": "183", "species": "Human", "eye_color": "blue", "homeworld": "Tatooine", "birth_year": "82BBY", "hair_color": "brown", "skin_color": "fair" }, { "id": 60, "mass": "80", "name": "Poggle the Lesser", "gender": "male", "height": "183", "species": "Geonosian", "eye_color": "yellow", "homeworld": "Geonosis", "birth_year": "NA", "hair_color": "none", "skin_color": "green" }, { "id": 61, "mass": "56.2", "name": "Luminara Unduli", "gender": "female", "height": "170", "species": "Mirialan", "eye_color": "blue", "homeworld": "Mirial", "birth_year": "58BBY", "hair_color": "black", "skin_color": "yellow" }, { "id": 62, "mass": "50", "name": "Barriss Offee", "gender": "female", "height": "166", "species": "Mirialan", "eye_color": "blue", "homeworld": "Mirial", "birth_year": "40BBY", "hair_color": "black", "skin_color": "yellow" }, { "id": 63, "mass": "NA", "name": "Dormé", "gender": "female", "height": "165", "species": "Human", "eye_color": "brown", "homeworld": "Naboo", "birth_year": "NA", "hair_color": "brown", "skin_color": "light" }, { "id": 64, "mass": "80", "name": "Dooku", "gender": "male", "height": "193", "species": "Human", "eye_color": "brown", "homeworld": "Serenno", "birth_year": "102BBY", "hair_color": "white", "skin_color": "fair" }, { "id": 65, "mass": "NA", "name": "Bail Prestor Organa", "gender": "male", "height": "191", "species": "Human", "eye_color": "brown", "homeworld": "Alderaan", "birth_year": "67BBY", "hair_color": "black", "skin_color": "tan" }, { "id": 66, "mass": "79", "name": "Jango Fett", "gender": "male", "height": "183", "species": "Human", "eye_color": "brown", "homeworld": "Concord Dawn", "birth_year": "66BBY", "hair_color": "black", "skin_color": "tan" }, { "id": 67, "mass": "55", "name": "Zam Wesell", "gender": "female", "height": "168", "species": "Clawdite", "eye_color": "yellow", "homeworld": "Zolan", "birth_year": "NA", "hair_color": "blonde", "skin_color": "fair, green, yellow" }, { "id": 68, "mass": "102", "name": "Dexter Jettster", "gender": "male", "height": "198", "species": "Besalisk", "eye_color": "yellow", "homeworld": "Ojom", "birth_year": "NA", "hair_color": "none", "skin_color": "brown" }, { "id": 69, "mass": "88", "name": "Lama Su", "gender": "male", "height": "229", "species": "Kaminoan", "eye_color": "black", "homeworld": "Kamino", "birth_year": "NA", "hair_color": "none", "skin_color": "grey" }, { "id": 70, "mass": "NA", "name": "Taun We", "gender": "female", "height": "213", "species": "Kaminoan", "eye_color": "black", "homeworld": "Kamino", "birth_year": "NA", "hair_color": "none", "skin_color": "grey" }, { "id": 71, "mass": "NA", "name": "Jocasta Nu", "gender": "female", "height": "167", "species": "Human", "eye_color": "blue", "homeworld": "Coruscant", "birth_year": "NA", "hair_color": "white", "skin_color": "fair" }, { "id": 72, "mass": "15", "name": "Ratts Tyerell", "gender": "male", "height": "79", "species": "Aleena", "eye_color": "NA", "homeworld": "Aleen Minor", "birth_year": "NA", "hair_color": "none", "skin_color": "grey, blue" }, { "id": 73, "mass": "NA", "name": "R4-P17", "gender": "female", "height": "96", "species": "NA", "eye_color": "red, blue", "homeworld": "NA", "birth_year": "NA", "hair_color": "none", "skin_color": "silver, red" }, { "id": 74, "mass": "48", "name": "Wat Tambor", "gender": "male", "height": "193", "species": "Skakoan", "eye_color": "NA", "homeworld": "Skako", "birth_year": "NA", "hair_color": "none", "skin_color": "green, grey" }, { "id": 75, "mass": "NA", "name": "San Hill", "gender": "male", "height": "191", "species": "Muun", "eye_color": "gold", "homeworld": "Muunilinst", "birth_year": "NA", "hair_color": "none", "skin_color": "grey" }, { "id": 76, "mass": "57", "name": "Shaak Ti", "gender": "female", "height": "178", "species": "Togruta", "eye_color": "black", "homeworld": "Shili", "birth_year": "NA", "hair_color": "none", "skin_color": "red, blue, white" }, { "id": 77, "mass": "159", "name": "Grievous", "gender": "male", "height": "216", "species": "Kaleesh", "eye_color": "green, yellow", "homeworld": "Kalee", "birth_year": "NA", "hair_color": "none", "skin_color": "brown, white" }, { "id": 78, "mass": "136", "name": "Tarfful", "gender": "male", "height": "234", "species": "Wookiee", "eye_color": "blue", "homeworld": "Kashyyyk", "birth_year": "NA", "hair_color": "brown", "skin_color": "brown" }, { "id": 79, "mass": "79", "name": "Raymus Antilles", "gender": "male", "height": "188", "species": "Human", "eye_color": "brown", "homeworld": "Alderaan", "birth_year": "NA", "hair_color": "brown", "skin_color": "light" }, { "id": 80, "mass": "48", "name": "Sly Moore", "gender": "female", "height": "178", "species": "NA", "eye_color": "white", "homeworld": "Umbara", "birth_year": "NA", "hair_color": "none", "skin_color": "pale" }, { "id": 81, "mass": "80", "name": "Tion Medon", "gender": "male", "height": "206", "species": "Pau'an", "eye_color": "black", "homeworld": "Utapau", "birth_year": "NA", "hair_color": "none", "skin_color": "grey" }, { "id": 82, "mass": "NA", "name": "Finn", "gender": "male", "height": "NA", "species": "Human", "eye_color": "dark", "homeworld": "NA", "birth_year": "NA", "hair_color": "black", "skin_color": "dark" }, { "id": 83, "mass": "NA", "name": "Rey", "gender": "female", "height": "NA", "species": "Human", "eye_color": "hazel", "homeworld": "NA", "birth_year": "NA", "hair_color": "brown", "skin_color": "light" }, { "id": 84, "mass": "NA", "name": "Poe Dameron", "gender": "male", "height": "NA", "species": "Human", "eye_color": "brown", "homeworld": "NA", "birth_year": "NA", "hair_color": "brown", "skin_color": "light" }, { "id": 85, "mass": "NA", "name": "BB8", "gender": "none", "height": "NA", "species": "Droid", "eye_color": "black", "homeworld": "NA", "birth_year": "NA", "hair_color": "none", "skin_color": "none" }, { "id": 86, "mass": "NA", "name": "Captain Phasma", "gender": "female", "height": "NA", "species": "NA", "eye_color": "NA", "homeworld": "NA", "birth_year": "NA", "hair_color": "NA", "skin_color": "NA" }, { "id": 87, "mass": "45", "name": "Padmé Amidala", "gender": "female", "height": "165", "species": "Human", "eye_color": "brown", "homeworld": "Naboo", "birth_year": "46BBY", "hair_color": "brown", "skin_color": "light" }, { "id": 88, "mass": null, "name": "", "gender": null, "height": null, "species": null, "eye_color": null, "homeworld": null, "birth_year": null, "hair_color": null, "skin_color": null } ] . import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import com.fasterxml.jackson.databind.ObjectMapper; URL url = new URL("https://api.api-ninjas.com/v1/cars?model=camry"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestProperty("accept", "application/json"); InputStream responseStream = connection.getInputStream(); ObjectMapper mapper = new ObjectMapper(); JsonNode root = mapper.readTree(responseStream); System.out.println(root.path("fact").asText()); . | import com.fasterxml.jackson.databind.ObjectMapper; package com.fasterxml.jackson.databind does not exist .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/10/02/api.html",
@@ -375,7 +386,7 @@
- ,"post34": {
+ ,"post35": {
"title": "fibonacci using loops",
"content": "/* * Creator: Nighthawk Coding Society * Mini Lab Name: fibonaccinacci sequence, featuring a Stream Algorithm * */ import java.util.ArrayList; import java.util.HashMap; import java.util.stream.Stream; /* Objective will require changing to abstract class with one or more abstract methods below */ abstract class fibonacci { String name; // name or title of method , no name is set int size; // nth sequence int hashID; // counter for hashIDs in hash map ArrayList<Long> list; // captures current fibonaccinacci sequence HashMap<Integer, Object> hash; // captures each sequence leading to final result int first = 1; int second = 1; /* Zero parameter constructor uses Telescoping technique to allow setting of the required value nth @param: none */ public fibonacci() { this(20); // telescope to avoid code duplication, using default as 20 } /* Construct the nth fibonaccinacci number @param: nth number, the value is constrained to 92 because of overflow in a long */ public fibonacci(int nth) { this.size = nth; this.list = new ArrayList<>(); this.hashID = 0; this.hash = new HashMap<>(); //initialize fibonaccinacci and time mvc this.init(); } /* This Method should be "abstract" */ protected abstract void init(); /* Number is added to fibonaccinacci sequence, current state of "list" is added to hash for hashID "num" */ public void setData(long num) { // the number in setdata is added here list.add(num); // the number is added to the list hash.put(this.hashID++, list.clone()); // the hash id is incremented and added as a key and list is added as a value in the hashmap } /* Custom Getter to return last element in fibonaccinacci sequence */ public long getNth() { return list.get(this.size - 1); } /* Custom Getter to return last fibonaccinacci sequence in HashMap */ public Object getNthSeq(int i) { return hash.get(i); } /* Console/Terminal supported print method */ public void print() { System.out.println("Init method = " + this.name); System.out.println("fibonaccinacci Number " + this.size + " = " + this.getNth()); System.out.println("fibonaccinacci List = " + this.list); System.out.println("fibonaccinacci Hashmap = " + this.hash); for (int i=0 ; i<this.size; i++ ) { System.out.println("fibonaccinacci Sequence " + (i+1) + " = " + this.getNthSeq(i)); } } } . public class fibonacciFor extends fibonacci{ @Override public void init() { this.name = "For Loop"; // setting name this.setData(0); // first item in the list this.setData(first); this.setData(second); int loopSize = this.size - 3; for(int i = 0;i<loopSize;i++) { int next = second; second = second + first; first = next; this.setData(second); } } static public void main(String[] args) { fibonacciFor fib = new fibonacciFor(); fib.print(); } } fibonacciFor.main(null); . Init method = For Loop fibonaccinacci Number 20 = 4181 fibonaccinacci List = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181] fibonaccinacci Hashmap = {0=[0], 1=[0, 1], 2=[0, 1, 1], 3=[0, 1, 1, 2], 4=[0, 1, 1, 2, 3], 5=[0, 1, 1, 2, 3, 5], 6=[0, 1, 1, 2, 3, 5, 8], 7=[0, 1, 1, 2, 3, 5, 8, 13], 8=[0, 1, 1, 2, 3, 5, 8, 13, 21], 9=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34], 10=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55], 11=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89], 12=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144], 13=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233], 14=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377], 15=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610], 16=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987], 17=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597], 18=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584], 19=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]} fibonaccinacci Sequence 1 = [0] fibonaccinacci Sequence 2 = [0, 1] fibonaccinacci Sequence 3 = [0, 1, 1] fibonaccinacci Sequence 4 = [0, 1, 1, 2] fibonaccinacci Sequence 5 = [0, 1, 1, 2, 3] fibonaccinacci Sequence 6 = [0, 1, 1, 2, 3, 5] fibonaccinacci Sequence 7 = [0, 1, 1, 2, 3, 5, 8] fibonaccinacci Sequence 8 = [0, 1, 1, 2, 3, 5, 8, 13] fibonaccinacci Sequence 9 = [0, 1, 1, 2, 3, 5, 8, 13, 21] fibonaccinacci Sequence 10 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] fibonaccinacci Sequence 11 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] fibonaccinacci Sequence 12 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] fibonaccinacci Sequence 13 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144] fibonaccinacci Sequence 14 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233] fibonaccinacci Sequence 15 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] fibonaccinacci Sequence 16 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610] fibonaccinacci Sequence 17 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987] fibonaccinacci Sequence 18 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597] fibonaccinacci Sequence 19 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584] fibonaccinacci Sequence 20 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181] . public class whileloop extends fibonacci{ @Override public void init() { this.name = "While Loop"; this.setData(0); this.setData(first); this.setData(second); int loopSize = this.size - 3; int i = 0; while(i < loopSize) { int temp = second; second = second + first; first = temp; this.setData(second); i++; } } static public void main(String[] args) { whileloop fib = new whileloop(); fib.print(); } } whileloop.main(null); . Init method = While Loop fibonaccinacci Number 20 = 4181 fibonaccinacci List = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181] fibonaccinacci Hashmap = {0=[0], 1=[0, 1], 2=[0, 1, 1], 3=[0, 1, 1, 2], 4=[0, 1, 1, 2, 3], 5=[0, 1, 1, 2, 3, 5], 6=[0, 1, 1, 2, 3, 5, 8], 7=[0, 1, 1, 2, 3, 5, 8, 13], 8=[0, 1, 1, 2, 3, 5, 8, 13, 21], 9=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34], 10=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55], 11=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89], 12=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144], 13=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233], 14=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377], 15=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610], 16=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987], 17=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597], 18=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584], 19=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]} fibonaccinacci Sequence 1 = [0] fibonaccinacci Sequence 2 = [0, 1] fibonaccinacci Sequence 3 = [0, 1, 1] fibonaccinacci Sequence 4 = [0, 1, 1, 2] fibonaccinacci Sequence 5 = [0, 1, 1, 2, 3] fibonaccinacci Sequence 6 = [0, 1, 1, 2, 3, 5] fibonaccinacci Sequence 7 = [0, 1, 1, 2, 3, 5, 8] fibonaccinacci Sequence 8 = [0, 1, 1, 2, 3, 5, 8, 13] fibonaccinacci Sequence 9 = [0, 1, 1, 2, 3, 5, 8, 13, 21] fibonaccinacci Sequence 10 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] fibonaccinacci Sequence 11 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] fibonaccinacci Sequence 12 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] fibonaccinacci Sequence 13 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144] fibonaccinacci Sequence 14 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233] fibonaccinacci Sequence 15 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] fibonaccinacci Sequence 16 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610] fibonaccinacci Sequence 17 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987] fibonaccinacci Sequence 18 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597] fibonaccinacci Sequence 19 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584] fibonaccinacci Sequence 20 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181] . public class fibonacciRecur extends fibonacci{ @Override public void init() { this.name = "Recursion"; for (int i=0; i<this.size; i++){ this.setData(recursiveFib(i)); } } // Recursion method public int recursiveFib(int n) { if (n == 0) { return 0; } else if (n == 1) { return this.first; } else if (n == 2) { return this.second; } return recursiveFib(n-2) + recursiveFib(n-1); } static public void main(String[] args) { fibonacciRecur fib = new fibonacciRecur(); fib.print(); } } fibonacciRecur.main(null); . Init method = Recursion fibonaccinacci Number 20 = 4181 fibonaccinacci List = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181] fibonaccinacci Hashmap = {0=[0], 1=[0, 1], 2=[0, 1, 1], 3=[0, 1, 1, 2], 4=[0, 1, 1, 2, 3], 5=[0, 1, 1, 2, 3, 5], 6=[0, 1, 1, 2, 3, 5, 8], 7=[0, 1, 1, 2, 3, 5, 8, 13], 8=[0, 1, 1, 2, 3, 5, 8, 13, 21], 9=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34], 10=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55], 11=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89], 12=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144], 13=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233], 14=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377], 15=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610], 16=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987], 17=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597], 18=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584], 19=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]} fibonaccinacci Sequence 1 = [0] fibonaccinacci Sequence 2 = [0, 1] fibonaccinacci Sequence 3 = [0, 1, 1] fibonaccinacci Sequence 4 = [0, 1, 1, 2] fibonaccinacci Sequence 5 = [0, 1, 1, 2, 3] fibonaccinacci Sequence 6 = [0, 1, 1, 2, 3, 5] fibonaccinacci Sequence 7 = [0, 1, 1, 2, 3, 5, 8] fibonaccinacci Sequence 8 = [0, 1, 1, 2, 3, 5, 8, 13] fibonaccinacci Sequence 9 = [0, 1, 1, 2, 3, 5, 8, 13, 21] fibonaccinacci Sequence 10 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] fibonaccinacci Sequence 11 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] fibonaccinacci Sequence 12 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] fibonaccinacci Sequence 13 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144] fibonaccinacci Sequence 14 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233] fibonaccinacci Sequence 15 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] fibonaccinacci Sequence 16 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610] fibonaccinacci Sequence 17 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987] fibonaccinacci Sequence 18 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597] fibonaccinacci Sequence 19 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584] fibonaccinacci Sequence 20 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181] . Collegeboard Standards . 1.B . Implementing a while loop, for loop, and recursive function to accomplish fibonacci. . 4.C . All 3 algorithms returned the same result through the printed output being the same. . 5.A . For and while loops run in linear time since they run through the input size once and do a constant amount of operations for each loop. The recursive algorithm takes exponential time, however, since for each term of the sequence, the algorithm needs to recalculate all of the other terms as well due to the nature of recursion. .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/29/fibousingextends.html",
@@ -386,7 +397,7 @@
- ,"post35": {
+ ,"post36": {
"title": "Javascript Demo",
"content": "console.log("hello world"); . hello world . var msg = "this is a message in a variable"; console.log(msg); . this is a message in a variable . function logIt(output) { console.log(output); } logIt(msg); . this is a message in a variable . // using logIt logIt(msg) logIt("Hello Students!"); logIt(2022) . this is a message in a variable Hello Students! 2022 . function logItType(output) { console.log(output, "is a(n)", typeof output); } logItType("hello"); // String logItType(2020); // Number logItType([1, 2, 3]); // Object is generic for this Array, which similar to Python List . hello is a(n) string 2020 'is a(n)' 'number' [ 1, 2, 3 ] 'is a(n)' 'object' . var testhtml = "Hello World"; $$.html(testhtml); // prints as html . Hello World",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/25/jsdemo.html",
@@ -397,7 +408,7 @@
- ,"post36": {
+ ,"post37": {
"title": "previous fibonacci Using Loops",
"content": "public class Fibonacci { int firstFib = 1; int secondFib = 1; public void forFib(int numOfFib) { if (numOfFib == 1) { System.out.println("Using For Loop: 0"); } else if (numOfFib == 2) { System.out.println("Using For Loop: 0 " + firstFib); //} //else if (numOfFib == 2) { // System.out.println("Using For Loop: 0 " + firstFib + " " + secondFib); } else if (numOfFib > 2) { int prevFib = firstFib; int currentFib = secondFib; int nextFib; System.out.print("Using For Loop: 0 " + firstFib + " " + secondFib); for (int counter = 0; counter < numOfFib-3; counter++ ) { nextFib = prevFib + currentFib; // prevFib, currentFib, nextFib prevFib = currentFib; currentFib = nextFib; System.out.print(" " + nextFib); } } } public void whileFib(int numOfFib) { if (numOfFib == 1) { System.out.println("Using While Loop: 0"); } else if (numOfFib == 2) { System.out.println("Using While Loop: 0 " + firstFib); //} else if (numOfFib == 2) { // System.out.println("Using While Loop: 0 " + firstFib + " " + secondFib); } else if (numOfFib > 2) { int prevFib = firstFib; int currentFib = secondFib; int nextFib; System.out.print("Using While Loop: 0 " + firstFib + " " + secondFib); int counter = 0; while (counter < numOfFib-3) { nextFib = prevFib + currentFib; // prevFib, currentFib, nextFib prevFib = currentFib; currentFib = nextFib; System.out.print(" " + nextFib); counter++; } } } public int recursiveFib(int n) { if (n == 0) { return 0; } else if (n == 1) { return firstFib; } else if (n == 2) { return secondFib; } return recursiveFib(n-2) + recursiveFib(n-1); } public void printRecFib(int numOfFib){ System.out.print("Using Recursion: "); for(int i = 0; i < numOfFib; i++){ System.out.print(recursiveFib(i) +" "); } } public static void main(String[] args) { Scanner scanFib = new Scanner(System.in); int numOfFib = scanFib.nextInt(); Fibonacci fibseries = new Fibonacci(); fibseries.forFib(numOfFib); // For Loop System.out.println(); fibseries.whileFib(numOfFib); // While Loop System.out.println(); fibseries.printRecFib(numOfFib); // Recursive Loop } } Fibonacci.main(null); . Using For Loop: 0 1 1 2 3 5 8 13 21 34 Using While Loop: 0 1 1 2 3 5 8 13 21 34 Using Recursion: 0 1 1 2 3 5 8 13 21 34 .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/25/fibonaccy.html",
@@ -408,7 +419,7 @@
- ,"post37": {
+ ,"post38": {
"title": "Fibonacci Using Loops",
"content": "public class Fibonacci { int firstFib = 1; int secondFib = 1; public void forFib(int numOfFib) { if (numOfFib == 1) { System.out.println("Using For Loop: 0"); } else if (numOfFib == 2) { System.out.println("Using For Loop: 0 " + firstFib); //} //else if (numOfFib == 2) { // System.out.println("Using For Loop: 0 " + firstFib + " " + secondFib); } else if (numOfFib > 2) { int prevFib = firstFib; int currentFib = secondFib; int nextFib; System.out.print("Using For Loop: 0 " + firstFib + " " + secondFib); for (int counter = 0; counter < numOfFib-3; counter++ ) { nextFib = prevFib + currentFib; // prevFib, currentFib, nextFib prevFib = currentFib; currentFib = nextFib; System.out.print(" " + nextFib); } } } public void whileFib(int numOfFib) { if (numOfFib == 1) { System.out.println("Using While Loop: 0"); } else if (numOfFib == 2) { System.out.println("Using While Loop: 0 " + firstFib); //} else if (numOfFib == 2) { // System.out.println("Using While Loop: 0 " + firstFib + " " + secondFib); } else if (numOfFib > 2) { int prevFib = firstFib; int currentFib = secondFib; int nextFib; System.out.print("Using While Loop: 0 " + firstFib + " " + secondFib); int counter = 0; while (counter < numOfFib-3) { nextFib = prevFib + currentFib; // prevFib, currentFib, nextFib prevFib = currentFib; currentFib = nextFib; System.out.print(" " + nextFib); counter++; } } } public int recursiveFib(int n) { if (n == 0) { return 0; } else if (n == 1) { return firstFib; } else if (n == 2) { return secondFib; } return recursiveFib(n-2) + recursiveFib(n-1); } public void printRecFib(int numOfFib){ System.out.print("Using Recursion: "); for(int i = 0; i < numOfFib; i++){ System.out.print(recursiveFib(i) +" "); } } public static void main(String[] args) { Scanner scanFib = new Scanner(System.in); int numOfFib = scanFib.nextInt(); Fibonacci fibseries = new Fibonacci(); fibseries.forFib(numOfFib); // For Loop System.out.println(); fibseries.whileFib(numOfFib); // While Loop System.out.println(); fibseries.printRecFib(numOfFib); // Recursive Loop } } Fibonacci.main(null); . Using For Loop: 0 1 1 2 3 5 8 13 21 34 Using While Loop: 0 1 1 2 3 5 8 13 21 34 Using Recursion: 0 1 1 2 3 5 8 13 21 34 .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/25/fibo.html",
@@ -419,7 +430,7 @@
- ,"post38": {
+ ,"post39": {
"title": "2019 FRQ",
"content": ". . public static int numberOfLeapYears(int year1, int year2) { int yearcounter = 0; for (int y = year1; y <= year2; y++) { if (isLeapYear(y)) { yearcounter++; } } return yearcounter; } . . . public static int dayOfWeek(int month, int day, int year) { int firstDay = firstDayOfYear(year); int someDay = dayOfYear(month, day, year); int result = (firstDay + someDay - 1) % 7; return result } . public class APCalendar{ /** Returns true if year is a leap year and false otherwise. */ private static boolean isLeapYear(int year) { /* implementation not shown */ } /** Returns the number of leap years between year1 and year2, inclusive. * Precondition: 0 <= year1 <= year2 */ public static int numberOfLeapYears(int year1, int year2) { int yearcounter = 0; for (int y = year1; y <= year2; y++) { if (isLeapYear(y)) { yearcounter++; } } return yearcounter; } /** Returns the value representing the day of the week for the first day of year, * where 0 denotes Sunday, 1 denotes Monday, ..., and 6 denotes Saturday. */ private static int firstDayOfYear(int year) { /* implementation not shown */ } /** Returns n, where month, day, and year specify the nth day of the year. * Returns 1 for January 1 (month = 1, day = 1) of any year. * Precondition: The date represented by month, day, year is a valid date. */ private static int dayOfYear(int month, int day, int year) { /* implementation not shown */ } /** Returns the value representing the day of the week for the given date * (month, day, year), where 0 denotes Sunday, 1 denotes Monday, ..., * and 6 denotes Saturday. * Precondition: The date represented by month, day, year is a valid date. */ public static int dayOfWeek(int month, int day, int year) { int firstDay = firstDayOfYear(year); int someDay = dayOfYear(month, day, year); int result = (firstDay + someDay - 1) % 7; return result } // There may be instance variables, constructors, and other methods not shown. } .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/19/frq1-2019.html",
@@ -430,7 +441,7 @@
- ,"post39": {
+ ,"post40": {
"title": "Iteration 2D Array with Kirby!",
"content": "class MonkeyLoop { //The area between class definition and the 1st method is where we keep data for object in Java String [][] monkeys; //2D Array: AP CSA Unit 8: 2D array of strings //2D array is like a grid [x][y] // or like a spreadsheet [row][column] public MonkeyLoop() { //Storing Data in 2D arrays monkeys = new String[][]{ //2D array above is just a name, "new" makes a container ("object") //Monkey 0 { " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⣠⡶⠒⠒⠶⣄⣠⡴⠚⠉⠁⠀⠀⠀⠀⠀⠉⠙⠳⢦⡀⠀⠀⠀⠀⠀⠀", " ⢠⡏⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢧⡀⠀⠀⠀⠀", " ⢸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠋⢱⠀⠀⢠⠉⢡⠀⠀⠀⠀⠀⠻⡄⠀⠀⠀", " ⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⣾⠄⠀⢸⣦⣾⠀⠀⠀⠀⠀⠀⢻⡄⠀⠀", " ⠀⠘⢧⡀⠀⠀⠀⠀⠀⠀⠈⣿⣿⠀⠀⠸⣿⡿⠀⠀⠀⠀⠀⠀⠈⠳⣄⠀", " ⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠈⠁⡴⠶⡆⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠹⡄", " ⠀⠀⠀⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠒⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷", " ⠀⠀⠀⠸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠇", " ⠀⠀⠀⣀⡿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡽⣿⡛⠁⠀", " ⠀⣠⢾⣭⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⢠⣝⣷⡀", " ⢠⡏⠘⠋⠀⠀⠀⠈⠑⠦⣄⣀⠀⠀⠀⠀⠀⣀⡠⠔⠋⠀⠀⠀⠈⠛⠃⢻", " ⠈⠷⣤⣀⣀⣀⣀⣀⣀⣀⣀⣤⡽⠟⠛⠿⣭⣄⣀⣀⣀⣀⣀⣀⣀⣀⣤⠞", " ⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠀⠀⠀" }, //Monkey 1 { " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠶⠦⡄⠀⠀⠀⠀⠀⠀⡴⠀⠀⠀", " ⠀⢀⣀⠀⠀⠀⣀⠤⠖⠒⠋⡉⠙⢲⣺⢅⡀⠀⠹⡀⠀⠀⠀⢀⡜⠁⠀⠀⠀", " ⣼⠉⠀⠉⠓⠏⠁⠀⠀⠀⠀⢯⣧⠈⢿⡆⠈⠓⢴⠇⠀⠀⣠⠊⠀⠀⠀⡀⠀", " ⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠀⡀⠄⠠⢀⠈⢣⡀⠀⠁⠀⢀⡤⠊⠀⠀", " ⠈⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⠎⠀⠀⠀⠘⡇⠀⢧⠀⠐⠊⠁⠀⠀⠀⠀", " ⠀⢸⠳⣄⠀⠀⠀⠀⠀⠀⠀⠈⢺⠀⠀⠀⠀⠀⡇⠀⢸⠀⠀⠀⠀⢀⣀⣀⡀", " ⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠠⠄⢀⡀⢇⠀⢸⡀⠀⡀⠀⠀⠀⠀⠀", " ⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢃⠀⠀⠀⠈⠙⠆⡼⠛⢦⡀⠑⠢⣄⠀⠀", " ⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⠢⣀⠀⢀⡴⡰⠁⠀⢀⡇⠀⠀⠈⠑⠀", " ⠀⠀⠀⢸⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠗⠒⠚⠉⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⡜⠀⠉⠢⢄⣀⠀⠀⠀⠀⠀⣀⡤⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⡇⠀⠀⠀⠀⣨⠟⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠙⠂⠴⠒⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀" }, //Monkey 2 { " ⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⠉⠉⠛⠶⣄⡤⠞⠻⠫⠙⠳⢤⡀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⢠⠟⠁⠀⠀⠀⠀⠀⠀⠈⠀⢰⡆⠀⠀⠐⡄⠻⡄⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠦⠤⣤⣇⢀⢷⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡀⢈⡼⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠘⣆⢰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⣼⠃⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠙⣎⢳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠃⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⣝⠳⣄⡀⠀⠀⠀⠀⠀⢀⡴⠟⠁⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢮⣉⣒⣖⣠⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⣀⣴⠶⠶⢦⣀⠀⠀⠀⠀⠀⠉⠁⠀⠀⠀⠀⢀⣠⣤⣤⣀⠀⠀⠀", " ⠀⢀⡾⠋⠀⠀⠀⠀⠉⠧⠶⠒⠛⠛⠛⠛⠓⠲⢤⣴⡟⠅⠀⠀⠈⠙⣦⠀", " ⠀⣾⠁⠀⠀⠀⠀⠀⠀⠀⣠⡄⠀⠀⠀⣀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠸⣇", " ⠀⣿⡀⠀⠀⠀⠀⠀⢀⡟⢁⣿⠀⢠⠎⢙⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽", " ⠀⠈⢻⡇⠀⠀⠀⠀⣾⣧⣾⡃⠀⣾⣦⣾⠇⠀⠀⠀⠀⠀⠀⠀⠰⠀⣼⠇", " ⠀⢰⡟⠀⡤⠴⠦⣬⣿⣿⡏⠀⢰⣿⣿⡿⢀⡄⠤⣀⡀⠀⠀⠀⠰⢿⡁⠀", " ⠀⡞⠀⢸⣇⣄⣤⡏⠙⠛⢁⣴⡈⠻⠿⠃⢚⡀⠀⣨⣿⠀⠀⠀⠀⢸⡇⠀", " ⢰⡇⠀⠀⠈⠉⠁⠀⠀⠀⠀⠙⠁⠀⠀⠀⠈⠓⠲⠟⠋⠀⠀⠀⠀⢀⡇⠀", " ⠈⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠇⠀", " ⠀⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡄⠀", " ⠀⠀⠻⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽⠋⣷⠀", " ⠀⠀⢰⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠃⠀⣿⡇", " ⠀⠀⢸⡯⠈⠛⢶⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠾⠋⠂⠀⠀⣿⠃", " ⠀⠀⠈⣷⣄⡛⢠⣈⠉⠛⠶⢶⣶⠶⠶⢶⡶⠾⠛⠉⠀⠀⠀⠁⢠⣠⡏⠀", " ⠀⠀⠀⠈⠳⣅⡺⠟⠀⣀⡶⠟⠁⠀⠀⠘⢷⡄⠀⠛⠻⠦⡄⢀⣒⡿⠀⠀", " ⠀⠀⠀⠀⠀⠈⠉⠉⠛⠁⠀⠀⠀⠀⠒⠂⠀⠙⠶⢬⣀⣀⣤⡶⠟⠁⠀⠀" }, //Monkey 3 { " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⣤⣤⣤⣤⣤⣤⣤⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣶⣶⡿⠿⠟⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠿⢿⣿⣶⣦⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⡿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠿⢿⣷⣤⣄⣀⣀⣀⣀⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣤⣭⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⠿⠋⠀⢀⣀⣀⣀⣠⣤⣤⣤⣶⣶⣶⣶⣶⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠉⠁⠀⠀⣿⣿⣿⣿⣿⣿⣿⡏⠻⣿⣧⡀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⠟⢉⣠⣴⣾⣿⣿⣿⣿⣿⣿⣯⠉⠁⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⠀⠹⣿⡇", " ⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⡇⠀⠀⣿⡇", " ⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⣀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠘⣿⣿⣿⣿⣿⠃⠀⢰⣿⠇", " ⠀⠀⣀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⠇⢻⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠘⢿⣿⣿⣏⠀⠀⣾⣿⠀", " ⠀⢸⣿⣿⣿⣿⣿⣿⣿⠿⠟⠛⠛⠛⠋⠉⠉⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠈⣿⣿⣿⣿⣿⣿⡿⠀⠘⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠈⣿⡟⣿⣆⣾⡿⠃⠀", " ⠀⠈⣿⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠘⢿⣿⣿⣿⡿⠁⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⡀⠀⢠⣾⠟⠀⠸⣿⣿⠁⠀⠀", " ⠀⠀⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠈⢻⣿⡿⢁⣀⠀⠀⢀⣽⣿⣿⣿⣿⣿⣿⣧⣴⡿⠃⠀⠀⠀⣿⣿⠀⠀⠀", " ⠀⢰⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⣠⣾⠏⠀⠈⠛⠛⠛⠛⠋⠀⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⣹⣿⠀⠀⠀", " ⢰⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣴⡾⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀", " ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠻⠿⠿⠿⢿⣿⣫⣥⣤⣴⣴⣶⣦⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠀⠀⠀", " ⢸⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⠛⠋⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⠀⠀⠀", " ⠘⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣷⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠇⠀⠀⠀", " ⠀⠘⢿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⡤⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡿⠀⠀⠀⠀", " ⠀⠀⠀⠈⠙⠿⢿⣷⣶⡶⠶⠶⠶⠶⠟⠛⠉⠁⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⡿⠃⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⢻⣷⡄⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⡿⠁⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡟⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣄⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣷⣦⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⣠⣶⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠀⠀⢀⣠⣴⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣁⣠⣴⣶⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⣹⣿⣿⣿⡿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣦⣤⣴⣾⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⠿⠿⠿⠿⠿⠿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀" }, //Monkey 4 { " ⠀⠀⠀⢀⡴⠛⠉⠙⠲⣤⣤⠴⠖⠚⠋⠉⠉⠛⠒⠦⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀", " ⠀⠀⠀⣾⠁⠀⠀⣠⠞⠉⢀⡷⡀⠀⠀⠀⠀⠀⡀⠀⠀⠙⢷⣤⡤⠤⠤⣤⡀⠀", " ⠀⠀⠀⣧⠀⢠⠞⠁⠀⠀⡎⣇⢿⠀⠀⣶⢊⡏⠁⠀⠀⠰⠟⠁⠀⠀⠀⠀⠹⡄", " ⠀⠀⠀⢸⣤⠏⡠⢤⡀⠀⡃⢀⠇⠀⢸⠈⠉⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇", " ⠀⠀⠀⢠⡏⠀⠘⠤⠽⠀⢣⣊⣀⠀⠸⣀⠜⣀⠠⣀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇", " ⠀⠀⠀⢸⠀⠀⠀⠀⠀⡔⠉⠀⠀⠉⠢⡀⠀⠧⠠⠜⠀⠀⠀⠀⠀⠀⠀⣠⠟⠀", " ⠀⠀⠀⢸⡀⠀⠀⠀⠸⠀⠀⢀⠔⠊⠉⠙⡄⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠁⠀⠀", " ⠀⠀⠀⠘⣇⠀⠀⠀⢀⠀⡰⠃⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀", " ⠀⠀⣠⠞⢻⡀⠀⠀⠸⣰⠁⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⢠⣏⠀⠀⠀⠀", " ⠀⣼⠃⠀⠀⢳⡄⠀⠀⢳⠀⠀⠀⠀⠀⠀⢠⠃⠀⠀⠀⠀⠀⣠⠏⠈⠳⣄⠀⠀", " ⢰⡇⠀⠀⠀⠀⠙⢦⣀⠀⠱⢄⡀⠀⠀⣠⠋⠀⠀⠀⢀⣠⠞⠁⠀⠀⠀⠘⡆⠀", " ⠈⣧⡀⠀⠀⠀⠀⠀⢉⣳⢦⣤⣈⣉⣉⣀⣠⣤⣶⠚⠋⠀⠀⠀⠀⠀⠀⠀⢻⠀", " ⠀⠈⠙⠓⠲⠖⠚⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢦⣄⡀⠀⠀⠀⠀⣀⡾⠀", " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠛⠋⠉⠀⠀" }, }; } /** * Loop and print monkeys in array * ... repeat until you reach zero ... */ public void printPoem() { //begin the poem System.out.println(); System.out.println("Kirby in Java Loopy"); // monkeys (non-primitive) defined in constructor knows its length int monkeyCount = monkeys.length; for (int i = monkeyCount; i >= 1; i--) //loops through 2D array length backwards { //this print statement shows current count of Monkeys // concatenation (+) of the loop variable and string to form a countdown message System.out.println(i + " Kirby(s) jumping on the bed..."); //how many separate parts are there in a monkey monkey? for (int row = 0; row < monkeyCount; row++) { //cycles through "cells" of 2d array /*cycles through columns to print each monkey part by part, will eventually print entire column*/ for (int col = 0; col < monkeys[row].length; col++) { // prints specific part of the monkey from the column System.out.print(monkeys[row][col] + " "); //this is new line between separate parts System.out.println(); } //this new line gives separation between stanza of poem System.out.println(); } //countdown for poem, decrementing monkeyCount variable by 1 monkeyCount -= 1; } //out of all the loops, prints finishing messages System.out.println("No more Kirby jumping on the bed"); System.out.println("0000000000000000000000000000000000"); System.out.println(" THE END "); } /** * A Java Driver/Test method that is the entry point for execution */ public static void main(String[] args) { new MonkeyLoop().printPoem(); //a new monkey list and output in one step } } MonkeyLoop.main(null); . Kirby in Java Loopy 5 Kirby's jumping on the bed... ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣠⡶⠒⠒⠶⣄⣠⡴⠚⠉⠁⠀⠀⠀⠀⠀⠉⠙⠳⢦⡀⠀⠀⠀⠀⠀⠀ ⢠⡏⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢧⡀⠀⠀⠀⠀ ⢸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠋⢱⠀⠀⢠⠉⢡⠀⠀⠀⠀⠀⠻⡄⠀⠀⠀ ⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⣾⠄⠀⢸⣦⣾⠀⠀⠀⠀⠀⠀⢻⡄⠀⠀ ⠀⠘⢧⡀⠀⠀⠀⠀⠀⠀⠈⣿⣿⠀⠀⠸⣿⡿⠀⠀⠀⠀⠀⠀⠈⠳⣄⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠈⠁⡴⠶⡆⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠹⡄ ⠀⠀⠀⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠒⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷ ⠀⠀⠀⠸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠇ ⠀⠀⠀⣀⡿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡽⣿⡛⠁⠀ ⠀⣠⢾⣭⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⢠⣝⣷⡀ ⢠⡏⠘⠋⠀⠀⠀⠈⠑⠦⣄⣀⠀⠀⠀⠀⠀⣀⡠⠔⠋⠀⠀⠀⠈⠛⠃⢻ ⠈⠷⣤⣀⣀⣀⣀⣀⣀⣀⣀⣤⡽⠟⠛⠿⣭⣄⣀⣀⣀⣀⣀⣀⣀⣀⣤⠞ ⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠶⠦⡄⠀⠀⠀⠀⠀⠀⡴⠀⠀⠀ ⠀⢀⣀⠀⠀⠀⣀⠤⠖⠒⠋⡉⠙⢲⣺⢅⡀⠀⠹⡀⠀⠀⠀⢀⡜⠁⠀⠀⠀ ⣼⠉⠀⠉⠓⠏⠁⠀⠀⠀⠀⢯⣧⠈⢿⡆⠈⠓⢴⠇⠀⠀⣠⠊⠀⠀⠀⡀⠀ ⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠀⡀⠄⠠⢀⠈⢣⡀⠀⠁⠀⢀⡤⠊⠀⠀ ⠈⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⠎⠀⠀⠀⠘⡇⠀⢧⠀⠐⠊⠁⠀⠀⠀⠀ ⠀⢸⠳⣄⠀⠀⠀⠀⠀⠀⠀⠈⢺⠀⠀⠀⠀⠀⡇⠀⢸⠀⠀⠀⠀⢀⣀⣀⡀ ⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠠⠄⢀⡀⢇⠀⢸⡀⠀⡀⠀⠀⠀⠀⠀ ⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢃⠀⠀⠀⠈⠙⠆⡼⠛⢦⡀⠑⠢⣄⠀⠀ ⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⠢⣀⠀⢀⡴⡰⠁⠀⢀⡇⠀⠀⠈⠑⠀ ⠀⠀⠀⢸⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠗⠒⠚⠉⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡜⠀⠉⠢⢄⣀⠀⠀⠀⠀⠀⣀⡤⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⣨⠟⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠙⠂⠴⠒⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⠉⠉⠛⠶⣄⡤⠞⠻⠫⠙⠳⢤⡀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢠⠟⠁⠀⠀⠀⠀⠀⠀⠈⠀⢰⡆⠀⠀⠐⡄⠻⡄⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠦⠤⣤⣇⢀⢷⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡀⢈⡼⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠘⣆⢰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⣼⠃⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠙⣎⢳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠃⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⣝⠳⣄⡀⠀⠀⠀⠀⠀⢀⡴⠟⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢮⣉⣒⣖⣠⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⣀⣴⠶⠶⢦⣀⠀⠀⠀⠀⠀⠉⠁⠀⠀⠀⠀⢀⣠⣤⣤⣀⠀⠀⠀ ⠀⢀⡾⠋⠀⠀⠀⠀⠉⠧⠶⠒⠛⠛⠛⠛⠓⠲⢤⣴⡟⠅⠀⠀⠈⠙⣦⠀ ⠀⣾⠁⠀⠀⠀⠀⠀⠀⠀⣠⡄⠀⠀⠀⣀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠸⣇ ⠀⣿⡀⠀⠀⠀⠀⠀⢀⡟⢁⣿⠀⢠⠎⢙⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽ ⠀⠈⢻⡇⠀⠀⠀⠀⣾⣧⣾⡃⠀⣾⣦⣾⠇⠀⠀⠀⠀⠀⠀⠀⠰⠀⣼⠇ ⠀⢰⡟⠀⡤⠴⠦⣬⣿⣿⡏⠀⢰⣿⣿⡿⢀⡄⠤⣀⡀⠀⠀⠀⠰⢿⡁⠀ ⠀⡞⠀⢸⣇⣄⣤⡏⠙⠛⢁⣴⡈⠻⠿⠃⢚⡀⠀⣨⣿⠀⠀⠀⠀⢸⡇⠀ ⢰⡇⠀⠀⠈⠉⠁⠀⠀⠀⠀⠙⠁⠀⠀⠀⠈⠓⠲⠟⠋⠀⠀⠀⠀⢀⡇⠀ ⠈⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠇⠀ ⠀⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡄⠀ ⠀⠀⠻⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽⠋⣷⠀ ⠀⠀⢰⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠃⠀⣿⡇ ⠀⠀⢸⡯⠈⠛⢶⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠾⠋⠂⠀⠀⣿⠃ ⠀⠀⠈⣷⣄⡛⢠⣈⠉⠛⠶⢶⣶⠶⠶⢶⡶⠾⠛⠉⠀⠀⠀⠁⢠⣠⡏⠀ ⠀⠀⠀⠈⠳⣅⡺⠟⠀⣀⡶⠟⠁⠀⠀⠘⢷⡄⠀⠛⠻⠦⡄⢀⣒⡿⠀⠀ ⠀⠀⠀⠀⠀⠈⠉⠉⠛⠁⠀⠀⠀⠀⠒⠂⠀⠙⠶⢬⣀⣀⣤⡶⠟⠁⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⣤⣤⣤⣤⣤⣤⣤⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣶⣶⡿⠿⠟⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠿⢿⣿⣶⣦⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⡿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠿⢿⣷⣤⣄⣀⣀⣀⣀⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣤⣭⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⠿⠋⠀⢀⣀⣀⣀⣠⣤⣤⣤⣶⣶⣶⣶⣶⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠉⠁⠀⠀⣿⣿⣿⣿⣿⣿⣿⡏⠻⣿⣧⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⠟⢉⣠⣴⣾⣿⣿⣿⣿⣿⣿⣯⠉⠁⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⠀⠹⣿⡇ ⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⡇⠀⠀⣿⡇ ⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⣀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠘⣿⣿⣿⣿⣿⠃⠀⢰⣿⠇ ⠀⠀⣀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⠇⢻⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠘⢿⣿⣿⣏⠀⠀⣾⣿⠀ ⠀⢸⣿⣿⣿⣿⣿⣿⣿⠿⠟⠛⠛⠛⠋⠉⠉⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠈⣿⣿⣿⣿⣿⣿⡿⠀⠘⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠈⣿⡟⣿⣆⣾⡿⠃⠀ ⠀⠈⣿⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠘⢿⣿⣿⣿⡿⠁⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⡀⠀⢠⣾⠟⠀⠸⣿⣿⠁⠀⠀ ⠀⠀⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠈⢻⣿⡿⢁⣀⠀⠀⢀⣽⣿⣿⣿⣿⣿⣿⣧⣴⡿⠃⠀⠀⠀⣿⣿⠀⠀⠀ ⠀⢰⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⣠⣾⠏⠀⠈⠛⠛⠛⠛⠋⠀⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⣹⣿⠀⠀⠀ ⢰⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣴⡾⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠻⠿⠿⠿⢿⣿⣫⣥⣤⣴⣴⣶⣦⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠀⠀⠀ ⢸⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⠛⠋⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⠀⠀⠀ ⠘⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣷⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠇⠀⠀⠀ ⠀⠘⢿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⡤⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡿⠀⠀⠀⠀ ⠀⠀⠀⠈⠙⠿⢿⣷⣶⡶⠶⠶⠶⠶⠟⠛⠉⠁⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⡿⠃⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⢻⣷⡄⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⡿⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡟⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣄⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣷⣦⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⣠⣶⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠀⠀⢀⣠⣴⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣁⣠⣴⣶⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⣹⣿⣿⣿⡿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣦⣤⣴⣾⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⠿⠿⠿⠿⠿⠿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⢀⡴⠛⠉⠙⠲⣤⣤⠴⠖⠚⠋⠉⠉⠛⠒⠦⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⣾⠁⠀⠀⣠⠞⠉⢀⡷⡀⠀⠀⠀⠀⠀⡀⠀⠀⠙⢷⣤⡤⠤⠤⣤⡀⠀ ⠀⠀⠀⣧⠀⢠⠞⠁⠀⠀⡎⣇⢿⠀⠀⣶⢊⡏⠁⠀⠀⠰⠟⠁⠀⠀⠀⠀⠹⡄ ⠀⠀⠀⢸⣤⠏⡠⢤⡀⠀⡃⢀⠇⠀⢸⠈⠉⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⢠⡏⠀⠘⠤⠽⠀⢣⣊⣀⠀⠸⣀⠜⣀⠠⣀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇ ⠀⠀⠀⢸⠀⠀⠀⠀⠀⡔⠉⠀⠀⠉⠢⡀⠀⠧⠠⠜⠀⠀⠀⠀⠀⠀⠀⣠⠟⠀ ⠀⠀⠀⢸⡀⠀⠀⠀⠸⠀⠀⢀⠔⠊⠉⠙⡄⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠁⠀⠀ ⠀⠀⠀⠘⣇⠀⠀⠀⢀⠀⡰⠃⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀ ⠀⠀⣠⠞⢻⡀⠀⠀⠸⣰⠁⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⢠⣏⠀⠀⠀⠀ ⠀⣼⠃⠀⠀⢳⡄⠀⠀⢳⠀⠀⠀⠀⠀⠀⢠⠃⠀⠀⠀⠀⠀⣠⠏⠈⠳⣄⠀⠀ ⢰⡇⠀⠀⠀⠀⠙⢦⣀⠀⠱⢄⡀⠀⠀⣠⠋⠀⠀⠀⢀⣠⠞⠁⠀⠀⠀⠘⡆⠀ ⠈⣧⡀⠀⠀⠀⠀⠀⢉⣳⢦⣤⣈⣉⣉⣀⣠⣤⣶⠚⠋⠀⠀⠀⠀⠀⠀⠀⢻⠀ ⠀⠈⠙⠓⠲⠖⠚⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢦⣄⡀⠀⠀⠀⠀⣀⡾⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠛⠋⠉⠀⠀ 4 Kirby's jumping on the bed... ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣠⡶⠒⠒⠶⣄⣠⡴⠚⠉⠁⠀⠀⠀⠀⠀⠉⠙⠳⢦⡀⠀⠀⠀⠀⠀⠀ ⢠⡏⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢧⡀⠀⠀⠀⠀ ⢸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠋⢱⠀⠀⢠⠉⢡⠀⠀⠀⠀⠀⠻⡄⠀⠀⠀ ⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⣾⠄⠀⢸⣦⣾⠀⠀⠀⠀⠀⠀⢻⡄⠀⠀ ⠀⠘⢧⡀⠀⠀⠀⠀⠀⠀⠈⣿⣿⠀⠀⠸⣿⡿⠀⠀⠀⠀⠀⠀⠈⠳⣄⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠈⠁⡴⠶⡆⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠹⡄ ⠀⠀⠀⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠒⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷ ⠀⠀⠀⠸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠇ ⠀⠀⠀⣀⡿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡽⣿⡛⠁⠀ ⠀⣠⢾⣭⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⢠⣝⣷⡀ ⢠⡏⠘⠋⠀⠀⠀⠈⠑⠦⣄⣀⠀⠀⠀⠀⠀⣀⡠⠔⠋⠀⠀⠀⠈⠛⠃⢻ ⠈⠷⣤⣀⣀⣀⣀⣀⣀⣀⣀⣤⡽⠟⠛⠿⣭⣄⣀⣀⣀⣀⣀⣀⣀⣀⣤⠞ ⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠶⠦⡄⠀⠀⠀⠀⠀⠀⡴⠀⠀⠀ ⠀⢀⣀⠀⠀⠀⣀⠤⠖⠒⠋⡉⠙⢲⣺⢅⡀⠀⠹⡀⠀⠀⠀⢀⡜⠁⠀⠀⠀ ⣼⠉⠀⠉⠓⠏⠁⠀⠀⠀⠀⢯⣧⠈⢿⡆⠈⠓⢴⠇⠀⠀⣠⠊⠀⠀⠀⡀⠀ ⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠀⡀⠄⠠⢀⠈⢣⡀⠀⠁⠀⢀⡤⠊⠀⠀ ⠈⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⠎⠀⠀⠀⠘⡇⠀⢧⠀⠐⠊⠁⠀⠀⠀⠀ ⠀⢸⠳⣄⠀⠀⠀⠀⠀⠀⠀⠈⢺⠀⠀⠀⠀⠀⡇⠀⢸⠀⠀⠀⠀⢀⣀⣀⡀ ⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠠⠄⢀⡀⢇⠀⢸⡀⠀⡀⠀⠀⠀⠀⠀ ⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢃⠀⠀⠀⠈⠙⠆⡼⠛⢦⡀⠑⠢⣄⠀⠀ ⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⠢⣀⠀⢀⡴⡰⠁⠀⢀⡇⠀⠀⠈⠑⠀ ⠀⠀⠀⢸⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠗⠒⠚⠉⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡜⠀⠉⠢⢄⣀⠀⠀⠀⠀⠀⣀⡤⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⣨⠟⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠙⠂⠴⠒⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⠉⠉⠛⠶⣄⡤⠞⠻⠫⠙⠳⢤⡀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢠⠟⠁⠀⠀⠀⠀⠀⠀⠈⠀⢰⡆⠀⠀⠐⡄⠻⡄⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠦⠤⣤⣇⢀⢷⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡀⢈⡼⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠘⣆⢰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⣼⠃⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠙⣎⢳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠃⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⣝⠳⣄⡀⠀⠀⠀⠀⠀⢀⡴⠟⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢮⣉⣒⣖⣠⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⣀⣴⠶⠶⢦⣀⠀⠀⠀⠀⠀⠉⠁⠀⠀⠀⠀⢀⣠⣤⣤⣀⠀⠀⠀ ⠀⢀⡾⠋⠀⠀⠀⠀⠉⠧⠶⠒⠛⠛⠛⠛⠓⠲⢤⣴⡟⠅⠀⠀⠈⠙⣦⠀ ⠀⣾⠁⠀⠀⠀⠀⠀⠀⠀⣠⡄⠀⠀⠀⣀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠸⣇ ⠀⣿⡀⠀⠀⠀⠀⠀⢀⡟⢁⣿⠀⢠⠎⢙⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽ ⠀⠈⢻⡇⠀⠀⠀⠀⣾⣧⣾⡃⠀⣾⣦⣾⠇⠀⠀⠀⠀⠀⠀⠀⠰⠀⣼⠇ ⠀⢰⡟⠀⡤⠴⠦⣬⣿⣿⡏⠀⢰⣿⣿⡿⢀⡄⠤⣀⡀⠀⠀⠀⠰⢿⡁⠀ ⠀⡞⠀⢸⣇⣄⣤⡏⠙⠛⢁⣴⡈⠻⠿⠃⢚⡀⠀⣨⣿⠀⠀⠀⠀⢸⡇⠀ ⢰⡇⠀⠀⠈⠉⠁⠀⠀⠀⠀⠙⠁⠀⠀⠀⠈⠓⠲⠟⠋⠀⠀⠀⠀⢀⡇⠀ ⠈⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠇⠀ ⠀⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡄⠀ ⠀⠀⠻⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽⠋⣷⠀ ⠀⠀⢰⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠃⠀⣿⡇ ⠀⠀⢸⡯⠈⠛⢶⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠾⠋⠂⠀⠀⣿⠃ ⠀⠀⠈⣷⣄⡛⢠⣈⠉⠛⠶⢶⣶⠶⠶⢶⡶⠾⠛⠉⠀⠀⠀⠁⢠⣠⡏⠀ ⠀⠀⠀⠈⠳⣅⡺⠟⠀⣀⡶⠟⠁⠀⠀⠘⢷⡄⠀⠛⠻⠦⡄⢀⣒⡿⠀⠀ ⠀⠀⠀⠀⠀⠈⠉⠉⠛⠁⠀⠀⠀⠀⠒⠂⠀⠙⠶⢬⣀⣀⣤⡶⠟⠁⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⣤⣤⣤⣤⣤⣤⣤⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣶⣶⡿⠿⠟⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠿⢿⣿⣶⣦⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⡿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠿⢿⣷⣤⣄⣀⣀⣀⣀⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣤⣭⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⠿⠋⠀⢀⣀⣀⣀⣠⣤⣤⣤⣶⣶⣶⣶⣶⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠉⠁⠀⠀⣿⣿⣿⣿⣿⣿⣿⡏⠻⣿⣧⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⠟⢉⣠⣴⣾⣿⣿⣿⣿⣿⣿⣯⠉⠁⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⠀⠹⣿⡇ ⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⡇⠀⠀⣿⡇ ⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⣀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠘⣿⣿⣿⣿⣿⠃⠀⢰⣿⠇ ⠀⠀⣀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⠇⢻⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠘⢿⣿⣿⣏⠀⠀⣾⣿⠀ ⠀⢸⣿⣿⣿⣿⣿⣿⣿⠿⠟⠛⠛⠛⠋⠉⠉⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠈⣿⣿⣿⣿⣿⣿⡿⠀⠘⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠈⣿⡟⣿⣆⣾⡿⠃⠀ ⠀⠈⣿⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠘⢿⣿⣿⣿⡿⠁⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⡀⠀⢠⣾⠟⠀⠸⣿⣿⠁⠀⠀ ⠀⠀⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠈⢻⣿⡿⢁⣀⠀⠀⢀⣽⣿⣿⣿⣿⣿⣿⣧⣴⡿⠃⠀⠀⠀⣿⣿⠀⠀⠀ ⠀⢰⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⣠⣾⠏⠀⠈⠛⠛⠛⠛⠋⠀⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⣹⣿⠀⠀⠀ ⢰⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣴⡾⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠻⠿⠿⠿⢿⣿⣫⣥⣤⣴⣴⣶⣦⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠀⠀⠀ ⢸⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⠛⠋⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⠀⠀⠀ ⠘⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣷⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠇⠀⠀⠀ ⠀⠘⢿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⡤⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡿⠀⠀⠀⠀ ⠀⠀⠀⠈⠙⠿⢿⣷⣶⡶⠶⠶⠶⠶⠟⠛⠉⠁⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⡿⠃⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⢻⣷⡄⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⡿⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡟⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣄⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣷⣦⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⣠⣶⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠀⠀⢀⣠⣴⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣁⣠⣴⣶⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⣹⣿⣿⣿⡿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣦⣤⣴⣾⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⠿⠿⠿⠿⠿⠿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 3 Kirby's jumping on the bed... ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣠⡶⠒⠒⠶⣄⣠⡴⠚⠉⠁⠀⠀⠀⠀⠀⠉⠙⠳⢦⡀⠀⠀⠀⠀⠀⠀ ⢠⡏⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢧⡀⠀⠀⠀⠀ ⢸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠋⢱⠀⠀⢠⠉⢡⠀⠀⠀⠀⠀⠻⡄⠀⠀⠀ ⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⣾⠄⠀⢸⣦⣾⠀⠀⠀⠀⠀⠀⢻⡄⠀⠀ ⠀⠘⢧⡀⠀⠀⠀⠀⠀⠀⠈⣿⣿⠀⠀⠸⣿⡿⠀⠀⠀⠀⠀⠀⠈⠳⣄⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠈⠁⡴⠶⡆⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠹⡄ ⠀⠀⠀⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠒⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷ ⠀⠀⠀⠸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠇ ⠀⠀⠀⣀⡿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡽⣿⡛⠁⠀ ⠀⣠⢾⣭⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⢠⣝⣷⡀ ⢠⡏⠘⠋⠀⠀⠀⠈⠑⠦⣄⣀⠀⠀⠀⠀⠀⣀⡠⠔⠋⠀⠀⠀⠈⠛⠃⢻ ⠈⠷⣤⣀⣀⣀⣀⣀⣀⣀⣀⣤⡽⠟⠛⠿⣭⣄⣀⣀⣀⣀⣀⣀⣀⣀⣤⠞ ⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠶⠦⡄⠀⠀⠀⠀⠀⠀⡴⠀⠀⠀ ⠀⢀⣀⠀⠀⠀⣀⠤⠖⠒⠋⡉⠙⢲⣺⢅⡀⠀⠹⡀⠀⠀⠀⢀⡜⠁⠀⠀⠀ ⣼⠉⠀⠉⠓⠏⠁⠀⠀⠀⠀⢯⣧⠈⢿⡆⠈⠓⢴⠇⠀⠀⣠⠊⠀⠀⠀⡀⠀ ⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠀⡀⠄⠠⢀⠈⢣⡀⠀⠁⠀⢀⡤⠊⠀⠀ ⠈⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⠎⠀⠀⠀⠘⡇⠀⢧⠀⠐⠊⠁⠀⠀⠀⠀ ⠀⢸⠳⣄⠀⠀⠀⠀⠀⠀⠀⠈⢺⠀⠀⠀⠀⠀⡇⠀⢸⠀⠀⠀⠀⢀⣀⣀⡀ ⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠠⠄⢀⡀⢇⠀⢸⡀⠀⡀⠀⠀⠀⠀⠀ ⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢃⠀⠀⠀⠈⠙⠆⡼⠛⢦⡀⠑⠢⣄⠀⠀ ⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⠢⣀⠀⢀⡴⡰⠁⠀⢀⡇⠀⠀⠈⠑⠀ ⠀⠀⠀⢸⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠗⠒⠚⠉⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡜⠀⠉⠢⢄⣀⠀⠀⠀⠀⠀⣀⡤⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⣨⠟⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠙⠂⠴⠒⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⠉⠉⠛⠶⣄⡤⠞⠻⠫⠙⠳⢤⡀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢠⠟⠁⠀⠀⠀⠀⠀⠀⠈⠀⢰⡆⠀⠀⠐⡄⠻⡄⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠦⠤⣤⣇⢀⢷⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡀⢈⡼⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠘⣆⢰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⣼⠃⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠙⣎⢳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠃⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⣝⠳⣄⡀⠀⠀⠀⠀⠀⢀⡴⠟⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢮⣉⣒⣖⣠⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⣀⣴⠶⠶⢦⣀⠀⠀⠀⠀⠀⠉⠁⠀⠀⠀⠀⢀⣠⣤⣤⣀⠀⠀⠀ ⠀⢀⡾⠋⠀⠀⠀⠀⠉⠧⠶⠒⠛⠛⠛⠛⠓⠲⢤⣴⡟⠅⠀⠀⠈⠙⣦⠀ ⠀⣾⠁⠀⠀⠀⠀⠀⠀⠀⣠⡄⠀⠀⠀⣀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠸⣇ ⠀⣿⡀⠀⠀⠀⠀⠀⢀⡟⢁⣿⠀⢠⠎⢙⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽ ⠀⠈⢻⡇⠀⠀⠀⠀⣾⣧⣾⡃⠀⣾⣦⣾⠇⠀⠀⠀⠀⠀⠀⠀⠰⠀⣼⠇ ⠀⢰⡟⠀⡤⠴⠦⣬⣿⣿⡏⠀⢰⣿⣿⡿⢀⡄⠤⣀⡀⠀⠀⠀⠰⢿⡁⠀ ⠀⡞⠀⢸⣇⣄⣤⡏⠙⠛⢁⣴⡈⠻⠿⠃⢚⡀⠀⣨⣿⠀⠀⠀⠀⢸⡇⠀ ⢰⡇⠀⠀⠈⠉⠁⠀⠀⠀⠀⠙⠁⠀⠀⠀⠈⠓⠲⠟⠋⠀⠀⠀⠀⢀⡇⠀ ⠈⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠇⠀ ⠀⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡄⠀ ⠀⠀⠻⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽⠋⣷⠀ ⠀⠀⢰⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠃⠀⣿⡇ ⠀⠀⢸⡯⠈⠛⢶⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠾⠋⠂⠀⠀⣿⠃ ⠀⠀⠈⣷⣄⡛⢠⣈⠉⠛⠶⢶⣶⠶⠶⢶⡶⠾⠛⠉⠀⠀⠀⠁⢠⣠⡏⠀ ⠀⠀⠀⠈⠳⣅⡺⠟⠀⣀⡶⠟⠁⠀⠀⠘⢷⡄⠀⠛⠻⠦⡄⢀⣒⡿⠀⠀ ⠀⠀⠀⠀⠀⠈⠉⠉⠛⠁⠀⠀⠀⠀⠒⠂⠀⠙⠶⢬⣀⣀⣤⡶⠟⠁⠀⠀ 2 Kirby's jumping on the bed... ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣠⡶⠒⠒⠶⣄⣠⡴⠚⠉⠁⠀⠀⠀⠀⠀⠉⠙⠳⢦⡀⠀⠀⠀⠀⠀⠀ ⢠⡏⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢧⡀⠀⠀⠀⠀ ⢸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠋⢱⠀⠀⢠⠉⢡⠀⠀⠀⠀⠀⠻⡄⠀⠀⠀ ⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⣾⠄⠀⢸⣦⣾⠀⠀⠀⠀⠀⠀⢻⡄⠀⠀ ⠀⠘⢧⡀⠀⠀⠀⠀⠀⠀⠈⣿⣿⠀⠀⠸⣿⡿⠀⠀⠀⠀⠀⠀⠈⠳⣄⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠈⠁⡴⠶⡆⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠹⡄ ⠀⠀⠀⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠒⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷ ⠀⠀⠀⠸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠇ ⠀⠀⠀⣀⡿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡽⣿⡛⠁⠀ ⠀⣠⢾⣭⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⢠⣝⣷⡀ ⢠⡏⠘⠋⠀⠀⠀⠈⠑⠦⣄⣀⠀⠀⠀⠀⠀⣀⡠⠔⠋⠀⠀⠀⠈⠛⠃⢻ ⠈⠷⣤⣀⣀⣀⣀⣀⣀⣀⣀⣤⡽⠟⠛⠿⣭⣄⣀⣀⣀⣀⣀⣀⣀⣀⣤⠞ ⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠶⠦⡄⠀⠀⠀⠀⠀⠀⡴⠀⠀⠀ ⠀⢀⣀⠀⠀⠀⣀⠤⠖⠒⠋⡉⠙⢲⣺⢅⡀⠀⠹⡀⠀⠀⠀⢀⡜⠁⠀⠀⠀ ⣼⠉⠀⠉⠓⠏⠁⠀⠀⠀⠀⢯⣧⠈⢿⡆⠈⠓⢴⠇⠀⠀⣠⠊⠀⠀⠀⡀⠀ ⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠀⡀⠄⠠⢀⠈⢣⡀⠀⠁⠀⢀⡤⠊⠀⠀ ⠈⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⠎⠀⠀⠀⠘⡇⠀⢧⠀⠐⠊⠁⠀⠀⠀⠀ ⠀⢸⠳⣄⠀⠀⠀⠀⠀⠀⠀⠈⢺⠀⠀⠀⠀⠀⡇⠀⢸⠀⠀⠀⠀⢀⣀⣀⡀ ⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠠⠄⢀⡀⢇⠀⢸⡀⠀⡀⠀⠀⠀⠀⠀ ⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢃⠀⠀⠀⠈⠙⠆⡼⠛⢦⡀⠑⠢⣄⠀⠀ ⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⠢⣀⠀⢀⡴⡰⠁⠀⢀⡇⠀⠀⠈⠑⠀ ⠀⠀⠀⢸⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠗⠒⠚⠉⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡜⠀⠉⠢⢄⣀⠀⠀⠀⠀⠀⣀⡤⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⣨⠟⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠙⠂⠴⠒⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 1 Kirby's jumping on the bed... ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣠⡶⠒⠒⠶⣄⣠⡴⠚⠉⠁⠀⠀⠀⠀⠀⠉⠙⠳⢦⡀⠀⠀⠀⠀⠀⠀ ⢠⡏⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢧⡀⠀⠀⠀⠀ ⢸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠋⢱⠀⠀⢠⠉⢡⠀⠀⠀⠀⠀⠻⡄⠀⠀⠀ ⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⣾⠄⠀⢸⣦⣾⠀⠀⠀⠀⠀⠀⢻⡄⠀⠀ ⠀⠘⢧⡀⠀⠀⠀⠀⠀⠀⠈⣿⣿⠀⠀⠸⣿⡿⠀⠀⠀⠀⠀⠀⠈⠳⣄⠀ ⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠈⠁⡴⠶⡆⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠹⡄ ⠀⠀⠀⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠒⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷ ⠀⠀⠀⠸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠇ ⠀⠀⠀⣀⡿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡽⣿⡛⠁⠀ ⠀⣠⢾⣭⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⢠⣝⣷⡀ ⢠⡏⠘⠋⠀⠀⠀⠈⠑⠦⣄⣀⠀⠀⠀⠀⠀⣀⡠⠔⠋⠀⠀⠀⠈⠛⠃⢻ ⠈⠷⣤⣀⣀⣀⣀⣀⣀⣀⣀⣤⡽⠟⠛⠿⣭⣄⣀⣀⣀⣀⣀⣀⣀⣀⣤⠞ ⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠀⠀⠀ No more Kirby jumping on the bed 0000000000000000000000000000000000 THE END . class MonkeyLoop { //The area between class definition and the 1st method is where we keep data for object in Java String [][] monkeys; //2D Array: AP CSA Unit 8: 2D array of strings //2D array is like a grid [x][y] // or like a spreadsheet [row][column] /** * Constructor initializes a 2D array of Monkeys */ public MonkeyLoop() { //Storing Data in 2D arrays monkeys = new String[][]{ //2D array above is just a name, "new" makes a container ("object") //Monkey 0 { "(つ -‘ _ ‘- )つ" }, //Monkey 1 { "(つ -‘ _ ‘- )つ" }, //Monkey 2 { "(つ -‘ _ ‘- )つ" }, //Monkey 3 { "(つ -‘ _ ‘- )つ" }, //Monkey 4 { "(つ -‘ _ ‘- )つ" }, }; } /** * Loop and print monkeys in array * ... repeat until you reach zero ... */ public void printPoem() { //begin the poem System.out.println(); System.out.println("Kirby in Java Loopy"); // monkeys (non-primitive) defined in constructor knows its length int monkeyCount = monkeys.length; for (int i = monkeyCount; i >= 1; i--) //loops through 2D array length backwards { //this print statement shows current count of Monkeys // concatenation (+) of the loop variable and string to form a countdown message System.out.println(i + " Kirby(s) jumping on the bed..."); //how many separate parts are there in a monkey monkey? for (int row = 0; row < monkeys[row].length; row++) { //cycles through "cells" of 2d array /*cycles through columns to print each monkey part by part, will eventually print entire column*/ for (int col = 0; col < monkeyCount; col++) { // prints specific part of the monkey from the column System.out.print(monkeys[col][row] + " "); } //this new line gives separation between stanza of poem System.out.println(); } //countdown for poem, decrementing monkeyCount variable by 1 monkeyCount -= 1; } //out of all the loops, prints finishing messages System.out.println("No more monkeys jumping on the bed"); System.out.println("0000000000000000000000000000000000"); System.out.println(" THE END "); } /** * A Java Driver/Test method that is the entry point for execution */ public static void main(String[] args) { new MonkeyLoop().printPoem(); //a new monkey list and output in one step } } MonkeyLoop.main(null); . Kirby in Java Loopy 5 Kirby(s) jumping on the bed... (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ 4 Kirby(s) jumping on the bed... (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ 3 Kirby(s) jumping on the bed... (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ 2 Kirby(s) jumping on the bed... (つ -‘ _ ‘- )つ (つ -‘ _ ‘- )つ 1 Kirby(s) jumping on the bed... (つ -‘ _ ‘- )つ No more monkeys jumping on the bed 0000000000000000000000000000000000 THE END .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/16/2darray.html",
@@ -441,7 +452,7 @@
- ,"post40": {
+ ,"post41": {
"title": "Boolean Expressions and If Statements",
"content": "The following code blocks demonstrate if, if-else, and if-elseif-else. The print statments explain why each expression is shown or why it is not printed. It is known that when overall boolean is true, the statment is printed. Similarly, if the boolean is false, the statment is not printed. . // Boolean Expressions // if boolean value = true; if(value == true){ System.out.println("the statment is printed if the value is set to true"); } if(value){ System.out.println("the statment is printed since the value is already set to true"); } . the statment is printed if the value is set to true the statment is printed since the value is already set to true . // Boolean Expressions continued // if-else boolean value = false; if(value == true){ System.out.println("the statment is printed if the value is set to true"); } else { System.out.println("else this statment is printed since the value is not true"); } if(value != false) { System.out.println("if the value is not equal to false, then this statment will print"); } else { System.out.println("else this statment is printed since the value is equal to false"); } . else this statment is printed since the value is not true else this statment is printed since the value is equal to false . // if-else if-else boolean value1 = true; boolean value2 = true; if(value1 && !value2){ System.out.println("false!"); // statment is not printed because the overall expression is false } else if(!value1 && value2){ System.out.println("false!"); // statment is not printed because the overall expression is false } else if(!value1 && !value2){ System.out.println("false!"); // statment is not printed because the overall expression is false } else if(!value1 || !value2){ System.out.println("false!"); // statment is not printed because the overall expression is false } else{ System.out.println("all the expressions are false! this is our last resort"); // statment is not printed because the overall expression is false } . all the expressions are false! this is our last resort . if (true) { System.out.println("the statment is printed becuase the condition set to true"); } if (true && !false) { System.out.println("the statment is printed becuase the condition is true and not false which makes it true"); } if (true || false) { System.out.println("the statment is printed becuase the condition is true or false, which results in true"); } if ((true && !false) && (true || false)) { System.out.println("the statment is printed becuase the condition is: (true and not false) and (true or false) which results in true"); } if (!((false || !true) || (false && true))) { System.out.println("the statment is printed becuase the condition is: (not (false or false) or (false and true)) which results in true"); } // De Morgan's laws boolean a = true; boolean b = false; if (!((b || a) && (!b && !a))) // NOT(A || B) is Equivalent to (NOT(A) AND NOT(B)) { System.out.println("demorgan first law"); } if (!((a && b) && (!a || !b))) // NOT(A && B) is Equivalent to (NOT(A) OR NOT(B)) { System.out.println("demorgan second law"); } . the statment is printed becuase the condition set to true the statment is printed becuase the condition is true and not false which makes it true the statment is printed becuase the condition is true or false, which results in true the statment is printed becuase the condition is: (true and not false) and (true or false) which results in true the statment is printed becuase the condition is: (not (false or false) or (false and true)) which results in true demorgan first law demorgan second law . . . if else . if else statement is a conditional statement . the if line is executed if the specified statment is determined to be true. . if the condition is false, the if statment is not executed and the next statment is moved on to. else if statment is executed when the first if statment is not executed. else if is a another condition . else is the final and false statment . switch gives the option to select a block of code . import java.util.Scanner; . public class ifelse { int number; int remainder() { int rem = (number%2); System.out.println("Remainder: " + rem); if( rem == 0) { System.out.println("Even"); // if rem is equal to 0, then "even" will be printed } else { System.out.println("Odd"); // if rem is not equal to 0, then "odd" will be printed } return rem; } public ifelse(int n) { System.out.println("Number entered: " + n); number = n; } } . explanation . the input is an integer. the given integer is divided by 2 to determine if the remainder is 0 or 1. the remainder is tested to see if it is equal to 0. if the remainder is equal to 0, then the number is determined to be even. else the number is odd, because the remainder is not 0 and there is only one other possibility therefore another else if is not required. . public class gradeifelse { private double grade; public double finalgrade() { if ( grade >= 90) { System.out.println("A"); // if the grade is greater than equal to 90, then A will be printed } else if( grade >= 80 && grade < 90) { System.out.println("B"); // if the previous statment is not true and the grade is // greater than equal to 80 or less than 90, then B will be printed } else if( grade >= 70 && grade < 80) { System.out.println("C"); // if the previous statment is not true and the grade is // greater than equal to 70 or less than 80, then C will be printed } else if( grade >= 60 && grade < 70) { System.out.println("D"); // if the previous statment is not true and //the grade is greater than equal to 60 or less than 70, then D will be printed } else if( grade >= 0 && grade < 60) { System.out.println("F"); // if the previous statment is not true and the grade is less than 60, then F will be printed } else { System.out.println("Not within range"); // if the previous statments are not true and an // integer is not inputted properly, then the else statment will be printed } return grade; } public gradeifelse(double n) { System.out.println("Grade entered: " + n); grade = n; } } . import java.util.Scanner; public class gradeswitch { private int value = 0; private double grade; public gradeswitch(double n) { System.out.println("Grade entered: " + n); grade = n; } public void switchgrade() { if (grade >= 90) { value = 1; } else if( grade >= 80 && grade < 90) { value = 2; } else if( grade >= 70 && grade < 80) { value = 3; } else if( grade >= 60 && grade < 70) { value = 4; } else if( grade >= 0 && grade < 60) value = 5; switch(value) { //switch case with values case 1: System.out.println("A"); break; case 2: System.out.println("B"); break; case 3: System.out.println("C"); break; case 4: System.out.println("D"); break; case 5: System.out.println("F"); break; default: System.out.println("not number assigned correctly"); } } } . public class Menu { // Instance Variables public final String DEFAULT = " u001B[0m"; // Default Terminal Color public final String[][] COLORS = { // 2D Array of ANSI Terminal Colors {"Default",DEFAULT}, {"Red", " u001B[31m"}, {"Green", " u001B[32m"}, {"Yellow", " u001B[33m"}, {"Blue", " u001B[34m"}, {"Purple", " u001B[35m"}, {"Cyan", " u001B[36m"}, {"White", " u001B[37m"}, }; // 2D column location for data public final int NAME = 0; public final int ANSI = 1; // ANSI is the "standard" for terminal codes Scanner sc; // available to all inside the menu class // Constructor on this Object takes control of menu events and actions public Menu() { sc = new Scanner(System.in); // using Java Scanner Object this.print(); // print Menu boolean quit = false; while (!quit) { try { // scan for Input int choice = sc.nextInt(); // using method from Java Scanner Object System.out.println("" + choice + ": "); quit = this.action(choice); // take action } catch (Exception e) { sc.nextLine(); // error: clear buffer System.out.println(e + ": Not a number, try again."); } } sc.close(); } // Print the menu options to Terminal private void print() { //System.out.println commands below is used to present a Menu to the user. System.out.println("- n"); System.out.println("Choose from these choices"); System.out.println("- n"); System.out.println("1 - Even or Odd"); System.out.println("2 - Grade - with if else"); System.out.println("3 - Grade - with switch case"); System.out.println("0 - Quit"); System.out.println("- n"); } // Private method to perform action and return true if action is to quit/exit private boolean action(int selection) { boolean quit = false; double g; switch (selection) { // Switch or Switch/Case is Control Flow statement and is used to evaluate the user selection case 0: System.out.print("Goodbye, World!"); quit = true; break; case 1: System.out.println("Enter number: "); int n = sc.nextInt(); ifelse mynumber = new ifelse(n); mynumber.remainder(); break; case 2: System.out.println("Enter grade: "); g = sc.nextDouble(); gradeifelse mygrade = new gradeifelse(g); mygrade.finalgrade(); break; case 3: System.out.println("Enter grade: "); g = sc.nextDouble(); gradeswitch grade = new gradeswitch(g); grade.switchgrade(); break; default: //Prints error message from console System.out.print("Unexpected choice, try again."); } System.out.println(DEFAULT); // make sure to reset color and provide new line return quit; } // Static driver/tester method static public void main(String[] args) { new Menu(); // starting Menu object } } Menu.main(null); . - Choose from these choices - 1 - Even or Odd 2 - Grade - with if else 3 - Grade - with switch case 0 - Quit - 1: Enter number: Number entered: 5 Remainder: 1 Odd 1: Enter number: Number entered: 6 Remainder: 0 Even 2: Enter grade: Grade entered: 69.0 D 2: Enter grade: Grade entered: 80.0 B 3: Enter grade: Grade entered: 69.0 D 3: Enter grade: Grade entered: 80.0 B 0: Goodbye, World! .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/11/javaifelse.html",
@@ -452,7 +463,7 @@
- ,"post41": {
+ ,"post42": {
"title": "focus and habits",
"content": "connection Psychology and the Good Life . The idea of reducing stress and taking action to be mentally healthy is a common discussion I have heard throughout high school. In fact, I remember my AP Calculus BC teacher discussing the Psychology and the Good Life almost every morning in our class. . my ways to reduce stress . I enjoy listening to music. After I complete my work or tasks I try to listen to music as short break before I get right back to work. I try to not worry about the amount of work or time I have, but it is still very stressful. I have found that a good way to keep myself accountable and manage my time better is to keep a list of the things I need to get done . my goals for this year . As a senior year in high school, I want to be prepared for college. I want to make sure that I am building good study habits to make my college life easier. . CS group collaboration . We are fun a group! My CS group has good synergy and we do our best to help each other out. .",
"url": "https://rohitd3.github.io/rohitfastpages/entry/2022/09/11/focusandhabits.html",
@@ -463,7 +474,7 @@
- ,"post42": {
+ ,"post43": {
"title": "documentation and analysis of oop",
"content": "Completion of OOP in code.org . A class is defined when variables, objects or methods are added to the code. . public class MyNeighborhood { // where the objects and methods go } . instance of an object of the . Painter myPainter = new Painter(); . class calls the main method to execute . Menu.main(null); . mutating data: the following method parses an input as a double . double w = sc.nextDouble(); .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/05/javaoop.html",
@@ -474,7 +485,7 @@
- ,"post43": {
+ ,"post44": {
"title": "innovation using object",
"content": "import java.lang.Math; . class box { double width; double height; double depth; // volume of box double volume() { double vol = width *height * depth; System.out.println("Volume "+ vol); return vol; } public box(double w, double h, double d) { System.out.println("w h d: " + w + " " + h + " " + d); width = w; height = h; depth = d; } public box(double w) { System.out.println("side : " + w ); width = w; height = w; depth = w; } } . public class sphere { double radius; double volume() { double vol = ((4 * Math.PI * Math.pow(radius, 3))/3) ; System.out.println("Volume of sphere: " + vol); return vol; } public sphere(double r) { System.out.println("r :" + r); radius = r; } } . public class Menu { // Instance Variables public final String DEFAULT = " u001B[0m"; // Default Terminal Color public final String[][] COLORS = { // 2D Array of ANSI Terminal Colors {"Default",DEFAULT}, {"Red", " u001B[31m"}, {"Green", " u001B[32m"}, {"Yellow", " u001B[33m"}, {"Blue", " u001B[34m"}, {"Purple", " u001B[35m"}, {"Cyan", " u001B[36m"}, {"White", " u001B[37m"}, }; // 2D column location for data public final int NAME = 0; public final int ANSI = 1; // ANSI is the "standard" for terminal codes Scanner sc; // available to all inside the menu class // Constructor on this Object takes control of menu events and actions public Menu() { sc = new Scanner(System.in); // using Java Scanner Object this.print(); // print Menu boolean quit = false; while (!quit) { try { // scan for Input int choice = sc.nextInt(); // using method from Java Scanner Object System.out.println("" + choice + ": "); quit = this.action(choice); // take action } catch (Exception e) { sc.nextLine(); // error: clear buffer System.out.println(e + ": Not a number, try again."); } } sc.close(); } // Print the menu options to Terminal private void print() { //System.out.println commands below is used to present a Menu to the user. System.out.println("- n"); System.out.println("Choose from these choices"); System.out.println("- n"); System.out.println("1 - Find volume of box"); System.out.println("2 - Find volume of cube"); System.out.println("3 - Find volume of sphere"); System.out.println("0 - Quit"); System.out.println("- n"); } // Private method to perform action and return true if action is to quit/exit private boolean action(int selection) { boolean quit = false; switch (selection) { // Switch or Switch/Case is Control Flow statement and is used to evaluate the user selection case 0: System.out.print("Goodbye, World!"); quit = true; break; case 1: System.out.println("Enter width: "); double w = sc.nextDouble(); System.out.println("Enter height: "); double h = sc.nextDouble(); System.out.println("Enter depth: "); double d = sc.nextDouble(); box myrectangle = new box(w, h, d); myrectangle.volume(); break; case 2: System.out.println("Enter side length: "); w = sc.nextDouble(); box mycube = new box(w); mycube.volume(); break; case 3: System.out.println("Enter radius length: "); double r = sc.nextDouble(); sphere mysphere = new sphere(r); mysphere.volume(); break; default: //Prints error message from console System.out.print("Unexpected choice, try again."); } System.out.println(DEFAULT); // make sure to reset color and provide new line return quit; } // Static driver/tester method static public void main(String[] args) { new Menu(); // starting Menu object } } Menu.main(null); . - Choose from these choices - 1 - Find volume of box 2 - Find volume of cube 3 - Find volume of sphere 0 - Quit - 1: Enter width: Enter height: Enter depth: w h d: 2.0 3.0 4.0 Volume 24.0 0: Goodbye, World! .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/09/05/javaobject.html",
@@ -485,7 +496,7 @@
- ,"post44": {
+ ,"post45": {
"title": "alumni panel",
"content": "insight and takeaway . In today's alum panel, I related to Nitya, Allison, and Mabel the most. The three alumni shared a common relationship with computer science at the beginning of their introduction to the field. They all found computer science challenging and did not like it. However, through taking the AP Computer Science Principles class, they realized the value of computer science and how, in the present day, it is required for almost any field. Alison, who will be entering UCLA this year with a major in cognitive science and a minor in statistics, said that looking at the course, she saw that she needed to know how to program in the language R. She continued to state that probably most people that will be taking the statistics course do not realize that they need to know how to program if they want to succeed in the class. . Mabel and Nitya both talked about how they liked structured classes and set instructions. I also am a person who wants an organized structure. I took Computer Science Principles last year, and the idea of being free to create any idea of ours was very new to me. Over time, as I gained experience with Ms. Naidu and Mr. Mortensen, I understood how to use the freedom we were given and became interested in computer science. Similar to my experience, Nitya, Allison, and Mabel shared how they began to enjoy computer science and understand its value. Now in college, they are pursuing their majors, to which computer science is vital. . A takeaway from today was when I talked to Colin at the end of the panel, where he explained that in any engineering major you choose, being proficient in computer science will make your life easier, and you will be able to perform better in college classes. As a senior who is concerned with what major to choose for college, I will always need to keep computer science in my toolbox and be able to apply it. . Me, Jeffrey Lee, and Anthony Vo after the alumni panel .",
"url": "https://rohitd3.github.io/rohitfastpages/entry/2022/08/29/alumnipanel.html",
@@ -496,7 +507,7 @@
- ,"post45": {
+ ,"post46": {
"title": "Alumni Panel Notes",
"content": "Colin - UCSD, mechanical . Nitya - UCSD . AVO - UCI, CS . Alison - UCLA, cognitive science, minoring in Stats . Mabel - UCSD, Cognitive Science and Machine Learning . Andrew – UCSD? . How did you realize you wanted to do your major? . Colin: I can code well. I can 3d model much better. Peers told him to go to comp sci. . | Avo: Did computer science from a young age. Functions and algorithms. . | Andrew: likes java, deployment . | Mabel: Did not like the class. Logical thinking really helped. Robotics team - helped with mission planning. Aerospace engineering was not structured well. . | Alison: artsy businessperson, cog sci major, she wants to work on web design. . | Nitya: took cs seriously in middle school and high school . | . What is the biggest challenge you have had with computer science? . Colin: Github throwing messages at you. There are solutions on the internet . | Avo: clashing egos, focus on your own path, there is a lot of smart people out there, the next steve jobs is already beating you . | Allison: Just starting, the temptation to BS, don’t cut corners, having the mindset to go above and beyond . | Nitya: one of the biggest challenges is getting started in the area of computer science, very organized person and requires structure . | . Any PBL scenarios in college classes? . Colin: one hands on project in freshman year and one senior year . | Mabel: College the first few years is general education, freeload of off you, they don’t expect interns to know much . | . Have you applied CS in your major if you have not applied majoring in CS? . Colin: coding will be everywhere, oh hey i can code this part of the project, matlab!! - important for mechanical engineering . | Andrew: knowledge of CS can help any high level math courses . | Allison: math classes will require programming, R - stats needed . | Colin mentioned something about Computation Aided Manufacturing .",
"url": "https://rohitd3.github.io/rohitfastpages/2022/08/29/alumni-panel-notes.html",
@@ -507,7 +518,7 @@
- ,"post46": {
+ ,"post47": {
"title": "verify environment in bash",
"content": "jupyter kernelspec list . Available kernels: bash /home/rohitde/.local/share/jupyter/kernels/bash java /home/rohitde/.local/share/jupyter/kernels/java javascript /home/rohitde/.local/share/jupyter/kernels/javascript python3 /home/rohitde/.local/share/jupyter/kernels/python3 . python --version python2 --version java --version conda --version . Python 3.9.12 Python 2.7.18 openjdk 11.0.16 2022-07-19 OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu120.04, mixed mode, sharing) conda 4.14.0 .",
"url": "https://rohitd3.github.io/rohitfastpages/bash/2022/08/28/verify-env.html",
@@ -518,7 +529,7 @@
- ,"post47": {
+ ,"post48": {
"title": "unit 1 java primitive",
"content": "import java.util.Scanner; public class gpacalculator { public static void main(String[] args) { Scanner userInput = new Scanner(System.in); int sum = 0; //intialize sum to 0, the gpa will be summed up in the for loop System.out.println("Number of classes:"); int classes = userInput.nextInt(); System.out.println("I am taking " + classes+ " classes"); System.out.println("My class letter grades:"); // enter as uppercase or lowercase for (int i = 0; i <= classes; i++) { int gpa = 0; // intializing variable gpa as 0 String grade = userInput.nextLine(); System.out.println(grade); if (grade.equals("A") || grade.equals("a")) { gpa = 4; } else if (grade.equals("B") || grade.equals("b")) { gpa = 3; } else if (grade.equals("C") || grade.equals("c")) { gpa = 2; } else if (grade.equals("D") || grade.equals("d")) { gpa = 1; } else if (grade.equals("F") || grade.equals("f")) { gpa = 0; } sum = sum + gpa; } float gpaWhole = (float) sum/(float) classes; System.out.println("Your Overall GPA: " + gpaWhole); } } gpacalculator.main(null); . Number of classes: I am taking 5 classes My class letter grades: A a C d A Your Overall GPA: 3.0 .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/08/28/javagpacalc.html",
@@ -529,7 +540,7 @@
- ,"post48": {
+ ,"post49": {
"title": "rohit entry",
"content": "cowsay -f dragon-and-cow "Hi! I am Rohit, a senior at Del Norte High School. I can't wait to use more of fastpages and post more entries!!" | lolcat --spread 9 . _______________________________________ / Hi! I am Rohit, a senior at Del Norte | High School. I can't wait to use more | of fastpages and post more entries!! / ^ /^ / // | ___/| / // . /O O __ / // | *-* / / /_/ // | | @___@` /_ // | / 0/0/| /_ // | 0/0/0/0/| /// | | | 0/0/0/0/0/_|_ / ( // | _ | / 0/0/0/0/0/0/`/,_ _ _/ ) ; -. | _ _ .-~ / / ,-} _ *-.|.-~-. .~ ~ __/ `/ / ~-. _ .-~ / ____(oo) *. } { / ( (--) .-~-. -` .~ //__ __ Ack! ///.-..< _ -~ // ///-._ _ _ _ _ _ _{^ - - - - ~ .",
"url": "https://rohitd3.github.io/rohitfastpages/entry/2022/08/22/rohit-post.html",
@@ -540,7 +551,7 @@
- ,"post49": {
+ ,"post50": {
"title": "Hello World in Python!",
"content": "print('hello world') . hello world . List and Loops from CSP Tri 3 . InfoDb = [] # List with dictionary records placed in a list InfoDb.append({ "MovieName": "Spider-Man: No Way Home", "MovieYear": "2021", "Rating": "5", "Actors": [ "Tom Holland", "Tobey Maguire", "Zendaya", "Andrew Garfield", "Marisa Tomei" ] }) InfoDb.append({ "MovieName": "Star Wars: The Force Awakens", "MovieYear": "2015", "Rating": "4", "Actors": ["Daisy Ridley", "John Boyega", "Harrison Ford", "Adam Driver"] }) InfoDb.append({ "MovieName": "Toy Story", "MovieYear": "1995", "Rating": "5", "Actors": ["Tom Hanks", "Laurie Metcalf", "Ernie Sabella", "Nathan Lane"] }) def print_data(n): print("Movie Name:", InfoDb[n]["MovieName"], "Year:", InfoDb[n]["MovieYear"], "Rating: ",InfoDb[n]["Rating"] ) # using comma puts space between values print(" t", "Actors in the movie: ", end="") # t is a tab indent, end="" make sure no return occurs print(", ".join(InfoDb[n]["Actors"])) # join allows printing a string list with separator print() def tester(): print("For loop with range:") for_loop_limit(1,2) print("For loop") for_loop() print("While loop") while_loop(0) # requires initial index to start while print("Recursive loop") recursive_loop(0) # requires initial index to start recursion # for loop iterates on length of InfoDb def for_loop(): for n in range(len(InfoDb)): print_data(n) def for_loop_limit(start, end): for n in range(start, end+1): print_data(n) # while loop contains an initial n and an index incrementing statement (n += 1) # dont need to write n = 0 because it being called in the tester def while_loop(n): while n < len(InfoDb): print_data(n) n += 1 return # recursion simulates loop incrementing on each call (n + 1) until exit condition is met def recursive_loop(n): if n < len(InfoDb): print_data(n) recursive_loop(n + 1) return # exit condition if __name__ == "__main__": tester() . For loop with range: Movie Name: Star Wars: The Force Awakens Year: 2015 Rating: 4 Actors in the movie: Daisy Ridley, John Boyega, Harrison Ford, Adam Driver Movie Name: Toy Story Year: 1995 Rating: 5 Actors in the movie: Tom Hanks, Laurie Metcalf, Ernie Sabella, Nathan Lane For loop Movie Name: Spider-Man: No Way Home Year: 2021 Rating: 5 Actors in the movie: Tom Holland, Tobey Maguire, Zendaya, Andrew Garfield, Marisa Tomei Movie Name: Star Wars: The Force Awakens Year: 2015 Rating: 4 Actors in the movie: Daisy Ridley, John Boyega, Harrison Ford, Adam Driver Movie Name: Toy Story Year: 1995 Rating: 5 Actors in the movie: Tom Hanks, Laurie Metcalf, Ernie Sabella, Nathan Lane While loop Movie Name: Spider-Man: No Way Home Year: 2021 Rating: 5 Actors in the movie: Tom Holland, Tobey Maguire, Zendaya, Andrew Garfield, Marisa Tomei Movie Name: Star Wars: The Force Awakens Year: 2015 Rating: 4 Actors in the movie: Daisy Ridley, John Boyega, Harrison Ford, Adam Driver Movie Name: Toy Story Year: 1995 Rating: 5 Actors in the movie: Tom Hanks, Laurie Metcalf, Ernie Sabella, Nathan Lane Recursive loop Movie Name: Spider-Man: No Way Home Year: 2021 Rating: 5 Actors in the movie: Tom Holland, Tobey Maguire, Zendaya, Andrew Garfield, Marisa Tomei Movie Name: Star Wars: The Force Awakens Year: 2015 Rating: 4 Actors in the movie: Daisy Ridley, John Boyega, Harrison Ford, Adam Driver Movie Name: Toy Story Year: 1995 Rating: 5 Actors in the movie: Tom Hanks, Laurie Metcalf, Ernie Sabella, Nathan Lane .",
"url": "https://rohitd3.github.io/rohitfastpages/python/2022/08/22/python-notebook.html",
@@ -551,7 +562,7 @@
- ,"post50": {
+ ,"post51": {
"title": "Hello World in Java",
"content": "System.out.println("Hello World"); System.out.println("Hello World World"); . Hello World Hello World World .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2022/08/21/java-notebook.html",
@@ -562,7 +573,7 @@
- ,"post51": {
+ ,"post52": {
"title": "Example Notebook",
"content": "About . This notebook is a demonstration of some of capabilities of fastpages with notebooks. . With fastpages you can save your jupyter notebooks into the _notebooks folder at the root of your repository, and they will be automatically be converted to Jekyll compliant blog posts! . Front Matter . The first cell in your Jupyter Notebook or markdown blog post contains front matter. Front matter is metadata that can turn on/off options in your Notebook. It is formatted like this: . # "My Title" > "Awesome summary" - toc:true- branch: master - badges: true - comments: true - author: Hamel Husain & Jeremy Howard - categories: [fastpages, jupyter] . Setting toc: true will automatically generate a table of contents | Setting badges: true will automatically include GitHub and Google Colab links to your notebook. | Setting comments: true will enable commenting on your blog post, powered by utterances. | . The title and description need to be enclosed in double quotes only if they include special characters such as a colon. More details and options for front matter can be viewed on the front matter section of the README. . Markdown Shortcuts . A #hide comment at the top of any code cell will hide both the input and output of that cell in your blog post. . A #hide_input comment at the top of any code cell will only hide the input of that cell. . The comment #hide_input was used to hide the code that produced this. . put a #collapse-hide flag at the top of any cell if you want to hide that cell by default, but give the reader the option to show it: . import pandas as pd import altair as alt . . put a #collapse-show flag at the top of any cell if you want to show that cell by default, but give the reader the option to hide it: . cars = 'https://vega.github.io/vega-datasets/data/cars.json' movies = 'https://vega.github.io/vega-datasets/data/movies.json' sp500 = 'https://vega.github.io/vega-datasets/data/sp500.csv' stocks = 'https://vega.github.io/vega-datasets/data/stocks.csv' flights = 'https://vega.github.io/vega-datasets/data/flights-5k.json' . . place a #collapse-output flag at the top of any cell if you want to put the output under a collapsable element that is closed by default, but give the reader the option to open it: . print('The comment #collapse-output was used to collapse the output of this cell by default but you can expand it.') . The comment #collapse-output was used to collapse the output of this cell by default but you can expand it. . . Interactive Charts With Altair . Charts made with Altair remain interactive. Example charts taken from this repo, specifically this notebook. . Example 1: DropDown . # use specific hard-wired values as the initial selected values selection = alt.selection_single( name='Select', fields=['Major_Genre', 'MPAA_Rating'], init={'Major_Genre': 'Drama', 'MPAA_Rating': 'R'}, bind={'Major_Genre': alt.binding_select(options=genres), 'MPAA_Rating': alt.binding_radio(options=mpaa)} ) # scatter plot, modify opacity based on selection alt.Chart(df).mark_circle().add_selection( selection ).encode( x='Rotten_Tomatoes_Rating:Q', y='IMDB_Rating:Q', tooltip='Title:N', opacity=alt.condition(selection, alt.value(0.75), alt.value(0.05)) ) . Example 2: Tooltips . alt.Chart(df).mark_circle().add_selection( alt.selection_interval(bind='scales', encodings=['x']) ).encode( alt.X('Rotten_Tomatoes_Rating', type='quantitative'), alt.Y('IMDB_Rating', type='quantitative', axis=alt.Axis(minExtent=30)), # y=alt.Y('IMDB_Rating:Q', ), # use min extent to stabilize axis title placement tooltip=['Title:N', 'Release_Date:N', 'IMDB_Rating:Q', 'Rotten_Tomatoes_Rating:Q'] ).properties( width=500, height=400 ) . Example 3: More Tooltips . label = alt.selection_single( encodings=['x'], # limit selection to x-axis value on='mouseover', # select on mouseover events nearest=True, # select data point nearest the cursor empty='none' # empty selection includes no data points ) # define our base line chart of stock prices base = alt.Chart().mark_line().encode( alt.X('date:T'), alt.Y('price:Q', scale=alt.Scale(type='log')), alt.Color('symbol:N') ) alt.layer( base, # base line chart # add a rule mark to serve as a guide line alt.Chart().mark_rule(color='#aaa').encode( x='date:T' ).transform_filter(label), # add circle marks for selected time points, hide unselected points base.mark_circle().encode( opacity=alt.condition(label, alt.value(1), alt.value(0)) ).add_selection(label), # add white stroked text to provide a legible background for labels base.mark_text(align='left', dx=5, dy=-5, stroke='white', strokeWidth=2).encode( text='price:Q' ).transform_filter(label), # add text labels for stock prices base.mark_text(align='left', dx=5, dy=-5).encode( text='price:Q' ).transform_filter(label), data=stocks ).properties( width=500, height=400 ) . Data Tables . You can display tables per the usual way in your blog: . df[['Title', 'Worldwide_Gross', 'Production_Budget', 'Distributor', 'MPAA_Rating', 'IMDB_Rating', 'Rotten_Tomatoes_Rating']].head() . Title Worldwide_Gross Production_Budget Distributor MPAA_Rating IMDB_Rating Rotten_Tomatoes_Rating . 0 The Land Girls | 146083.0 | 8000000.0 | Gramercy | R | 6.1 | NaN | . 1 First Love, Last Rites | 10876.0 | 300000.0 | Strand | R | 6.9 | NaN | . 2 I Married a Strange Person | 203134.0 | 250000.0 | Lionsgate | None | 6.8 | NaN | . 3 Let's Talk About Sex | 373615.0 | 300000.0 | Fine Line | None | NaN | 13.0 | . 4 Slam | 1087521.0 | 1000000.0 | Trimark | R | 3.4 | 62.0 | . Images . Local Images . You can reference local images and they will be copied and rendered on your blog automatically. You can include these with the following markdown syntax: . ![](my_icons/fastai_logo.png) . . Remote Images . Remote images can be included with the following markdown syntax: . ![](https://image.flaticon.com/icons/svg/36/36686.svg) . . Animated Gifs . Animated Gifs work, too! . ![](https://upload.wikimedia.org/wikipedia/commons/7/71/ChessPawnSpecialMoves.gif) . . Captions . You can include captions with markdown images like this: . ![](https://www.fast.ai/images/fastai_paper/show_batch.png "Credit: https://www.fast.ai/2020/02/13/fastai-A-Layered-API-for-Deep-Learning/") . . Other Elements . GitHub Flavored Emojis . Typing I give this post two :+1:! will render this: . I give this post two :+1:! . Tweetcards . Typing > twitter: https://twitter.com/jakevdp/status/1204765621767901185?s=20 will render this: Altair 4.0 is released! https://t.co/PCyrIOTcvvTry it with: pip install -U altairThe full list of changes is at https://t.co/roXmzcsT58 ...read on for some highlights. pic.twitter.com/vWJ0ZveKbZ . — Jake VanderPlas (@jakevdp) December 11, 2019 . Youtube Videos . Typing > youtube: https://youtu.be/XfoYk_Z5AkI will render this: . Boxes / Callouts . Typing > Warning: There will be no second warning! will render this: . Warning: There will be no second warning! . Typing > Important: Pay attention! It's important. will render this: . Important: Pay attention! It’s important. . Typing > Tip: This is my tip. will render this: . Tip: This is my tip. . Typing > Note: Take note of this. will render this: . Note: Take note of this. . Typing > Note: A doc link to [an example website: fast.ai](https://www.fast.ai/) should also work fine. will render in the docs: . Note: A doc link to an example website: fast.ai should also work fine. . Footnotes . You can have footnotes in notebooks, however the syntax is different compared to markdown documents. This guide provides more detail about this syntax, which looks like this: . For example, here is a footnote {% fn 1 %}. And another {% fn 2 %} {{ 'This is the footnote.' | fndetail: 1 }} {{ 'This is the other footnote. You can even have a [link](www.github.com)!' | fndetail: 2 }} . For example, here is a footnote 1. . And another 2 . 1. This is the footnote.↩ . 2. This is the other footnote. You can even have a link!↩ .",
"url": "https://rohitd3.github.io/rohitfastpages/java/2020/02/20/test.html",
@@ -573,7 +584,7 @@
- ,"post52": {
+ ,"post53": {
"title": "An Example Markdown Post",
"content": "Example Markdown Post . Basic setup . Jekyll requires blog post files to be named according to the following format: . YEAR-MONTH-DAY-filename.md . Where YEAR is a four-digit number, MONTH and DAY are both two-digit numbers, and filename is whatever file name you choose, to remind yourself what this post is about. .md is the file extension for markdown files. . The first line of the file should start with a single hash character, then a space, then your title. This is how you create a “level 1 heading” in markdown. Then you can create level 2, 3, etc headings as you wish but repeating the hash character, such as you see in the line ## File names above. . Basic formatting . You can use italics, bold, code font text, and create links. Here’s a footnote 1. Here’s a horizontal rule: . . Lists . Here’s a list: . item 1 | item 2 | . And a numbered list: . item 1 | item 2 | Boxes and stuff . This is a quotation . . You can include alert boxes …and… . . You can include info boxes Images . . Code . You can format text and code per usual . General preformatted text: . # Do a thing do_thing() . Python code and output: . # Prints '2' print(1+1) . 2 . Formatting text as shell commands: . echo "hello world" ./some_script.sh --option "value" wget https://example.com/cat_photo1.png . Formatting text as YAML: . key: value - another_key: "another value" . Tables . Column 1 Column 2 . A thing | Another thing | . Tweetcards . Altair 4.0 is released! https://t.co/PCyrIOTcvvTry it with: pip install -U altairThe full list of changes is at https://t.co/roXmzcsT58 ...read on for some highlights. pic.twitter.com/vWJ0ZveKbZ . — Jake VanderPlas (@jakevdp) December 11, 2019 Footnotes . This is the footnote. ↩ . |",
"url": "https://rohitd3.github.io/rohitfastpages/markdown/2020/01/14/test-markdown-post.html",
diff --git a/categories/index.html b/categories/index.html
index 7146493..88352b8 100755
--- a/categories/index.html
+++ b/categories/index.html
@@ -90,6 +90,8 @@