Timkor

noQuestionMoreCry

Nov 14th, 2020 (edited)
911
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // спробуйте порівняти легкість читання та розуміння одного і того ж самого вашого коду, тільки без дотримання стилю:
  2.   let N = prompt("размер");
  3.   let S = "*";
  4.   let p = "0";
  5.  
  6. for(let i=N-1; i>=0; i--)
  7. {
  8. p=p+p;
  9. console.log(p);
  10. for(let y = i; y >= 0; y--)
  11. {
  12.     console.put(S);
  13. }
  14.  
  15. }
  16.  
  17.  
  18. // та з дотриманням індентацій, та з розділяючими пробілами:
  19. let N = prompt("размер");
  20. let S = "*";
  21. let p = "0";
  22.  
  23. for(let i = N - 1; i >= 0; i--)
  24. {
  25.     p = p + p;
  26.     console.log(p);
  27.     for (let y = i; y >= 0; y--) {
  28.         console.put(S);
  29.     }
  30. }
  31. // тут краще читаються блоки коду, тобто можна побачити цикл у циклі. Наче полегше стало голові, можна зосередитись на  
  32. // самому алгоритмі.
  33.  
  34. // а тепер ще дамо назви змінним, хоча як іменувати змінну p не зовсім зрозуміло, ім'я має відповідати призначенню, а для  // чого ця змінна? Спочатку вона отримає строковий "0", а потім до неї додаються ще "0", тобто це строка з нулів, тож      // назвемо її zeroLine. "*" у коді просто як star, тому що вона не змінюється, тобто вона є строкою, та з длиною 1.
  35.  
  36. let size = prompt("размер");
  37. let star = "*";
  38. let zeroLine = "0";
  39.  
  40. for (let i = size - 1; i >= 0; i--) {
  41.     zeroLine = zeroLine + zeroLine;
  42.     console.log(zeroLine);
  43.     for (let y = i; y >= 0; y--) {
  44.         console.put(star);
  45.     }
  46. }
  47. // тут читаємо код, який сам по собі щось підказує:
  48. // for (let i = size - 1; i >= 0; i--) - цикл по розміру
  49. // zeroLine = zeroLine + zeroLine; - додаємо строку до строки, тобто збільшуємо длину існуючій строки
  50. // for (let y = i; y >= 0; y--)  - не дуже зрозуміло, а що таке змінна i у зовнішньому циклі? Це ж рядки! Тобто перейменуємо
  51. // i у row
  52.  
  53. let size = prompt("размер");
  54. let star = "*";
  55. let zeroLine = "0";
  56.  
  57. for (let row = size - 1; row >= 0; row--) {
  58.     zeroLine = zeroLine + zeroLine;
  59.     console.log(zeroLine);
  60.     for (let y = row; y >= 0; y--) {
  61.         console.put(star);
  62.     }
  63. }
  64. // for (let row = size - 1; row >= 0; row--) перебираємо в циклі кожний рядок у межах розміру від більшої до меншої
  65. // for (let y = row; y >= 0; y--) стільки разів (ітерацій), який номер рядку, (з більшого до меншого)
  66.  
  67. Так як ви не задали питання, я не знаю що вам не зрозуміло. Можливо все, що я скажу не буде корисно, тому я задам декілька запитань.  
  68. 1 Навіщо ви виводите саме "0" - ?
  69. 2 ЩО буде, якщо let zeroLine = "0"; замінити на , наприклад let spaceLine = " "; // тут пробіл у дужках
  70. 8 Що буде у цій задачи взагалі без цього виводу (ні "0" ні " ") ?
  71. 3 Як може строка на екрані починатися не з початку ? (підказка: ніяк не може, строка має початок, це найлівіша позиція (не берем арабів))
  72. 4 Як можна щось написати у строці на екрані не з самого її початку ? ( підказка: відступити)
  73. 5 Як можна відступити з умовою пунктів 3 та 2 ?
  74. 7 Де шостий пункт ?
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91. 6 Намагайтеся додержуватися стилю, влучні іменування роблять задачу та код зрозумілішими, формулюйте конкретні питання до себе та інших (особливо до себе... та інших).
  92. 10 Гарного коду)
  93.  
  94. код цієїж задачи без зайвого (майже), читати не обов'язково
  95.  
  96. let size = prompt("размер");
  97. let star = "*";
  98. let space = " "; // це для наступного трикуника. використовуйте його як і зірочку, не створюючи строку, а виводячи у циклі
  99.  
  100. for (let row = size; row > 0; row--) {
  101.    for (let y = row; y > 0; y--) {
  102.        console.put(star);
  103.    }
  104.    console.log();
  105. }
Advertisement
Add Comment
Please, Sign In to add comment