1) writeln("Введите размерность массива); - здесь опечатка (пропущены кавычки), должно быть writeln('Введите размерность массива');
2) writeln('Введите массив'); - пользователь не вводит массив, здесь надо написать writeln('Создаём массив...');
3) Перед циклом нужно определить начальные значения переменных с и s c:=0; s:=0;
4) У первого цикла есть begin, но нет end
5) s:=s+a[i]; эта команда повторяется дважды - второй раз (после if) не нужен
6) Лишний end; (предпоследняя строка программы)
И ещё не ошибки, а два совета: 1) пользуйся отступами, тогда лучше видно структуру программы. Когда все команды идут подряд в одной строке, легко запутаться. 2) При выводе среднего арифметического используй формат вывода s1:0:2 тогда результат будет округлён до двух знаков после запятой, и не будет таких монстров вроде 16.65432468734246873435
Исправленная программа: Program Zadacha; Uses crt; var a:array[1..1000] of integer; c,i,n,s :integer; s1: real; begin; clrscr; writeln('Введите размерность массива'); readln(n); writeln('Создаём массив...'); c:=0; s:=0; for i:=1 to n do begin a[i]:=random(100); if a[i]<50 then begin inc(c); s:=s+a[i]; end; end; s1:=s/n; writeln('Массив A:'); for i:=1 to n do write(a[i]:4); writeln; writeln('Среднее арифметическое равно=',s1:0:2); end.
Uses crt; function Conv(x:byte):string;{функция преобразования чисел в строку(маска вывода)} var s,t:string; beginstr(x,t);{преобразуем число в строку} if x=0 then s:='00'{если это ноль}else if (x>0)and(x<=9) then s:='0'+t {если однозначное число} else s:=t;{двухзначное число} Conv:=s; end; var ch1,mn1,sc1:byte;{начальное время} chd,mnd,scd:byte;{добавленное время} chr,mnr,scr:byte;{результат} mn,ch:byte;{добавление 1 к минутам и часам, если секунд или минут >60} begin clrscr; writeln('Vvedite nachalnoe vremya:'); write(' Chasy='); readln(ch1); write(' Minuty='); readln(mn1); write(' Secundy='); readln(sc1); writeln('Vvedite pribavlennoe vremya:'); write(' Chasy='); readln(chd); write(' Minuty='); readln(mnd); write(' Secundy='); readln(scd); scr:=(sc1+scd) mod 60; mn:=(sc1+scd)div 60; mnr:=(mn1+mnd+mn) mod 60; ch:=(mn1+mnd+mn) div 60; chr:=(ch1+chd+ch) mod 24; clrscr;writeln('Nachalnoe vremya'); writeln(Conv(ch1),':',Conv(mn1),':',Conv(sc1)); writeln('vremy pribavlenia'); writeln(Conv(chd),':',Conv(mnd),':',Conv(scd)); writeln('konechnoe vremya'); writeln(Conv(chr),':',Conv(mnr),':',Conv(scr)); readkey; end.
1) writeln("Введите размерность массива); - здесь опечатка (пропущены кавычки), должно быть writeln('Введите размерность массива');
2) writeln('Введите массив'); - пользователь не вводит массив, здесь надо написать writeln('Создаём массив...');
3) Перед циклом нужно определить начальные значения переменных с и s
c:=0; s:=0;
4) У первого цикла есть begin, но нет end
5) s:=s+a[i]; эта команда повторяется дважды - второй раз (после if) не нужен
6) Лишний end; (предпоследняя строка программы)
И ещё не ошибки, а два совета:
1) пользуйся отступами, тогда лучше видно структуру программы. Когда все команды идут подряд в одной строке, легко запутаться.
2) При выводе среднего арифметического используй формат вывода s1:0:2
тогда результат будет округлён до двух знаков после запятой, и не будет таких монстров вроде 16.65432468734246873435
Исправленная программа:
Program Zadacha;
Uses crt;
var
a:array[1..1000] of integer;
c,i,n,s :integer;
s1: real;
begin;
clrscr;
writeln('Введите размерность массива');
readln(n);
writeln('Создаём массив...');
c:=0; s:=0;
for i:=1 to n do
begin
a[i]:=random(100);
if a[i]<50 then
begin
inc(c);
s:=s+a[i];
end;
end;
s1:=s/n;
writeln('Массив A:');
for i:=1 to n do write(a[i]:4);
writeln;
writeln('Среднее арифметическое равно=',s1:0:2); end.
function
Conv(x:byte):string;{функция преобразования чисел в строку(маска вывода)}
var
s,t:string;
beginstr(x,t);{преобразуем число в строку}
if x=0 then s:='00'{если это ноль}else
if (x>0)and(x<=9) then s:='0'+t
{если однозначное число}
else s:=t;{двухзначное число}
Conv:=s;
end;
var ch1,mn1,sc1:byte;{начальное время}
chd,mnd,scd:byte;{добавленное время}
chr,mnr,scr:byte;{результат}
mn,ch:byte;{добавление 1 к минутам и часам, если секунд или минут >60}
begin
clrscr;
writeln('Vvedite nachalnoe vremya:');
write(' Chasy=');
readln(ch1);
write(' Minuty=');
readln(mn1);
write(' Secundy=');
readln(sc1);
writeln('Vvedite pribavlennoe vremya:');
write(' Chasy=');
readln(chd);
write(' Minuty=');
readln(mnd);
write(' Secundy=');
readln(scd);
scr:=(sc1+scd) mod 60;
mn:=(sc1+scd)div 60;
mnr:=(mn1+mnd+mn) mod 60;
ch:=(mn1+mnd+mn) div 60;
chr:=(ch1+chd+ch) mod 24;
clrscr;writeln('Nachalnoe vremya');
writeln(Conv(ch1),':',Conv(mn1),':',Conv(sc1));
writeln('vremy pribavlenia');
writeln(Conv(chd),':',Conv(mnd),':',Conv(scd));
writeln('konechnoe vremya');
writeln(Conv(chr),':',Conv(mnr),':',Conv(scr));
readkey;
end.