Ошибок тут достаточно, по всем пройдемся.
Первая ошибка, переменная названа как встроенная функция в Python, так делать не нужно.
Вторая ошибка, забыл ограничить if, из-за которого не будет выполняться elif. Меняем его на:
if (sum>=500) and (sum<1000)
Третья ошибка, расчет финальной цены неверный, если использовать вариант, который дан сейчас, то мы найдем процент от этой суммы, а не сумму с начисленными процентами. Меняем на:
final_sum = sums * (1+first_sale)
final_sum = sums * (1+second_sale)
Четвертая ошибка, почему у нас вывод финальной суммы через else? Получается, что если выполняются условия выше, то не выводится сумма. Этот вывод мы можем опустить ниже, а в else написать, что ввели неверные данные (если конечно подразумевается, что пользователь не должен вводить число меньшее 500), либо в elif засунуть эту строку, полной задачи у меня нет, поэтому сам с этим разберешься.
Пятая ошибка, мы не можем сложить строку с числом, нам нужно преобразовать нашу переменную к строке с str().
Исправленный код:
sums = int(input("Введите сумму покупки:"))
first_sale = 0.03
second_sale = 0.05
if sums >= 500 and sums < 1000:
final_sum = sums * (1+first_sale)
print("Финальная сумма равна: " + str(final_sum))
elif sums >= 1000:
final_sum = sums * (1+second_sale)
print("Финальная сумма равна: " + str(final_sum))
else:
print("Введены неверные данные")
i,n7,n8,n9:integer;
begin
for i:=1 to 10 do begin
read(a[i]);
if a[i] = 7 then n7+=1;
if a[i] = 8 then n8+=1;
if a[i] = 9 then n9+=1;
end;
for i:=1 to 10 do begin
if i<=n8 then a[i]:=8;
if (i>n8) and (i<=(n7+n8)) then a[i]:=7;
if i>(n7+n8) then a[i]:=9;
end;
for i:=1 to 10 do write(a[i],' ');
end.
Тестовое решение:
9 7 8 9 7 8 9 7 8 9
8 8 8 7 7 7 9 9 9 9