Професионална програма
Loading...
+ Нов въпрос
stefanbabukov avatar stefanbabukov -3 Точки

8 *Стипендии - последната задача от Упражнение: Условни конструкции - Programming Basics with Python - април 2019

Здравейте, колеги
Имам лек проблем със задача 8. *Стипендии. В джъджа ми дава 93% Не можах да разбера къде е проблема. Ще кача моето решение, може ли някой по-знаеш да открие защо ми дава 93%? Благодаря :)

8. *Стипендии
Учениците могат да кандидатстват за социална стипендия или за стипендия за отличен успех. Изискване за
социална стипендия - доход на член от семейството по-малък от минималната работна заплата и успех над
4.5. Размер на социалната стипендия - 35% от минималната работна заплата. Изискване за стипендия за
отличен успех - успех над 5.5, включително. Размер на стипендията за отличен успех - успехът на ученика,
умножен по коефициент 25.
Напишете програма, която при въведени доход, успех и минимална работна заплата, дава информация дали
ученик има право да получава стипендия, и стойността на стипендията, която е по-висока за него.
Вход
Потребителят въвежда 3 числа, по едно на ред:
1. Доход в лева - реално число;
2. Среден успех - реално числсо;
3. Минимална работна заплата – реално число.
Изход
 Ако ученикът няма право да получава стипендия, се извежда:
"You cannot get a scholarship!"

 Ако ученикът има право да получава само социална стипендия:
"You get a Social scholarship {стойност на стипендия} BGN"

 Ако ученикът има право да получава само стипендия за отличен успех:
"You get a scholarship for excellent results {стойност на стипендията} BGN"

 Ако ученикът има право да получава и двата типа стипендии, ще получи по-голямата по сума, а ако
са равни ще получи тази за отличен успех.
Резултатът се закръгля до по-малкото цяло число.

 

 

import math
dohot = float(input())
sr_uspeh = float(input())
mrz = float(input())

soc_stip = math.floor(mrz * 0.35)
uspeh_stip = math.floor(sr_uspeh * 25)

if dohot < mrz and sr_uspeh > 4.50 and sr_uspeh < 5.50:
    print(f'You get a Social scholarship {soc_stip} BGN')
elif dohot > mrz and sr_uspeh >= 5.50:
    print(f'You get a scholarship for excellent results {uspeh_stip} BGN')
elif dohot < mrz and sr_uspeh >= 5.50:
    if soc_stip > uspeh_stip:
        print(f'You get a Social scholarship {soc_stip} BGN')
    elif soc_stip < uspeh_stip:
        print(f'You get a scholarship for excellent results {uspeh_stip} BGN')
    elif soc_stip == uspeh_stip:
        print(f'You get a scholarship for excellent results {uspeh_stip} BGN')

else:
    print('You cannot get a scholarship!')

 

0
Programming Basics with Python 30/04/2019 14:04:14
stefanbabukov:
проблема се реши
krum_43 avatar krum_43 483 Точки

Може би нещо призакръглянето на soz_stip?

Защо използваш math.floor?

В условието никъде не е казано изрично да закръгляш наляво или надясно.

Пробвай с Math.Round.

 

0
stefanbabukov avatar stefanbabukov -3 Точки

Намерхме проблема, бях изпуснал едно "равно" ето тук:

elif dohot >= mrz and sr_uspeh >= 5.50:
1