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.
Решение в файле
Объяснение: