Daria 4 anos atrás
pai
commit
aae709e22b
1 arquivos alterados com 149 adições e 19 exclusões
  1. 149 19
      js_homework_04/index.js

+ 149 - 19
js_homework_04/index.js

@@ -1,11 +1,56 @@
+// html tree
+let body = {
+    tagName: 'body',
+    subTags: [
+        {
+            tagName: 'div',
+            subTags: [
+                {
+                    tagName: 'span',
+                    text: 'Enter a data please:',
+                    subTags: [
+                        {
+                            tagName: 'br',
+                        },
+                        {
+                            tagName: 'input',
+                            attrs: ['type', 'id', 'text', 'name',]
+                        },
+                        {
+                            tagName: 'input',
+                            attrs: ['type', 'id', 'text', 'name',]
+                        }
+                    ]
+                },
+                {
+                    tagName: 'div',
+                    subTags: [
+                        {
+                            tagName: 'button',
+                            attrs: ['id', 'ok'],
+                            text: 'OK',
+                        },
+                        {
+                            tagName: 'button',
+                            attrs: ['id', 'cancel'],
+                            text: 'Cancel',
+                        },
+                    ]
+                }
+            ]
+        }
+    ]
+}
+
+
 // declarative fields
 var notebook = {
     brand: prompt("Enter brand notebook "),
     type: prompt("Enter type notebook "),
     model: prompt("Enter model notebook "),
-    ram:  +prompt("Enter brand notebook "),
+    ram: +prompt("Enter brand notebook "),
     size: prompt("Enter size notebook "),
-    weight:+prompt("Enter weight notebook "),
+    weight: +prompt("Enter weight notebook "),
     resolution: {
         width: +prompt("Enter width notebook "),
         height: +prompt("Enter height notebook "),
@@ -34,17 +79,17 @@ person.smartphone.owner.laptop.owner.smartphone == person.smartphone
 
 // imperative array fill 3
 let arr = []
-for (let i = 0; i < 3; i++) { 
-  arr[i] = prompt("")
+for (let i = 0; i < 3; i++) {
+    arr[i] = prompt("")
 }
 
 // while confirm
 let k
-for(i=0; ;i++){
+for (i = 0; ; i++) {
     k = confirm("")
-    if(k==false){
+    if (k == false) {
 
-    }else if(k==true){
+    } else if (k == true) {
         break;
     }
 }
@@ -55,37 +100,122 @@ for(i=0; ;i++){
 // for(i=0; ;i++){
 //     k = arr.push(prompt(""));
 //     if(k==String){
-    
+
 //     }else if(k==null){
 //        break; 
 //     }
 // }
 
-// infinite probability
 
+// infinite probability
+// infinite probability
+// Создайте бесконечный цикл, который прерывается с помощью конструкции break, когда Math.random() > 0.9. Код должен подсчитывать количество итераций и вывести это число с помощью alert.
 let k = 0;
-let m=0;
-for(let i =0; ;i++){
+let m = 0;
+for (let i = 0; ; i++) {
     k++
     m = Math.random();
-    if(m>0.9){
+    if (m > 0.9) {
         break;
     }
 
 }
 alert(k)
 
+
+// empty loop
+// Сделайте цикл с prompt, который прерывается по нажатию OK и продолжается по нажатию "Отмена" c пустым телом цикла.
+
+
+while (prompt('ok') == null) { };
+
+
+
+
+
 // progression sum
 // Подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл for.
 let n = prompt("")
-for(i =3;i<n;i++){
+for (i = 1; i < n; i = i + 3) {
     console.log(i)
 }
 
 // numbers
-// Сформировать строку c помощью вложенных циклов. Для перевода строки используйте \n.
-ni=10
-for(let i =0;i<ni;i++){
-    console.log(i)
-    /n
-}
+// Сформировать строку c помощью вложенных циклов. Для перевода строки   
+let stringMass = "";
+for (let i = 0; i < 10; i++) {
+    let string = "";
+    for (let j = 0; j < 10; j++) {
+        string += j
+    }
+    stringMass += string + "\n"
+}
+console.log(stringMass)
+
+
+
+// chess
+let string = '';
+let n = 12;
+for (let i = 0; i < n * n + n; i++) {
+    if (i === 0 || i % 2 === 0) {
+        string += '.'
+    } else {
+        string += '#';
+    }
+    if ((string.length + 1) % (n + 1) === 0) {
+
+        i += 1;
+    }
+    string += '\n';
+}
+console.log(string)
+
+// cubes
+// Сформируйте массив из N элементов, содержащий в себе кубы индексов, т. е:[0,1,8,27,64...]
+
+let array = [];
+let arraystring = "";
+array.length = +prompt("Enter the length of  the array  ");
+for(let i = 0; i < array.length; i++) {
+    array[i] = Math.pow(i, 3)
+    arraystring += array[i] + ", "
+}
+alert(arraystring)
+
+
+// multiply table
+// C помощью вложенного цикла сформируйте массив массивов "таблица умножения". Для инициализации вложенных массивов используйте
+// arr[i] = [] //в i-тый элемент массива заносится новый пустой массив
+// arr[5][6] должен быть равен, соответственно, 30, arr[7][2] == 14 и так далее.
+
+for (let i = 0; i <= 10; i++) {
+    arr[i] = [];
+    for (let j = 0; j <= 10; j++) {
+        arr[i][j] = i * j;
+    }
+}
+console.log(arr);
+
+alert(arr[5][6])
+
+
+// matrix to html table
+// Сделайте вложенный цикл, который формирует HTML-таблицу в переменной строкового типа из любого двумерного массива. Т. е. если в нём использовать результат работы предыдущего задания, то получится таблица умножения в HTML (Таблица Пифагора)
+
+// НЕ ПОЛУЧИЛОСЬ
+let arr =[];
+for (let i = 0; i <= 10; i++) {
+    var div = document.createElement("div");
+    arr[i] = [];
+    for (let j = 0; j <= 10; j++) {
+        var span = document.createElement("span");
+        span.style.display = "inline-block"
+        span.style.width = "25px"
+        arr[i][j] = i * j;
+        span.innerHTML = arr[i][j];
+        div.appendChild(span);
+    }
+    document.body.append(div);
+}
+console.log(arr);