Имам проблем и исках да създам алгоритъм за решаването му. Но се чудя дали изчислението ми е правилно или че трябва да го подобря. Това е проблемът с алго:
Създайте алгоритъм, който ще изчислява за степента на ученика. Степента е равна на една трета от второстепенния изпит и две трети от основния изпит. Отпечатайте оценката за ученика.
Алгоритъмът, който създадох, е:
- Прочетете оценките.
- Изчислява се средната и втората степен, като се използва следната формула:
grade = 1/3 * minor exam + 2/3 * major exam
. - отпечатайте оценката
Не знам дали формулата ми е вярна.
Отговори:
1 за отговор № 1Не знам дали формулата ми е вярна.
Математически казано - това е наистина формулата за проблема, който описвате. Имайте предвид обаче, че на много езици, 1/3 * minor exam + 2/3 * midterm exam
ще бъдат анализирани като цяло число аритметични операции, и това ще доведе до грешен отговор (винаги 0).
Причината е, в числото аритметика, при изчисляване a/b
, връщаният отговор е floor(a/b)
(където floor(.)
е най-близкото не по-високо цяло число).
За да се уверите, че това не се случи - уверете сепреобразувайте номера си в плаващи точки и използвайте аритметика с плаващи точки - макар и да имат проблеми с неточностите, това е рядко проблем при работа с такава малка формула и с относително нисък брой (в абсолютна стойност).