Advertisement
Timkor

centeredThingByOlya

Nov 3rd, 2020 (edited)
1,985
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let numArr = [];
  2. numArr.length = 20;
  3. let biggestRow = 0;
  4. let someNum;// для того щоб зайти в вайл потрібне значення не нуль, краще явно ініціалізувати якимось значенням, наприклад мінус одиничкой. Хоча в js все спрацює коррктно, бо змінна буде мати значення undefined, та в java буде дещо інакше. Загальне правило таке: явне краще за не явне.
  5. let i = 0; //змінні, особливо що використовуються в одному місті, краще оголошувати якомога ближче до місця використання.
  6. let rows = 0;
  7. let spaces;
  8. let stars;
  9.  
  10. // користувач все ж має змогу ввести більше 20 значень, незважаючи на заданий вами розмір массиву. В js массиви дінамічні.
  11.  
  12. //є цикл do .. while. він краще підходить якщо щось треба виконати як мінімум один раз
  13. while (someNum !== 0) { // рекомендація щодо "проміжної змінної" була викликана бажанням уникнути попадання невалидного значення (ще до перевірки) в масив, це сувора банкоматна перестраховка.) Тут все добре, просто хочу щоб ви знали, що прямо в масив приймати від користувача дані теж можна, особливо якщо немає проміжних перевірок валідності.
  14.     someNum = parseInt(prompt("Enter your number"));
  15.     numArr[i] = someNum; // можна "по дорослому" написати так: numArr[i++] = someNum;
  16.     i++; // якщо "по дорослому" написати, то цей рядок зайвий.)
  17. }
  18.  
  19.  
  20. for (let k = 0; k < numArr.length; k++) {
  21.     if (biggestRow < numArr[k]) { // все правильно зроблено, але просто fyi: блок визначення максимального можна вставити в цикл введення значень від користувача, це буде не коректно з точки зору декомпозиції, код буде складніше читатися, зараз зроблено краще. Але про таку можливість все одно корисно знати.
  22.         biggestRow = numArr[k];
  23.     }
  24. } console.log(biggestRow); // краще в окремому рядку. після закритої дужки не варто писати, блоки не так буде видно.
  25.  
  26. for (rows; rows < numArr.length; rows++) { // for (; rows < numArr.length; rows++) - якщо ініц. не потрібна то можно так.
  27.     for (spaces = ((biggestRow - numArr[rows])/2); spaces > 0; spaces-- ) { // якби зробили навпаки, від нуля до формули, то було б куди менш ефективно, тому що формула вираховувалася б на кожній ітерації, а так лише одного разу. Хороше рішення.
  28.         console.put(" ");
  29.     }
  30.     for (stars = numArr[rows]; stars > 0; stars--) {
  31.         console.put("*");
  32.     }
  33.     console.log();
  34. }
  35.  
  36. /*
  37. користувач вводить непарні числа, вони
  38. записуються в масив. Наступний цикл порівнює
  39. елементи масива і виводить найбільше в змінну
  40. "найдовший рядок". Далі ще один цикл, перебирає
  41. числа з масива і виводить зірочки, а центруються
  42. вони відносно найдовшого рядка за допомогою
  43. пробілів.
  44. */
  45. // Гарна робота. Гарного коду!)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement