P. 1
Subprograme

Subprograme

|Views: 122|Likes:

More info:

Published by: Raducu Ionut Videanu on Dec 20, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

01/27/2013

pdf

text

original

Subprograme

Disciplina:Informatica Clasa a XI-a C G.S.T Videle VIDEANU RADUCU_IONUT

Procedurile B.Functiile .CUPRINS A.

scrieri) si care poate fi utilizat (rulat) doar daca este apelat de un program sau de un alt subprogram. citiri. Observatie . variabile si instructiuni scrise in vederea unei anumite prelucrari (calcule.SUBPROGRAME Definitie Prin subprogram se intelege un ansamblu alcatuit din tipuri de date.

la definirea procedurii se declara parametri. . pe langa care pot exista alte module numite subprograme.. pentru fiecare parametru precizandu-se numele si tipul acestuia Definitie -acesti parametri precizati la scrierea procedurii sunt niste simboluri. acesta trebuie apelat din modulul principal sau din interiorul altui subprogram. Procedurile Sintaxa unei proceduri: procedure <nume procedura> (l1:t1 . identificatori si se numesc parametri formali (se gasesc in antetul procedurii) . -in Pascal subprogramele sunt de doua tipuri: A) proceduri B) functii -ele difera prin antet. precum si o instructiune compusa begin-end. int. de subprograme folosite: a) matematice: sin. begin <instructiuni> end. trunc b) de prelucrare a sirurilor de caractere: length. exp.-un program va contine un modul numit modul principal.ln:tn). precum si prin tipul rezultatului intors de ele. Ex.l2:t2. reset. Definitie Modulul din care se face apelarea se numeste modul apelant (acesta poate fi programul principal sau chiar un subprogram). cos. <zona de declaratii a variabilelor locale>. Observatie -pana in prezent am fost doar utilizatori de subprograme. Definitie In esenta un subprogram este alcatuit din: 1) ANTET – acesta contine mai multe informatii importante necesare compilatorului: a) numele subprogramului b )lista de parametri (parametri formali) -in cazul functiilor contine si tipul rezultatului (valoarea intoarsa de functie) 2) CORPUL SUBPROGRAMULUI – acesta cuprinde definirea tipurilor de variabile ale subprogramului. Observatie . structura sa este identica cu cea a programului principal A. pos.val c) de manipulare a fisierelor:assign.. rewrite Avantajele utilizarii subprogramelor: 1) reutilizarea codului – o data scris un subprogram poate fi utilizat de mai multe subprograme 2) elaborarea algoritmilor prin descompunere problemei in altele mai simple 3) reducerea numarului de erori care pot aparea la scrierea subprogramelor 4) depistarea cu usurinta a erorilor Observatie -modulul apelant poate sa transmita subprogramului pe care il apeleaza niste date numite parametri si ii foloseste atunci cand se executa (in urma apelului). -orice subprogram are un identificator (adica numele dat subprogramului de catre utilizator) si eventual un set de date (parametri). prin modul in care pot fi apelate. -pentru a se executa instructiunile cuprinse intr-un subprogram.

tip si ordine cu parametri formali .3).a0. end. begin m:=(a+b)/2. readln(a). atunci valoarea ei va fi cunoscuta numai in interiorul subprogramului respectiv (in timpul executiei acestuia) b) variabila globala – daca este declarata la inceputul unui program.valori ale unor variabile obtinute prin atribuire sau citire. a0:=5.a. Ex.subprogramele se pot plasa in cadrul programului intre declaratiile de variabile si instructiunea compusa begin-end. abs(b0)). b0:=-4. var m. readln(b). calcul_media(a. atunci ea este “vazuta” in intreg programul (inclusiv in subprogram) Observatie . write(‘b=’).b : real. writeln(‘media este=’. readln. begin calcul_media (2. calcul_media (a0. . write(‘a=’).b0).i ar in afara subprogramului este cunoscuta variabila globala).putem avea o variabila locala si una globala cu acelasi nume. . m:6:2). adica zona din program in care este cunoscuta valoarea sa. Calculul mediei aritmetice a 2 numere folosind o procedura. modulul apelant este abandonat temporal si se executa procedura.cand se apeleaza procedura. aceasta trebuie apelata -la apel se precizeaza numele procedurii si valorile concrete ale parametrilor intre paranteze rotunde separate prin virgula Definitie . procedure calcul_media(a.pentru a se executa procedura.apelul unei proceduri este o instructiune numita instructiune de apel . in subprogramul in care a fost declarata . var x:integer. . Observatie . in timpul executiei procedurii parametri formali sunt inlocuiti in tot corpul procedurii cu parametri actuali (valori concrete). end..i n acest caz. 2) Exista 2 tipuri de variabile/constante a) variabila locala – daca este declarata intr-un subprogram.parametri actuali trebuie sa corespunda ca numar. In concluzie parametri actuali pot fi : .b).valorile parametrilor care se transmit la apel se numesc parametri actuali sau efectivi.valori returnate de functii.b:real). . . Program medie.b0. Program exemplu. Ex.variabila locala acunde variabila globala (in timpul executiei programului este vazuta valoarea variabilei locale. calcul_media (abs(a0). . Domeniul de vizibilitate al variabilelor(sau constantelor) Definitie 1) Prin domeniu de vizibilitate al unei variabile/constante se intelege zona de program in care este “vazuta” declaratia acesteia.constante. .valori ale unor expresii.dupa incheierea executiei procedurii se revine automat in modulul apelant la linia imediat urmatoare celei care a facut apelul.la apel controlul programului este transferat la prima instructiune a procedurii .orice variabila a programului principal este si variabila a procedurii (invers nu este adevarat).

end.putem sa transmitem prin referinta un parametru “gol”(doar numele lui. (un subprogram nedeclarat nu poate fi folosit) – un suprogram trebuie plasat in cadrul programului inaintea programului care-l apeleaza – pentru a scrie subprogramul dupa modulul apelant trebuie sa facem o asa numita declaratie anticipata a subprogramului folosind directiva FORWARD in zona de declaratii a programului. var a. begin writeln(‘eu sunt b’).sunt parametri a caror modificare in interiorul subprogramului este “vazuta” si la nivelul modulului apelant . valoare care mai apoi este este recunoscuta si de modulul apelant . writeln(x). dar in prelucrare nu ne intereseaza ca parametru efectiv (cel din blocul apelat) sa retina valoarea modificata in subprogram . begin a. t. fara valoare). end. forward. begin writeln(‘eu sunt a’). 2) program ex_2. Declararea unui subprogram Observatie . end. procedure a. end.la declararea subprogramului numele acestor parametri vor fi precedate de cuvantul cheie “var”. Dupa mecanismul de transmitere a parametrilor distingem 2 cazuri: 1) parametri transmisi prin valoare 2) parametri transmisi prin referinta 1) . integer. . begin a. 1) program ex_1. end. procedure a. end.procedure t(x:integer). begin x:=3.declara un subprogram inseamna a-l anunta.c . Ex.transmiterea prin valoare se utilizeaza atunci cand suntem interesati ca subprogramul sa lucreze cu acea valoare. nu si in afara acestuia . procedure b. begin writeln(‘eu sunt a’). program ex_ref.b. 2) Ex. begin writeln(x). end.se pot transmite prin valoare : valorile retinute de variabile . procedure b. x:=x+1.sunt parametri a caror modificare este vazuta numai in interior subprogramului respectiv. procedure a. b. in acest caz parametru poate sa primeasca valoare in corpul subprogramului. forward.

. readln(y). calcul(a. atribuit unei alte variabile Ex. end.var c:integer). deci toate precizarile facute pentru proceduri sunt valabile si in cazul functiei Sintaxa unei functii este Function <nume functie> (i1:t1. function medie (a.integer. m:= medie(x. m. y. write (medie(x. o functie “intoarce”(returneaza) o anumita valoare o functie returneaza un singur rezultat. .b:integer) : real. de aceea se spune ca o functie returneaza o valoare prin numele sau. writeln(m.in.b:integer.y)/2. n:=m.apelul unei procedure se face prin numele ei . intre begin si end trebuie sa existe cel putin o instruciune de atribuire care are ca membru stang numele functiei.iar rezultat intors de functie poate fi afisat. begin a:=1. Functiile ca si procedurile functiile fac si ele parte din categoria subprogramelor ele efectueaza anumite operatii.c). c:=3.c). writeln(a.’ ‘ . begin medie:=(a+b)/2. begin write(‘x=’). program medie_aritmetica.n:real. write(‘y=’). Observatie . end.y)). end. end.i2:t2.procedure calcul(a. unde tr reprezinta tipul valorii returnate de catre functie. b:=a+c. begin a:=b+c. <zona de declaratii locale a functiei> Begin <instructiuni> <nume_functie>:=e. {se va afisa 1 2 13} B.tn): tr.’ ‘. b:=2.n). pe cand o procedura poate returna mai multe sau nici un rezultat functia lucreaza la fel ca si procedura. folosit in expresii (calcule). dar in plus. readln x).b.b. var x. end.. c:=a+b.

Caiet Informatica 3.WIKIPEDIA.Manual Informatica 2.ORG .WWW.BIBLIOGRAFIE 1.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->