Pascalabc.net const n=25; { число учащихся } type inform=record fio: string; kols: integer end; var minf: array[1..n] of inform; i,j,t: integer; vs,v: real; ts: string; begin { ввод исходных и накопление суммы для среднего } writeln('введите исходные данные'); t: =0; for i: =1 to n do with minf[i] do begin write(i: 2,') фамилия и.о. '); readln(fio); write(i: 2,') количество знаков '); readln(kols); t: =t+kols end; vs: =t/n/10; { сортировка по убыванию kols } for i : = 1 to n-1 do for j : = 1 to n-i do if minf[j].kols < minf[j+1].kols then begin t : = minf[j].kols; minf[j].kols: =minf[j+1].kols; minf[j+1].kols: =t; ts : = minf[j].fio; minf[j].fio: =minf[j+1].fio; minf[j+1].fio: =ts end; { результаты } writeln('самый результативный: ',minf[1].fio,' (',minf[1].kols/10: 0: 1, ' симв/мин)'); writeln('средняя скорость ввода составила ',vs: 0: 2,' симв/мин'); writeln('скорость ввода ниже средней имеют: '); for i: =2 to n do begin v: =minf[i].kols/10; if v< vs then writeln(minf[i].fio, v: 0: 1,' симв/мин)') end end. тестовое решение для 5 человек (было указано n=5): введите исходные данные 1) фамилия и.о. иванов и.и. 1) количество знаков 360 2) фамилия и.о. петров п.п. 2) количество знаков 410 3) фамилия и.о. сидоров с.с. 3) количество знаков 270 4) фамилия и.о. козлов к.к. 4) количество знаков 390 5) фамилия и.о. поляков п.п. 5) количество знаков 385 самый результативный: петров п.п. (41.0 симв/мин) средняя скорость ввода составила 36.30 симв/мин скорость ввода ниже средней имеют: иванов и.и.36.0 симв/мин) сидоров с.с.27.0 симв/мин)
yusovd291
07.07.2022
Взависимости от версии компилятора языка паскаль, вещественные числа по умолчанию выводятся в различном виде. например, турбо (borland) паскаль выводит их в "научном" представлении, т.е. в виде мантиссы, содержащей один разряд до запятой и десятичного порядка. pascalabc.net, если может, выводит такие числа в виде привычной десятичной дроби. в ниже примере значение 4.03099999999977e+0001 читается следующим образом: . для того, чтобы получать вывод в "привычном" виде, можно использовать форматирование. для этого, в операторе вывода после значения переменной указывается конструкция вида m: n, где m- общее количество позиций, отводимое под запись числа (если 0 - то количество позиций определяется автоматически так, чтобы число поместилось), а n- количество позиций, отводимое под дробную часть. такая запись может применяться как для общего описателя типа вещественных чисел real, так и для конкретного (например, double - чисел "двойной точности", т.е. восьмибайтных). в примере хорошо видно, как использование двойной точности отражается на выводе результата в "научном" формате . пример на турбо паскаль {$g+,n+} uses crt; procedure sum1(a,b,c,d: real; var r: real); begin r: =a+b+c+d end; procedure sum2(a,b,c,d: double; var r: double); begin r: =a+b+c+d end; var e,f,g,h,res1: real; p,q,r,s,res2: double; begin clrscr; write('e f g h= '); read(e,f,g,h); sum1(e,f,g,h,res1); writeln('res1= ',res1,' = ',res1: 0: 2); write('p q r s= '); read(p,q,r,s); sum2(p,q,r,s,res2); writeln('res2= ',res2,' = ',res2: 0: 2); readkey end. тестовое решение: e f g h= 12.74 24.17 -5.6 9 res1= 4.03099999999977e+0001 = 40.31 p q r s= 12.74 24.17 -5.6 9 res2= 4.03100000000000e+0001 = 40.31
1бит; 10бит; 20 бит; 100 байт; 1010байт.