123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- // while confirm
- // Сделайте цикл с confirm, который продолжается по Отмена и заканчивается по ОК.
- while_confirm: {
- while (!confirm('Do you want to continue?')) {
- continue;
- }
- }
- // array fill
- // Создайте пустой массив и добавляйте в него элементы, пока пользователь не нажмет Отмена в очередном prompt.
- // Используйте push для удобства: push
- array_fill: {
- let arr = [];
- let answer;
- while (answer = prompt('Enter something')) {
- arr.push(answer);
- }
- console.log(arr);
- }
- // array fill nopush
- // Сделайте предыдущее задание, не используя push, а обращаясь к элементам по индексу.
- array_fill_nopush: {
- let arr = [];
- let answer;
- for (let i = 0; i >= 0; i++) {
- answer = prompt('Enter something');
- if (!answer) {
- break;
- }
- arr[i] = answer;
- }
- console.log(arr);
- }
- // infinite probability
- // Создайте бесконечный цикл, который прерывается с помощью конструкции break, когда Math.random() > 0.9.
- // Код должен подсчитывать количество итераций и вывести это число с помощью alert.
- infinite_probability: {
- let i = 0;
- while (true) {
- i++;
- if (Math.random() > 0.9) {
- break;
- }
- }
- alert(i);
- }
- // empty loop
- // Сделайте цикл с prompt, который прерывается по нажатию OK и продолжается по нажатию "Отмена" c пустым телом цикла.
- empty_loop: {
- while (prompt('Enter something') == undefined) { };
- }
- // progression sum
- // Подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл for.
- // Метод Гаусса не применять, наоборот, сделать максимально наивное решение.
- progression_sum: {
- function sum(firstNumber, difference, count) {
- let sum = 0;
- let value = firstNumber;
- for (let i = 1; i <= count; i = i + 1) {
- sum = sum + value;
- value = value + difference;
- }
- alert(sum);
- }
- sum(1, 3, 15);
- }
- // chess one line
- // Сформировать строку " # # # # # " с помощью цикла for. Длина строки может быть четной и нечетной, и
- // указывается в одном месте в коде.
- chess_one_line: {
- function createChessBoardLine(lenght) {
- let str = '';
- for (let i = 0; i < lenght; i++) {
- if (i % 2 == 0) {
- str += ' ';
- } else {
- str += '#';
- }
- }
- console.log(str);
- }
- createChessBoardLine(3);
- createChessBoardLine(6);
- createChessBoardLine(10);
- }
- // numbers
- // Сформировать строку c помощью вложенных циклов. Для перевода строки используйте \n.
- numbers: {
- let str = '';
- for (let i = 0; i < 10; i++) {
- for (let j = 0; j < 10; j++) {
- str += j;
- }
- str += '\n';
- }
- console.log(str);
- }
- // chess
- // Сформируйте строку с шахматной доской из вложенных циклов. Для перевода строки используйте \n. Код должен
- // поддерживать легкое изменение размеров доски.
- chess: {
- function createChessBoard(rowCount, columnCount) {
- let str = '';
- for (let i = 0; i < rowCount; i++) {
- for (let j = 0; j < columnCount; j++) {
- if (i % 2 == 0) {
- j % 2 == 0 ? str += '.' : str += '#';
- } else {
- j % 2 == 0 ? str += '#' : str += '.';
- }
- }
- str += '\n';
- }
- console.log(str);
- }
- createChessBoard(10, 10);
- }
- // cubes
- // Сформируйте массив из N элементов, содержащий в себе кубы индексов, т. е:
- // [0,1,8,27,64...]
- cubes: {
- function createCubeNumbers(n) {
- let arr = [];
- for (let i = 0; i < n; i++) {
- arr.push(i ** 3);
- }
- return arr;
- }
- console.log(createCubeNumbers(4));
- }
- // multiply table
- // C помощью вложенного цикла сформируйте массив массивов "таблица умножения". Для инициализации вложенных
- // массивов используйте arr[i] = [] //в i-тый элемент массива заносится новый пустой массив
- // arr[5][6] должен быть равен, соответственно, 30, arr[7][2] == 14 и так далее.
- multiply_table: {
- let arr = [];
- for (let i = 0; i < 10; i++) {
- arr[i] = [];
- for (let j = 0; j < 10; j++) {
- if (i == 0) {
- arr[0][j] = j;
- } else if (j == 0) {
- arr[i][0] = i;
- } else {
- arr[i][j] = i * j;
- }
- }
- }
- console.log(arr);
- }
- // read array of objects
- // Напишите функцию readArrayOfObjects, которая циклически добавляет в массив объекты, которые ввел пользователь.
- // Пользователь вводит ключи и значения (их в каждом объекте может быть любое количество), используя prompt.
- // Когда пользователь нажимает "Отмена" в окне prompt, ввод объекта заканчивается и объект добавляется в массив.
- // Перед вводом следующего объекта пользователю задается вопрос (используя confirm), хочет ли он продолжить это
- // мучение ввод объектов. При утвердительном ответе, опять работает ввод любюго количества ключей для создания
- // нового объекта. Функция должна возвращать созданный массив с объектами.
- read_array_of_objects: {
- function readArrayOfObjects() {
- let arr = [];
- while (true) {
- arr.push(createObj());
- if (!confirm('Do you want to continue?')) {
- break;
- }
- }
- return arr;
- }
- function createObj() {
- let obj = {};
- while (true) {
- let key = prompt('Enter a key');
- if (key == undefined) {
- break;
- }
- let value = prompt('Enter a value');
- obj[key] = value;
- }
- return obj;
- }
- console.log(readArrayOfObjects());
- }
- // ромбик
- // Сформировать следующую строку - ромбик:
- generate_rhombus: {
- function generateRow(rhombusLength, rowLength) {
- let row = '';
- const emptyCellsLength = (rowLength - rhombusLength) / 2;
- for (let i = 0; i < rowLength; i++) {
- row += i < emptyCellsLength || i >= emptyCellsLength + rhombusLength ? '.' : '#';
- }
- return row;
- }
- function generateRhombus(size) {
- let rhombus = '';
- for (let i = 0; i < size; i++) {
- let center = Math.floor(size / 2);
- const halfWidth = i <= center ? i : size - i - 1;
- const width = halfWidth * 2 + 1;
- rhombus += generateRow(width, size) + '\n';
- }
- return rhombus;
- }
- console.log(generateRhombus(11));
- }
|