Loading...
VladimirGekov avatar VladimirGekov 1 Точки

Задача Graduation javascript basics

Здравейте, имам проблем със задачата Graduation-не пресмята вярно средния успех. Ако може някакви насоки или къде точно греша в кода.

function gradiation(input) {

  let name = input.shift();

  let grade = 0;

  let summark = 0;

 

  while (grade <= 12) {

    let mark = Number(input.shift());

    grade++;

    summark += mark;

  }

 

  let averagemark = summark / grade;

 

  if (averagemark >= 4.0) {

    console.log(`${name} graduated. Average grade: ${averagemark.toFixed(2)}`);

  } else {

    console.log(

      `${name} not graduated. Average grade: ${averagemark.toFixed(2)}`

    );

  }

}

 

Тагове:
0
Programming Basics 26/11/2019 13:02:01
svephoto avatar svephoto 1191 Точки

Здравей,

 

Имаме нужда и от условието на задачата. :-)

0
VladimirGekov avatar VladimirGekov 1 Точки

Напишете програма, която изчислява средната оценка на ученик от цялото му обучение. На първия ред ще получите името на ученика, а на всеки следващ ред неговите годишни оценки. Ученикът преминава в следващия клас, ако годишната му оценка е по-голяма или равна на 4.00. Ако оценката му е под 4.00, той ще повтори класа.

При успешно завършване на 12-ти клас да се отпечата:

 "{име на ученика} graduated. Average grade: {средната оценка от цялото обучение}"

Стойността трябва да бъде форматирана до втория знак след десетичната запетая.

Напишете програма, която изчислява средната оценка на ученик от цялото му обучение. На първия ред ще получите името на ученика, а на всеки следващ ред неговите годишни оценки. Ученикът преминава в следващия клас, ако годишната му оценка е по-голяма или равна на 4.00. Ако оценката му е под 4.00, той ще повтори класа.

При успешно завършване на 12-ти клас да се отпечата:

 "{име на ученика} graduated. Average grade: {средната оценка от цялото обучение}"

Стойността трябва да бъде форматирана до втория знак след десетичната запетая.

Напишете програма, която изчислява средната оценка на ученик от цялото му обучение. На първия ред ще получите името на ученика, а на всеки следващ ред неговите годишни оценки. Ученикът преминава в следващия клас, ако годишната му оценка е по-голяма или равна на 4.00. Ако оценката му е под 4.00, той ще повтори класа.

При успешно завършване на 12-ти клас да се отпечата:

 "{име на ученика} graduated. Average grade: {средната оценка от цялото обучение}"

Стойността трябва да бъде форматирана до втория знак след десетичната запетая.

0
bubole4o avatar bubole4o 3 Точки

Здравей,

Пробвай в условието на while цикъла да махнеш равното. т.е. вместо (grade <= 12) да бъде (grade < 12).

0
svephoto avatar svephoto 1191 Точки

Всъщност нещата за решението могат да се построят така: според разписания от теб код е нужно да започнеш да броиш от 1 (let grade = 1;), ако оставиш в условието на while-a grade <= 12. Иначе, както пише колегата по-горе, можеш да започнеш с let grade = 0;, но трябва да махнеш равното и да стане grade < 12. После в while-a след прочитането на всяка следваща годишна оценка let mark = Number(input.shift()); направи следното:

    if (mark >= 4.0) {

      grade++;

      summark += mark;

    }

Правиш тази проверка, защото трябва да видиш дали ученикът минава в следващия клас - както е по условие. Ако оценката му е под 4.00, той повтаря класа (броячът не се увеличава) - съответно прочиташ нова оценка, докато получи такава, която >= 4.00. След това за averagemark трябва да разделиш summark на 12 (броя класове), а не на grade.

И накрая оставяш само този ред за печатането console.log(`${name} graduated. Average grade: ${averagemark.toFixed(2)}`); - без никакви проверки и без допълнителния ред, който печаташ, ако ученикът не е завършил, защото това го нямаш по условие, то не се изисква.

С тези промени вече би трябвало да имаш решение за 100/100 в Judge.

Успех ти желая! :-)

0
27/11/2019 00:51:34
VladimirGekov avatar VladimirGekov 1 Точки

Благодаря много за помощта!!!

0
svephoto avatar svephoto 1191 Точки

Моля, радвам се да помогна.

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