Advertisement
Timkor

maxOfEven

Feb 5th, 2021
1,010
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script src="https://zero.p2p.shpp.me/console.js"></script>
  2. <script>
  3.  /* Задача про найбільше число.
  4.    знайти найбільше число із чисел,
  5.    які вводить користувач (припинити приймати числа, коли він введе 0)
  6.    не враховувати непарні числа
  7.    (прочитати про команду взяття залишку від ділення - %)
  8.    */
  9.  
  10.    let flag = true //подумала что будет лучше с флагом потому что его значение потом меняется.  
  11. /* ви праві, такі булеві змінні мають загальну назву прапори, і кожній можна давати зручне іменування,
  12. для таких змінних звичні іменування починаються з is.. has.. etc. У вашому коді може іменуватися isZeroEntered або isExit та тоді початкове значення буде false  - прапор спущений, а умова буде while (!isExitRequired)*/
  13.  
  14. let i = 0 // наче не використовуєте, є таке правило, щоб змінні об'являти якомога ближче до місця їх використання.
  15. let numberArr = [] // масиви краще іменувати у множині по вмісту: numbers
  16. let maxElement = 0
  17.  
  18. while (flag) {
  19.     let number = +prompt("Введите число") // Ввод пользователем чисел в цикле
  20.  
  21.     if (number === 0) {
  22.         flag = false
  23.  
  24.     }
  25.     if (number % 2 === 0) {
  26.         numberArr[i] = number
  27.         i++
  28.     }
  29.  
  30. }
  31.  
  32.  
  33. console.log("Длина массива:" + numberArr.length)
  34.  
  35. for (let i = 0; i <= numberArr.length - 1; i++) { // for (let i = 0; i < numberArr.length; i++)
  36.     console.log(numberArr[i])                    //вывод элементов массива
  37.     if (numberArr[i] > numberArr[i - 1]) { // тут треба порівнювати з максимальним, а не з попереднім.
  38.         maxElement = numberArr[i]
  39.     }
  40. }
  41.  
  42.  
  43. console.log("Максимальное число: " + maxElement)
  44.  
  45. //Вопросы:
  46. //1. Бесконечные циклы? Применяются они или нет ? буває, але ваш не належить до таких. while (true) - це бескінечний.
  47. // Если нет то какое условие можно было бы поставить в данном цикле? Или мой вариант вполне реален?
  48. /* для такої умови, коли треба щось вводити і від цього залежить чи виходити з циклу, зручно використати цикл do .. while
  49. Його відмінність в тому, що його тіло завжди виконається щонайменш одного разу, і в ньому можна приймати ввод від користувача, щось таке */
  50. let userEntered;
  51. do {
  52.     userEntered = prompt('Enter smth');
  53. } while (userEntered !== '0')
  54.  
  55. //Я подумала что можно числа которые вводит пользователь, записывать в массив, -  можна, якщо вони потрібні надалі.
  56. // и уже в массиве искать максимальное число, /** можна і так, а можна і одразу при вводі, для цього треба лише порівняти нове із максимальним, і якщо воно більше, то присвоїти його максимальному. */
  57. //для этого я использовала другой цикл. Уместно ли данное решение или все же надо все в одном цикле?
  58. // В одном цикле не выводилось максимальное число корректно. // справа у коді, є помилка.
  59. //что еще добавить в код для корректности? или убрать? или изменить? - вам вирішувати.))
  60.  
  61. < /script>
  62.  
  63. // Гарного коду.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement