Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как работает код? (https://javascript.ru/forum/misc/80385-kak-rabotaet-kod.html)

Zay 29.05.2020 15:48

Как работает код?
 
function showPrimes(n) {
for ( let i=2; i<n; i++) {
If (! isPrime (i)) continue;
alert (i);
}
}
function isPrime (n) {
for (let i=2; i<n; i++) {
If ( n% i ==0) return false;
}
return true;
}

Объясните пожалуйста бывалые по шагам , как работает и что делает код.
}

micscr 30.05.2020 07:36

А вы в переводчик закиньте слово prime и увидите что это "простое число".

Вот их код и находит.

Zay 30.05.2020 07:43

Здесь форум переводчиков? Я спрашиваю о последовательности дейсвий, неужели кроме глупости нечего сказать?

micscr 30.05.2020 07:58

Цитата:

Сообщение от Zay (Сообщение 525177)
Здесь форум переводчиков? Я спрашиваю о последовательности дейсвий, неужели кроме глупости нечего сказать?

я тебе ответил что делает этот код, т.к. ты этого не знал:
Цитата:

Сообщение от Zay (Сообщение 525177)
что делает код

А насчет как, ну если ты не способен сам изучить циклы, условные выражения и операторы, то ты не в ту профессию сунулся ;)

Zay 30.05.2020 22:18

Капец умник, может мне уже 7-ой десяток... ты, тебе...если нечего сказать, то не стоит в разговор влазить, Вы же не думаете, что это форум только для таких как Вы...

Aetae 30.05.2020 22:34

Zay, а чем ты заслужил обращение на "вы"? Тупым, кривым и не конкретным вопросом? 70 тебе лет или 7 - мы не в Китае, чтоб уважать только за прожитые годы.
Проситель тут ты, кто тебе помогать будет если ты ещё и огрызаешься?

рони 30.05.2020 22:40

Zay,
первая функция показывает число в зависимости от условия, вторая функция проверяет является ли число простым и возвращает в условие true или false, если число простое (true) оно показывается alert (i);.

примерно так ... пиши возле каждой строки как вы сами поняли что это, если есть вопросы.
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Zay 31.05.2020 06:20

Спасибо Рони, не то , что некоторые....

Zay 31.05.2020 06:27

Рони я и раньше понимал, что код выводит простые числа, просто не сразу сообразил, что код не дописан, я прав? Меня как то это сбило, код в книге взял. У меня ещё голова не очень перестроилась на алгоритмы всякие, я всю жизнь кузнецом работал)

рони 31.05.2020 07:20

Zay,
код полностью функционален, но нужно исправить If на if (javascript регистрозависимый язык) и убрать последнюю фигурную скобку.
<script>
function showPrimes(n) {
for ( let i=2; i<n; i++) {
if (!isPrime(i)) continue;
alert(i);
}
}

function isPrime (n) {
for (let i=2; i<n; i++) {
if ( n% i ==0) return false;
}
return true;
}
showPrimes(12);
  </script>

рони 31.05.2020 07:34

Цитата:

Сообщение от Zay
не то , что некоторые....

совет тем не менее верный
Цитата:

Сообщение от micscr
изучить циклы, условные выражения и операторы

Учебник

join 31.05.2020 10:07

Серьезно? Кузнецом трудился?

// функция showPrimes: фильтрует числа по модулю
function showPrimes(n) { 
  var Ar=[]; // Ar - массив. Ar добавлен для посмотреть процесса фильтрации чисел
  for ( let i=2; i<n; i++) { // цикл for: перебирает числа от i до n-1
    if( !isPrime(i) ) console.log(i); // <- if(!isPrime(i)): отфильтрует числа 4,6,8,9,10
    if ( !isPrime(i) ) continue;// !isPrime() фильтрует числа при условии if (!(n%i == 0))
    Ar.push(i); // <- Вставим итоговые числа в массив Ar=[2,3,5,7,11]
    console.log(Ar); // в консоли массив результатов [2, 3, 5, 7, 11]
  }
}

// функция isPrime: выполняет проверку чисел по модулю
function isPrime (n) {
  for (let i=2; i<n; i++) { // цикл for: перебирает числа от i до n-1
    //console.log( "[n="+ n +";"+ "i="+ i + "]("+n+"%"+i+" == "+(n%i)+") -> "+ (n%i) );// смотреть процесс фильтрации
    // вызвать консоль в браузере: `ctrl + shift + i`
    if (n%i == 0) return false; //  функция возвращает false, если деление по модулю равно нулю (n%i == 0)
  }
  // функция возвращает true, если деление по модулю не равно нулю (n%i != 0)
  return true;
}

showPrimes(12);
/*
Смысл таких примеров при изучении программирования, алгоритмов - не вполне ясен. Примитивные примеры, на подобии этого, не помогут делать-изменять магазины, новостные сайты и тд за которые платят деньги. Там просто негде применять подобные навыки =)
*/

Zay 31.05.2020 14:56

Вы же сделали вызов функции, так как я его не увидел в своём коде, то немного растерялся, думал что может я что то не понял, ... подумал что возможно вызов иногда не нужен, в принципе мой вопрос в этом и заключался. Спросить то не где в тот момент когда читаешь, ... а так теперь всё на своих пестах, спасибо большое Вам.

Zay 31.05.2020 14:57

И до сих пор тружусь)


Часовой пояс GMT +3, время: 02:53.