Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 1. Cities
- let cities = []
- let isProgKYC = false // це змінна булєвого типу (тру, фолс) , такі змінні прийнято йменувати так: isFound, isSmth, hasSmth
- // та з цим все добре, а ось ProgKYC - це щось не дуже явне, в ідеалі код має бути зрозумілим для програміста який його
- // читає
- for (let i = 0; i < 10; i++) {
- cities[i] = prompt("Введи назву міста")
- }
- let homeTown = prompt("Введи своє рідне місто")
- for (let i = 0; i < cities.length; i++) {
- if (cities[i] == homeTown) {
- isProgKYC = true
- break // все добре, тут брейк норм, але є можливість від нього звільнитися та не втратити оптимізації.
- // якщо буде настрій поміркуйте як.
- }
- }
- if (isProgKYC == true) { // можна написати if (isProgKYC) , при цьому if (isFound) звучить краще.
- console.log("я знаю твоє місто!")
- } else {
- console.log("я НЕ знаю твоє місто!")
- }
- console.log(cities)
- // 2.ATM
- let atm = [] // cards? массиви краще іменувати у множині
- for (let i = 0; i < 10; i++){
- atm[i] = 0
- }
- let cardNum = +prompt("Введи номер картки:")
- let topUp
- while (cardNum < 0 || cardNum > 9) {
- cardNum = +prompt("Введи вірний номер картки")
- }
- topUp = +prompt("Введи суму поповнення")
- while (topUp < -1000 || topUp > 1000) {
- topUp = +prompt("Введи вірну суму поповнення")
- }
- atm[cardNum] =+ topUp
- // все добре, та іноді, доволі не часто, та все ж буває корисним do .. while
- let cardSum = 0
- for (let i = 0; i < atm.length; i++) {
- cardSum = cardSum + atm[i]
- }
- console.log(cardNum)
- console.log(topUp)
- console.log(atm)
- console.log(`Сума на всіх картах ${cardSum}`)
- // 3.Centered thing
- let thing = [] // скоріш це ім'я більш глобальне, массив можна , наприклад, rowsOfThing or thingRows, або просто rows
- let i = 0
- let space = 0
- let stars = 0
- let width = 0
- let string = ""
- while (i < 20) {
- thing[i] = +prompt("Введи число будь ласка")
- if (thing[i] == 0) { // якщо був настрій і ви поміркували як можна без брейку, то тут це теж актуально, як і do .. while
- break
- }
- while ((thing[i] % 2) == 0) {
- thing[i] = +prompt("Введи число будь ласка")
- }
- i++
- } // можна трохи спростити цикл вводу значень рядків штукі, не будь який ввод користувача має попасти до массиву, нуль та
- // парні не мають, можливо є сенс додати проміжну змінну, яка має пройти валідацію перед тим як потрапити до массиву.
- // Також можна залишити лише один промпт для числа, та позбавитися брейку. Але ваш варіант цілком робочий. Мій варіант
- // коду цього блоку для порівняння нижче, лише для того, щоб ви могли побачити альтернативний варіант, в цілях розвитку.
- let rowWidth = 0 // ширина рядку
- for(let a = 0; a < thing.length ; a++) { // а чого тут змінна "а", прийнято "і", якщо це просто "і"ндекс, "і"терація, або
- // інша, але тоді зазвичай із значущим ім'ям
- rowWidth = Math.max(thing[a],rowWidth) // корисно реалізувати свій вибір максимального без Math.max , доречи
- // тут до змінної попадає максимальна ширина рядку
- }
- rowWidth = (rowWidth - 1) / 2 // тут змінна втратила семантичний зв'язок із назвою, принаймі він став слабкіший в два рази)
- for(let a = 0; a < thing.length - 1; a++) { // ну "а" так "а"
- string = ""
- width = (thing [a])/2
- space = rowWidth - width
- stars = rowWidth - space
- for(let s = 0; s < space; s++) {
- string = string + " "
- }
- for(let s = 0; s < stars - 1 ; s++) {
- string = string + "*" + "*"
- }
- string = string + "*"
- console.log(string) // можна додати string += '/n'; - це перевод строки, тоді вся штука буде зберігатися у змінній. Це
- //може бути потрібно (зручно) у майбутніх (інших) задачах, в цієї задачі вивід до консолі логічніший.
- } // можна спростити арифметику, та це на ваш розсуд.
- console.log(thing)
- // Цілком нормальні рішення.
- // Гарного коду.
- // нижче блок коду для порівняння.
- // мій варіант
- let userInput = 0;
- do {
- userInput = +prompt("Введи число будь ласка");
- if (userInput % 2 === 1) {
- rows[i] = userInput;
- i++;
- }
- } while (i < 20 && userInput !== 0)
Advertisement
Add Comment
Please, Sign In to add comment