Beadando: /pub/progalap/kotelezoprogram FUGGVENYEK F(....): T {T a kimenet} Function F(p1:T1,...pn:Tn):T; var Begin F:=n; End; Pelda: valos szam gyoke s0=1 s_i=(1/2)(s_i-1+(c/s_i-1)) lim(si)=sqrt(c) CONST MAX:ITER=30; Fuunction Gyok( c: Real): Real; var i: Integer; si: Real; Begin si:=1; for i:=1 to MAX_ITER do begin si:=0.5*(si+c/si); end; Gyok:=si; End; Begin writeln(Gyok(2.0)); End. Letoltheto: /home/hpke/7gyak/haromf.pas /gyok.pas VEREM: LIFO: Last In First Out (pl: a gyokos feladat for ciklusanal) FIFO: First In First Out TOMB: Pascalban Array[s1,...sn] of T; pl: Array[1..3,1..3] of Real; -Ez egy 3*3-as matrix. TIPUSKEPZES: Type Tipusnev=tipus; homerseklet=Array[1..N,1...N,1..N] of Real; {3 arg lehet} Var pont: homerseklet. REKURZIO Sima: P ->(F->F) {magat hivogatja) Szimultan: P-> (F->F1->F2->...Fi->F) -Terminalasi feltetel -Közeledni kell a Terminalasi feltetelhez. pl: Fibonacci szamok F0=1, F1=1 F_i = F_i-1 + F_i-2 i>1 Function Fib(n:integer):longint; Begin if n<2 then Fib:=1 else Fib:=Fib(n-1)+Fib(n-2); End; /home/hpke/7gyak/FIB.PAS Program Fibonacci; Function Fib(i: Integer): LongInt; Begin if (i < 2) then Fib:=1 else Fib:=Fib(i-1)+Fib(i-2); End; Var k:Integer; Begin for k:=0 to 50 do begin writeLn(Fib(k)); end; End. ? 40-re mennyi A program lassu mert: lepesenkent 2*annyit kell szamolni (feloldalas binaris fa) Az n-edik lepesben kb 2^(n+1) fvt kell meghivni. A BAJ: nem tarolja el a korabbi adatokat:((( FELADAT: Fibonacci gyorsitasa Rekurziv Tomb: Longint /home/hpke/7gyak/FIB2.PAS {Fibonacci szamok rekurzio nelkul} Program Fibonacci_2; Const MAX_COUNT = 40; Type Fib_array = Array [0..MAX_COUNT] Of LongInt; Var Fib : Fib_array; i: Integer; Begin Fib[0]:=1; Fib[1]:=1; For i:=2 to MAX_COUNT do Begin Fib[i]:=Fib[i-1]+Fib[i-2]; writeLn(Fib[i]); End; End. ZH-n LESZ!!!!!!!!: for hurok vezerles fuggvenyek eljarasok Type Sztringek* tipusok(sorrend;* felsorolas*) HUROK VEZERLES vegtelen ciklus: olyan vegfeltetel ami sosem teljesul Paskalban: while ok=TRUE do Begin M1; if T1 then N1 ok=FALSE; {kilepes a ciklusbol} else if T2 . . . End FELADAT N! rekurzivan n=1 ->n!=1 kulonben: N!=(n-1)!*n