program p11p102;
uses crt;
type pers=record
      v,h,m:integer;
      s,c:boolean;{masculin,casatorit=true}
     end;
     esantion=array[1..100]of pers;
var e:esantion;
    n,n1,n2,i,m:integer;
    k:char;
    P20,P170,M18,PFem,MM:REAL;
begin
clrscr;
randomize;
write('Nr de persoane: ');readln(n);  If n=0 then Halt(1);
writeln('Doresti sa generez lista (D/N)?');
if UpCase(readkey)='D' then
for i:= 1 to n do with e[i] do begin  {generarea de persoane}
 v:=random(45)+15;
 h:=random(100)+100;
 m:=random(115)+35;
 s:=random(2)=1;
 c:=random(2)=1;
end else
for i:= 1 to n do with e[i] do begin  {introducerea persoanelor}
Writeln('Persoana nr. ',i,':');
 write('- Varsta: ');readln(v);
 write('- Inaltimea: ');readln(h);
 write('- Masa: ');readln(m);
 write('- Sex (F/M):');
 repeat k:=UpCase(ReadKey);until k in ['F','M'];Writeln(k);
 s:=(k='M');
 write('- Casatorit (D/N): ');
 repeat k:=UpCase(ReadKey);until k in ['D','N'];Writeln(k);
 c:=(k='D');
end;
ClrScr;
writeln('V':4, 'H':5, 'M':5, 'Sex':7, 'Casat':7);
for i:=1 to 30 do write('-'); Writeln;
For i:=1 to n do with e[i] do writeln(v:4, h:5, m:5, s:7, c:7); Writeln;

{a)} n1:=0;
for i:=1 to n do if e[i].v<20 then inc(n1);
P20:=n1/n*100;

{b)} n1:=0;
for i:=1 to n do if e[i].h>170 then inc(n1);
P170:=n1/n*100;

{c)} n1:=0; m:=0;
for i:=1 to n do if e[i].v>18 then begin
 inc(n1);
 inc(m,e[i].m);
end;
if n1=0 then M18:=0 else M18:=m/n1;

{d)} n1:=0; n2:=0;
for i:=1 to n do with e[i] do if not s then begin
  inc(n1);
  if not c and(v>20)then inc(n2);
end;
if n1=0 then PFem:=0 else PFem:=100*n2/n1;

{e)} n1:=0; n2:=0; m:=0;
for i:=1 to n do inc(m,e[i].m); MM:=m/n; {Aflam masa medie in MM}

for i:=1 to n do with e[i] do if v in [20..50] then begin
  inc(n1);
  if(m>MM)then inc(n2);
end;
if n1=0 then MM:=0 else MM:=100*n2/n1;

Writeln('a) Procentul persoanelor sub 20 ani: ',P20:0:0);
Writeln('b) Procentul persoanelor cu inaltimea mai mare de 170cm: ',P170:0:0);
Writeln('c) Masa medie a unei persoane de peste 18 ani: ',M18:0:0);
Writeln('d) Proc. pers. de sex feminin ce au peste 20 ani si nu sunt casatorite: ',PFem:0:0);
Writeln('e) Procentul persoanelor intre 20-50 ani cu masa mai mare decat masa medie: ',MM:0:0);
readkey;
end.

