Софтуерно Инженерство
Loading...
+ Нов въпрос
omnilog avatar omnilog 3 Точки

Възможни решения на задача 08. Scholarship

Това https://pastebin.com/NhLNPqqj е моето решение на задачата.
Доста ме измъчи докато забележа, че на този ред "elif income < minimum_salary and 5.5 > average_evolution > 4.5:" трябва да добавя по-малко от 5.5.
Любопитен съм да видя вашите решения. Вярвам, че има и по-кратки. Ако имате време и желание може да пуснете кодовете си в pastebin.
Разбира се само работещи решения. Лекторите са страхотни, но няма никакъв шанс да ни покажат 10 решения на една задача, така, че може да се учим и един от друг.

Тагове:
0
Programming Basics with Python 22/09/2019 01:51:10

Моето почти работи :)

Та и затова пиша, зациклих нещо, а си харесвам идеята...някой ако може да помогне ще съм благодарна!

ПП: не знам как се ползва това pastebin. Ще го погледна.

from math import floor

income = float(input())
grade = float(input())
salary = float(input())

scholarship = 0
social_scholarship = 0
grade_scholarship = 0

if grade >= 5.50:
    scholarship = grade_scholarship = grade * 25
    print(f"You get a scholarship for excellent results {floor(grade_scholarship)} BGN")
if grade > 4.50 and income < salary:
    scholarship = social_scholarship = salary * 0.35
if grade >= 5.50 and income < salary:
    if social_scholarship > grade_scholarship:
        print(f"You get a Social scholarship {floor(social_scholarship)} BGN")
    else:
        print:(f"You get a scholarship for excellent results {floor(grade_scholarship)} BGN")
else:
    print("You cannot get a scholarship!")
0

Писах пак...този код ми харесва повече, но пак...93 от сто имам, нещо не е наред :(

Хепл!

from math import floor

income = float(input())
grade = float(input())
salary = float(input())

social_scholarship = salary * 0.35
grade_scholarship = grade * 25

if grade >= 5.50:
    if social_scholarship < grade_scholarship:
        print(f"You get a scholarship for excellent results {floor(grade_scholarship)} BGN")
    else:
        print(f"You get a Social scholarship {floor(social_scholarship)} BGN")
elif grade > 4.50 and income < salary:
    print(f"You get a Social scholarship {floor(social_scholarship)} BGN")
else:
    print("You cannot get a scholarship!")
0
23/09/2019 22:58:45
grishko0o avatar grishko0o 31 Точки

Здравей, 

това което мога да ти помогна е самата подредба на if-elif проверките

if grade >= 5.50:
    if social_scholarship < grade_scholarship:
        print(f"You get a scholarship for excellent results {floor(grade_scholarship)} BGN")
    else:
        print(f"You get a Social scholarship {floor(social_scholarship)} BGN")

Взимаме примера, че имаш над 5.50 влиза в if - > проверява кое е по-голямо и принтира и спира.

Ако погледнеш по-долу идеята е спазена, просто проверките са подредени по различен начин и условието, когато има успех над и доход под са в - > if grade >= 5.50 and income < salary -

Дебъгера помага в такива моменти. Минаваш с него и виждаш как прави проверки, къде се променят стойностите, къде влиза и т.н.
На мен ми помогна да ги разбера като пуснах лекцията реших задачите, пробвах упражнението и после само гледах упражнението. 
Успех.

0
23/09/2019 23:57:39
omnilog avatar omnilog 3 Точки

Решението много ми хареса.
Супер семпло. След корекцията която grishko0o е добавил взема 100/100.

 

0
grishko0o avatar grishko0o 31 Точки

import math

income = float(input())
grade = float(input())
salary = float(input())

scholarship = grade * 25
social_scholarship = salary * 0.35

if grade >= 5.50 and income < salary:
    if social_scholarship > scholarship:
        print(f"You get a Social scholarship {math.floor(social_scholarship)} BGN")
    else:
        print(f"You get a scholarship for excellent results {math.floor(scholarship)} BGN")

elif grade >= 5.50:
    print(f"You get a scholarship for excellent results {math.floor(scholarship)} BGN")

elif grade > 4.50 and income < salary :
    print(f"You get a Social scholarship {math.floor(social_scholarship)} BGN")

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

0
23/09/2019 23:38:11
mitkomitashki avatar mitkomitashki 1 Точки

Ето моето решение на тази задача:

 

function scholaship(input) {
    let income = Number(input.shift());
    let averageGrade = Number(input.shift());
    let minSalary = Number(input.shift());

    let socialScholarship = 0;
    let Scholarship = 0;

    if (income < minSalary && averageGrade > 4.5) {
        socialScholarship = Math.floor(minSalary - (minSalary * 0.65));
    }
    if (averageGrade >= 5.50) {
        Scholarship = Math.floor(averageGrade * 25);
    }

    if (socialScholarship !== 0 || Scholarship !== 0) {
        if (socialScholarship > Scholarship) {
            console.log(`You get a Social scholarship ${socialScholarship} BGN`)
        } else {
            console.log(`You get a scholarship for excellent results ${Scholarship} BGN`);
        }
    } else {
        console.log("You cannot get a scholarship!");
    }
}

 

0