program ellenorzes; uses crt; const nmax=100; mezohossz=30; Type tszemely=record nev:string[mezohossz]; kor:integer; fizetes:real; end; tszemelyek=array[1..nmax] of tszemely; var szemelyek:tszemelyek; n:integer; i:integer; egesz:integer; valos:real; procedure beolvas; var be:string; ok:integer; begin repeat write ('A szemelyek szama:'); readln(be); val(be,n,ok); until(ok=0) and (n in [1..nmax]); {Ez utobbi lehetne: "and (n>=1) and (n<=nmax)" is} for i:=1 to n do begin repeat write(i,'. neve (max 30 karakter): '); readln(be); until (length(be)<=30) and (be<>''); szemelyek[i].nev:=be; repeat write(i,'. kora (egeszet 1-tol 150-ig): '); readln(be); val(be,egesz,ok); {A "val(a,b,c)" megnezi, "a" megfelel-e "b"-nek es ha igen, akkor "c" erteke igaz(1) lesz...} until (ok=0) and (egesz in [1..150]); szemelyek[i].kor:=egesz; repeat write(i,'. fizetese: '); readln(be); val(be,valos,ok); {A "val(a,b,c)" megnezi, "a" megfelel-e "b"-nek es ha igen, akkor "c" erteke igaz(1) lesz...} until (ok=0) and (valos>0); szemelyek[i].fizetes:=valos; end; end; begin end.