|
@@ -0,0 +1,308 @@
|
|
|
+
|
|
|
+
|
|
|
+// html tree
|
|
|
+// <body>
|
|
|
+// <div>
|
|
|
+// <span>Enter a data please:</span><br/>
|
|
|
+// <input type='text' id='name'>
|
|
|
+// <input type='text' id='surname'>
|
|
|
+// </div>
|
|
|
+// <div>
|
|
|
+// <button id='ok'>OK</button>
|
|
|
+// <button id='cancel'>Cancel</button>
|
|
|
+// </div>
|
|
|
+// </body>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// Сделайте декларативную JSON-структуру для тэгов выше, в которой:
|
|
|
+// каждый тэг будет объектом
|
|
|
+// имя тэга будет полем tagName
|
|
|
+// вложенные тэги будут в поле subTags
|
|
|
+// текст в тэге будет в поле text
|
|
|
+// набор аттрибутов тэга будет в поле attrs.
|
|
|
+// Выведите значения текста во второй кнопке, используя . и [].
|
|
|
+// Выведите значение атрибута id во втором input, используя . и [].
|
|
|
+
|
|
|
+
|
|
|
+// let body={
|
|
|
+// tagName:'body',
|
|
|
+// paired:true,
|
|
|
+// subTags:[
|
|
|
+// {tagName:'div',
|
|
|
+// paired:true,
|
|
|
+// subTags:[
|
|
|
+// {
|
|
|
+// tagName:'br',
|
|
|
+// paired:false,
|
|
|
+// },
|
|
|
+// {
|
|
|
+// tagName:'span',
|
|
|
+// paired:true,
|
|
|
+// content:"Enter a data please:",
|
|
|
+// },
|
|
|
+// {
|
|
|
+// tagName:'input',
|
|
|
+// paired:false,
|
|
|
+// attrs:{
|
|
|
+// id:'name',
|
|
|
+// type:'text',
|
|
|
+// }
|
|
|
+// },
|
|
|
+// {
|
|
|
+// tagName:'input',
|
|
|
+// paired:false,
|
|
|
+// attrs:{
|
|
|
+// id:'surname',
|
|
|
+// type:'text',
|
|
|
+// }
|
|
|
+// },
|
|
|
+// ]
|
|
|
+// },
|
|
|
+// {
|
|
|
+// tagName:'div',
|
|
|
+// paired:true,
|
|
|
+// subTags:[
|
|
|
+// {
|
|
|
+// tagName:'button',
|
|
|
+// content:"Ok",
|
|
|
+// paired:true,
|
|
|
+// attrs:{
|
|
|
+// id:'ok',
|
|
|
+// }
|
|
|
+// },
|
|
|
+// {
|
|
|
+// tagName:'button',
|
|
|
+// content:"Cancel",
|
|
|
+// paired:true,
|
|
|
+// attrs:{
|
|
|
+// id:'cancel',
|
|
|
+// }
|
|
|
+// },
|
|
|
+// ]
|
|
|
+// }
|
|
|
+// ]
|
|
|
+// }
|
|
|
+
|
|
|
+// alert(body.subTags[1].subTags[1].content)
|
|
|
+// alert(body.subTags[0].subTags[3].attrs.id)
|
|
|
+
|
|
|
+// declarative fields
|
|
|
+
|
|
|
+
|
|
|
+// var notebook = {
|
|
|
+// brand: prompt('enter brand for ex. HP'),
|
|
|
+// type: prompt('enter type for ex. 440 g4'),
|
|
|
+// model: prompt('enter model for ex. Y7Z75EA'),
|
|
|
+// ram: +prompt('enter ram im gb'),
|
|
|
+// size: +prompt('enter screen size in "'),
|
|
|
+// weight: +prompt('enter weight im kg'),
|
|
|
+// resolution: {
|
|
|
+// width: +prompt('enter resolution'),
|
|
|
+// height: +prompt('enter resolution'),
|
|
|
+// },
|
|
|
+// };
|
|
|
+
|
|
|
+// var phone = {
|
|
|
+// brand: prompt('enter phone brand'),
|
|
|
+// model: prompt('enter phone model'),
|
|
|
+// ram: +prompt('enter ram in gb'),
|
|
|
+// color: prompt('enter color'),
|
|
|
+// };
|
|
|
+
|
|
|
+// var person = {
|
|
|
+// name: prompt('enter name'),
|
|
|
+// surname: prompt('enter surname'),
|
|
|
+// married: confirm('married?'),
|
|
|
+// }
|
|
|
+
|
|
|
+// // object links
|
|
|
+
|
|
|
+// var notebook = {
|
|
|
+// brand: prompt('enter brand for ex. HP'),
|
|
|
+// type: prompt('enter type for ex. 440 g4'),
|
|
|
+// model: prompt('enter model for ex. Y7Z75EA'),
|
|
|
+// ram: +prompt('enter ram im gb'),
|
|
|
+// size: +prompt('enter screen size in "'),
|
|
|
+// weight: +prompt('enter weight im kg'),
|
|
|
+// resolution: {
|
|
|
+// width: +prompt('enter resolution'),
|
|
|
+// height: +prompt('enter resolution'),
|
|
|
+// },
|
|
|
+// };
|
|
|
+
|
|
|
+// var phone = {
|
|
|
+// brand: prompt('enter phone brand'),
|
|
|
+// model: prompt('enter phone model'),
|
|
|
+// ram: +prompt('enter ram in gb'),
|
|
|
+// color: prompt('enter color'),
|
|
|
+// };
|
|
|
+
|
|
|
+// var person = {
|
|
|
+// name: prompt('enter name'),
|
|
|
+// surname: prompt('enter surname'),
|
|
|
+// married: confirm('married?'),
|
|
|
+// }
|
|
|
+// person.smartphone = phone;
|
|
|
+// person.laptop = notebook;
|
|
|
+// notebook.owner = person;
|
|
|
+// phone.owner = person;
|
|
|
+
|
|
|
+// // imperative array fill 3
|
|
|
+
|
|
|
+
|
|
|
+// let arrayfill = []
|
|
|
+// arrayfill[0] = prompt('enter something')
|
|
|
+// arrayfill[1] = prompt('enter something')
|
|
|
+// arrayfill[2] = prompt('enter something')
|
|
|
+
|
|
|
+// // // while confirm
|
|
|
+// // Сделайте цикл с confirm, который продолжается по Отмена и заканчивается по ОК.
|
|
|
+
|
|
|
+// do {
|
|
|
+// var whileConfirm = confirm("yes-no?");
|
|
|
+// } while (whileConfirm === false);
|
|
|
+
|
|
|
+// // array fill
|
|
|
+// // Создайте пустой массив и добавляйте в него элементы, пока пользователь не нажмет Отмена в очередном prompt. Используйте push для удобства: push
|
|
|
+
|
|
|
+// let b = []
|
|
|
+// let a = '';
|
|
|
+// do {
|
|
|
+// a = prompt('enter');
|
|
|
+// b.push(a);
|
|
|
+// } while (a != null)
|
|
|
+
|
|
|
+// // array fill nopush
|
|
|
+// // Сделайте предыдущее задание, не используя push, а обращаясь к элементам по индексу.
|
|
|
+
|
|
|
+// let b = []
|
|
|
+// let a = '';
|
|
|
+// let i = 0;
|
|
|
+// do {
|
|
|
+// a = prompt('enter');
|
|
|
+// b[i++] = a
|
|
|
+// } while (a != null)
|
|
|
+// alert (b);
|
|
|
+
|
|
|
+// infinite probability
|
|
|
+// Создайте бесконечный цикл, который прерывается с помощью конструкции break, когда Math.random() > 0.9. Код должен подсчитывать количество итераций и вывести это число с помощью alert.
|
|
|
+// let i = 0;
|
|
|
+// while (true) {
|
|
|
+// let inf = Math.random();
|
|
|
+// i++;
|
|
|
+// if (inf > 0.9) {
|
|
|
+// alert('Количество итераций: '+i);
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+// empty loop
|
|
|
+// // Сделайте цикл с prompt, который прерывается по нажатию OK и продолжается по нажатию "Отмена" c пустым телом цикла.
|
|
|
+
|
|
|
+// do {
|
|
|
+// var whileConfirm = prompt("ok- STOP cancel - GO ");
|
|
|
+// } while (whileConfirm === null);
|
|
|
+
|
|
|
+
|
|
|
+// progression sum
|
|
|
+// Подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл for.
|
|
|
+
|
|
|
+// let x = 0;
|
|
|
+// let n = prompt('введи N')
|
|
|
+// for (let i = 1; i < n; i+=3){
|
|
|
+// // x += i;
|
|
|
+// x = (x+i)*n
|
|
|
+// }
|
|
|
+// alert("прогрессия равна: "+x);
|
|
|
+
|
|
|
+
|
|
|
+// chess one line
|
|
|
+// Сформировать строку " # # # # # " с помощью цикла for. Длина строки может быть четной и нечетной, и указывается в одном месте в коде.
|
|
|
+
|
|
|
+// var chess = "";
|
|
|
+// for(var a = 0; a < 12; a++){
|
|
|
+// chess += (a % 2) ? " " : "#";
|
|
|
+// }
|
|
|
+// alert(chess);
|
|
|
+
|
|
|
+// numbers
|
|
|
+// Сформировать строку c помощью вложенных циклов. Для перевода строки используйте \n.
|
|
|
+
|
|
|
+
|
|
|
+// let str = "";
|
|
|
+// for(var i = 0; i < 10; i++){
|
|
|
+// for(var a = 0; a < 10; a++){
|
|
|
+// str += a;
|
|
|
+// }
|
|
|
+// str += "\n";
|
|
|
+// }
|
|
|
+// alert(str);
|
|
|
+
|
|
|
+// // Сформируйте строку с шахматной доской из вложенных циклов. Для перевода строки используйте \n. Код должен поддерживать легкое изменение размеров доски.
|
|
|
+// var chessboard = "";
|
|
|
+// for(var i = 0; i < 10; i++){
|
|
|
+// for(var a = 0; a < 12; a++){
|
|
|
+// chessboard += (a % 2) == (i % 2) ? "." : "#";
|
|
|
+// }
|
|
|
+// chessboard += "\n";
|
|
|
+// }
|
|
|
+// alert(chessboard);
|
|
|
+
|
|
|
+
|
|
|
+// Сформируйте массив из N элементов, содержащий в себе кубы индексов, т. е:
|
|
|
+// [0,1,8,27,64...]
|
|
|
+
|
|
|
+// let arr=[];
|
|
|
+// let i = 0
|
|
|
+// let n=prompt('Введи количество элементов')
|
|
|
+// for(; i<n ; i++){
|
|
|
+// arr.push(i**3)
|
|
|
+// }
|
|
|
+// alert('Кубы индексов '+n + ' элементов: '+ arr)
|
|
|
+
|
|
|
+
|
|
|
+// multiply table
|
|
|
+// C помощью вложенного цикла сформируйте массив массивов "таблица умножения". Для инициализации вложенных массивов используйте
|
|
|
+// arr[i] = [] //в i-тый элемент массива заносится новый пустой массив
|
|
|
+// arr[5][6] должен быть равен, соответственно, 30, arr[7][2] == 14 и так далее.
|
|
|
+
|
|
|
+let arr = [];
|
|
|
+for(let i = 1; i < 10; i++){
|
|
|
+ arr[i] = [];
|
|
|
+for(let j = 1; j <10; j++){
|
|
|
+ arr[i][j] = i * j;
|
|
|
+}
|
|
|
+}
|
|
|
+
|
|
|
+// matrix to html table
|
|
|
+// Сделайте вложенный цикл, который формирует HTML-таблицу в переменной строкового типа из любого двумерного массива. Т. е. если в нём использовать результат работы предыдущего задания, то получится таблица умножения в HTML (Таблица Пифагора)
|
|
|
+
|
|
|
+
|
|
|
+document.write ('<table align="center" bgcolor="fdfdfd" ');
|
|
|
+document.write ('cellspacing="0" cellpadding="4" ');
|
|
|
+document.write ('border="1" >');
|
|
|
+let td, content;
|
|
|
+for (let i = 0; i < 10; i++)
|
|
|
+ {
|
|
|
+ document.write ('<tr>');
|
|
|
+ for (let j = 0; j < 10; j++)
|
|
|
+ {
|
|
|
+ if (i == 0 || j == 0)
|
|
|
+ {
|
|
|
+ td = '<td >';
|
|
|
+ if (i == 0) content = '<b>' + j + '</b>';
|
|
|
+ else if (j == 0) content = '<b>' + i + '</b>';
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ td = '<td >';
|
|
|
+ if (i == j) content = '<b>' + i * j + '</b>';
|
|
|
+ else content = i * j;
|
|
|
+ }
|
|
|
+ document.write (td + content + '</td>');
|
|
|
+ }
|
|
|
+ document.write ('</tr>');
|
|
|
+ }
|
|
|
+
|
|
|
+document.write ('<table>');
|