Sunteți pe pagina 1din 8

Curs 1

Introducere, definiii, algoritmi

Definiii Calculator electronic = dispozitiv programabil destinat prelucrrii automate a informaiei, n care operaiile elementare se efectueaz cu vitez i precizie ridicat n sistemul de numeraie binar.

Limbaj de programare - limbaj folosit pentru scrierea de programe pentru calculatoare - mijloc de comunicare ntre utilizator i calculator, prin intermediul cruia utilizatorul transmite aciunile pe care calculatorul trebuie s le desfaoare asupra datelor. ex: FORTRAN, BASIC, Pascal, C, C++, Java, Program = descrierea ntr-un limbaj de programare, a prelucrrile ce trebuie efectuate de ctre calculator asupra anumitor date. = succesiune de instruciuni transmise calculatorului pentru a fi executate = mulime finit de reguli de calcul, descrise fr echivoc, care indic operaiile elementare i ordinea efecturii lor n scopul rezolvrii unei probleme ntr-un timp finit.

Algoritm

Exemplu:

e x = ( 1)k
k =0

x 2k k!

Fr echivoc -> informaiile din fiecare stare a procesului trebuie s fie suficiente
pentru a determina unic i complet aciunile necesare la fiecare pas. Programare = activitatea desfurat pentru elaborarea programelor. - iniial - activitate caracteristic unor iniiai limbaj de asamblare Programatori = cei care desfoar o activitate de programare. Utilizator (user) = persoan care folosete un calculator pentru prelucrarea datelor i obinerea informaiilor. Dat = orice indicator (semn, figur, cuvnt, fapt, etc.) care reprezint o idee, un concept sau o situaie. Date = colecie de fapte obinute ca rezultat al unor experiene, observaii sau experimente - reprezint cel mai sczut nivel de abstractizare din care sunt deduse informaii i cunoatere Informaii = date procesate pentru a fi utile (rspund unor ntrebri de genul: cine, ce unde, cnd) T=100 K >dat Tc=60 K (pentru un anumit compus) -> informaie

Prelucrarea informaiilor

Curs 1

Introducere, definiii, algoritmi

Compilator = traductorul programelor surs n coduri (programe) obiect. compilare = traducerea programului din limbaj evoluat n limbaj main, adic transformarea setului de instruciuni ale programului ntr-o reprezentare intern caracteristic tipului de calculator folosit => programe obiect Editor de legturi = unete modulele obiect nrudite generate de ctre compilator prin procesarea programului surs i produce codul (programul) executabil. Elementul esenial dintr-un cod obiect este codul main care poate fi executat direct de ctre CPU link editare (editare de legaturi) = producerea codului executabil din programul obiect i a modulelor obiect asociate (bibliotecile de funcii standard).

Etapele rezolvrii problemelor 1. formularea problemei n limbajul domeniului (specificaii de definire, ipoteze de lucru, scopuri, probleme nrudite) problema 2. conceperea rezolvrii problemei date n limbaj matematic (analiza problemei, metoda de rezolvare, ecuaii, relaii, etc.) modelul matematic 3. formularea algoritmului de rezolvare a problemei (date de intrare, date de ieire, tehnici de programare, resurse de calcul) modelul algoritmic 4. implementarea algoritmului folosind un limbaj de programare (metode de calcul numeric, tehnici de programare, sistem de operare, compilatoare) program surs, obiect, executabil 5. evaluarea corectitudinii programului i a potenialului su pentru rezolvarea altor probleme Metoda rafinrii pas cu pas

Metoda rafinrii pas cu pas

Etapele dezvoltrii unui program: - implic: 1. dezvoltarea algoritmului 2. reprezentarea algoritmului ca program

Curs 1

Introducere, definiii, algoritmi

Rezolvarea problemelor cu ajutorul calculatorului

Exemple de programare n cod main (secvene de instruciuni main = iruri de cifre binare) ex : X+Y 100101 00001 00010 00110 - instruciune n cod main - caracteristic unui anumit tip de calculator 100101 = codul operaiei de adunare 00001 - locul unde se afla X n memoria calculatorului (registrul 1) 00010 - locul unde se afla Y n memoria calculatorului (registrul 2) 00110 - locul n care va fi depus rezultatul (registrul 6) => trebuie tiut : - adresele regitrilor n care se gsesc operanzii - adresa registrului n care va fi depus rezultatul - codurile tuturor operaiilor
Instruciuni n limbaj de asamblare i n limbaj main

Limbaj de asamblare folosete coduri mnemonice pentru a referi instruiunile n cod main (conine numere i cuvinte simple) Limbaj main add 100101 sub 011001 mpy 001101 cmp 100111 n limbajul C: int x , y , z ; z=x+y; Sau: n C: v=v0+a*t; n limbaj de asamblare: mpy a,t,u add v0,u,v

Curs 1

Introducere, definiii, algoritmi

Programare n cod main (limbaj de asamblare) - accesibil unui numr restrns de iniiai Programare simbolic - limbaje de nivel nalt <-> amatori 1954-1957 FORTRAN 1960 1971 1972 1980 ALGOL BASIC PASCAL C Linux C++ - rspndit (fiind primul i de succes ) - biblioteci dezvoltate

- excelent pentru iniierea n programare - dezvoltat de ctre D. Ritchie la Bell Labs pentru implementarea SO - ofer avantajele programrii modulare - a fost dezvoltat ncepnd cu 1979 la Bell Labs de ctre Bjarne Stroustrup (versiunea comercial a aprut n 1985).

Curs 1

Introducere, definiii, algoritmi

Algoritm - mulime finit de reguli de calcul, descrise fr echivoc, care indic operaiile elementare necesare i ordinea efecturii lor n scopul rezolvrii unei probleme ntrun timp finit - metod (procedeu) de rezolvare a unei probleme - reprezentarea algoritmilor se poate face n limbaj pseudocod sau prin scheme logice Observaie: Oricrei probleme care admite o formulare matematic i se poate asocia un algoritm. Orice algoritm trebuie s ndeplineasc trei caracteristici fundamentale: 1. generalitate - un algoritm trebuie sa ofere o metod general de rezolvare a unui anumit tip de probleme, pentru date iniiale arbitrare 2. claritate (determinare) descrierea algoritmului trebuie facut fr ambiguiti, iar comenzile trebuie s exprime operaii cunoscute calculatorului, care pot fi executate de ctre procesor. 3. finitudinea - un algoritm trebuie s conduc la obinerea rezultatelor ntrun numr finit de pai Observaii: 1. Execuia algoritmului nu trebuie s necesite creativitate ci doar capacitatea de a urma instruciunile 2. Algoritmii trebuie s fie descrii fr echivoc, adic informaiile din fiecare stare trebuie s fie suficiente pentru a determina unic i complet aciunile necesare la fiecare pas

Exemple: I. Limbaj pseudocod 1. c.m.m.d.c. (Algoritmul Euclid) 6 i 3 6 : 3 = 2 rest 0 => c.m.m.d.c.=3 27 i 9 27 : 9 = 3 rest 0 => c.m.m.d.c.=9 27 i 18 27 : 18 = 1 rest 9 18 : 9 = 2 rest 0 => c.m.m.d.c.=9

Curs 1

Introducere, definiii, algoritmi

2. Factorialul unui numr

II. Scheme logice Scheme logice = reprezentri grafice ale algoritmilor n care fiecrui pas i se asociaz un simbol (bloc) 1. blocuri delimitatoare - marcheaz nceputul sau sfritul unei scheme logice

2. blocuri de intrare-ieire - sunt folosite pentru citirea datelor de intrare sau pentru scrierea rezultatelor

3. blocuri de calcul - marcheaz calculul unor expresii i atribuirea rezultatelor obinute unor variabile

4. blocuri de decizie - marcheaz punctele de ramificaie ale schemei - conin condiia ce trebuie testat pentru stabilirea secvenei urmtoare de calcul

5. blocuri conectoare - realizeaz legtura ntre diferite pri ale schemei logice

6. sgei indic ordinea de efectuare a pailor algoritmului

Curs 1

Introducere, definiii, algoritmi

In descrierea algoritmilor prin scheme logice se folosesc aa-numitele structuri de control. Structuri de control - structuri elementare de calcul reprezentate cu un numr mic (minim) de blocuri - permit o programare structurat

Teorema de structur
Orice algoritm poate fi reprezentat ca o combinaie a 3 structuri de control : 1. secvena de dou sau mai multe operaii 2. decizia ntre dou alternative 3. ciclarea unei operaii atta timp ct o condiie este ndeplinit

n funcie de momentul n care se testeaz condiia, se ntlnesc dou tipuri de structuri repetitive. Structuri repetitive 1. WHILE-DO (ciclu cu test iniial) - ct timp condiia C este adevrat se execut blocul A OBS 1. In blocul A trebuie s se acioneze asupra termenilor condiiei C pentru a se evita un ciclu infinit OBS 2. Dac C este iniial fals blocul A nu se execut niciodat

2. DO-WHILE (ciclu cu test final) - blocul A se execut ct timp condiia C este adevrat OBS 1. In blocul A trebuie s se acioneze asupra termenilor condiiei C pentru a se evita un ciclu infinit OBS 2. Blocul A se execut cel puin o dat chiar dac C este fals de la nceput

Curs 1

Introducere, definiii, algoritmi

Exemple

verificare a 42 28 b 28 14 r 14 0 cmmdc 28 14

n4 f 1 2 6 24 i 2345

int cmmdc (int a, int b) { int r,cmmdc; do { r=a%b; cmmdc=b; if(r==0) return cmmdc; a=b; b=r; } while(r!=0); return cmmdc; }

double fact (int n) { int i; double f=1.0; if (n==0) return f; for(i=2;i<=n;i++) f*=i; return f; }

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