Timkor

centeredThing

Jul 31st, 2021 (edited)
806
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //https://zero.p2p.shpp.me/tasks/4_2_centered_thing.html
  2. // Інна Заїка
  3. let item;// елемент
  4. let numbers = [];//масив
  5. let maxCount = 20;// максимальна кількість введених чисел
  6.  
  7. let maxWidth = 0;// набільше число серед введених // в контексті єтапу прийому значень, це макс. число, а в контектсі виводу можна сказати ширина, вважаю тут вдаліше дотриматися контексту поточної задачі і назвати maxNumber
  8. for (let i = 0; i < maxCount; i++) {// питаю числа
  9.     let oddNumber = +prompt("Введіть число"); // таке іменування тут вважаю вдалішим за просто number, бо допомагає розуміти код
  10.     if (oddNumber == 0) {// якщо нуль,цикл переривається
  11.         break;
  12.     }
  13.  
  14.     if (maxWidth < oddNumber) {// знаходимо максимальне число
  15.         maxWidth = oddNumber;
  16.     }
  17.  
  18.     numbers[i] = oddNumber;// добавляємо число у масив
  19. }
  20.  
  21. let starChar = '*';
  22. let spaceChar = ' ';
  23. for (let i = 0; i < numbers.length; i++) {
  24.     // кількість зірок довірнює числу з масиву, яке вводе людина
  25.     let starsCount = numbers[i];
  26.     // кількість пробілів перед зіркою для відцентровування
  27.     let spacesCount = (maxWidth - starsCount) / 2;
  28.     // вивід пробілів
  29.     for (let j = 0; j < spacesCount; j++) {
  30.         console.put(spaceChar);
  31.     }
  32.     // вивід зірок
  33.     for (let j = 0; j < starsCount; j++) {
  34.         console.put(starChar);
  35.     }
  36.     // перехід на новий рядок
  37.     console.log();
  38. }
  39. /* мені до вподоби ваше рішення, бо воно поетапне, зрозуміле, логічне. Етап введення даних та обчислення максимального об'єднані в одному блокові коду - вважаю тут це норм. Ідеально на мою думку було б розділити навіть і ці два логічні етапи. На етапі прийняття даних можна обійтися без брейку - це не обов'язково, є така думка, що брейк та контінью можуть свдчити про неідеальний алгоритм, хоча інколи вони навпакаи дуже допомагають. Ще одна думка стосовно вибору між вайл та фо - цикли повністю взаємозамінні, коли відома кількість ітерацій - фор, коли точна кількість не відома а залежить від якоїчь умови - вайл. ПОдібні думки - для міркування. Задачан виконана добре.
  40. Гарного коду!*/
RAW Paste Data