Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // спробуйте порівняти легкість читання та розуміння одного і того ж самого вашого коду, тільки без дотримання стилю:
- let N = prompt("размер");
- let S = "*";
- let p = "0";
- for(let i=N-1; i>=0; i--)
- {
- p=p+p;
- console.log(p);
- for(let y = i; y >= 0; y--)
- {
- console.put(S);
- }
- }
- // та з дотриманням індентацій, та з розділяючими пробілами:
- let N = prompt("размер");
- let S = "*";
- let p = "0";
- for(let i = N - 1; i >= 0; i--)
- {
- p = p + p;
- console.log(p);
- for (let y = i; y >= 0; y--) {
- console.put(S);
- }
- }
- // тут краще читаються блоки коду, тобто можна побачити цикл у циклі. Наче полегше стало голові, можна зосередитись на
- // самому алгоритмі.
- // а тепер ще дамо назви змінним, хоча як іменувати змінну p не зовсім зрозуміло, ім'я має відповідати призначенню, а для // чого ця змінна? Спочатку вона отримає строковий "0", а потім до неї додаються ще "0", тобто це строка з нулів, тож // назвемо її zeroLine. "*" у коді просто як star, тому що вона не змінюється, тобто вона є строкою, та з длиною 1.
- let size = prompt("размер");
- let star = "*";
- let zeroLine = "0";
- for (let i = size - 1; i >= 0; i--) {
- zeroLine = zeroLine + zeroLine;
- console.log(zeroLine);
- for (let y = i; y >= 0; y--) {
- console.put(star);
- }
- }
- // тут читаємо код, який сам по собі щось підказує:
- // for (let i = size - 1; i >= 0; i--) - цикл по розміру
- // zeroLine = zeroLine + zeroLine; - додаємо строку до строки, тобто збільшуємо длину існуючій строки
- // for (let y = i; y >= 0; y--) - не дуже зрозуміло, а що таке змінна i у зовнішньому циклі? Це ж рядки! Тобто перейменуємо
- // i у row
- let size = prompt("размер");
- let star = "*";
- let zeroLine = "0";
- for (let row = size - 1; row >= 0; row--) {
- zeroLine = zeroLine + zeroLine;
- console.log(zeroLine);
- for (let y = row; y >= 0; y--) {
- console.put(star);
- }
- }
- // for (let row = size - 1; row >= 0; row--) перебираємо в циклі кожний рядок у межах розміру від більшої до меншої
- // for (let y = row; y >= 0; y--) стільки разів (ітерацій), який номер рядку, (з більшого до меншого)
- Так як ви не задали питання, я не знаю що вам не зрозуміло. Можливо все, що я скажу не буде корисно, тому я задам декілька запитань.
- 1 Навіщо ви виводите саме "0" - ?
- 2 ЩО буде, якщо let zeroLine = "0"; замінити на , наприклад let spaceLine = " "; // тут пробіл у дужках
- 8 Що буде у цій задачи взагалі без цього виводу (ні "0" ні " ") ?
- 3 Як може строка на екрані починатися не з початку ? (підказка: ніяк не може, строка має початок, це найлівіша позиція (не берем арабів))
- 4 Як можна щось написати у строці на екрані не з самого її початку ? ( підказка: відступити)
- 5 Як можна відступити з умовою пунктів 3 та 2 ?
- 7 Де шостий пункт ?
- 6 Намагайтеся додержуватися стилю, влучні іменування роблять задачу та код зрозумілішими, формулюйте конкретні питання до себе та інших (особливо до себе... та інших).
- 10 Гарного коду)
- код цієїж задачи без зайвого (майже), читати не обов'язково
- let size = prompt("размер");
- let star = "*";
- let space = " "; // це для наступного трикуника. використовуйте його як і зірочку, не створюючи строку, а виводячи у циклі
- for (let row = size; row > 0; row--) {
- for (let y = row; y > 0; y--) {
- console.put(star);
- }
- console.log();
- }
Advertisement
Add Comment
Please, Sign In to add comment