Я новичок в программировании, поэтому изучаю основы с помощью Blockly.
Я пытаюсь выполнить упражнение ниже:
Ассоциация взимает членский взнос в размере 10,00 евро за год. Участники старше 50 лет получают скидку в размере 2,00 евро. Предоставляется скидка в размере 1,00 евро на каждого ребенка-иждивенца (максимум 5,00 евро). Если годовой доход меньше 12 500,00 евро, предоставляется скидка 2,50 евро. Максимальное сокращение на одного члена составляет 8,50 евро.
Вопрос: Создайте программу, которая считывает необходимые данные для каждого члена и показывает размер членских взносов, подлежащих уплате. Программа завершается, когда вводится имя «Стоп». В конце также сообщите нам, сколько членов вы рассчитали членский взнос, а также укажите общую и среднюю сумму членских взносов.
Я пытался решить эту проблему, но не могу найти правильный ответ.
Это код:
var membership, name2, age, numberOfChildren, yearlyIncome, ageReduction, childrenReduction, incomeReduction, totalreduction, toBePaid;
membership = parseInt(10);
ageReduction = parseInt(2);
childrenReduction = parseInt(1);
incomeReduction = 2.5;
totalreduction = 0;
name2 = ((output = window.prompt('enter your name')) ? output : "");
do {
age=parseInt((parseFloat((output = window.prompt('enter your age')) ? output : "")));
var blocktype_number = true;
if (output == null) {
window.alert("No empty input allowed");
break;
}
} while(isNaN(age));
do {
numberOfChildren=parseInt((parseFloat((output = window.prompt('number of children')) ? output : "")));
var blocktype_number = true;
if (output == null) {
window.alert("No empty input allowed");
break;
}
} while(isNaN(numberOfChildren));
do {
yearlyIncome=parseInt((parseFloat((output = window.prompt('yearly income?')) ? output : "")));
var blocktype_number = true;
if (output == null) {
window.alert("No empty input allowed");
break;
}
} while(isNaN(yearlyIncome));
while (!(name2 == 'Stop')) {
if (age > 50) {
totalreduction = ageReduction;
} else {
totalreduction = 0;
}
if (numberOfChildren <= 5) {
totalreduction = numberOfChildren * childrenReduction;
} else {
totalreduction = 5 * childrenReduction;
}
if (yearlyIncome < 12500) {
totalreduction = incomeReduction;
} else {
totalreduction = 0;
}
if (totalreduction >= 8.5) {
toBePaid = (membership - 8.5);
window.alert(toBePaid+'\n');
} else {
toBePaid = (membership - totalreduction);
window.alert(toBePaid+'\n');
}
name2 = (output = window.prompt('enter your name')) ? output : "";
age = parseFloat((output = window.prompt('enter your age')) ? output : "");
numberOfChildren = parseFloat((output = window.prompt('number of children')) ? output : "");
yearlyIncome = parseFloat((output = window.prompt('yearly income?')) ? output : "");
}
Есть несколько проблемы: - расчет суммы к оплате неверен - я не знаю, как подсчитать, сколько членов ввело данные. Также как я могу рассчитать общую сумму к оплате? Я пробовал, но ответ всегда был «Нан»
Спасибо.