Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let size = +prompt("Вкажіть Розмір")
- //let b // створимо прямо в форі локально, а ще й назовем стандартненько.
- // let star = "*" // поки норм, але далі це буде рядок із зірок, тому іменування star не підходить
- let starLine = "*"; // рядок що буде містити потрібну кількість зірок
- let branchEmptySpaceLine = "" // рядок що буде містити потрібну кількість пробілів
- let space2 = " " // рядок можна отримати в блоці де створюємо відступи зліва, можливе іменувати trunkEmptySpaceLine
- let counter = 0 // просто лічильник з гордим іменем
- let wood = size - 1 // lowBranchHalfSize ? treeWidthHalfSize? trunkIndentation? Щось я сьогодні не в настрої для добрих іменувань
- let i = 0 // створимо поближче до місця використання, назовемо звичніше - і (було а)
- while (i < size) {
- // блок де створюємо відступи зліва. Що не ефективно - блок виконається лише раз, але сидить в середені циклу. Краще винести
- while (counter < size) { // зліва є один зайвий пробіл, можна прибрати.)
- branchEmptySpaceLine = branchEmptySpaceLine + " "
- counter++
- }
- console.log(branchEmptySpaceLine + starLine) // виводимо готовий рядок: потрібна кількість пробілів та зірок, та переводимо строку.
- branchEmptySpaceLine = branchEmptySpaceLine.slice(1) // з кожним рядком кількість пробілів зменшується на один
- starLine = starLine + "**" // з кожним рядком кількість зірочок збільшується на дві
- i++
- }
- /* створюємо пробіли до стовбура*/
- for (let i = 0; i < wood; i++) {
- space2 = space2 + " "
- }
- console.log(space2 + "*") // малюємо стовбур
- /*
- Порефакторив трохи, змінив деякі іменування.
- Додав коментарі, бо код був схожий на ребус.
- Відформатував відповідно стилю. Стиль то не про красоту, то про взаємоповагу до коллег та розуміння вартості часу.
- Крапки з комою на вашому сумлінні, не всі мп дозволяють нехтувати, Java б навіть не почала компілюватися, поки ви всі не розставили)
- Норм рішення. Можна робити не створюючи готовий рядок-гілку (branch) тоді буде більш по цикло-учнівсько-алгоритмічному:
- для кожної гілки створювати циклом лівий простір, також для кожної гілки створювати саму гілку із зірок також в циклі.
- Ще можна кожний символ виводити одразу в консоль, не складати в змінну.
- Але у вас більш ефективно з деяких міркувань, і наприклад для кодварс потрібно саме
- до строки складати всю ялинку, а потім повертати з функції ту строку-ялинку, але там ще праві пробіли потрібні, а стовбур ні.
- Псевдокод звичніше такий :
- приймаємо розмір
- готуємо кількість зірок та пробілів на верхівці ялини
- цикл по розміру
- виводимо потрібну кількість лівих пробілів (бажано циклом, бо ж тема цикли)
- виводимо потрібну кількість зірок (теж циклом)
- (праві пробіли для кодварс)
- готуємо кількість зірок та пробілів для наступного рядку-гілці
- переводимо рядок
- кінець циклу
- пінь малюємо.
- там де "виводимо" та "переводимо" - там можна дописувати до змінної, перевод рядку теж можна записати- \n
- Орг.питання: раджу зазирнути у закріплені повідомлення зіро чату.
- Зручно коди є лінк на завдання у пасті, про коментарі та стиль я вже казав: не завжди є багато часу на ці речі, і коли
- студент нехтує ними, то виникає дискомфорт, та бажання відкласти ревью, а потім усвідомлюєш, що можна було б більше поспілкуватися на алгоритмичні теми, щось про ефективність коду, ну або ще щось цікавеньке. Забирають час=енергію такі прості але обов'язкові речі,точніше їхня відсутність.
- Гарного коду!)
- */
Add Comment
Please, Sign In to add comment