subprograme
Download
Skip this Video
Download Presentation
Subprograme

Loading in 2 Seconds...

play fullscreen
1 / 20

Subprograme - PowerPoint PPT Presentation


  • 121 Views
  • Uploaded on

Subprograme. Ce este un subprogram …. Este o secven ţă de instruc ţ iuni care rezolv ă o anumit ă sarcin ă . Un subprogram poate fi lansat î n execu ţ ie ori de c â te ori este nevoie.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Subprograme' - duncan-bernard


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ce este un subprogram
Ce este un subprogram…
  • Este o secvenţă de instrucţiuni care rezolvă o anumită sarcină.
  • Un subprogram poate fi lansat în execuţie ori de câte ori este nevoie.
  • Un subprogram poate fi apelat din programul principal, din alt subprogram, sau chiar autoapelat (subprograme recursive)
de ce sunt utile subprogramele
De ce sunt utile subprogramele ?!
  • Pentru că uneori o secvenţă de instrucţiuni (o parte dintr-un algoritm) se repetă.
  • Rezolvarea unei anumite sarcini este necesarăîn mai multe programe, şi astfel se ajunge la reutilizarea codului sursă.
  • Orice problemă poate fi descompusăîn subprograme, metoda de proiectare numindu-seproiectare Top-Down.
avantajele folosirii subprogramelor
Avantajelefolosiriisubprogramelor…
  • Subprogramelesuntconcepute independent de restulaplicaţiilor, acestlucrucrescândportabilitateaprogramelor.
  • Elaborarea algoritmilor devine mai simplă şi mai uşor de înţeles
  • Subprogramele permit dezvoltarea rapidă a aplicaţiilor complexe, prin reutilizarealor

>>

avantajele folosirii subprogramelor1
Avantajelefolosiriisubprogramelor…
  • Datorită faptului că un program poate fi descompus în mai multe subprograme care pot fi concepute de mai mulţi programatori se favorizează lucrul în echipă, iar fiecare subprogram poate fi reutilizat de câte ori este nevoie .
  • O aplicaţie poate fi mai uşor modificată la nivelul subprogramului, decât în cadrul intregii aplicaţii
alcatuire
Alcatuire:
  • a) Antetul Subprogramului

b) Corpul Subprogramului

-> Partea Declarativa

-> Partea Executiva

<antetulsubprogramului>

<declaratiipropriisubprogramului>

<instructiuniproprii subprogramului>

clasificare a subprogramelor
Clasificarea subprogramelor:
  • În funcţie de:

1)modalitatea de apel

subprogrameapelateca:

a) instructiuni– subprograme de tip procedură

b) operanzi – subprograme de tip funcţie

2) autorul subprogramului

a) Subprograme de sistem (predefinite)

b) Subprogrameutilizator

identifica i asem n rile i diferen ele ntre func ii i proceduri
Identificaţi asemănările şi diferenţele între funcţii şi proceduri !

Identificarea componentelor subprogramelor…

Function F(lista_parametrilor_formali): tip_rezultat;

Var lista_variabile_locale;

Begin

...

F:=expresie;

End;

Apelul se face prin: v:=F(lista_parametrilor_actuali);

write(F(lista_parametrilor_actuali));

Procedure P(lista_parametrilor_formali);

Var lista_variabile_locale;

Begin

...

End;

Apelul se face prin: P(lista_parametrilor_efectivi);

parametri de comunicare
Parametri de comunicare

se folosescpentru a realiza legăturaîntre module. După rolul lor în procesul de comunicare, se clasifică în:

Parametri de intrare:sunt date care urmează să fie prelucrate de subprogram (SP) şi care îi suntcomunicate de cătremodululapelant (P),P SP

Parametri de ieşire: suntrezulateobţinute de subprogram în urmaprelucrăriişi pe care le comunicămodululuiapelant. Modululapelant le primeşte dupăcesubprogramulîşi terminăexecuţia: SP P

Parametri de intrare-ieşire: sunt date care participă la calcululdatelor de ieşire şi suntaccesibile atât modululuiapelant, cât şi modululuiapelat. Valoarelorpoate fi modificată atât de subprogram cât şi de modululapelant: P SP

slide11

Clasificarea parametrilor

1. după locul în care sunt declaraţi:

  • Formali– sunt parametri scrişi în antetul subprogramului;
  • Actuali– sunt parametri scrişi la apelul subprogramului

2. după modul de transmitere:

  • Prin valoare – sunt parametri de intrare; modificarea valorii lor nu se transmite în modulul apelant
  • Prin adresă – sunt parametri de ieşire sau de intrare-ieşire; modificările valorilor lor se păstrează în modulul apelant
reguli de folosire a parametrilor
Reguli de folosire a parametrilor
  • Parametri actuali (de la apel) trebuie să corespundă ca număr, tip de dată şi ordine cu parametri formali (scrişi în antet)

Ex: function suma(a,b:integer):integer;

  • Parametri actuali corespunzători parametrilor formali transmişi prin valoare pot fi:
  • variabile sau expresii de tipul declarat al parametrului formal
  • Parametri actuali transmişi prin adresă nu pot fi decât variabile de tipul declarat al parametrului
slide13

----------------------------------------------------------------------- suma(a,b); --------------------------------------------------------------------------------------------- suma(2,3); ----------------------------------------------------------------------

  • Transferulparametrilorprin valoare
  • x  a
  • y  b
  • x  2
  • y  3
  • parametriactualiregula deparametriformali
  • corespondenţă

------------------------------------------------------------------------------------ proceduresuma (x,y: integer) ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

slide14

-------------------------------------------------------------------- schimba(a,b); -------------------------------------------------------------------------------------------- schimba(2,3); --------------------------------------------------------------------

  • Transferul parametrilor prin adresă
  • x  a
  • y  b
  • parametri actuali regula de parametri formali
  • corespondenţă

---------------------------------------------------------------------------------- procedureschimbă (var x,y: integer) ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

slide15

Criteriipentruclasificareavariabilelor de memorie

Domeniul de vizibilitate

Reprezintăzona din program în care estepermisaccesul la variabilă (textul programului)

Durata de viata

Reprezintaperioada de timp in care variabilei i se alocaspatiu in memorie (la rularea programului)

-> variabileglobale– tot progaramul

-> variabile locale – doarsubprogramulîn care au fostdeclarate

-> variabilelocale– durata de executie a blocului in care au fostdeclarate;

-> variabile cu duratastatica– durata de executie a programului;

-> variabiledinamice–

durata de alocare a memoriei in timpulexecutieiprogramului

utilizarea stivei de c tre programe
Utilizareastivei de cătreprograme

În timpul rulării unui program memoria este împărţităîn 4zone astfel :

  • Zona de date – aici sunt memorate variabilele globale.
  • Zona stack (stiva sistemului de operare) – aici se lucrează pe durata întregului subprogram, se păstrează temporar informaţii despre subprogramul apelant. Aceste informaţii sunt introduse în stivă (zona stack) atunci când este apelat subprogramul.
  • Zona de cod – în aceasta zonă se codifica instrucţiunile programului principal.
  • Zona HEAP * – aici se memorează variabilele alocate dinamic, prin intermediul pointerilor (pointerii vor fi studiaţi într-un alt capitol)
etapele executate la apelarea subprogramului sunt urmatoarele
Etapele executate la apelarea subprogramului sunt urmatoarele :
  • a) Se intrerupe executia modului apelant.

b) Se pregateste stiva sistemului astfel :

1) se introduce adresa de revenire in modul apelant;

2) se introduc valorile parametrilor cu care a fost apelat

subprogramul;

3) se rezerva spatiu pentru variabilele locale declarate in

subprogram.

c)Se lanseaza in executie codul executabil al subprogramului apelat.

etapele executate la terminarea subprogramului
Etapele executate la terminarea subprogramului :
  • Se efectuează în ordinea inversă de la apel:
  • Se elibereaza din stivaspatiul ocupat de variabilele locale si de parametrii;
  • Se extrage din stiva adresa de revenire in modulul apelant;
  • Se continua executia cu instructiunea de la adresa extrasa din stiva.
aplica ii
Aplicaţii
  • Scrieţi o procedură care interschimbă valorile a două variabile a şi b transmise ca parametri.
  • Se citesc două numere naturale a şi b. Stabiliţi dacă a şi b au aceeaşi sumă a cifrelor. În caz afirmativ, se va tipări suma cifrelor, iar în caz contrar, se vor tipări cele două numere împreună cu suma cifrelor în ordine crescătoare a sumei. În program veţi folosi o funcţie care returnează suma cifrelor unui număr transmis ca parametru de intrare.
  • Se citesc două numere naturale a şi b. Stabiliţi dacă a şi b au acelaşi produs al cifrelor. În caz afirmativ, se va tipări produsul cifrelor, iar în caz contrar, se vor tipări cele două numere împreună cu produsul cifrelor în ordine crescătoare a produsului. În program veţi folosi o funcţie care returnează produsul cifrelor unui număr transmis ca parametru de intrare.
diagrama vreau tiu pot
Diagrama vreau/ştiu/pot
  • Aranjaţi noţiunile din listă în coloana corespunzătoare:
  • subprogram, procedură, funcţie, parametru formal, parametru actual, transmitere prin valoare, transmitere prin adresă, apel de funcţie, apel de procedură, variabilă globală, variabilă locală, domeniu de vizibilitate, durata de viaţă a variabilelor, zona stivei sistemului