Timkor

square

Mar 11th, 2021
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Задача. Квадратик із зірочок.
  2. Вивести на екран квадратик із зірочок, розмір квадрата задається юзером.
  3.  
  4. vvedi razmer: 4
  5. ****
  6. ****
  7. ****
  8. ****
  9. - юзати for
  10. - юзати while
  11. */
  12.  
  13. // РІШЕННЯ
  14.  
  15. // юзаю for
  16.  
  17. // 1 вариант - сырой (не стоит проверять); - добре, що вказали це. Є правило що до зайвого коду, закоментованого чи ні :
  18. /* його не повинно бути якщо ви передаєте код комусь, або долучаєте його до проекту, тощо,
  19. звісно у вашой особсистої копії можете зберігати , але там він буде заважати і вам.) */
  20.  
  21. let starsNum = prompt('введи размер');
  22. // let stars = '*';
  23.  
  24. for (let i = 1; i <= starsNum; i++) {
  25.     for (let j = 1; j <= starsNum; j++) {
  26.         console.put('*' + '*' + '*' + '*' + '*' + '*' + '*' + '*\n');
  27.     }
  28. }
  29.  
  30. // 2 вариант (немного лучше, но не то) - а цей варіант вже рев'ювати чи ще ні? .. краще б ні...
  31. let starsNum = prompt('введи размер');
  32. let stars = '* '; /* іменування змінної має відповідати змісту, якщо це просто символ зірка, то star можна, чи starSymb.
  33. Але якщо рядок з декількома зірками - то краще starsLine (рядок із зірок) . Це тому, що у множині іменубть масиви та інші штуки,
  34. де багато (декілька) елементів.*/
  35.  
  36. for (let i = 1; i <= starsNum; i++) {
  37.     for (let j = 1; j <= starsNum; j++) { // тут j це число, спочатку 1, далі на кожній ітераціїї збільшуємо на одиницю
  38.         j = stars; // тут ви присваюєте до j строку, що містить зірку та пробіл. тобто число лічильник, що від нього залежить цикл ми втратили.
  39.         console.put(j + j + j + j); // как по-другому указать j, незная заранее размер? стоит ли это делать?  /* а що ви тут робите?*/
  40.         j = parseInt(j); // тепер у j ви намагаєтесь покласти число перетворене з зірки з пробілом?! яке воно має бути ? ))
  41.     }
  42.     console.put('\n'); // це команда вивести у рядок (тобто не переводячи строку) символ переведення строки (тобто перевести рстроку)
  43.     // можна просто console.log() - це перевести рядок нічого не виводячи (тільки перевести рядок)
  44. }
  45. /* ох, ну чому зі всього що я вам радив ви обрали саме те, що супроводжувалось коментарем:
  46.         "насправді спосіб не дуже, скоріше за все я марно його згадав. Не варто втрачати час." ЧОМУ!?
  47.  я знаю чому - бо він чарівний і схожий на магію, він працює і не зрозуміло як, а значит не треба думати над ним.
  48.  
  49.  мені дуже жаль, що я надав вам подібний варіант, заплутав вас виходить. але ж то стосувалося іншої задачі, хіба ні?
  50.  і перед тим ми розглянули з вами нормальне рішення, де все було ок, і лише одна претензія до іменування змінної coma.
  51.  Ось той поганий, глупий, недоцільний варіант:
  52.  for (let i = 1; i <= numberN; i++) { // тут і - змінна-лічильник що містить число, і інкрементується
  53.     if (i < numberN) {
  54.         i = i + ', '; // було число - стала строка.
  55.     }
  56.     console.put(i);
  57.     i = parseInt(i); // намагається знов зробити число із строки.
  58. }
  59.  якщо поміркувати, або залогувати, то  можна бачити яким було значення змінної i : 1, "1, ", 1, потімм 2, "2, ", 2 і т.д.
  60.  Тобто до числа ми переводили строкову змінну яка містила число з доданими до нього комою і пробілом,  таку строку
  61.  функція parseInt може перевести до числа. Знаєте як? Якщо ні то можна спробувати та погуглити про parseInt.
  62.  Але у вашому коді ви намагаєтеся перевести до числа строку що містить зірку та пробіл, звісно це не можливо, тому
  63.  parseInt на такий аргумент поверне NaN (не число - not a number), після того цикл фор скінчиться, бо його умова
  64.  j <= starsNum; поверне false.
  65.  Таким чином ваш код можна спростити до такого: */
  66.  
  67. let starsNum = prompt('введи размер');
  68. let stars = '* ';
  69. for (let i = 1; i <= starsNum; i++) {
  70.     let j = stars;
  71.     console.put(j + j + j + j);
  72.     console.put('\n');
  73. }
  74.  
  75.  
  76.  
  77.  
  78. // 3 вариант
  79.  
  80. let starsNum = prompt('введи размер');
  81. let stars; // обьявил переменную stars в начале перед циклом.
  82.  
  83. for (let i = 1; i <= starsNum; i++) {
  84.     for (let j = 1; j <= starsNum; j++) {
  85.         stars = '* '; // сохранил в переменную строку '* '.
  86.         console.put(stars);
  87.         stars = parseInt(stars); // возможен ли другой вариант вывода квадрата вместо parseInt?
  88.         /* а для чого ви тут використовуєте parseInt ?  навіщо попередній рядок взагалі? Може просто видалити його?*/
  89.     }
  90.     console.put('\n');
  91. }
  92.  
  93. // 4 вариант - переменная stars со строкой '* ' обьявлена в цикле.
  94. let starsNum = prompt('введи размер');
  95.  
  96. for (let i = 1; i <= starsNum; i++) {
  97.     for (let j = 1; j <= starsNum; j++) {
  98.         let stars = '* '; // переменная stars со строкой '* ' обьявлена в цикле.
  99.         console.put(stars);
  100.         stars = parseInt(stars); // ну навіщо вам цей рядок, ну як так, невже це такий вплив того, що він був у тому прикладі.. ох..((
  101.     }
  102.     console.put('\n');
  103. }
  104.  
  105. // вважаю, що не здатен вам допомогти, тоді вже нашкоджу ще більше. Ось все, що треба для квадрата.
  106. let starsNum = prompt('введи размер');
  107. let star = '* ' // не обов'язково створювати змінну, можна просто символ виводити. але зі змінною навіть краще.
  108. for (let i = 1; i <= starsNum; i++) {
  109.     for (let j = 1; j <= starsNum; j++) {
  110.         console.put(star); // console.put('*'); // якщо не створювати змінну star, а просто виводити зірку.
  111.     }
  112.     console.log();
  113. }
  114.  
  115.  
  116.  
  117.  
  118. // юзаю while - вибачте, побачив там parseInt і вже не можу далі дивитися .. вибачте..
  119. let starsNum = prompt('введи размер');
  120. let stars; // обьявил переменную stars в начале перед циклом.
  121. let i = 1;
  122.  
  123. while (i <= starsNum) {
  124.     i++;
  125.     let j = 1;
  126.     while (j <= starsNum) {
  127.         j++;
  128.         stars = '* ';
  129.         console.put(stars);
  130.         stars = parseInt(stars);
  131.     }
  132.     console.put('\n');
  133. }
  134.  
Advertisement
Add Comment
Please, Sign In to add comment