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.