print("Ноль в качестве знака операции"
"\nзавершит работу калькулятора,и с дробями этот калькулятор НЕ проводит вычисления")
while True:
s = input("Знак (+,-,*,/): ")
if s == '0':
break
if s in ('+', '-', '*', '/'):
x = float(input("x="))
y = float(input("y="))
if s == '+':
print("%.2f" % (x+y))
elif s == '-':
print("%.2f" % (x-y))
elif s == '*':
print("%.2f" % (x*y))
elif s == '/':
if y != 0:
print("%.2f" % (x/y))
else:
print("Деление на ноль равняется нулю")
else:
print("Неверный знак операции")
Объяснение:
Я надеюсь у тебя скопируется, и этот калькулятор не проводит вычисления с дробями
Ошибка 1. Объявлен массив с типом данных значений string, хотя нужно заполнять массив целыми числами, а потом находить их сумму. Необходимо заменить тип string на integer.
Ошибка 2. Цикл не выполнится ни один раз, т.к. неправильно задан параметр. Необходимо либо написать конструкцию так: For i:=n downto 1 do , либо For i:=1 to n do .
Исправленный код:
Program summa;
Var a: array[1..100] of integer;
i, n: integer;
s: integer;
Begin
Write ('n='); Readln (n);
For i:=1 to n do
begin
write ('введите число');
readln (a[i]);
s:=s+a[i];
end;
writeln('сумма элементов равна ',s);
End.