Cvičení 3-4 Procedury, funkce,řetězce
Procedury Procedura Procedura Procedura je podprogram, který mění stav programu (změnou stavu proměnných nebo změnou stavu obrazovky). Syntaxe procedure ident_proc(seznam parametrů); procedure ident_proc
var p: integer; z: char; procedure vypisZnaku(znak: char; pocet: integer); var i: integer; begin for i := 1 to pocet do begin write(znak); end; begin write('Zadej znak:'); readln(z); write('Zadej pocet (cislo):'); readln(p); vypisZnaku(z, p); readln; end.
type TVektor=array[1..100] of real; procedure SoucetVektoru(N:integer; var X,Y,Z:TVektor); {N je dimenze vektoru, X a Y jsou vstupni vektory, Z = X+Y} var i:integer; begin for i:=1 to N do Z[i]:=X[i]+Y[i]; end;
Funkce Funkce Funkce Funkce je podprogram, který vrací jednoduchou hodnotu do příkazu, odkud byla volána. Funkce by neměla měnit stav programu. Syntaxe function ident_fce(seznam_parametrů):typ_funkce ; function ident_fce(seznam_parametrů):typ_funkce ; function ident_fce:typ_funkce ;
var s, c1, c2: integer; function soucet(A: integer; B: integer): integer; begin result := A + B; end; begin write('Zadej prvni cislo:'); readln(c1); write('Zadej druhe cislo:'); readln(c2); s := soucet(c1, c2); writeln('Soucet je:', s); readln; end.
const M = 3; // pocet radku N = 5; // pocet sloupcu var matice: array[1..M, 1..N] of integer; i, j: integer; begin writeln('Zadani matice'); for i := 1 to M do for j := 1 to N do begin write('Zadej prvek [',i,',',j,']:'); readln(matice[i,j]); end; writeln('Vypis matice:'); for i := 1 to M do begin for j := 1 to N do write(matice[i,j],' '); writeln; end; readln; end.
Řetězce Definice: Definice: string[max_délka] Vlastnosti: Vlastnosti: Max_délka je celé číslo z intervalu [1, 255]. Řetězec je vlastně jednorozměrné pole znaků. Reprezentace: Reprezentace: Řetězec je uložen v (max_délka + 1) bytech. Nultý byte obsahuje znak, jehož ordinální číslo určuje skutečnou délku řetězce. Konstanta: 'posloupnost znaků' Konstanta: 'posloupnost znaků' Posloupnost znaků může být i prázdná. Pozn.: Typ string bez uvedení délky je standardní typ, který je v Turbo Pascalu totožný s typem string[255]. Od verze Delphi 2 tento typ umožňuje pracovat s delšími řetězci, které jsou reprezentovány jinak, než je uvedeno výše.
Př. řetězce var Zn,Zn1,Zn2:char; S:string[100]; S:string[100]; i,Pocet:integer; i,Pocet:integer; {Urceni poctu vyskytu znaku Zn v retezci S} Pocet:=0; for i:=1 to length(S) do if Zn=S[i] then Pocet:=Pocet+1; if Zn=S[i] then Pocet:=Pocet+1; {Nahrada znaku Zn1 znakem Zn2 v retezci S} for i:=1 to length(S) do if S[i]=Zn1 then S[i]:=Zn2; if S[i]=Zn1 then S[i]:=Zn2;