| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <title>Coding Assignment</title> |
|
|
| <style> |
| body { |
| font-family: sf pro text, -apple-system, BlinkMacSystemFont, Roboto, segoe ui, Helvetica, Arial, |
| sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol; |
| font-weight: 400; |
| line-height: 22.4px; |
| font-size: 16px; |
| } |
| p, |
| ul, |
| ol { |
| font-size: 16px; |
| font-weight: 400; |
| } |
| h1, |
| h2, |
| h3, |
| h4, |
| h5, |
| h6 { |
| font-weight: bold; |
| } |
| ul { |
| list-style: none; |
| margin: 0; |
| padding: 0; |
| max-width: none; |
| } |
| .code-snippet { |
| background-color: #fff; |
| border: 1px solid #d1d7dc; |
| color: #b4690e; |
| font-size: 90%; |
| padding: 0.2rem 0.4rem; |
| } |
| .code-block { |
| background-color: #fff; |
| color: #b4690e; |
| font-size: 90%; |
| } |
| .black-block { |
| color: #000000; |
| } |
| .italic-text { |
| font-style: italic; |
| } |
| </style> |
| </head> |
|
|
| <body onload="main()"> |
| <h1 id="coding-title"></h1> |
| <div> |
| <h2>Instructions</h2> |
| <div id="coding-instructions"></div> |
| </div> |
| <div> |
| <h2>Test(s)</h2> |
| <div id="coding-tests"></div> |
| </div> |
| <div> |
| <h2>Solution(s)</h2> |
| <div id="coding-solutions"></div> |
| </div> |
|
|
| <script> |
| const quizData = {"title": "010 Extend Array", "hasInstructions": true, "hasTests": true, "hasSolutions": true, "instructions": "<ol><li><p>Implement console program which will meet the following requirements:</p><ol><li><p>Program starts and asks user to enter length of an array.</p></li><li><p>Program generates array of random integer numbers (use java.util.Random) with array length specified by user. Random numbers should be between 1 and 100.<br><br>Method should look like this:<br><strong><em>public static int[] generateRandomArray(int amountOfElements) {<br> <write your code here><br>}</em></strong><br><br></p></li><li><p>Program creates the second array with size of twice as much as the first array.</p></li><li><p>The first elements in the new array are first the same elements as in old array. The other half of elements are elements as in the first array multiplied by two.<br><br><strong><em>public static int[] extendArray(int[] arr) {</em></strong></p></li></ol><p><strong><em> <write your code here></em></strong></p><p><strong><em> }</em></strong></p></li></ol><p>For example, if user set initial array length as ten:</p><p>array #1 - {1, 3, 5, 7, 10, 11, 12, 15, 17, 20} (generated randomly)</p><p>array #2 - {1, 3, 5, 7, 10, 11, 12, 15, 17, 20, 2, 6, 10, 14, 20, 22, 24, 30, 34, 40}</p>", "tests": [{"file_name": "Evaluate.java", "content": "import org.junit.Test;\nimport org.junit.Assert;\nimport com.udemy.ucp.*;\nimport static org.junit.Assert.assertEquals;\nimport static org.junit.Assert.assertTrue;\n\nimport org.junit.Test;\n\npublic class Evaluate {\n @Test\n\tpublic void shouldGenerateRandomIntArrayInRangeFrom1To100With5Elements() {\n\t\tint amountOfElements = 5;\n\t\tint[] generateRandomArray = ArrayExtension.generateRandomArray(amountOfElements);\n\t\tassertEquals(amountOfElements, generateRandomArray.length);\n\t}\n\t\n\t@Test\n\tpublic void shouldGenerateRandomIntArrayInRangeFrom1To100With100Elements() {\n\t\tint amountOfElements = 100;\n\t\tint[] generateRandomArray = ArrayExtension.generateRandomArray(amountOfElements);\n\t\tassertEquals(amountOfElements, generateRandomArray.length);\n\t}\n\t\n\t@Test\n\tpublic void shouldGenerateRandomIntArrayInRangeFrom1To100() {\n\t\tint amountOfElements = 100;\n\t\tint[] generateRandomArray = ArrayExtension.generateRandomArray(amountOfElements);\n\t\tfor (int i : generateRandomArray) {\n\t\t\tassertTrue(i >= 0);\n\t\t\tassertTrue(i <= 100);\n\t\t}\n\t}\n}\n"}], "solutions": [{"file_name": "ArrayExtension.java", "content": "import java.util.Arrays;\r\nimport java.util.Random;\r\nimport java.util.Scanner;\r\n\r\npublic class ArrayExtension {\r\n\r\n\tpublic static final int MULTIPLIER = 2;\r\n\t\r\n\tpublic static void main(String[] args) {\r\n\t\tScanner sc = new Scanner(System.in);\r\n\t\tSystem.out.print(\"Please, enter length of initial array: \");\r\n\t\tint baseArrayLength = sc.nextInt();\r\n\t\tint[] arr = generateRandomArray(baseArrayLength);\r\n\t\tint[] extendedArray = extendArray(arr);\r\n\t\tSystem.out.println(\"*** Initial array ***\");\r\n\t\tSystem.out.println(Arrays.toString(arr));\r\n\t\tSystem.out.println(\"*** Extended array ***\");\r\n\t\tSystem.out.println(Arrays.toString(extendedArray));\r\n\t}\r\n\r\n\t/**\r\n\t * The method extends array.\r\n\t * If array {1, 2, 3} has been passed to this method then array {1, 2, 3, 2, 4, 6}\r\n\t * is returned from this method.\r\n\t * \r\n\t * @param arr - base of extension. Extended array contains elements from this array\r\n\t * and additionally contains the same elements multiplied by two. \r\n\t * @return extended array.\r\n\t */\r\n\tpublic static int[] extendArray(int[] arr) {\r\n\t\tint newArrayLenght = arr.length * 2;\r\n\t\tint[] resultArray = Arrays.copyOf(arr, newArrayLenght);\r\n\t\t\r\n\t\tfor (int i = arr.length; i < newArrayLenght; i++) {\r\n\t\t\tresultArray[i] = arr[i - arr.length] * MULTIPLIER;\r\n\t\t}\r\n\t\t\r\n\t\treturn resultArray;\r\n\t}\r\n\r\n\tpublic static int[] generateRandomArray(int amountOfElements) {\r\n\t\tRandom r = new Random();\r\n\t\tint[] resultArray = new int[amountOfElements];\r\n\t\tfor (int i = 0; i < amountOfElements; i++) {\r\n\t\t\tresultArray[i] = r.nextInt(100) + 1;\r\n\t\t}\r\n\t\treturn resultArray;\r\n\t}\r\n\r\n}\r\n"}]}; |
| |
| function renderCodeList(rootElement, codeList, className, titlePrefix) { |
| for (var i = 0; i < codeList.length; i++) { |
| var elem = codeList[i]; |
| var jsElem = document.createElement("div"); |
| jsElem.className = className; |
| var jsElemTitle = document.createElement("h3"); |
| jsElemTitle.innerHTML = titlePrefix + " " + (i + 1); |
| var jsElemBody = document.createElement("code"); |
| jsElemBody.className = "code-block black-block"; |
| jsElemBody.innerHTML = "<pre>" + elem.content + "</pre>"; |
| jsElem.appendChild(jsElemTitle); |
| jsElem.appendChild(jsElemBody); |
| rootElement.appendChild(jsElem); |
| } |
| } |
| |
| function main() { |
| // display the assignment |
| var codingTitle = document.getElementById("coding-title"); |
| codingTitle.innerHTML = quizData.title; |
| |
| var codingInstructions = document.getElementById("coding-instructions"); |
| if (quizData.hasInstructions) { |
| codingInstructions.innerHTML = quizData.instructions; |
| } else { |
| codingInstructions.innerHTML = '<span class="italic-text">' + quizData.instructions + "</span>"; |
| } |
| |
| // display the test(s) |
| var codingTests = document.getElementById("coding-tests"); |
| if (!quizData.hasTests) { |
| codingTests.innerHTML = '<span class="italic-text">' + quizData.tests + "</span>"; |
| } else { |
| renderCodeList(codingTests, quizData.tests, "coding-test", "Test"); |
| } |
| |
| // display the solution(s) |
| var codingSolutions = document.getElementById("coding-solutions"); |
| if (!quizData.hasSolutions) { |
| codingSolutions.innerHTML = '<span class="italic-text">' + quizData.solutions + "</span>"; |
| } else { |
| renderCodeList(codingSolutions, quizData.solutions, "coding-solution", "Solution"); |
| } |
| } |
| </script> |
| </body> |
| </html> |
|
|