Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program cmd;
- //uses crt;
- type
- arr=array[1..10] of string;
- var
- maxM,maxW,averageM,averageW:real;//Объявление переменных
- f,f2:text;//текстовые файлы
- a:arr;//массив строк
- imaxm,imaxw,i:integer;
- procedure vvod(var p:arr);//Процедура ввода текста в массив.
- var
- i:integer;
- FF:TEXT;
- begin
- assign(FF,'D:\yyy.txt');
- reset(FF);
- for i:= 1 to 10 do begin
- readln(FF,p[i]);
- writeln(p[i]);
- end;
- close(FF);
- end;
- procedure findmaxM(var b:arr; var cmax:real; var i_maxm:integer);//Процедура находит max среди мужчин.
- var
- k,err,p,x,x1,x2,x3:integer;
- averageM:real;//хранится ср.ариф
- sr:string;//хранится символ 'м', 'ж'
- begin
- cmax:=0;
- for k:= 1 to 10 do begin
- val(copy(b[k],10,1),x,err);//копируЕм и преобразуем строковое представление числа, в числовое
- val(copy(b[k],11,1),x1,err);
- val(copy(b[k],12,1),x2,err);
- val(copy(b[k],13,1),x3,err);
- averageM:=(x+x1+x2+x3)/4;// считаем ср.ариф
- sr:=copy(b[k],8,1);
- if (averageM>cmax) and (sr='м') then
- begin
- cmax:=averageM;
- i_maxm:=k;
- end;
- end;
- end;
- procedure findmaxW(var d:arr; var rmax:real; var i_maxw:integer);//Процедура находит max среди женщин.
- var
- n,code,y,y1,y2,y3:integer;
- averageW:real;
- st:string;
- begin
- rmax:=0;
- for n:= 1 to 10 do begin
- val(copy(d[n],10,1),y,code);
- val(copy(d[n],11,1),y1,code);
- val(copy(d[n],12,1),y2,code);
- val(copy(d[n],13,1),y3,code);
- averageW:=(y+y1+y2+y3)/4;
- st:=copy(d[n],8,1);
- if (averageW>rmax) and (st ='ж') then
- begin
- rmax:=averageW;
- i_maxw:=n;
- end;
- end;
- end;
- procedure allaverageM(var tt:arr; var sr_znachM:real);//Процедура находит общий средний балл среди мужчин.
- var
- count,c,q,z,z1,z2,z3,ercode:integer;
- x,sum:real;
- str:string;
- begin
- sum:=0;
- count:=0;
- for c:= 1 to 10 do begin
- val(copy(tt[c],10,1),z,ercode);
- val(copy(tt[c],11,1),z1,ercode);
- val(copy(tt[c],12,1),z2,ercode);
- val(copy(tt[c],13,1),z3,ercode);
- x:=(z+z1+z2+z3)/4;
- str:=copy(tt[c],8,1);
- if str = 'м' then
- begin
- sum:=sum+x;
- inc(count);
- end;
- if count <> 0 then
- sr_znachM:=sum/count;
- end;
- end;
- procedure allaverageW(var v:arr; var srznachW:real);//Процедура находит общий средний балл среди женщин.
- var
- summa,r:real;
- int,g,h,er,e,e1,e2,e3:integer;
- s:string;
- begin
- summa:=0;
- int:=0;
- for g:=1 to 10 do begin
- val(copy(v[g],10,1),e,er);
- val(copy(v[g],11,1),e1,er);
- val(copy(v[g],12,1),e2,er);
- val(copy(v[g],13,1),e3,er);
- r:=(e+e1+e2+e3)/4;
- s:=copy(v[g],8,1);
- if s = 'ж' then begin
- summa:=summa+r;
- inc(int);
- end;
- if int <> 0 then
- srznachW:=summa/int;
- end;
- end;
- Begin //Начало головной программы.
- assign(f2,'D:\resu.txt');
- rewrite(f2);
- vvod(a);
- writeln;
- findmaxM(a,maxM,imaxm);
- writeln;
- findmaxW(a,maxW,imaxw);
- writeln;
- allaverageM(a,averageM);
- writeln;
- allaverageW(a,averageW);
- for i:= 1 to 10 do begin
- writeln(f2,a[i]);
- end;
- writeln(f2,'Лидер среди мужчин:');
- write(f2,a[imaxm]);
- writeln;
- writeln(f2,'Общий средний балл мужчин = ',averageM);
- writeln(f2,'Лидер среди женщин:');
- write(f2,a[imaxw]);
- writeln;
- writeln(f2,'Общий средний балл мужчин = ',averageW);
- close(f2);
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement