analiza problemei elaborarea modului de rezolvare (pasii de …informatik.ddbuftea.ro/lectie despre...

Post on 24-Jan-2020

11 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Algoritmi, date si expresii, pseudocod

Pentru a rezolva o problemă cu ajutorul calculatorului trebuie să

parcurgem următoarele etape:

Analiza problemei

Elaborarea modului de rezolvare(pasii de rezolvare)

Codificarea modului de rezolvare intr-un limbaj de programare (C++)

Testarea programului (compilare ) si corectarea erorilor

• Algoritmul reprezinta o succesiune de pasi care poate îndeplini o anumita sarcina in functie de datele de intrare pt a obtine datele de iesire

INTRARI

D.I.

PRELUCRARILE

DATELOR DE INTRARE

Date intermediare

IESIRI

D.E.

Să presupunem că trebuie să mergem la magazin să cumpărăm un produs. Ce trebuie să facem?

#include <iostream>

using namespace std;

int main()

{

float a,b,c,s,m;

cout<<"a=";cin>>a;

cout<<"b=";cin>>b;

cout<<"c=";cin>>c;

s=a+b+c;

m=s/3;

cout<<"media = "<<m<<endl;

return 0;

}

Directiva de includere a fisierului (antet, de tip HEADER) biblioteca in fata programului principal int main

Implementarea algoritmului in C++

P1: Zona de declarare a variabilelor(se aloca spatiu de memorie in functie de tipul de data declarat)

tipul : DI si DE

P2: Se solicita sa se afiseze un mesaj cu functia

COUT <<“mesaj”; se tasteaza o valoare

Se memoreaza valoarea (DI) cu functia CIN>>var

P3: prelucrarea datelor

P4: Afisarea datelor de iesire (DE)

1. DATELE:

2. VARIABILELE

3. EXPRESIILE

Obiectele cu care lucreaza algoritmii:

5,6 25 27,5

a b suma

4 octeti 4 octeti 4 octeti

Pasii de rezolvareDI DE

suma = a + b

4. Operatorii : + , *, /, %

( Operanzi )

1. Determină perimetrul şi aria unui dreptunghi, unde lungimile laturilor sunt citite de la tastatură.

2. Pentru a un număr real, citit de la tastatură, care reprezintă lungimea laturii unui cub, calculează şi afişează volumul şi suprafaţa totală a cubului.

3. algoritmul pentru 2 valori a şi b numere întregi, sa afiseze rezultatele celor 5 operaţii (suma, produsul, diferenţa, câtul şi restul operaţie de împărţire pe mulţimea numerelor întregi)

Tema:

Algoritmul pentru 2 valori a şi b numere întregi, sa afiseze rezultatele celor 5 operaţii (suma, produsul, diferenţa, câtul şi restul operaţie de împărţire pe mulţimea numerelor întregi)

#include <iostream>using namespace std;int main(){double a,b,s,p,i,d;cout<<"a= "; cin>>a;

cout<<"b= "; cin>>b;

s=a+b;p=a*b;i=a/b;d=a-b;cout<<"suma= "<<s<<endl;cout<<"produs= "<<p<<endl;cout<<"impartit= "<<i<<endl;cout<<"diferenta= "<<d<<endl;return 0;

}

https://www.tutorialspoint.com/compile_cpp_online.php

Program scris in limbajul C++, compilat si rulat in CODEBLOKS:

https://wiki.haskell.org/Rodin/Download

Tema 1: Se citesc doua valori , sa se afiseze valoare maxima

Clasificarea datelor (variabilelor):

1. de tip întreg (numere întregi cu

sau fară semn - exemple: 45, -

105),

2. de tip real (numere cu virgulă

zecimală – exemple: 2.56, -

3.123),

3. tip caracter şi şiruri de

caractere(caractere cuprinse

între apostrofuri , exemple:

'A','b',' instructiuni' ,

E=(a+b)/(a*b)+n 𝑓 𝑥 = 𝑎0 +

𝑛=1

𝑎𝑛 cos𝑛𝜋𝑥

𝐿+ 𝑏𝑛 sin

𝑛𝜋𝑥

𝐿

3. Operatori logici: si logic( && ) , sau logic ( | | ), negare ( ! )

• expr1 == expr2 verifica daca valoarea expresiei din

stanga este aceeasi cu valoarea din dreapta

• analog, expr1 != expr2 verifica daca valoarea

expresiei din stanga este diferita de valoarea din

dreapta

• in toate cazurile raspunsul la intrebari (ex: A este mai mic

decat B ) poate fi doar DA sau NU,

adica ADEVARAT sau FALS; aceste raspunsuri se

numesc valori logice (valori de adevar)

•Operatori relationali: <, <=, ==, !=, >=, >

Exemple:

•Cum scriem A apartine intervalului (- infinit, 7) Raspuns: A<7

•Cum scriem A apartine intervalului [3, infinit) Raspuns: A>=3

• evident raspunsurile la operatorii logici sunt tot valori logice (Adevarat sau Fals)

• Operatorul logic SI ( && )• Exemplul Alinei: Imi plac baietii atletici SI glumeti.

Aceasta propozitie poate fi scrisa ca A && B (A =Imi plac baietii atletici si B = Imi plac baietii glumeti)

• posibilitatile care apar sunt:

• neatletic, posac=> nu imi place ; raspuns NU (FALS)

• neatletic, glumet => nu imi place ; raspuns NU (FALS)

• atletic, posac => nu imi place; raspuns NU (FALS)

• atletic, glumet => imi place; raspuns DA (ADEVARAT)

• observam ca raspunsul este DA (ADEVARAT) numai in cazul cand ambele

proprietati sa indeplinesc ( si atletic si glumet); daca macar o proprietate nu se indeplineste raspunsul este NU (FALS)

•Operatori logici: si logic( && ) , sau logic ( | | ), negare ( ! )

*(si)

0 1

0 0 0

1 0 1

• Pentru ca Alina nu a gasit ce cauta, a schimbat regula. :

Imi plac baietii atletici SAU glumeti. Aceasta propozitie poate fi scrisa ca A || B

(A =Imi plac baietii atletici sau B = Imi plac baietii glumeti)

• posibilitatile care apar sunt:

• neatletic, posac=> nu imi place ; raspuns NU (FALS)

• neatletic, glumet => imi place; raspuns DA (ADEVARAT)

• atletic, posac => imi place; raspuns DA (ADEVARAT)

• atletic, glumet => imi place; raspuns DA (ADEVARAT)

• observam ca raspunsul este DA (ADEVARAT) daca macar una din proprietati este

adevarata; daca nici una dintre proprietati nu se indeplineste raspunsul este NU

(FALS)

• Operatorul logic SAU ( || )Exemplu:

+ (sau)

0 1

0 0 1

1 1 1

•Cum scriem A apartine intervalului [3, 7)

• Raspuns: (A>=3) && (A<7)

•Cum scriem ca A nu apartine intervalului [3, 7)

• Raspuns 1: ! ( (A>=3) && (A<7) )

• Raspuns 2: valoarea lui A trebuie sa fie inainte de 3 SAU dupa 7=>

A<3 || A>=7

Din acest ultim exemplu observam ca raspunsurile sunt echivalente (pentru acelasi

A, indiferent de valoarea lui, obtinem acelasi raspuns).

! ( (A>=3) && (A<7) ) echivalent cu A<3 || A>=7

Echivalentele de acest tip au fost studiate de matematicianul De Morgan, care a

spus ca:

• ! (A && B) == !A || !B

• ! (A || B) == !A && !B

operatorul logic de negare ( ! )

!= (≠ ,diferit , not egal) , (ne-egalitate)

a. (x<8 )&& (x>=5)

b. (x<=8) || (x>5)

c. (x>8) || (x<=5)

d. (x<=8) && (x>5)

Tema din …subiecte BAC:Variabila x este de tip real. Care dintre următoarele expresii C++ are valoarea 1 dacă şi numai dacă numărul real memorat în variabila x aparţine intervalului (5,8]?

R: 1 si 1 1

•o constanta / variabila

•o combinatie de tipul operator expresie (cazul operatorilor unari: - - a)

•o combinatie de tipul expresie operator expresie (cazul operatorilor

binari: a+b )

Operatorii folositi in C++ sunt:

•operatori aritmetici: +,-,*, /, %

• A/B reprezinta catul impartirii lui A la B

• A%B reprezinta restul impartirii lui A la B

• A%10 reprezinta ultima cifra a lui A

• A%2 va avea valoarea zero daca A este par si 1 daca A

este impar

O expresie poate fi:

1. *, /, %

2. +, –

3. <, <=, >=, >

4. ==, !=

5. &&

6. ||

prioritatea operatorilor (ordinea operatiilor) intr-o expresie:

Variabilele pot primi valori prin citire sau atribuire.

Sintaxa: variabila=expresie;

Exemple:

•A=0;

•B=5;

•A=B+6;

•A=B+A; (in A se va memora suma dintre A si B)

•un caz deosebit este incrementarea (cresterea cu 1 a valorii unei variabile)

Atribuirea

0 5

A B

6

a=a+1; aceasta operatie se mai scrie a++; (++ este operator unar si se

numeste incrementare)

a=a-1 sau a- - operatia analoga, de scadere cu 1 a valorii unei variabile, se numeste

decrementare:

•citind diverse programe realizate in C/C++ puteti intalni si exprimari de genul:

• a=a+ - -b; cu semnificatia b- - (b=b-1); a=a+b; (analog ++b)

• a+=b; cu semnificatia a=a+b;

11

1) Operatori aritmetici unari

Operator unar (se opereaza asupra unui operand) + si -

++a a=a+1(de incrementare prefixat),

Sintaxa

incrementare prefixata= este marit cu 1 inainte de a

intra in calcul.

Ex: b=2*(++a) a=a+1; b=2*a

a++ (de incrementare

postfixat)

incrementare postfixata= este marit cu 1 dupa ce a

iesit din calcul.

Ex: b=2*a++ b=2*a; a=a+1;

- - a a=a-1

(de decrementare prefixat),

a decrementa= a scade 1 la continutul unei variabile.

a- -(de decrementare postfixat),

decrementare postfixata= este scazut cu 1 dupa ce a iesit din calcul.

BINARI:

+ , - , * ( intre doi operanzi)

/ ( div - returneaza catul impartirii),

% ( modulo - returneaza restul impartirii).

Daca n=25783

Cifra unitatilor este 3 u=n%10

Cifra zecilor 8 z=n/10%10

Cifra sutelor 7 s=n/100%10

Cifra miilor 5 m=n/1000%10

Ex.

7/3=2 rest 1

Rezultatuloperatorului DIV

Rezultatuloperatorului MOD

25%3 = 8 𝑟𝑒𝑠𝑡 1

(2458 DIV 100 ) MOD 10 = 4

2458 MOD 10 = 245 rest 8

Teorema impartirii Dempartit : Împartitor = cât + restex: 25:3=8+1

24 MOD 10

Pentru valoarea intreaga citita de la tastatura Y=12345

x = y/100 + y/10%10 + y%10;

x = y + y/10 + y/100;

x = y%10 + y%10/10 + y/100;

x = y%10 + y%100 + y%1000;

Calculati

#include <iostream>using namespace std;int main(){int a,b;double d,c;cout <<"a=";cin>>a;cout <<"b=";cin>>b;cout <<"c=";cin>>c;cout <<"d=";cin>>d;cout<<"b="<<(d<=c);return 0;}

#include <iostream>using namespace std;int main(){int x;cout <<"x=";cin>>x;if(x/100==0)cout<<"A" ;else cout<<"F" ;return 0;}

#include <iostream>using namespace std;int main(){

int x;cout <<"x=";cin>>x;

if(x%10+x/10%10==0)cout<<"A" ;else cout<<"F" ;

return 0;}

#include <iostream>using namespace std;int main(){

float x;

cout <<9/2*2-5;return 0;

}

Exemple:

Tema:

Se citesc doua valori a si b, care este valoarea lui a MODULO b:

#include <iostream>using namespace std;int main(){int x,y;cout<<"x=";cin>>x;cout<<"y=";cin>>y;if((x<=y) || (y<=x))cout<<1;else cout<<0;

return 0;}

Tema (din subiectele de bac):

Varianta b: #include <iostream>using namespace std;int main(){

int x,y,z;

cout <<"x=";cin>>x;cout <<"y=";cin>>y;cout <<"z=";cin>>z;

cout<<x+y+z;return 0;

}

• #include <iostream>• #include<cmath>• using namespace std;

• int main()• {int x,y,e;• cout << "x=";cin>>x;• cout<<"e="<<abs(x);• return 0;• }

Se citeste o variabila, sa se afiseze valoarea absoluta (modul de x):

Sa se calculeze perimetrul si aria unui dreptunghi

#include <iostream>using namespace std;int main(){double a,b,c,p;cout<<"a= "; cin>>a;cout<<"b= "; cin>>b;cout<<"c= "; cin>>c;p=a+b+c;cout<<"perimetrul tringhiunghiului= "<<p<<endl;return 0;

}

Sa se calculeze perimetrul triunghiului

Aria si volumul unui cub , daca se stie latura

• #include <iostream>• #include<cmath>• using namespace std;• int main()• {int x,a,v;• cout << "latura=";cin>>x;• a=6*(x*x);• v=pow(x,3);• cout<<"aria="<<a<<endl;• cout<<"volumul="<<v<<endl;• return 0;• }

Se citeste un numar x. Sa se transforme in ore, min si secunde

• #include <iostream>• #include<cmath>• using namespace std;• int main()• {int x,h,m,s;• cout << "ce numar";cin>>x;• h=x/3600;• m=x%3600/60;• cout<<"h="<<3600/60<<endl;• cout<<"m="<<x%3600%60<<endl;• cout<<"s="<<<<endl;• return 0;• }

Se citesc coordonatele punctelor A si B, sa se calculeze distanta dintre ele si milocul unde se afla

#include <iostream> //directiva de includere a fisierului bibliotecausing namespace std;int main(){int a,b,s;

cout << "a= "; cin>>a;cout << "b= "; cin>>b;cout<<"s-a memorat valoarea pt a "<<a<<endl;cout<<"s-a memorat valoarea pt b "<<b<<endl;

s=a+b;cout<<" suma dintre "<<a<<" si "<<b<<" = "<<s;

cin.ignore();cin.get();return 0;

}

Se citesc 2 valori sa se afiseze suma lor

#include <iostream>using namespace std;int main(){int a,b,s;

cout << "a= "; cin>>a;cout << "b= "; cin>>b;s=a+b;cout<<" suma dintre "<<a<<" si "<<b<<" = "<<s;

cin.ignore();cin.get();return 0;

}

Se citesc coordonatele 3 valori reprezentand laturile unui triunghi.Care este conditia pentru a afisa ce triunghi este: isoscel, oarecare, echilateral, dreptunghic?

Câte resturi se pot obține împărțind un număr la 7? Care este cel mai mare rest care se poate obține împărțind A la B?

Care este câtul împărțirii lui A la B dacă A este mai mic decât B? Dați trei exemple.

Care este restul împărțirii lui A la B dacă A este mai mic decât B? Dați trei exemple.

Ce valoare poate avea restul împărțirii unui număr x la 2? Ce puteți spune despre x, dacă x împărțit la 2 dă restul 1?Dar dacă x împărțit la 2 dă restul 0?

19. Cum puteți scrie o egalitate care să fie adevărată dacă X se divide la Y?20. Câte numere sunt de la 25 la 66?21. Câte numere impare sunt de la 10 la 20?22. Câte numere pare sunt de la 10 la 20?23. Câte numere impare sunt de la 11 la 20?24. Cu câte cifre de zero se termină produsul 1*2*3*…*100 ?25. Care sunt numerele prime mai mici decât 29? Câte numere prime ati gasit?26. Care sunt divizorii lui 12? Care sunt divizorii proprii ai lui 12?

27. Dați exemplu de 3 numere care au un singur divizor propriu.28. Descompuneți în factori primi numerele: 24, 75, 105, 300, 210029. Dați exemplu de 2 numere naturale care au în descompunerea lor în factori primi, toți factorii la aceeași putere.30. Calculați suma 1 + 2 + 3 + …+100

1.Calculati valorile lui a si b. Comentarii

#include<iostream.h>

void main()

{

int a,b;

a=5;

b= ++a +2;

a=b++ -3

++b;

a- -;

a= --b;

cout<<"a="<<a<<" si "<<"b="<<

b<<endl;

}

// declaram pe a si b

//initializam pe a = 5

// a=5+1=6 b= 6 +2=8 si

// a= ( 8 ) -3 = 5 si b =b+1=9

// b= 1+9=10

// a= a-1=( 5 -1)=4

// b=b-1=9 a= b=9

// afiseaza a=9 si b=9

a=9

si

b=9

A

5

6

5

4

9

B

8

9

10

9

Monitor Memorie

2.Calculati valorile lui a si b. //COMENTARII

#include<iostream.h>

void main()

{

int a,b;

a=7% 2+15 /2 / 2+ 7 %2;

cout<<"a="<<a<<endl;

b=2*a % 2+5+ 7 % 2;

cout<<"b="<<b<<endl;

a=a+b+3;

cout<<"a="<<a<<" si "<<"b="<<b<<endl;

b=a % 2+b+10 % 2+a+5*a;

cout<<"a="<<a<<" si "<<"b="<<b<<endl;

b=2*a+b;

cout<<"a="<<a<<" si "<<"b="<<b<<endl;

}

//declara variabilele a,b;

// a=1+ 7/2+1=1+3+1=5; deci a=5.

//afiseaza a=5

// b=2*5/2+5+1=0+5+1=6; deci b=6.

//afiseaza b=6

// a=5+6+3

//afiseaza a=14 si b=6

// b= 14%2+6+0+14+5*14=0+6+14+70

//afiseaza a=14 si b=90

//b=2*14+90

//afiseaza a=14 si b=118

In general, un program este un sir de instructiuni. In C++ programul este o functie numita main.

Efectul instructiunillor din C++ este stabilit intr-un fisier numit stdio.h (h vine de la header). Acest fisier

este incarcat implicit pentru a asigura buna functionare a programului. Daca dorim sa folosim

instructiuni mai complexe (gen cin, cout) trebuie sa specificam si headerul care explica functionarea

acestor instructiuni (iostream.h).

De asemenea, trebuie sa stabilim ce variabile folosim, pentru a le putea aloca spatiu si a le da valori.

Spre deosebire de alte limbaje, in C++ declararea variabilelor folosite poate fi facuta si pe parcursul

executiei programului.

Structura unui program C/C++ este urmatoarea

1.Declararea datelor DI si DE

2. citirea datelor initiale si

initializarea variabilelor necesare

2. prelucrarea datelor

(programul propriuzis)

3. afisarea rezultatelor

Orice program are trei parti:

Cuvantul pseudocod provine din pseudo, care inseamna fals, si cod care se refera la textul scris intr-un limbaj de programare.

Afiseaza, citeste(memoreaza) atribuie, daca, atunci, altfel, cat timp, executa

Varianta 1 / I / 2009

Citirea in C++folosirea instructiunii necesita #include <iostream.h>

Instructiunea CIN• Sintaxa: cin>>variabila1>>variabila2…;

• Efect: se preiau de la tastatura (Console INput) valori pentru fiecare variabila din sir;

Exemplu:

• int A,B; cin>>A>>B;

• Pe rand, se introduc valori de la tastatura pentru variabilele intregi A si B.

Afisarea in C++ : COUT<<“ mesaj ”<<variabila;

• Sintaxa: cout<<expresie1<<expresie2;

• Efect: se afiseaza, pe rand, valorile expresiilor;

• Cerinte: necesita, de asemenea, folosirea #include<iostream.h>

Exemple:

• cout<<“Rezultatul este”<<endl<< A<<“+”<<B<<“=“<<A+B;

• s-au afisat :– constanta sir de caractere (text) “Rezultatul este”

– constantele caracter ‘+’ si ‘=’

– valorile variabilelor A si B

– valoarea expresiei A+B

Principiile programarii structurate

Structura liniara

În pseudocodoperaţie1operaţie2..........operaţien

if (a%2==0)

cout>>”valoarea este para”;

else cout<<” valoarea este impara”;

•se verifica daca restul impartirii la 2 a variabilei

A este zero

•daca DA se executa cout>>”valoarea este

para”;

•daca NU se executa cout>>”valoarea este

impara”;

#include <iostream>using namespace std;int main(){ int a,b,c,d,e,s;cout<<"a= "; cin>>a;cout<<"b= "; cin>>b;cout<<"c= "; cin>>c;cout<<"d= "; cin>>d;cout<<"e= "; cin>>e;if(a>b && b>c && c>d && d>e){cout<<"Cele mai mari 3 numere dintre "<<a<<" , "<<b<<" , "<<c<<" , "<<d<<" si "<<e<<" sunt "<<a<<" , "<<b<<" si "<<c<<endl;s=a+b+c;}if(b>c && c>a && a>d && d>e){cout<<"Cele mai mari 3 numere dintre "<<a<<" , "<<b<<" , "<<c<<" , "<<d<<" si "<<e<<" sunt "<<b<<" , "<<c<<" si "<<a<<endl;s=b+c+a;}if(c>a && a>b && b>d && d>e){cout<<"Cele mai mari 3 numere dintre "<<a<<" , "<<b<<" , "<<c<<" , "<<d<<" si "<<e<<" sunt "<<c<<" , "<<a<<" si "<<b<<endl;s=c+a+b;}if(d>a && a>b && b>c && c>e){cout<<"Cele mai mari 3 numere dintre "<<a<<" , "<<b<<" , "<<c<<" , "<<d<<" si "<<e<<" sunt "<<d<<" , "<<a<<" si "<<b<<endl;s=d+a+b;}if(e>a && a>b && b>c && c>d)cout<<"Cele mai mari 3 numere dintre "<<a<<" , "<<b<<" , "<<c<<" , "<<d<<" si "<<e<<" sunt "<<e<<" , "<<a<<" si "<<b<<endl;return 0;

}

Tema1. Fie N un numar natural. Sa se afiseze textul PAR sau IMPAR, in

functie de valoarea lui N.

2. Fie N un numar natural. Sa se afiseze textul POZITIV, NEGATIV sau ZERO dupa caz.

3. Fie A si B capetele unui interval. Sa se stabileasca daca o valoare X apartine intervalului [A,B].

4. Fie A si B doua valori intregi. Sa se afiseze A si B in ordine crescatoare.

5. Fie A si B doua valori intregi. Sa se calculeze X, solutia ecuatiei A*X+B=0.

ExerciţiuSăsecalculezeşisăseafişezepeecranprodusulprimelornnumerenaturalenenule.Valoarealuin(numărnaturalnenul)seciteştedelatastatură

Se cer:a) algoritmul; b) pseudocodul;

Analiza eficienţei unui algoritmPentru rezolvarea unei problem se pot folosi mai mulţi algoritmi. Înacest caz se va allege algoritmul cel mai eficient.Algoritmul cel mai efficient este cel care foloseşte cel mai puţinresursele calculatorului şi anume:•memoria internă;

•procesorul.

A. Memoria internă

Pentru a face economie de memorie internă, trebuie avute în

vedere următoarele:

-alegerea corectă a tipului de data pentru fiecare variabilă de

memorie folosită;

-rezolvarea problemei folosind cât mai puţine variabile de memorie.Analiza datei trebuie să se facă în două moduri la alegerea tipului

de dată:

-logic;-fizic.

a. Logic (la nivel conceptual)

-analiza se face pornind de la enunţul problemei;

-presupune identificarea domeniului de definiţie extern al datelor.

Exemplu de domeniu de definiţie extern al datelor: pentru a

memora un număr de la extragerea loto “6 din 49” se va folosi o

variabilă care memorează un număr întreg pozitiv din

intervalul[1,49].

b.Fizic (la nivelul reprezentării ei în memoria internă)

1. Analiza se face pornind de la tipurile de date implementate înlimbajul de programare;

2. Fiecare tip de data are un domeniu de definiţie intern al datelor;

3. Se allege tipul de data care consumă cea mai puţină

memorie,astfel încât domeniul de definiţie extern al datei să fie

inclus în domeniul de definiţie intern al datei.

B.ProcesorulTimpludeexecuţiealunuialgoritmdepindedecâtevalorialedatelordeintrarevorfiprelucrate.Sedefineştedimensiuneadatelordeintrarecafiindn

umăruldevaloripentrudateledeintrarealeunuialgor

itm.Înfuncţiedecomplexitateaalgoritmului,evaluareatimpuluideexecuţiesepoatefaceprin:-

număruldeoperaţiielementarealealgoritmului,sau-timpulmediualprogramului.

a.Număruldeoperaţiielementarealealgoritm

ului

-

ooperaţieelementarăesteooperaţiesauosuc

cesiunedeoperaţiicarenudepinddecaracteri

sticileproblemei(exp:ooperaţiedecitire/scrier

e,ooperaţiearitmetică,ooperaţiedecomparaţ

ie,ooperaţiedeatribuire,ungrupdeastfeldeop

eraţii);

-

înschimb,noperaţiideatribuirenureprezint

ăooperaţieelementară,deoarecedepinde

deocaracteristicăaproblemei,şianumede

valoarealuin;

b.Timpul mediu al programului-

timpulmediudeexecuţiedepindedetimpulminimdeexecuţi

ecarecorespundecazuluicelmaifavorabil(cândseexecută

celemaipuţineoperaţii)şitimpulmaximdeexecuţiecarecore

spundecazuluicelmaidefavorabil(cândseexecutăcelemai

multeoperaţii);

top related