Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

juri80 avatar juri80 2 Точки

Sum of Numbers - For Loop - Lab

Здравейте, от скоро се занимавам с програмиране, и стигнах до циклите. Тази задача я боря няколко часа, но не чи се получава, ето условието и моя код


Сбор от букви
Напишете програма, която изчислява дали бюджетът ни е достатъчен, за да си купим продукта, който искаме.
В името на продукта всяка гласна буква е със стойност 3, а всяка съгласна със стойност 1. Цената на продукта
се изчислява като сумата от стойностите на буквите се умножи по дадено контролно число. За гласни букви се
считат: "a", "e", "i", "o", "u" и "y".

Вход
Програмата прочита 3 стойности, въведени от потребителя:
 име на продукта - текст (малки букви)
 контролно число - число в интервала [1.0...50.0]
 бюджет - цяло число в интервала [0...99999999]

Изход
Ако бюджетът е по-малък от стойността на продукта, тогава се отпечатва съобщението:
Cannot buy {име на продукта}. Product value: {стойност на продукта}"

В противен случай се отпечатва съобщението:

{име на продукта} bought. Money left: {останали пари}

function sumOfLetters(input){
    let product = input[0];//име на продукта
    let someNumbers = Number(input[1]);//контролно число
    let budget = Number(input[2]);//бюджет

    let price = 0;

    for(let index = 0; index <= product.length; product++){
        let current = product[index];

        if(current === 'a' && current === 'e' && current === 'i' && current === 'o' && current === 'u' && current === 'y')
        {
            price += 3 * someNumbers;//6
        }else{
            price += 1 * someNumbers;//3
        }
        let diff = price + price;
       if(budget < price){
            console.log(`Cannot buy ${product}. Product value: ${diff}`);
        }else{
            console.log(`${product} bought. Money left: ${price.toFixed(2)}`);
        }
    }
}
sumOfLetters(['apple', 2, 20])

 

 

Тагове:
0
Programming Basics
ivanov224 avatar ivanov224 8 Точки

Привет, колега. Не пускай код така, че трудно се чете. Ползвай pastebin, примерно, и давай линк.

1. Във for loop-а, трябва да инкрементираш index, не product. Тоест трябва да е index++, не product++

2. if-a ти в цикъла не трябва да е с логическо И, а с ИЛИ. Тоест ||, а не &&

3. Умножаването по контролното число според мен е след цикъла, а не на всяка буква.

4. Този diff както си го написал, реално умножава price * 2, а предполагам идеята ти е била да събереш 0 + price или нещо подобно. Като цяло е грешно.

5. Също и console.log-овете са ти грешни. В първия Product value: ${diff} не е diff, това което трябва да покажеш, а самата стойност на продукта, тоест price (виж условието на задачата). Във втория Money left: ${price.toFixed(2)} тука ти трябва колко пари са ти останали след покупката, тоест budget - price. (пак прочети условието на задачата)

Не искам да ти давам редактиран код, затова само пускам насоки, а ти ще си пишеш кода сам. Успех и поздрави. :)

0
juri80 avatar juri80 2 Точки

Благодаря много! :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.