SUBPROGRAME Func ții și Proceduri Elaborat : Ciloci Lucia
Definiție :
Ce înțelegem prin subprogram O anumită secvență de instrucțiuni, identificată printr-un nume, care se pot executa de mai multe ori în cadrul unui program. Corpul unui subprogram se numește bloc.
Subprograme 1. Funcții 2. Proceduri
Defini ție : Func ții- sunt programe care calculează și returnează o singură valoare prin numele său.
Declarația unei funcții f unction f(x 1, x 2,..., x n ) : tr ; D; b egin ….. f:=e; ….. e nd; f- numele func ției ; D- declara ții locale : type label var const function procedure tr - tipul rezultatului ( TD simplu sau referinţă.) Numele f al funcţiei apare cel puţin o dată în partea stîngă a unei instrucţiuni de atribuire care se execută: f := e. Ultima valoare atribuită lui f va fi întoarsă în progra- mul principal.
Rezolvarea problemelor 1 . Elabora ți un program, utilizînd o funcție cu parametri care calculează media numerelor întregi i , j , k , m . Function m edia ( i , j , k , m :integer): real ; v ar s:integer; b egin s :=a+b+c+d; m edia:=s/4; e nd;
Program P1; Uses crt ; Var a,b,c,d :integer ; med :real ; Function m edia ( i , j , k , m :integer): real ; var s:integer; begin s:=a+b+c+d; media:=s/4; end; Begin Clrscr ; Writeln (‘Da ți numerele ’); Readln ( a,b,c,d ); Med :=media( a,b,c,d ); Writeln (‘Media numerelor =’ , med :0:2); Write(‘Media numerelor =’ , media( a,b,c,d ) :0:2); Readln End.
Rezolvarea problemelor 2 . Elabora ți un program, utilizînd o funcție cu parametri care calculează aria cercului . Function Ac( r :real ): real ; c onst pi=3.14; b egin AC:=pi* sqr (r); end;
Program P2; Uses crt ; Type punct =record x,y:real end; cerc =record centru:punct ; raza:real end; Var raza :real ; A :real; Function Ac( r :real ): real ; const pi=3.14; Begin AC:=pi* sqr (r); end; Begin Clrscr ; Writeln (‘Introduce ti raza cercului ’); Readln ( raza ); A := AC ( raza ); Writeln (‘ Aria cercului =’ , A :0:2); Readln End.
Rezolvarea problemelor 3 . Elabora ți un program, utilizînd o funcție cu parametri care calculează num ărul de vocale într-un șir de caractere . Function sir( s : siruri ) : integer ; v ar i,n :integer ; b egin n := ; f or i :=1 to length(s) do case s[ i ]of ‘a’,’0’,‘u’,’e’,‘i’,’A’,‘O’,’U’,‘E’,’I’:n:=n+1; end; sir:=n; e nd;
Program P3; Uses crt ; Type siruri =string; Var s1 :siruri; num :integer ; Function sir( s : siruri ) : integer ; var i,n :integer; b egin n := ; For i :=1 to length(s) do case s[ i ]of ‘a’,’0’,‘u’,’e’,‘i’,’A’,‘O’,’U’,‘E’,’I’:n:=n+1; end; sir:=n; end; Begin Clrscr ; Writeln (‘ Dati sirul ’); Readln (s1); num :=sir( s1 ); Writeln (‘In sir sunt’, num ,’ vocale ’ ); Readln End.
Rezolvarea problemelor 4 . Elabora ți un program, utilizînd o funcție cu parametri care calculează num ărul de apari ții a caracterului dat într-un șir de caractere . Function sir( s : string ; k :char ) : integer ; v ar i,n :integer ; b egin n := ; f or i :=1 to length(s) do begin if s[ i ]=k then n:=n+1; end; sir:=n; e nd;
Program P4; Uses crt ; Var s1 :string; k1 :char; num :integer ; Function sir( s : string ; k:char ) : integer ; var i,n :integer; b egin n := ; f or i :=1 to length(s) do begin if s[ i ]=k then n:=n+1; end; sir:=n; end; Begin Clrscr ; Writeln (‘ Dati sirul ’); Readln (s1); Write(‘k1=’); Readln (k1); num :=sir( s1,k1 ); Writeln (‘In sir sunt’, num ,’ caractere de’,k1 ); Readkey End.