/ / Алгоритъм: Най-добрият начин да създадете решаването на този алгоритъм - алгоритъм, език-агностик

Алгоритъм: Най-добрият начин за създаване на този алгоритъм - алгоритъм, език-агностик

Имам проблем и исках да създам алгоритъм за решаването му. Но се чудя дали изчислението ми е правилно или че трябва да го подобря. Това е проблемът с алго:

Създайте алгоритъм, който ще изчислява за степента на ученика. Степента е равна на една трета от второстепенния изпит и две трети от основния изпит. Отпечатайте оценката за ученика.

Алгоритъмът, който създадох, е:

  1. Прочетете оценките.
  2. Изчислява се средната и втората степен, като се използва следната формула:
    grade = 1/3 * minor exam + 2/3 * major exam.
  3. отпечатайте оценката

Не знам дали формулата ми е вярна.

Отговори:

1 за отговор № 1

Не знам дали формулата ми е вярна.

Математически казано - това е наистина формулата за проблема, който описвате. Имайте предвид обаче, че на много езици, 1/3 * minor exam + 2/3 * midterm exam ще бъдат анализирани като цяло число аритметични операции, и това ще доведе до грешен отговор (винаги 0).

Причината е, в числото аритметика, при изчисляване a/b, връщаният отговор е floor(a/b) (където floor(.) е най-близкото не по-високо цяло число).

За да се уверите, че това не се случи - уверете сепреобразувайте номера си в плаващи точки и използвайте аритметика с плаващи точки - макар и да имат проблеми с неточностите, това е рядко проблем при работа с такава малка формула и с относително нисък брой (в абсолютна стойност).