program keretprogi; {A beolvasast-beszurast megvalosito eljaras a Prog.Modszertan 4.felevenek 2. beadandojahoz: - az eljaras a foprogiban van /majd atirom unit-ba is.../} {Szamoskozi Peter - 2001. apr. 5.} { a b c e f g ab ac be bf cg} {megkeres(szulo,holvan) beszur(gyerek,szulo,szabadmut)} const n=100; type Tindex=integer; TmutIndex=integer; Tertek=integer; tmutrec=array[1..n] of TmutIndex; trec=record ertek:tertek; m:tmutrec; end; Ttomb=array [1..n] of trec; var t:Ttomb; function holvanertek(const szulo:Tertek):Tindex; var i:Tindex; j:TmutIndex; holvan:Tindex; begin i:=0; repeat inc(i); if (T[i].ertek<>szulo) then begin {ha az erteke nem Ok...} j:=0; repeat {van-e ilyen mutatoja?} inc(j); until ( (T[i].m[j]=szulo) or ((j=n) and (T[i].m[j]<>szulo)) ); end; if T[i].m[j]=szulo then holvan:=(i*10)+j else if T[i].ertek=szulo then holvan:=(i*10)+0 else holvan:=0; {nehezebb: matrix-koordinatat adjon vissza} until ( (holvan<>0) or ((i=n) and (holvan=0))); holvanertek:=holvan; end; {procedure elso_szabad_mutatoja(const holvan:Tindex; var elsoszabadmut:TIndex); begin i:=0 repeat inc(i); until ( (T[holvan].m[i]='szabad') or ((i=maxMutDB) and (T[holvan].m[i]<>'szabad')) ); if (T[holvan].m[i]='szabad') then elsoszabadmut:=i else elsoszabadmut:=0; end;} procedure beszurgyerek(const holvan:Tindex; gyerek:Tertek; var tomb:Ttomb); begin if ((holvan<>0) and (elsoszabadmut<>0)) then Tomb[(holvan div 10)].m[(holvan mod 10)]:=gyerek; end; begin write('Szulo neve? '); readln(szulo); write('Gyerek neve? '); readln(gyerek); beszurgyerek(holvanertek(szulo),gyerek,t); end;