index.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. // ДЗ: Циклы
  2. // задание 1 while confirm
  3. {
  4. while (true) {
  5. let result = confirm('Продолжить?');
  6. if (result) {
  7. // Выполнить действия, когда пользователь нажмет "ОК"
  8. break;
  9. }
  10. // Выполнить действия, когда пользователь нажмет "Отмена"
  11. }
  12. }
  13. // задание 2 array fill
  14. {
  15. let items = [];
  16. while (true) {
  17. let item = prompt('Введите элемент массива:');
  18. if (item === null) {
  19. break;
  20. }
  21. items.push(item);
  22. }
  23. }
  24. // задание 3 array fill nopush
  25. {
  26. let items = [];
  27. let i = 0;
  28. while (true) {
  29. let item = prompt('Введите элемент массива:');
  30. if (item === null) {
  31. break;
  32. }
  33. items[i] = item;
  34. i++;
  35. }
  36. }
  37. // задание 4 infinite probability
  38. {
  39. let count = 0;
  40. while (true) {
  41. count++;
  42. if (Math.random() > 0.9) {
  43. break;
  44. }
  45. }
  46. alert(`Цикл выполнился ${count} раз`);
  47. }
  48. // задание 5 empty loop
  49. {
  50. while (true) {
  51. let result = prompt('Продолжить?');
  52. if (result === null) {
  53. continue;
  54. }
  55. // Выполнить действия, когда пользователь нажмет "ОК"
  56. break;
  57. }
  58. }
  59. // задание 6 progression sum
  60. {
  61. let N = 10;
  62. let sum = 0;
  63. for (let i = 1; i <= N; i += 3) {
  64. sum += i;
  65. }
  66. console.log(sum); // 25
  67. }
  68. // задание 7 chess one line
  69. {
  70. let length = 10;
  71. let str = '';
  72. for (let i = 0; i < length; i++) {
  73. if (i % 2 === 0) {
  74. str += ' ';
  75. } else {
  76. str += '#';
  77. }
  78. }
  79. console.log(str); // " # # # # # "
  80. }
  81. // задание 8 numbers
  82. {
  83. let str = '';
  84. for (let i = 0; i < 10; i++) {
  85. for (let j = 0; j < 10; j++) {
  86. str += j;
  87. }
  88. str += '\n';
  89. }
  90. console.log(str);
  91. }
  92. // задание 9 chess
  93. {
  94. let size = 8;
  95. let str = '';
  96. for (let i = 0; i < size; i++) {
  97. for (let j = 0; j < size; j++) {
  98. if ((i + j) % 2 === 0) {
  99. str += '.';
  100. } else {
  101. str += '#';
  102. }
  103. }
  104. str += '\n';
  105. }
  106. console.log(str);
  107. }
  108. // задание 10 cubes
  109. {
  110. let n = 5;
  111. let arr = [];
  112. for (let i = 0; i < n; i++) {
  113. arr.push(i ** 3);
  114. }
  115. console.log(arr); // [0, 1, 8, 27, 64]
  116. }
  117. // задание 11 multiply table
  118. {
  119. let arr = [];
  120. for (let i = 0; i <= 10; i++) {
  121. arr[i] = [];
  122. for (let j = 0; j <= 10; j++) {
  123. arr[i][j] = i * j;
  124. }
  125. }
  126. console.log(arr);
  127. }
  128. // задание 12 read array of objects
  129. {
  130. function readArrayOfObjects() {
  131. let objects = [];
  132. while (true) {
  133. let obj = {};
  134. while (true) {
  135. let key = prompt('Введите ключ:');
  136. if (key === null) break;
  137. let value = prompt('Введите значение:');
  138. if (value === null) break;
  139. obj[key] = value;
  140. }
  141. objects.push(obj);
  142. if (!confirm('Хотите ввести еще один объект?')) break;
  143. }
  144. return objects;
  145. }
  146. }
  147. // задание 13 ромбик
  148. {
  149. let size = 10;
  150. let middle = Math.floor(size / 2);
  151. for (let i = 0; i < size; i++) {
  152. let row = '';
  153. for (let j = 0; j < size; j++) {
  154. if (Math.abs(middle - i) + Math.abs(middle - j) <= middle) {
  155. row += '#';
  156. } else {
  157. row += '.';
  158. }
  159. }
  160. console.log(row);
  161. }
  162. }
  163. // задание 14 DOM: multiply table
  164. {
  165. let table = document.createElement('table');
  166. for (let i = 1; i <= 10; i++) {
  167. let row = document.createElement('tr');
  168. for (let j = 1; j <= 10; j++) {
  169. let cell = document.createElement('td');
  170. cell.innerText = i * j;
  171. row.appendChild(cell);
  172. }
  173. table.appendChild(row);
  174. }
  175. document.body.appendChild(table);
  176. }
  177. // задание 15 DOM: highlight cell
  178. {
  179. let table = document.createElement('table');
  180. for (let i = 1; i <= 10; i++) {
  181. let row = document.createElement('tr');
  182. for (let j = 1; j <= 10; j++) {
  183. let cell = document.createElement('td');
  184. cell.innerText = i * j;
  185. cell.addEventListener('mouseover', function () {
  186. this.style.backgroundColor = 'yellow';
  187. });
  188. cell.addEventListener('mouseout', function () {
  189. this.style.backgroundColor = '';
  190. });
  191. row.appendChild(cell);
  192. }
  193. table.appendChild(row);
  194. }
  195. document.body.appendChild(table);
  196. }
  197. // задание 16 DOM: Highlight cross
  198. {
  199. const table = document.getElementById('table');
  200. table.addEventListener('mouseover', highlight);
  201. table.addEventListener('mouseout', unhighlight);
  202. function highlight(event) {
  203. const td = event.target;
  204. const tr = td.parentElement;
  205. const colIndex = td.cellIndex;
  206. const rowIndex = tr.rowIndex;
  207. // Подсветить ячейку
  208. td.style.backgroundColor = 'yellow';
  209. // Подсветить строку
  210. for (let i = 0; i < tr.children.length; i++) {
  211. tr.children[i].style.backgroundColor = 'yellow';
  212. }
  213. // Подсветить столбец
  214. for (let i = 0; i < table.rows.length; i++) {
  215. table.rows[i].children[colIndex].style.backgroundColor = 'yellow';
  216. }
  217. }
  218. function unhighlight(event) {
  219. const td = event.target;
  220. const tr = td.parentElement;
  221. const colIndex = td.cellIndex;
  222. const rowIndex = tr.rowIndex;
  223. // Снять подсветку с ячейки
  224. td.style.backgroundColor = '';
  225. // Снять подсветку со строки
  226. for (let i = 0; i < tr.children.length; i++) {
  227. tr.children[i].style.backgroundColor = '';
  228. }
  229. // Снять подсветку со столбца
  230. for (let i = 0; i < table.rows.length; i++) {
  231. table.rows[i].children[colIndex].style.backgroundColor = '';
  232. }
  233. }
  234. }