Kommunikáció paraméterek illetve globális változók segítségével - példaprogram
1. A program egy globális változóban (tömbben) tárolja az adatokat, melyeket az eljárások feldolgoznak.
program Globalis; uses Crt; type TOszt=array[1..50] of string; var Osztaly: TOszt; Letszam: integer; c: char; procedure Beiras; var i: integer; begin ClrScr; Write('Hány név lesz: '); ReadLn(Letszam); for i := 1 to Letszam do begin Write('Az ',i,'. név: '); ReadLn(Osztaly[i]) end end; procedure Rendezes; var i, j: integer; seged: string; begin for i := 1 to Letszam-1 do for j := i + 1 to Letszam do if Osztaly[i] > Osztaly[j] then begin seged := Osztaly[i]; Osztaly[i] := Osztaly[j]; Osztaly[j] := seged end end; procedure Listazas; var i: integer; begin ClrScr; for i:=1 to Letszam do WriteLn(Osztaly[i]); ReadKey end; begin repeat ClrScr; WriteLn('1. Nevek beírása'); WriteLn('2. Névsorba rendezés'); WriteLn('3. Listázás'); WriteLn('4. Vége'); repeat c := ReadKey until c in ['1'..'4', #27]; case c of '1': Beiras; '2': Rendezes; '3': Listazas; end; until (c = '4') or (c = #27) end.
2. Az egyes eljárások több adatsorral (tömbbel) is dolgoznak, paramétereken keresztül kapják meg a feldolgozandó tömböt, illetve adják vissza a főprogramnak.
program Parameterek; uses Crt; type TNaplo = array[1..50] of real; var A_oszt, B_oszt: Tnaplo; A_letsz, B_letsz: integer; procedure Beolvas(var Oszt: Tnaplo; var Letsz: integer); var i: integer; begin Write('Hány tanuló van: '); readln(Letsz); for i := 1 to Letsz do begin Write('Az ',i,'. átlaga: '); ReadLn(Oszt[i]) end; WriteLn; end; function Atlag(Oszt: Tnaplo; Letsz: integer): real; var i: integer; sum: real; begin sum := 0; for i := 1 to Letsz do sum := sum + Oszt[i]; Atlag:= sum / Letsz end; begin ClrScr; WriteLn('Irja be az A osztály tanulóinak átlagait: '); Beolvas(A_oszt, A_letsz); WriteLn('Irja be az B osztály tanulóinak átlagait: '); Beolvas(B_oszt, B_letsz); WriteLn('Az A osztály átlaga: ', Atlag(A_oszt, A_letsz):4:2 ); WriteLn( 'A B osztály átlaga: ', Atlag(B_oszt, B_letsz):4:2 ); ReadKey; end.