Jump to content

[PASCAL] Informatică Clasa a X-a - Capitolul #1 (Subprograme) - Lecţia 1.1


Leventhe
 Share

Recommended Posts

1.1 Noţiunea de subprogram

 

 

 

Prin subprogram vom intelege un ansamblu alcatuit din declarari si intructiuni scrise in vederea unei anumite prelucrari, ansamblu implementat separat si identificat printr-un nume.

 

Pana in prezent am folosit doar utilizatori de subprograme. Exemple de astfel de subprograme folosite sunt:

  • matematice: sin, cos, abs, exp, trunc;
  • de manipulare a fisierelor: close.

In acest capitol invatam sa lucram cu subprograme. Pentru a intelege notiunea de subprogram, vom porni de la doua exemple.

1. Se considera functia:

ca32Y5I.png

Se citesc doua valori reale a si b. Sa se scrie un program care afiseaza care dintre valorile f(a) si f(b) este cea mai mare.

 

Ce observam? Ca atat pentru calculul valorii functie in punctul a, cat si pentru calculul valorii functiei in punctul b, aplicam acelasi tip de rationament: incadram valoarea respectiva (a sau b) intr-unul dintre cele trei intervale si aplicam formula de calcul corespunzatoare.

 

Cum procedam? Prin utilizarea cunostintelor dobandite pana in prezent, scriem secventa de program care calculeaza valoarea functiei calculata pentru x=a si se mai scrie o data (sau se copiaza si se adapteaza) secventa de program care calculeaza valoarea functiei calculata pentru x=b.

 

Oare nu se poate lucra si altfel? Raspunsul este afirmativ. Se scrie un subprogram care calculeaza valoarea functiei intr-un punct x oarecare si se apeleaza subprogamul: o data pentru x=a si inca o data pentru x=b. Valorile calculate la cele doua apeluri, se compara intre ele si se afiseaza rezultatul cerut.

 

2. Se citeste n, un numar natural. Se citesc apoi n numere naturale. Se cere sa se afiseze cele n numere in ordinea crescatoare a valorilor lor.

 

Desigur, stim sa rezolvam aceasta problema in mai multe feluri, pentru ca stim sa memoram un sir de valori (folosind un vector) si am studiat mai multe metode prin care se poate obtine ordonarea crescatoare a unui sir de valori (folosind algoritmi de sortare). De aceasta data, vom implementa o metoda cunoscuta, cea de sortare, dar vom utiliza subprogramele.

 

Vom scrie un subprogram care citeste un vector, unul care tipareste un vector si un al treilea care sorteaza vectorul dupa una din metodele cunoscute.

 

In acest caz, programul ar arata astfel:

Pasul 1 - se apeleaza subprogramul care citeste vectorul.

Pasul 2 - se apeleaza subprogramul care sorteaza vectorul.

Pasul 3 - se apeleaza subprogramul care tipareste vectorul.

 

Fata de scrierea clasica, aici problema a fost descompusa in trei probleme mai simple (citire, sortare si tiparire). In general, o problema complexa se rezolva mai usor daca o descompunem in alte subprobleme mai mici. Apoi, sansele de a gresi la scrierea unui subprogram sunt cu mult mai mici decat acelea de a gresi la scrierea unui program mare.

 

In plus, daca intr-un alt program este necesara sortarea altui vector de numere reale, metoda clasica ne permite sa alegem din secventa de instructiuni de numere reale, metoda clasica ne permite sa alegem din secventa de instructiuni ce formeaza programul pe cele ce realizeaza sortarea, sa le copiem in noul program si sa facem eventualele adaptari (numarul de componente si numele vectorului pot fi altele). Aceste operatii sunt destul de greoaie si necesita multa atentie. Prin implementarea modulara, cu ajutorul subprogramelor, "preluarea" se realizeaza mult mai usor.

 

Putem acum enumera unele dintre avantajele utilizarii subprogramelor:

  • reutilizarea codului - odata scris, un subprogram poate fi utilizat de catre mai multe programe;
  • elaboarea algoritmilor prin descompunerea problemei in altele mai simple - in acest fel, rezolvam cu mult mai usor problema;
  • reducerea numarului de erori care pot aparea la scrierea programelor;
  • depistarea cu usurinta a erorilor - verificam la inceput subprogramele, apoi modul in care le-am asamblat (le-am apelat din cadrul programului);
  • realizarea unor programe usor de urmarit (lizibile).

Acesta a fost lectia noastra, ne vedem data viitoare cand va voi prezenta un exemplu de utilizare a functiilor. Astept PM cu orice problema de informatica, limbajul Pascal, pentru, clasa a IX-a si a X-a. Mai sus de clasa a X-a nu va pot ajuta, deoarece in momentul actual sunt in clasa a X-a si nu cunosc materia de clasa a XI-a si mai sus. Voi continua cu clasa a IX-a dupa ce voi termina cu clasa a X-a.

 

 

Edited by Blaze
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.