SlideShare a Scribd company logo
1 of 20
Material didactic pentru Informatică
Clasa a XI-a
M a r i a G u t u
x F(x) y
M a r i a G u t u
O1 — să cunoască noţiunea de funcţie;
O2 — să poată declara o funcţie;
O3 — să poată defini noţiunea de apel de
funcţie;
O4 — să înțeleagă execuția programelor
ce conțin funcții;
O5 — să poată alcătui programe cu
funcţii.
M a r i a G u t u
output
Numele
funcției
input
Conceptul de funcţie corespunde celui
uzual matematic şi extinde pe cel de
expresie Pascal.
M a r i a G u t u
1. Se dă funcția f(x)=3x+5.
Pentru: x=2, f(x)=3*2+5=11;
x=10, f(x)=3*10+5=35.
2. Se dă funcția f(x)=𝑥3 + 𝑥2+1.
Pentru: x=3, f(x)=33
+32
+1=27+9+1=37;
x=5, f(x)=53
+52
+1=125+25+1=151.
M a r i a G u t u
Funcția calculează și returnează o singură
valoare, ce se asociază numelui ei.
program functie;
var a: integer;
b,y: real;
function F(c: integer; d: real): real;
var n: real;
begin
. . .
end;
begin
. . .
y:= F(a,b);
end. M a r i a G u t u
Funcțiile se vor
scrie în partea
declarativă a
programului
- Apelul unei funcții se face în
partea executabilă a programului
program functie;
var a: integer;
b,y: real;
function F(c: integer; d: real): real;
var n: real;
begin
. . .
end;
begin
. . .
y:= F(a,b);
end. M a r i a G u t u
- antetul funcției
- partea declarativă a funcției
- partea executabilă a funcției
program functie;
var a: integer;
b,y: real;
function F(c: integer; d: real): real;
begin
. . .
end;
begin
. . .
y:= F(a,b);
end.
c, d - parametri formali valoare
În timpul apelării
dc
M a r i a G u t u
a, b - parametri actuali
program functie;
var a: integer;
b,y: real;
function F(c: integer, d: real): real;
begin
. . .
end;
begin
. . .
y:=F(a,b);
end.
Rezultatul
obţinut
După execuţie
c d
M a r i a G u t u
Se execută funcţia
program functie;
var a: integer;
b,y: real;
function F(c: integer; d: real): real;
begin
. . .
end;
begin
. . .
y:=F(5, 2.5); y:=F(2*a, b); y:=F(-2,a);
end.
Sunt posibile aşa apeluri
dc
M a r i a G u t u
Deci, parametri actuali ce corespund
parametrilor formali valoare pot fi
constante(5, 2.5, -2), expresii (2*a)
sau variabile (b, a)!
Parametri actuali ce corespund
parametrilor formali valoare pot
avea tipuri de date identice sau
compatibile!
M a r i a G u t u
Ce va afisa
urmatorul program?
program executie;
var x,y :integer;
function F(var a :integer) :integer;
begin
F:=a mod 10;
a:=a+1;
end;
begin
x:=11; y:=12;
writeln (‘rezultat: ‘ ,F(x)+F(x)+F(y));
end.
M a r i a G u t u
a - parametru formal
variabilă deoarece, este
precedat de cuvântul
cheie var
x, y - parametri actuali
Deci, parametri actuali ce corespund
parametrilor formali variabilă pot fi
doar variabile și vor avea tipuri de
date doar identice!
program executie;
var x, y :integer;
function F(var a :integer) :integer;
begin
end;
begin
writeln (’rezultat:’,F(x)+F(x)+F(y));
end.
a
writeln
M a r i a G u t u
Bloc de date Stivă
X
Y
11
12
a:
adresă x
F(x)
x:=11; y:=12;
F = 1
F:=a mod 10;
a:=a+1;
12
1 + ? + ?
După execuția 1:
F(x) = 1
X = 12
program executie;
var x, y :integer;
function F(var a :integer) :integer;
begin
end;
begin
writeln (’rezultat:’,F(x)+F(x)+F(y));
end.
a
writeln
M a r i a G u t u
Bloc de date Stivă
X
Y
12
12
a:
adresă x
F(x)
x:=11; y:=12;
F = 2
F:=a mod 10;
a:=a+1;
13
1 + 2 + ?
După execuția 2:
F(x) = 2
X = 13
F(x)
program executie;
var x, y :integer;
function F(var a :integer) :integer;
begin
end;
begin
writeln (’rezultat:’,F(x)+F(x)+F(y));
end.
a
writeln
M a r i a G u t u
Bloc de date Stivă
X
Y
13
12
a:
adresă y
F(x)
x:=11; y:=12;
F = 2
F:=a mod 10;
a:=a+1;
13
1 + 2 + 2 = 5
După execuția 3:
F(y) = 2
y = 13
F(y)F(x)
program functie;
var
function F( ):
begin ... end;
begin
y:=F( , );
end.
În timpul lucrului cu funcţiile ţinem cont de:
1.Numărul de parametri să fie acelaşi.
2.Tipul parametrilor să coincidă.
a: integer;
c: integer;
b,
d: real
a b
3.Tipul functiei trebuie să coincidă cu
tipul variabilei căreia i se atribuie apelul funcției.
y : real;
F real;
M a r i a G u t u
a: integer;
c: integer;
a
y : real;b, : real;
b
d: real real;
y
y
M a r i a G u t u
Se consideră două numere reale. Să se
scrie un program ce va determina
numărul mai mare, utilizând o funcție.
Program ElementMax;
var a,b, F:real;
function max(x, y:real):real;
begin
if x > y then max:=x else max:=y;
end;
begin
write (‘a='); readln(a);
write (‘b='); readln(b);
F:=max(a,b);
writeln (‘Elementul maxim este: ',F);
end.
M a r i a G u t u
M a r i a G u t u
Modificați programul de mai sus astfel
încât să se determina numărul mai mare
dintre patru numere reale, utilizând o
funcție ce va determina elementul mai
mare dintre două numere.
M a r i a G u t u
Fișe cu probleme

More Related Content

What's hot

Fisiere Pascal/Pascal ABC
Fisiere Pascal/Pascal ABCFisiere Pascal/Pascal ABC
Fisiere Pascal/Pascal ABCm_gutu
 
68 De Pagini De Probleme Rezolvate Si Teorie In Pascal
68 De Pagini De Probleme Rezolvate Si Teorie In Pascal68 De Pagini De Probleme Rezolvate Si Teorie In Pascal
68 De Pagini De Probleme Rezolvate Si Teorie In Pascalguest274e8
 
Sintaxa si limbajul pascal
Sintaxa si limbajul pascalSintaxa si limbajul pascal
Sintaxa si limbajul pascalalinabacalim
 
1 1 Purtatorii De Informatie
1 1 Purtatorii De Informatie1 1 Purtatorii De Informatie
1 1 Purtatorii De InformatieVasile Filat
 
1 2 Sisteme De Numeratie
1 2 Sisteme De Numeratie1 2 Sisteme De Numeratie
1 2 Sisteme De NumeratieVasile Filat
 
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţieiCodificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţieiColegiul de Industrie Usoara
 
Proiect cl ix
Proiect cl ixProiect cl ix
Proiect cl ixClaudia
 
3 2 Interfete Grafice
3 2 Interfete Grafice3 2 Interfete Grafice
3 2 Interfete GraficeVasile Filat
 
1 4 Cantitatea De Informatie
1 4 Cantitatea De Informatie1 4 Cantitatea De Informatie
1 4 Cantitatea De InformatieVasile Filat
 
Utilizarea functiilor in Excel
Utilizarea functiilor in ExcelUtilizarea functiilor in Excel
Utilizarea functiilor in ExcelDaniela Baluna
 

What's hot (20)

Fisiere Pascal/Pascal ABC
Fisiere Pascal/Pascal ABCFisiere Pascal/Pascal ABC
Fisiere Pascal/Pascal ABC
 
68 De Pagini De Probleme Rezolvate Si Teorie In Pascal
68 De Pagini De Probleme Rezolvate Si Teorie In Pascal68 De Pagini De Probleme Rezolvate Si Teorie In Pascal
68 De Pagini De Probleme Rezolvate Si Teorie In Pascal
 
Fisiere pascal
Fisiere pascalFisiere pascal
Fisiere pascal
 
Sintaxa si limbajul pascal
Sintaxa si limbajul pascalSintaxa si limbajul pascal
Sintaxa si limbajul pascal
 
1 1 Purtatorii De Informatie
1 1 Purtatorii De Informatie1 1 Purtatorii De Informatie
1 1 Purtatorii De Informatie
 
Reţele de calculatoare
Reţele de calculatoareReţele de calculatoare
Reţele de calculatoare
 
1 2 Sisteme De Numeratie
1 2 Sisteme De Numeratie1 2 Sisteme De Numeratie
1 2 Sisteme De Numeratie
 
Cantitatea de informatie
Cantitatea de informatieCantitatea de informatie
Cantitatea de informatie
 
Analiza algoritmilor. Masurarea volumului
Analiza algoritmilor. Masurarea volumului Analiza algoritmilor. Masurarea volumului
Analiza algoritmilor. Masurarea volumului
 
Tipul de date boolean
Tipul de date booleanTipul de date boolean
Tipul de date boolean
 
Functiii
FunctiiiFunctiii
Functiii
 
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţieiCodificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
 
Proiect cl ix
Proiect cl ixProiect cl ix
Proiect cl ix
 
Notiune de model si modelare
Notiune de model si modelareNotiune de model si modelare
Notiune de model si modelare
 
Lectie excel
Lectie excelLectie excel
Lectie excel
 
Diagrame excel 2007
Diagrame excel 2007Diagrame excel 2007
Diagrame excel 2007
 
3 2 Interfete Grafice
3 2 Interfete Grafice3 2 Interfete Grafice
3 2 Interfete Grafice
 
1 4 Cantitatea De Informatie
1 4 Cantitatea De Informatie1 4 Cantitatea De Informatie
1 4 Cantitatea De Informatie
 
Metoda trierii(1)
Metoda trierii(1)Metoda trierii(1)
Metoda trierii(1)
 
Utilizarea functiilor in Excel
Utilizarea functiilor in ExcelUtilizarea functiilor in Excel
Utilizarea functiilor in Excel
 

More from m_gutu

Jeopardy Vocabularul și sintaxa limbajului Pascal
Jeopardy  Vocabularul și sintaxa limbajului PascalJeopardy  Vocabularul și sintaxa limbajului Pascal
Jeopardy Vocabularul și sintaxa limbajului Pascalm_gutu
 
Flipped Classroom
Flipped ClassroomFlipped Classroom
Flipped Classroomm_gutu
 
Java While Loop
Java While LoopJava While Loop
Java While Loopm_gutu
 
Parcurgerea arborilor binari
Parcurgerea arborilor binariParcurgerea arborilor binari
Parcurgerea arborilor binarim_gutu
 
Java IF Statement
Java IF StatementJava IF Statement
Java IF Statementm_gutu
 
Java For Loop
Java For LoopJava For Loop
Java For Loopm_gutu
 
Scanner class and Decimal Format in Java
Scanner class and Decimal Format in JavaScanner class and Decimal Format in Java
Scanner class and Decimal Format in Javam_gutu
 
Variabile dinamice. Tipul referinta.
Variabile dinamice. Tipul referinta.Variabile dinamice. Tipul referinta.
Variabile dinamice. Tipul referinta.m_gutu
 

More from m_gutu (8)

Jeopardy Vocabularul și sintaxa limbajului Pascal
Jeopardy  Vocabularul și sintaxa limbajului PascalJeopardy  Vocabularul și sintaxa limbajului Pascal
Jeopardy Vocabularul și sintaxa limbajului Pascal
 
Flipped Classroom
Flipped ClassroomFlipped Classroom
Flipped Classroom
 
Java While Loop
Java While LoopJava While Loop
Java While Loop
 
Parcurgerea arborilor binari
Parcurgerea arborilor binariParcurgerea arborilor binari
Parcurgerea arborilor binari
 
Java IF Statement
Java IF StatementJava IF Statement
Java IF Statement
 
Java For Loop
Java For LoopJava For Loop
Java For Loop
 
Scanner class and Decimal Format in Java
Scanner class and Decimal Format in JavaScanner class and Decimal Format in Java
Scanner class and Decimal Format in Java
 
Variabile dinamice. Tipul referinta.
Variabile dinamice. Tipul referinta.Variabile dinamice. Tipul referinta.
Variabile dinamice. Tipul referinta.
 

Functii in pascal

  • 1. Material didactic pentru Informatică Clasa a XI-a M a r i a G u t u x F(x) y
  • 2. M a r i a G u t u O1 — să cunoască noţiunea de funcţie; O2 — să poată declara o funcţie; O3 — să poată defini noţiunea de apel de funcţie; O4 — să înțeleagă execuția programelor ce conțin funcții; O5 — să poată alcătui programe cu funcţii.
  • 3. M a r i a G u t u output Numele funcției input Conceptul de funcţie corespunde celui uzual matematic şi extinde pe cel de expresie Pascal.
  • 4. M a r i a G u t u 1. Se dă funcția f(x)=3x+5. Pentru: x=2, f(x)=3*2+5=11; x=10, f(x)=3*10+5=35. 2. Se dă funcția f(x)=𝑥3 + 𝑥2+1. Pentru: x=3, f(x)=33 +32 +1=27+9+1=37; x=5, f(x)=53 +52 +1=125+25+1=151.
  • 5. M a r i a G u t u Funcția calculează și returnează o singură valoare, ce se asociază numelui ei.
  • 6. program functie; var a: integer; b,y: real; function F(c: integer; d: real): real; var n: real; begin . . . end; begin . . . y:= F(a,b); end. M a r i a G u t u Funcțiile se vor scrie în partea declarativă a programului - Apelul unei funcții se face în partea executabilă a programului
  • 7. program functie; var a: integer; b,y: real; function F(c: integer; d: real): real; var n: real; begin . . . end; begin . . . y:= F(a,b); end. M a r i a G u t u - antetul funcției - partea declarativă a funcției - partea executabilă a funcției
  • 8. program functie; var a: integer; b,y: real; function F(c: integer; d: real): real; begin . . . end; begin . . . y:= F(a,b); end. c, d - parametri formali valoare În timpul apelării dc M a r i a G u t u a, b - parametri actuali
  • 9. program functie; var a: integer; b,y: real; function F(c: integer, d: real): real; begin . . . end; begin . . . y:=F(a,b); end. Rezultatul obţinut După execuţie c d M a r i a G u t u Se execută funcţia
  • 10. program functie; var a: integer; b,y: real; function F(c: integer; d: real): real; begin . . . end; begin . . . y:=F(5, 2.5); y:=F(2*a, b); y:=F(-2,a); end. Sunt posibile aşa apeluri dc M a r i a G u t u Deci, parametri actuali ce corespund parametrilor formali valoare pot fi constante(5, 2.5, -2), expresii (2*a) sau variabile (b, a)! Parametri actuali ce corespund parametrilor formali valoare pot avea tipuri de date identice sau compatibile!
  • 11. M a r i a G u t u Ce va afisa urmatorul program?
  • 12. program executie; var x,y :integer; function F(var a :integer) :integer; begin F:=a mod 10; a:=a+1; end; begin x:=11; y:=12; writeln (‘rezultat: ‘ ,F(x)+F(x)+F(y)); end. M a r i a G u t u a - parametru formal variabilă deoarece, este precedat de cuvântul cheie var x, y - parametri actuali Deci, parametri actuali ce corespund parametrilor formali variabilă pot fi doar variabile și vor avea tipuri de date doar identice!
  • 13. program executie; var x, y :integer; function F(var a :integer) :integer; begin end; begin writeln (’rezultat:’,F(x)+F(x)+F(y)); end. a writeln M a r i a G u t u Bloc de date Stivă X Y 11 12 a: adresă x F(x) x:=11; y:=12; F = 1 F:=a mod 10; a:=a+1; 12 1 + ? + ? După execuția 1: F(x) = 1 X = 12
  • 14. program executie; var x, y :integer; function F(var a :integer) :integer; begin end; begin writeln (’rezultat:’,F(x)+F(x)+F(y)); end. a writeln M a r i a G u t u Bloc de date Stivă X Y 12 12 a: adresă x F(x) x:=11; y:=12; F = 2 F:=a mod 10; a:=a+1; 13 1 + 2 + ? După execuția 2: F(x) = 2 X = 13 F(x)
  • 15. program executie; var x, y :integer; function F(var a :integer) :integer; begin end; begin writeln (’rezultat:’,F(x)+F(x)+F(y)); end. a writeln M a r i a G u t u Bloc de date Stivă X Y 13 12 a: adresă y F(x) x:=11; y:=12; F = 2 F:=a mod 10; a:=a+1; 13 1 + 2 + 2 = 5 După execuția 3: F(y) = 2 y = 13 F(y)F(x)
  • 16. program functie; var function F( ): begin ... end; begin y:=F( , ); end. În timpul lucrului cu funcţiile ţinem cont de: 1.Numărul de parametri să fie acelaşi. 2.Tipul parametrilor să coincidă. a: integer; c: integer; b, d: real a b 3.Tipul functiei trebuie să coincidă cu tipul variabilei căreia i se atribuie apelul funcției. y : real; F real; M a r i a G u t u a: integer; c: integer; a y : real;b, : real; b d: real real; y y
  • 17. M a r i a G u t u Se consideră două numere reale. Să se scrie un program ce va determina numărul mai mare, utilizând o funcție.
  • 18. Program ElementMax; var a,b, F:real; function max(x, y:real):real; begin if x > y then max:=x else max:=y; end; begin write (‘a='); readln(a); write (‘b='); readln(b); F:=max(a,b); writeln (‘Elementul maxim este: ',F); end. M a r i a G u t u
  • 19. M a r i a G u t u Modificați programul de mai sus astfel încât să se determina numărul mai mare dintre patru numere reale, utilizând o funcție ce va determina elementul mai mare dintre două numere.
  • 20. M a r i a G u t u Fișe cu probleme