Jump to content

denis_alekss

User
  • Posts

    35
  • Joined

  • Last visited

Everything posted by denis_alekss

  1. Я там прочитал и вроде все как проделал, выделил синим на фото начало функции и конец, не могу понять какой клавишей проходится пошагово, чтобы видеть как проходит цикл пошагово.
  2. Как пошагово тестировать этот цикл в хром или Мозиле? Вы писали вроде в инспектор, но непонятно как в нем тестировать, чтобы пошагово проходило по циклу.
  3. Спасибо, наконец-то разобрался в двойном цикле, а их может быть например 4 вложенных или 5 если решается масштабная задача?
  4. Вроде разобрался, но прочитайте в самом конце вопрос и дайте пожалуйста ответ там на вопрос. К примеру пользователь первоначально в вводит цифру 10 И мы нажимаем кнопку жми. Сейчас напишу как я понял, как работает двойной цикл for. nextPrime: for(let i = 2; i<=rez; i++){ for( let j = 2; j < i; j++){ if(i%j ==0) continue nextPrime; } document.write(i+"<br>"); } 1. В самом начале во Внутренним цикле for идет сравнение 2<2? (i=2, j=2) нет 2 не меньше двух, Внутренний цикл for не выполняется, так как условие ложь и идёт переход со внутреннего во внешний цикл for где выполняется инструкция с выводом document.write(i+"<br>"); Выводим в конечный результат Первую цифру 2 на экран. <————————————————————————————————--> 2. i увеличивается на один во внешнем цикле for, i =3, Далее во внутреннем цикле for идёт сравнение 2<3? (j=2, i=3) Да, 2 меньше трех и выполняется условие if Во внутреннем цикле. 3/2 дает остаток 0? Нет, не дает, Идёт возврат снова во внутренний цикл где (j=3, i=3), 3<3? Нет, не меньше, Внутренний Цикл for не выполняется Идёт переход во внешний цикл For в котором выполняется инструкция document.write(i+"<br>"); Выводим в конечный результат цифру 3 на экран. <————————————————————————————————--> 3.i увеличивается на один во внешнем цикле for, i =4, Далее во внутреннем цикле for идёт сравнение 2<4? (j=2, i=4) Да, 2 меньше 4 и выполняется условие if Во внутреннем цикле. 4/2 дает остаток 0 -это истинна и идет переход к метке nextPrimе. Запускается внешний цикл снова, увеличивается i на один во внешнем цикле for и i =5. Далее во внутреннем цикле for идёт сравнение 2<5? (j=2, i=5), Да, меньше, выполняем if во внутреннем цикле, if дает ложь. Идёт переход снова во внутренний цикл for, j увеличивается на 1 (j=3, i=5). 3<5? Да, снова выполняется условие if, 5/3 дает ложь, идет снова возврат во внутренний цикл for, (j=4, i=5), Выполняется снова if, 5/4 дает ложь, снова возврат во внутренний цикл (j=5, i=5) 5<5, Нет не меньше идёт переход во внешний цикл for где выводится через document.write(i+"<br>"); результат на экран Имеем уже на данный момент 2,3, 5 на выводе. <————————————————————————————————--> 4. i увеличивается на один во внешнем цикле for, i =6, Далее во внутреннем цикле for идёт сравнение 2<6? (j=2, i=6) Да, 2 меньше 6 и выполняется условие if Во внутреннем цикле. 6/2 дает остаток 0, идете переход к метке. Снова запускается внешний цикл for, уже i=7. Во внутреннем цикле for Идёт сравнение 2<7, да. Условие иф дает ложь при 7/2, происходит возврат во внутренний цикл for (j=3, i=7) Условие иф дает ложь при 7/3, происходит возврат во внутренний цикл for (j=4, i=7) Условие иф дает ложь при 7/4, происходит возврат во внутренний цикл for (j=5, i=7) , Условие иф дает ложь при 7/5, происходит возврат во внутренний цикл for (j=6, i=7) Условие иф дает ложь при 7/6, происходит возврат во внутренний цикл for (j=7, i=7). 7<7? Нет, Идет переход во внешний цикл for в котором document.write выводит на экран цифру семь. <————————————————————————————————--> 5. i увеличивается на один во внешнем цикле for, i =8, Далее во внутреннем цикле for идёт сравнение 2<8? (j=2, i=8) Да, 2 меньше 8 и выполняется условие if во внутреннем цикле. 8/2 дает остаток 0 -это истинна и идет переход к метке nextPrimе. Во внутреннем цикле for Идёт сравнение 2<9, да, выполняется if 9/2 дает ложь, далее j++, идет возврат во внутренний цикл, j увеличивается на 1.(j=3, i = 9). 3<9? Да, выполняется условие if. 9/3 условие истинно и идет переход к метке, а затем i увеличивается с 9 на 10 во внешнем цикле for. КАКИМ ОБРАЗОМ ВЫВОДИТСЯ 9?
  5. Спасибо большое за подробное изъяснение, вопрос про внутренний цикл FOR. Почему j начинает меняться на j++ только тогда когда уже i =5, а не за каждую итерацию? Вы пишите: «, j становится равным 3 », а затем при следующей итерации во внутренем цикле j=2 и 4 делится на 2 ( хотя было 3 ). Почему j за следующей итерацией, после того как j было 3 стало 2? Важный момент, я про это: Здесь мы получаем false, возвращаемся в for( let j = 2; j < i; j++) где срабатывает j++ То есть если условие оказалось ложью мы возвращаемся снова во внутренний цикл, второй раз? Внутренний цикл запускается 2 раза если условие во внутреннем цикле for оказалось ложью? То есть происходит выход из внутреннего цикла и document.write(i+"<br>"); пропускается когда условие true? Ничего не выводится я пробовал сохранять результат в InnerHTML,а затем выводит ссылаясь на getElementById не сохраняется весь вывод всех итераций, тут наверное массив нужно создавать
  6. Натуральное число, большее 1, называется простым, если оно ни на что не делится, кроме себя и 1. Как я понял, например если взять число 4, оно не простое, оно делится и на себя и на 1 и на четное 2. Теперь если глянуть на код как он работает. 1-ая итерация цикла: Идет проверка на остаток числа 3/2= есть остаток от деления. Алерт должен вывести 3 а не 2, но почему вывод вначале двйоки произошел? Ведь i = 3 за первым прогоном после i++ он стал 3 2-ая итерация цикла: Метка перешла на начало цикла и пошла проверка 4/3? Объясните, как происходит первая и вторая итерация в этом коде цифрами, что на что делится и как выводится очередность? Я модернизировал код с кнопкой, для удобности, но как происходит проверка при итерациях не понял. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Тест</title> <script> function fanta(){ let rez = one.elements.number.value; nextPrime: for(let i = 2; i<=rez; i++){ for( let j = 2; j < i; j++){ if(i%j ==0) continue nextPrime; } document.write(i+"<br>"); } } </script> </head> <body> <form id="one"> <input type="text" name="number" > <input type="submit" onClick="fanta()" value="Жми"> </form> <p id='result'></p> </body> </html>
  7. Есть задача: Вывести простые числа важность: 3 Натуральное число, большее 1, называется простым, если оно ни на что не делится, кроме себя и 1. Другими словами, n > 1 – простое, если при его делении на любое число кроме 1 и n есть остаток. Например, 5 это простое число, оно не может быть разделено без остатка на 2, 3 и 4. Напишите код, который выводит все простые числа из интервала от 2 до n. Для n = 10 результат должен быть 2,3,5,7. P.S. Код также должен легко модифицироваться для любых других интервалов. Вот решение задачи вложенным циклом FOR let n = 10; nextPrime: for (let i = 2; i <= n; i++) { // Для всех i... for (let j = 2; j < i; j++) { // проверить, делится ли число.. if (i % j == 0) continue nextPrime; // не подходит, берём следующее } alert( i ); // простое число } Правильно я понимаю? Речь про строку if (i % j == 0) continue nextPrime; За первой итерацией будет проверяться остаток от деления 3/2? i до того как дойдет до второго внутреннего for из-за i++ станет 3, хотя он стартовал с 2 и затем будет в If проверяться остаток от деления 3/2 (три на два за первым прогоном цикла)?
  8. Как запустить форму при нажатии на клавишу ENTER? Не реагирует на ENTER, после ввода в текстовое поле. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Тег input, атрибут type</title> <script> function fanta(){ if(one.elements.number.value == 5) alert("Все правильно!") document.getElementById('result').innerHTML = "Неправильно, введите в полее цифру 5" } </script> </head> <body> <form id="one"> <input type="text" name="number"> <input type="button" value="Жми" onClick="fanta()"> </form> <p id='result'></p> </body> </html>
  9. Ваш пример выше неплохой, но он выделит первую букву каждого предложения, а мне нужно именно слова Новье
  10. Как первую букву в слове "Новье" выделить жирным штифтом и цветом? <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Псевдоэлементы</title> <style> P.new:after { content: " - Новьё!"; /* Добавляем после текста абзаца */ } </style> </head> <body> <p class="new">Ловля льва в пустыне с помощью метода золотого сечения.</p> <p>Метод ловли льва простым перебором.</p> </body> </html>
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy