Предполагается, что вводимые числа - целые.
1) С цикла Repeat Until
Program n1;
Uses CRT;
Var s,k,i: integer;
sr: real;
begin
Writeln('Vvodite chisla. Vvedite 0 dlya okoncania vvoda');
Repeat
Readln(i);
s:=s+i;
inc(k);
Until i=0;
sr:=s/(k-1);
Writeln('Srednee arifmeticheskoe = ',sr:4:4);
readln
end.
2) С цикла While
Program n1;
Uses CRT;
Var s,k,i: integer;
sr: real;
begin
Writeln('Vvodite chisla. Vvedite 0 dlya okoncania vvoda');
i:=1;
While i<>0 do
begin
Readln(i);
s:=s+i;
inc(k);
end;
sr:=s/(k-1);
Writeln('Srednee arifmeticheskoe = ',sr:4:4);
readln
end.
3) С цикла For
Program n1;
Uses CRT;
Var s,j,k,i: integer;
sr: real;
begin
Writeln('Vvedite kolichestvo chisel');
Readln(k);
Writeln('Vvodite chisla');
For j:=1 to k do
begin
readln(i);
s:=s+i;
end;
sr:=s/k;
writeln('Srednee arifmeticheskoe = ',sr:4:4);
readln
end.
Program weight;
Var
a,b: real;
Begin
writeln('Введите ваш вес P');
readln(a);
writeln('Введите ваш рост R');
readln(b);
if a<=b-100
then writeln('Поздравляю. Ваш вес в норме')
Else writeln('Хорошо бы вам немного похудеть');
End.
В приложении рабочий файл программы
Пояснения:
1. Переменным a, b присваивается значение real, так как рост и вес могут быть не целыми числами, а дробными.
2. окончания команд writeln, readln, сортируют этапы решения и ввода по строчкам, вместо вывода всё в одну строку.
3. После условия a<=b-100 НЕ ставится точка с запятой, так как это часть одного цикла условия (IF - если). если поставить точку с запятой, то программа будет не верна
P.s. Почему-то сервис не возволяет скачать файл программы. В общем скопируйте просто из начала решения тогда