PRELEGEREA_I pclp textile

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 Să se afle G = < - - 1 , 5 1 , 1 3 x dacă a x x dacă x , unde a, x . 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

Transcript of PRELEGEREA_I pclp textile

Page 1: PRELEGEREA_I pclp textile

PRELEGERE IPROGRAMAREA 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 lucruScheme logice,Reprezentarea algoritmului de rezolvare al problemei în limbajul pseudocod,Limbajul TurboC++

III. Rezolvarea automată a unei probleme simple

Să se afle G =

<−

≥−

1 ,5

1 ,13

xdacăa

xxdacăx

, unde a, x ℜ∈ .

DI (date input) : x, aDO(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

Page 2: PRELEGEREA_I pclp textile

%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

Page 3: PRELEGEREA_I pclp textile

Iniţiere în gîndirea algoritmică

IV. Metodologia realizării unui programDin 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

Page 4: PRELEGEREA_I pclp textile

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.

4