Sunteți pe pagina 1din 4

PRELEGERE I

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE

I. Bibliografie
[1] BOTEZ, C., GOSPODARU, M. – Limbaje de programare. Introducere în limbajul
C, Ed. Cerni, Iaşi, 1998
[2] BOTEZ, C., NEAGA, C. – Culegere de probleme de programare (C, dBase), Ed.
Lorely, Iaşi, 1996
[3] CATRINA, O., COJOCARU, I. –Turbo C++, Ed. Teora, Bucureşti, 1996
[4] CAZACU, C., SLABU, V. – Logică matematică, Ed. “Ştefan Lupaşcu”, Iasi, 1999
[5] CIOCOIU, M., SLABU, V. – Programarea în Fortran. Culegere de programe şi de
erori de programare comentate, Ed. Univ. Tehnice “Gh. Asachi”, Iasi, 1981
[6] GRIGORAŞ, GH. – Programarea calculatoarelor. Fundamente, Ed. “Spiru Haret”,
Iasi, 1999
[7] Negrescu L. – Introducere în limbajul C, Vol I+II, Ed. Info GLOB, Cluj-Napoca,
1992
[8] SLABU, V. – Programarea în limbajul Basic, Ed. Univ. Tehnice “Gh. Asachi”,
Iasi, 1993
[9] SLABU, V., SLABU, GH. – Programarea în limbajul Turbo Pascal, Ed. Univ.
Tehnice, Iasi, 1996
[10] SLABU, V., SLABU, GH. – PROGRAMARE – Reprezentarea algoritmilor şi
limbajul Turbo C++, Ed. Tehnica-Info, Chişinău, 2004
[11] SLABU, GH., SLABU, V. – Exerciţii rezolvate cu Turbo C++, Îndrumar de
laborator, Ed. Tehnica-Info, Chişinău, 2005
[12] SLABU, GH., SLABU, V. – Exerciţii rezolvate şi erori simulate în Turbo C++,
Îndrumar de laborator, Ed. Tehnica-Info, Chişinău, 2006

II. Cuprinsul cursului şi condiţii de lucru


Scheme logice,
Reprezentarea algoritmului de rezolvare al problemei în limbajul pseudocod,
Limbajul TurboC++

III. Rezolvarea automată a unei probleme simple


 x 3 − 1, dacă x ≥ 1

Să se afle G =  x , unde a, x ∈ ℜ .
 a − 5, dacă x < 1
DI (date input) : x, a
DO(date output): G
Pentru expresia a doua de definiţie a lui G se impune condiţia de existenţă a ≠ 0 În
continuare, se prezintă cele trei modalităţi de rezolvare:
OBS. a ≠ 0

1
%include <stdio.h>
%include <conio.h>
void main(void)
{ float x, G;
printf("\nIntroduceti x: "); scanf("%f", &x);
if ( x >= 1 ) { G = x*x*x - 1; printf("\nG = %f", G); }
else if (a != 0)
{ printf("\na = ");
scanf("%f", &a);
G = x/a - 5;
printf("\nG = %f", G); }
else printf("G nu are sens");
getch();
}

Introduceti x: -3.2
0.01
a=3

G = -6.066667

2
Iniţiere în gîndirea algoritmică
IV. Metodologia realizării unui program
Din etapele care formează metodologia de realizare a unui program, schema logică
(reprezentarea grafică, organigramă, logicogramă) sau reprezentarea în limbajul
pseudocod reprezintă etapa cea mai importantă, în sensul că programatorul trebuie să aibă
capaciatatea nu numai de a cunoaşte o metodă de rezolvare, de a alege dintr-o multitudine
de metode pe cea care se pretează mai bine (de exemplu pentru rezolvarea sistemelor
liniare de n ecuaţii cu n necunoscute, numărul acestora este de ordinul sutelor), ci şi de a
o descompune într-o succesiune logică de operaţii elementare care pot fi rezolvate de
către un sistem de calcul electronic. Toate celelalte etape:
- formularea problemei,
- colecţionarea şi prezentarea datelor sub o formă accesibilă calculatorului,
- precizarea metodei de rezolvare(sau a algoritmului de rezolvare)
- fixarea numelor simbolice pentru variabile de intrare, ieşire şi
intermediare,
- întocmirea schemei logice sau reprezentarea algoritmului de rezolvare al
problemei în limbajul pseudocod,
- codificarea programului într-un limbaj de programare procedural de
nivel înalt adecvat,
- tastarea şi validarea programului cu date de test,
- analiza şi interpretarea rezultatelor obţinute,
nu comportă atîtea dificultăţi şi greutăţi ca aceasta.
Schema logică sau reprezentarea simbolică în limbajul pseudocod este o etapă
intermediară între problema de rezolvat şi programul întocmit într-un anumit limbaj
procedural, care cu un simbolism adecvat permite detalierea operaţiilor componente
algoritmului de rezolvare a problemei date. Deşi numai o verigă între programator şi
calculator, aceasta reprezintă, mai ales, pentru informaticianul începător un ghid util şi
necesar în vederea rezolvării corecte şi rapide a unei probleme cu ajutorul unui sistem de
prelucrare automată a datelor.
În abordarea unei reprezentări, fie de tip grafic, fie în limbajul pseudocod, trebuie să se
ţină cont, pe de o parte, de configuraţia hardware a calculatorului, iar pe de alta, de
teoriile existente în acest domeniu. Într-un fel va arăta aceasta, dacă sistemul de calcul pe
care urmează să se rezolve programul scris după aceasta va fi un calculator cu capacitate
de memorare mare, periferice de intrare/ieşire performante, un soft evoluat şi altfel va
arăta, dacă acesta este un microcalculator cu facilităţi de programare restrînse.
Manipularea datelor – introducerea, prelucrarea şi extragerea datelor – cu care se lucrează
într-o problemă se face fără erori doar ţinînd cont de principiile care stau la baza
funcţionării calculatorului, în principal de faptul că memoria este conservativă,
distributivă şi că o informaţie distrusă nu mai poate fi utilizată în calcule ulterioare,
aceasta pierzîndu-se.
De asemenea, forma şi structura unei reprezentări simbolice se vor schimba în funcţie de
procedeul utilizat în întocmirea ei, acesta permiţînd utilizarea unui mod sistematic de
organizare a succesiunii operaţiilor care intervin în rezolvarea unei probleme şi asigurînd
o reflectare directă a evoluţiei calculelor în parcurgerea textului unui program. De

3
corectitudinea, convergenţa şi generalitatea unei scheme logice sau a reprezentării
simbolice în limbajul pseudocod depinde reuşita rezolvării corecte a unei probleme într-
un anumit context de condiţii.

Noţiunea de problemă
Indiferent de tip, o reprezentare simbolică nu se referă la un anumit caz particular al unei
probleme p, ci la o clasă întreagă de probleme sau cu alte cuvinte, la o funcţie p : I  F,
pentru care mulţimea datelor de intrare I şi mulţimea datelor de ieşire F nu sînt
specificate explicit. Fiecare i ∈ I va defini un caz particular al problemei p, iar
reprezentarea simbolică trebuie să ofere soluţia f, egală cu p(i), atunci cînd p(i) există,
într-un număr finit de paşi.
Această soluţie poate consta din mai multe date numerice, din date numerice şi decizii
sau numai din decizii: F, F=F0xD, F=D.
Numărul operaţiilor executate de un sistem automat de calcul este limitat şi în consecinţă
tipurile operaţiilor care apar într-o schemă logică vor fi limitate, urmînd ca experienţa şi
competenţa programatorului să-şi spună cuvîntul în înlocuirea metodei de rezolvare a
problemei printr-un ansamblu limitat de operaţii şi reguli care aplicate asupra unor date
să conducă într-un timp determinat la soluţia problemei.
Notaţiile utilizate pe parcursul unei reprezentări simbolice, atît pentru variabilele de
intrare/ieşire cît şi pentru cele intermediare, vor fi făcute în aşa fel încît să fie în
concordanţă cu normele limbajului de programare utilizat şi etapa privitoare la scrierea
programului să se desfăşoare fără modificări.
În general, indentificatorul de recunoaştere al unei variabile este o înşiruire de maxim
8 caractere (litere, cifre zecimale sau liniuţa de subliniere (_)) care începe cu o literă. Sînt
limbaje de programare unde lungimea numelui unei variabile poate atinge 255 de
caractere. Practic, însă este greu de mînuit entităţi a căror nume au o lungime mare.
De obicei, pentru probleme simple şi programatori cu experienţă reprezentarea simbolică
nu se mai întocmeşte, programul fiind scris direct. De multe ori, chiar şi în aceste situaţii,
aceasta se impune fiind un mijloc de înţelegere între programatorii ce lucrează în limbaje
diferite şi un suport de bază în întocmirea documentaţiei ce însoţeşte un program.

S-ar putea să vă placă și