Transcript
Page 1: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Programarea calculatoarelor

Universitatea “Constantin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie

Departamentul de Automatică, Energie şi Mediu

Lect.dr. Adrian Runceanu

Page 2: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Câteva precizări

Structura cursului

3 ore curs – titular curs: Lector dr. Adrian Runceanu

3 ore laborator – titular aplicaţii practice:

• Asist.ing. Constantin Cercel: Ingineria Sistemelor

• Prep.ing. Alina Dinca: Termoenergetica / Managementul Energiei

24.10.2012 Curs - Programarea Calculatoarelor 2

Page 3: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Câteva precizări

Bibliografia necesară cursului: 1. A. Runceanu, Programarea şi utilizarea calculatoarelor, Editura

Academică Brâncuși Targu-Jiu, 2003 2. O. Dogaru, C++ - teorie şi practică, volumul I, Editura Mirton,

Timişoara, 2004 3. O.Catrina, I.Cojocaru, Turbo C+, Editura Teora, Bucureşti, 1993 4. D.Costea, Iniţiere în limbajul C, Editura Teora, Bucureşti, 1996 5. K.Jamsa, C++, Editura Teora,1999 6. K.Jamsa & L.Klander, Totul despre C si C++, Teora, 2004 7. B.Kernighan, D.Ritchie, The C programming language, AT&T Bell

Laboratories, Murray Hill, New Jersey 8. H.Schildt, C++ manual complet, Editura Teora, 2000

24.10.2012 Curs - Programarea Calculatoarelor 3

Page 4: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Câteva precizări Referinţele bibliografice nr. 1 şi 2 se pot împrumuta de la Biblioteca Facultăţii de Inginerie, Str. Geneva nr.3, Etaj I – lângă Decanat. 1. Suport curs - varianta electronică disponibilă pe site-ul Facultăţii de Inginerie:

www.runceanu.ro/adrian 2. Îndrumar de laborator - varianta electronică disponibilă pe site pentru fiecare lucrare de laborator. Notă: Actualizarea site-ului se face săptămânal.

24.10.2012 Curs - Programarea Calculatoarelor 4

Page 5: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Câteva precizări

Forme de examinare:

Examen final = 60%

Evaluare pe parcursul semestrului a activităţii de laborator = 30%

Verificare finală lucrări de laborator = 10%

24.10.2012 Curs - Programarea Calculatoarelor 5

30

10 60

Procentaje evaluare

Evaluare pe parcursul semestruluiPrezenta curs si laboratorExamen final

Page 6: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Mod de lucru

Curs: Se prezintă noţiuni teoretice şi exemple de

aplicare practică a acestora Nu ezitaţi să puneţi întrebări

Laborator: Se elaborează şi se depanează programe relativ

simple sau se dezvoltă programe preexistente Se aplică ceea ce s-a predat la curs

24.10.2012 Curs - Programarea Calculatoarelor 6

Page 7: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Câteva recomandări

Citiţi cu maximă atenţie enunţurile temelor şi respectaţi-le în totalitate.

Analizaţi în detaliu problema de rezolvat. Identificaţi şi trataţi adecvat toate cazurile speciale care pot să apară.

Notaţi-vă toate întrebările la care nu aţi găsit singuri răspunsul şi adresaţi-le cadrelor didactice, la curs sau laborator.

24.10.2012 Curs - Programarea Calculatoarelor 7

Page 8: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Curs 1

Algoritmi

24.10.2012 Curs - Programarea Calculatoarelor 8

Page 9: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1. ALGORITMI

1.1. Noţiunea de algoritm

1.2. Reprezentarea unui algoritm

1.3. Concepţia unui algoritm

1.4. Obiectele cu care lucrează algoritmii

1.5. Exemple de algoritmi elementari

24.10.2012 Curs - Programarea Calculatoarelor 9

Page 10: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.1. Noţiunea de algoritm

În procesul de rezolvare a unei probleme folosind calculatorul există două etape:

1. Definirea şi analiza problemei

2. Proiectarea şi implementarea unui algoritm care rezolvă problema

1. Definirea şi analiza problemei poate fi la rândul ei descompusă în: specificarea datelor de intrare

specificarea datelor de ieşire

24.10.2012 Curs - Programarea Calculatoarelor 10

Page 11: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.1. Noţiunea de algoritm

Specificarea datelor de intrare constă în: 1. Ce date vor fi primite la intrare 2. Care este formatul (forma lor de reprezentare) datelor

de intrare 3. Care sunt valorile permise sau nepermise pentru

datele de intrare 4. Există unele restricţii (altele decât la 3) privind valorile

de intrare 5. Câte valori vor fi la intrare, sau dacă nu se poate

specifica un număr fix de valori, cum se va şti când s-au terminat de introdus datele de intrare

24.10.2012 Curs - Programarea Calculatoarelor 11

Page 12: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.1. Noţiunea de algoritm

Specificarea datelor de ieşire trebuie să ţină cont de următoarele aspecte:

1. Care din valorile rezultate în cursul aplicării algoritmului de calcul, asupra datelor de intrare, vor fi afişate (necesare utilizatorului), în acest pas se face diferenţierea clară între date intermediare şi date de ieşire

2. Care va fi formatul datelor de ieşire (de exemplu un număr real poate fi afişat cu trei sau cu cinci zecimale, sau un text poate fi afişat integral sau parţial)

24.10.2012 Curs - Programarea Calculatoarelor 12

Page 13: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.1. Noţiunea de algoritm

3. Sunt sau nu necesare explicaţii suplimentare pentru utilizator în afara datelor de ieşire

4. Care este numărul de date de ieşire care trebuie transmise către ieşire

24.10.2012 Curs - Programarea Calculatoarelor 13

Page 14: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.1. Noţiunea de algoritm

O definiţie a noţiunii de algoritm poate fi: înlănţuirea de paşi simpli, operaţii distincte care descriu modul de prelucrare a unor date de intrare în scopul rezolvării unei probleme.

Un exemplu simplu de algoritm ar fi suita de operaţii matematice făcută în rezolvarea unei ecuaţii matematice de gradul II:

aX2+bX+c=0, coeficienţii a, b, c se schimbă dar modul de procesare a valorilor lor, nu.

24.10.2012 Curs - Programarea Calculatoarelor 14

Page 15: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.1. Noţiunea de algoritm

Proprietăţile unui algoritm sunt: 1. Este compus din instrucţiuni simple şi clare. 2. Operaţiunile specificate de instrucţiuni se

execută într-o anumită secvenţă. 3. Soluţia trebuie obţinută într-un număr finit de

paşi. Concluzia care rezultă este că: UN ALGORITM ESTE INDEPENDENT DE

TIPUL DE LIMBAJ ÎN CARE ESTE TRANSPUS SAU DE TIPUL DE CALCULATOR PE CARE ESTE EXECUTAT.

24.10.2012 Curs - Programarea Calculatoarelor 15

Page 16: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1. ALGORITMI

1.1. Noţiunea de algoritm

1.2. Reprezentarea unui algoritm

1.3. Concepţia unui algoritm

1.4. Obiectele cu care lucrează algoritmii

1.5. Exemple de algoritmi elementari

24.10.2012 Curs - Programarea Calculatoarelor 16

Page 17: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

În general, un algoritm poate fi considerat ca o descriere a prelucrărilor efectuate asupra unui flux de date, prelucrări care are loc cu un scop bine determinat.

Modul de descriere a unui algoritm, este independent de un limbaj de programare, existând două metode clasice:

1. metoda schemei logice

2. metoda pseudocod-ului

24.10.2012 Curs - Programarea Calculatoarelor 17

Page 18: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

1. Metoda schemei logice În cadrul acestei metode se foloseşte un set

de simboluri, prezentat în figura 1, pentru descrierea paşilor ce trebuie executaţi pentru ca algoritmul rezultat să ne rezolve o anumită problemă.

Deşi a fost extrem de folosită, până nu de mult, această metodă a pierdut teren în faţa reprezentării de tip pseudocod, poate şi datorită timpului suplimentar pierdut de utilizator cu executarea simbolurilor grafice.

24.10.2012 Curs - Programarea Calculatoarelor 18

Page 19: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

24.10.2012 Curs - Programarea Calculatoarelor 19

Start

Bloc de atribuire

Bloc citire variabile

conditie

Stop

Bloc scriere variabile

Nu Da

Figura 1. Reprezentarea algoritmilor prin metoda schemei logice

Page 20: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

Să analizăm un algoritm de calcul a mediei pentru trei note şi să vedem cum ar apărea descris prin această metodă.

24.10.2012 Curs - Programarea Calculatoarelor 20

Start

Citire nota1, nota2, nota3

media <-(nota1+nota2+nota3)/3

Scriere media

Stop

Page 21: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

2. Metoda pseudocod-ului Există mai multe variante de limbaje

algoritmice, care însă nu diferă esenţial. Am ales forma în care cuvintele cheie sunt în

limba română şi operatorii sunt cei uzuali din matematică.

Pseudocod-ul are în componenţă mai multe comenzi standard care încep, în general cu un cuvânt cheie care defineşte operaţia de bază din algoritm şi care va fi evidenţiat prin utilizarea aldinelor (cuvintelor îngroşate).

24.10.2012 Curs - Programarea Calculatoarelor 21

Page 22: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

Comenzilor standard ale pseudocod-ului le corespund instrucţiuni din limbajele de programare, fapt care uşurează implementarea algoritmului în limbaj.

24.10.2012 Curs - Programarea Calculatoarelor 22

Page 23: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

Comenzile standard de bază ale pseudocod-ului sunt:

1) Comanda de atribuire

- are forma:

- este comanda care nu conţine cuvinte cheie şi corespunde unei operaţii de atribuire

24.10.2012 Curs - Programarea Calculatoarelor 23

variabilă expresie

Page 24: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

2) Comanda de citire

- are forma:

- este comanda care corespunde unei operaţii de citire

3) Comanda de scriere

- are forma:

- este comanda care corespunde unei operaţii de scriere

24.10.2012 Curs - Programarea Calculatoarelor 24

citeşte listă de variabile

scrie listă de expresii

Page 25: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

4) Structura de decizie

- are două forme corespunzătoare celor două forme ale structurii alternative (structurii de decizie):

24.10.2012 Curs - Programarea Calculatoarelor 25

dacă condiţie atunci instructiune1

… instructiunen

altfel instructiune1

… instructiunen

sfârşit dacă

Page 26: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

A doua formă a structurii de decizie:

24.10.2012 Curs - Programarea Calculatoarelor 26

dacă condiţie atunci instructiune1

… instructiunen

sfârşit dacă

Page 27: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

5) Structura cât timp

- are forma:

- corespunde ciclului repetitiv cu test iniţial

24.10.2012 Curs - Programarea Calculatoarelor 27

cât timp condiţie execută instructiune1

… instructiunen

sfârşit cât timp

Page 28: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

6) Structura

repetă până când

- are forma:

- corespunde ciclului repetitiv cu test final

24.10.2012 Curs - Programarea Calculatoarelor 28

repetă instructiune1

… instructiunen

până când condiţie

Page 29: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

7) Structura pentru

- are forma:

- corespunde ciclului repetitiv cu numar cunoscut de pasi

24.10.2012 Curs - Programarea Calculatoarelor 29

pentru variabila<-valoare initiala, valoare finala executa instructiune1

… instructiunen

sfârşit pentru

Page 30: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

8) Structura de oprire a algoritmului

- are forma:

24.10.2012 Curs - Programarea Calculatoarelor 30

stop

Page 31: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

Reluăm exemplul cu media a trei note pe care îl vom scrie atât cu ajutorul schemelor logice, cât şi cu ajutorul pseudocod-ului.

24.10.2012 Curs - Programarea Calculatoarelor 31

Page 32: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.2. Reprezentarea unui algoritm

real nota1, nota2, nota3, media

citeşte nota1, nota2, nota3

media (nota1+nota2+nota3)/3

scrie media

stop

24.10.2012 Curs - Programarea Calculatoarelor 32

Start

Citire nota1, nota2, nota3

media <-(nota1+nota2+nota3)/3

Scriere media

Stop

Se observă că este mult mai uşor să se redacteze un algoritm cu ajutorul pseudocod-ului, decât cu ajutorul schemelor logice.

Page 33: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1. ALGORITMI

1.1. Noţiunea de algoritm

1.2. Reprezentarea unui algoritm

1.3. Concepţia unui algoritm

1.4. Obiectele cu care lucrează algoritmii

1.5. Exemple de algoritmi elementari

24.10.2012 Curs - Programarea Calculatoarelor 33

Page 34: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.3. Conceptia unui algoritm

Pași necesari:

1. Problema care va fi rezolvată, trebuie citită cu atenţie.

2. Apoi se stabilesc prelucrările care sunt necesare obţinerii rezultatelor dorite.

Pentru a crea un algoritm eficient trebuie evidenţiate datele de intrare şi datele de ieşire.

24.10.2012 Curs - Programarea Calculatoarelor 34

Page 35: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.3. Conceptia unui algoritm

24.10.2012 Curs - Programarea Calculatoarelor 35

Date de intrare

Date de ieșire

ALGORITM

Page 36: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1. ALGORITMI

1.1. Noţiunea de algoritm

1.2. Reprezentarea unui algoritm

1.3. Concepţia unui algoritm

1.4. Obiectele cu care lucrează algoritmii

1.5. Exemple de algoritmi elementari

24.10.2012 Curs - Programarea Calculatoarelor 36

Page 37: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

Obiectele cu care lucrează algoritmii sunt:

a) Constante

b) Variabile

c) Operaţii

d) Expresii

24.10.2012 Curs - Programarea Calculatoarelor 37

Page 38: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

a) Constantele sunt date de un anumit tip care nu se modifică pe parcursul execuţiei unui algoritm.

Pot fi:

1. Constante numerice, adică numere întregi sau reale

2. Constante nenumerice, adică şiruri de caractere cuprinse între apostrofuri

3. Constante logice, adevărat şi fals

24.10.2012 Curs - Programarea Calculatoarelor 38

Page 39: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

b) Variabilele sunt date ale căror valori se modifică pe parcursul execuţiei unui algoritm.

Ele se utilizează pentru a păstra datele iniţiale, sau pentru a păstra rezultatele parţiale sau finale ale algoritmului.

Fiecare variabilă va avea o locaţie de memorie asociată ei, unde i se păstrează valoarea.

Variabilele pot: naturale, întregi, reale, logice sau şiruri de caractere.

24.10.2012 Curs - Programarea Calculatoarelor 39

Page 40: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

c) Operatorii sunt cei folosiţi uzuali în matematică:

1. Operatori aritmetici

2. Operatori relaţionali

3. Operatori logici

Operatori aritmetici

Operator Semnificaţie

+ Adunare

- Scădere

* Înmulţire

/ Împărţire

Operatori relaţionali

< Mai mic

<= Mai mic sau egal

> Mai mare

>= Mai mare sau egal

= Egal

<> Diferit

Operatori logici

not Negaţie

si Şi (conjuncţie)

sau Sau (disjuncţie)

24.10.2012 Curs - Programarea Calculatoarelor 40

Page 41: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

d) Expresiile sunt formate din constante şi variabile legate între ele cu ajutorul operatorilor.

Pot fi de mai multe tipuri, în funcţie de tipul operatorilor si a operanzilor:

1. Expresii aritmetice

2. Expresii relaţionale

3. Expresii logice

24.10.2012 Curs - Programarea Calculatoarelor 41

Page 42: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

O expresie aritmetică este o expresie care cuprinde:

1. constante 2. variabile 3. sau funcţii aritmetice elementare legate,

eventual, prin operatori aritmetici.

24.10.2012 Curs - Programarea Calculatoarelor 42

Page 43: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

O expresie relaţională poate fi formată din: - Două expresii aritmetice legate printr-un singur

operator relaţional (de exemplu: b2>4*a*c); - Două variabile nenumerice legate printr-un

operator relaţional (de exemplu: nume1<>nume2);

- O variabilă şi o constantă nenumerice legate printr-un operator relaţional (de exemplu: raspuns=‘da’).

24.10.2012 Curs - Programarea Calculatoarelor 43

Page 44: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

O expresie logică cuprinde: 1. constante 2. variabile 3. sau expresii relaţionale legate prin operatori

logici a cărei valoare este fie adevărat, fie fals.

24.10.2012 Curs - Programarea Calculatoarelor 44

Page 45: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.4. Obiectele cu care lucrează algoritmii

Condiţiile care apar în algoritmi vor fi întotdeauna exprimate prin expresii relaţionale sau logice.

24.10.2012 Curs - Programarea Calculatoarelor 45

Page 46: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1. ALGORITMI

1.1. Noţiunea de algoritm

1.2. Reprezentarea unui algoritm

1.3. Concepţia unui algoritm

1.4. Obiectele cu care lucrează algoritmii

1.5. Exemple de algoritmi elementari

24.10.2012 Curs - Programarea Calculatoarelor 46

Page 47: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.5. Exemple de algoritmi elementari

Enunţ: Considerăm ecuaţia de gradul I de forma: ax + b = 0, unde a şi b sunt numere reale. Să se scrie un algoritm care să rezolve ecuaţia dată

pentru orice două valori a şi b date. Pas 1: Stabilim care sunt datele de intrare si de iesire,

adică cele care vor fi prelucrate cu ajutorul algoritmului.

În cazul problemei date, avem: Date de intrare: a, b - numere reale Date de iesire: x - solutia ecuatiei

24.10.2012 Curs - Programarea Calculatoarelor 47

Page 48: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.5. Exemple de algoritmi elementari Pas 2: Analiza problemei Stabilim condiţiile pe care trebuie să le îndeplinească

datele de intrare pentru a fi prelucrate în cadrul algoritmului. Căutăm cazurile particulare.

În cadrul problemei pe care o avem de rezolvat, cunoaştem următoarele:

Ecuaţia ax+b=0, are solutii reale daca a si b sunt diferite de 0. Cazurile particulare sunt: 1) Daca a = 0, atunci ecuatia data are o infinitate de solutii. 2) Daca a = 0 si b = 0, atunci ecuatia este nedeterminata 3) Daca a ≠ 0 si b ≠ 0, atunci ecuatia are o singura solutie si

anume:

x = -b/a 24.10.2012 Curs - Programarea Calculatoarelor 48

Page 49: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.5. Exemple de algoritmi elementari

Pas 3:

Scrierea algoritmului în pseudocod:

24.10.2012 Curs - Programarea Calculatoarelor 49

real a, b, x

citeşte a, b

dacă a = 0 atunci

scrie ‘Ecuaţia are o infinitate de soluţii’

altfel

dacă b = 0 atunci

scrie ‘Ecuaţia este nedeterminată’

altfel

x - b / a

scrie x

sfârşit dacă

sfarşit dacă

stop

Page 50: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.5. Exemple de algoritmi elementari

Pas 4: Implementarea algoritmului în limbajul de programare dorit - în cazul nostru vom utiliza limbajul C++.

Pas 5: Testarea algoritmului pe date de intrare diferite şi verificarea rezultatelor.

Ultimii doi paşi îi vom scrie după prezentarea limbajului C++.

24.10.2012 Curs - Programarea Calculatoarelor 50

Page 51: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.5. Exemple de algoritmi elementari

Enunţ:

Să se calculeze perimetrul şi aria unui triunghi oarecare dacă se cunosc laturile triunghiului.

Pas 1: Stabilim care sunt datele de intrare si datele de iesire, adică cele care vor fi prelucrate cu ajutorul algoritmului.

În cazul problemei date, avem:

Date de intrare: a, b, şi c numere reale ce reprezintă laturile triunghiului.

Date de iesire: p = perimetrul si s = aria triunghiului

24.10.2012 Curs - Programarea Calculatoarelor 51

Page 52: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.5. Exemple de algoritmi elementari

Pas 2: Analiza problemei Stabilim condiţiile pe care trebuie să le

îndeplinească datele de intrare pentru a fi prelucrate în cadrul algoritmului.

În cadrul problemei pe care o avem de rezolvat, cunoaştem formula lui Heron pentru calculul ariei unui triunghi dacă se cunosc laturile sale:

unde p reprezintă semiperimetrul triunghiului.

24.10.2012 Curs - Programarea Calculatoarelor 52

))()(( cpbpappS

Page 53: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

1.5. Exemple de algoritmi elementari

Pas 3:

Scrierea algoritmului în pseudocod:

24.10.2012 Curs - Programarea Calculatoarelor 53

real a, b, c, p, S

citeşte a, b, c

p a + b + c

Scrie ‘Perimetrul triunghiului este ‘, p

p p / 2

scrie ‘Aria triunghiului este’, S

stop

c)b)(pa)(pp(pS

Page 54: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Recapitulare

1. Ce este un algoritm?

2. Cum se pot reprezenta algoritmii?

3. Folosind metoda pseudocod-ului de reprezentare a algoritmilor, cum se reprezintă structura de decizie?

4. Folosind metoda pseudocod-ului de reprezentare a algoritmilor, cum se reprezintă structura repetitivă cu test iniţial?

24.10.2012 Curs - Programarea Calculatoarelor 54

Page 55: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Enunţuri de probleme ce pot fi rezolvate

1. Să se calculeze perimetrul şi aria unui dreptunghi, ştiind laturile sale.

2. Să se calculeze soluţiile reale ale ecuaţiei de gradul II: ax2 + bx + c = 0, ştiind valorile coeficienţilor săi a, b, c.

24.10.2012 Curs - Programarea Calculatoarelor 55

Page 56: Programarea şi utilizarea calculatoarelorrunceanu.utgjiu.ro/wiki/lib/exe/fetch.php?media=docs:cursuri:curs1-pc.pdf · Programarea calculatoarelor Universitatea “Constantin Brâncuşi”

Întrebări?

24.10.2012 Curs - Programarea Calculatoarelor 56