Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let numArr = [];
- numArr.length = 20;
- let biggestRow = 0;
- let someNum;// для того щоб зайти в вайл потрібне значення не нуль, краще явно ініціалізувати якимось значенням, наприклад мінус одиничкой. Хоча в js все спрацює коррктно, бо змінна буде мати значення undefined, та в java буде дещо інакше. Загальне правило таке: явне краще за не явне.
- let i = 0; //змінні, особливо що використовуються в одному місті, краще оголошувати якомога ближче до місця використання.
- let rows = 0;
- let spaces;
- let stars;
- // користувач все ж має змогу ввести більше 20 значень, незважаючи на заданий вами розмір массиву. В js массиви дінамічні.
- //є цикл do .. while. він краще підходить якщо щось треба виконати як мінімум один раз
- while (someNum !== 0) { // рекомендація щодо "проміжної змінної" була викликана бажанням уникнути попадання невалидного значення (ще до перевірки) в масив, це сувора банкоматна перестраховка.) Тут все добре, просто хочу щоб ви знали, що прямо в масив приймати від користувача дані теж можна, особливо якщо немає проміжних перевірок валідності.
- someNum = parseInt(prompt("Enter your number"));
- numArr[i] = someNum; // можна "по дорослому" написати так: numArr[i++] = someNum;
- i++; // якщо "по дорослому" написати, то цей рядок зайвий.)
- }
- for (let k = 0; k < numArr.length; k++) {
- if (biggestRow < numArr[k]) { // все правильно зроблено, але просто fyi: блок визначення максимального можна вставити в цикл введення значень від користувача, це буде не коректно з точки зору декомпозиції, код буде складніше читатися, зараз зроблено краще. Але про таку можливість все одно корисно знати.
- biggestRow = numArr[k];
- }
- } console.log(biggestRow); // краще в окремому рядку. після закритої дужки не варто писати, блоки не так буде видно.
- for (rows; rows < numArr.length; rows++) { // for (; rows < numArr.length; rows++) - якщо ініц. не потрібна то можно так.
- for (spaces = ((biggestRow - numArr[rows])/2); spaces > 0; spaces-- ) { // якби зробили навпаки, від нуля до формули, то було б куди менш ефективно, тому що формула вираховувалася б на кожній ітерації, а так лише одного разу. Хороше рішення.
- console.put(" ");
- }
- for (stars = numArr[rows]; stars > 0; stars--) {
- console.put("*");
- }
- console.log();
- }
- /*
- користувач вводить непарні числа, вони
- записуються в масив. Наступний цикл порівнює
- елементи масива і виводить найбільше в змінну
- "найдовший рядок". Далі ще один цикл, перебирає
- числа з масива і виводить зірочки, а центруються
- вони відносно найдовшого рядка за допомогою
- пробілів.
- */
- // Гарна робота. Гарного коду!)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement