Другие языки программирования и технологии

Помогите где ошибка в программе на турбо паскале?

program Proga;
Var x,y,i: integer;
Begin
for i:=3 to 20 do
read; x:=i*i;
Y:=Y+x
End.
Writeln(Y)
Программа должна вычислять суммы квадратов чисел от 3 до 20.
program Proga;
Var x,y,i: integer;
Begin
Y := 0;
for i:=3 to 20 do
begin
read; x := i * i;
Y := Y + x
end;
Writeln(Y);
readln
End.
Виталий Соколов
Виталий Соколов
51 590
Лучший ответ
Вот вариант:
program Proga;
Var x,i: integer;
Begin
x:=0;
for i:=3 to 20 do x:=x+i*i;
Writeln(x);
end.
---------
А в исходной как минимум:
енд с точкой в конце и врайтлн потом не сработает и каша с ":"
И нет оформления begin-end связки после ифа
Да и промежуточная переменная лишняя
program Proga;
Var x,y,i: integer;
Begin
Y:=0;
for i:=3 to 20 do
begin
x:=i*i;
Y:=Y+x;
End;
Writeln(Y);
end.

Извините, лень перечислять все ошибки, их целая куча. Просто сравните.
Pro100 Dimon
Pro100 Dimon
8 850
в 7 строке
Ошибки: 1) нужно обнулить Y, чтобы в нём сначала ничего не лежало. Оно может добавиться в сумму и выдать неправильный ответ.
2)Не нужен read. Программа ничего не считывает, у неё итак всё есть.
3)Т. к в цикле выполняется несколько действий, то после слова do нужен begin, а раз есть begin то после операторов (x := i*i; y := y+x;) нужно поставить end; (с точкой с запятой) .
4)В конце программы нужен end. ( с точкой) .
program Sum3_20;
var x,y,i: integer;
Begin
y := 0;
for i:=3 to 20 do
begin
x := i*i;
y := y+x;
end;
writeln('Summa kvadratov ot 3 do 20: ',y);
end.