Programarea Calculatoarelor

Laborator
9.5/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 95 în total
Cuvinte : 17536
Mărime: 75.56KB (arhivat)
Cost: Gratis

Extras din document

Lucrarea nr. 1

Determinarea experimentala a timpului de execuţie al unui program

1. Scopul lucrării - lucrarea prezintă aspecte legate de diferite modalitaţi de determinare experimentală a timpilor de execuţie pentru diferite secvenţe de program.

2. Aspecte teoretice

2.1. Determinarea experimentală a timpului de execuţie al unui program

Determinarea timpului de execuţie al unui program prin metode analitice este foarte dificilă în practică. Aşa ca mai exista si o alta metoda experimentală, mult mai uşoară, şi cu rezultate la fel de concludente în condiţiile în care se porneşte de la anumite premize iniţiale. Ideea acestei metode constă din determinarea timpului efectiv (în secunde, milisecunde, etc.) necesar rulării unui algoritm, folosindu-ne de ceasul calculatorului. Se prezintă mai jos schema bloc a acestei metode.

Ideea acestui algoritm este aceea de a determina, folosindu-se ceasul calculatorului, două momente de timp : dinaintea inceputului algoritmului şi respectiv imediat de dupa terminarea acestuia. Rezultatul, ca fiind diferenţa între cele două momente, este considerat ca fiind timpul de execuţie efectiv al algoritmului respectiv.

Este cunoscut faptul că, în general, timpul de execuţie al unui program depinde de următorii factori :

-volumul datelor de intrare

-calitatea codului generat de compilator

-natura si viteza de execuţie a instrucţiunilor programului (dependentă şi de performanţele calculatorului pe care acesta rulează)

-complexitatea algoritmului care stă la baza programului.

In condiţiile în care algoritmii sunt rulaţi pe calculatoare cu performanţe similare, utilizîndu-se acelaşi compilator, practic timpul de execuţie devine funcţie doar de volumul datelor de intrare şi complexitatea algoritmului. In aceste condiţii simplificate, evaluarea experimentală a performanţelor unui algoritm este cu adevarat relevantă.

In C++, funcţia prin care se poate determina ora curentă a calculatorului este gettime, şi se găseşte în bibioteca <dos.h>

2.2. Exemplu de determinarea experimentala a timpului de executie al unui program

Se prezintã în continuare modul de evaluare a timpului de execuþie a procedurii de sortare a elementelor unui tablou de dimensiune N utilizînd algoritmul bubblesort, prezentat mai jos:

typedef int tablou[n];

void bubble_sort(tablou a)

{

int i,j,temp

(1) for (i=0;i<n;i++)

(2) for (j=n;j>=i+1;j--)

(3) if (a[j-1]>a[j])

{

(4) temp=a[j-1];

(5) a[j-1]=a[j];

(6) a[j]=temp

}

}

Dacă dorim să folosim metoda experimentală, şi să utilizăm funcţia gettime, programul se va modifica astfel:

typedef int tablou[n];

void bubble_sort(tablou a)

{

int i,j,temp

for (i=0;i<n;i++)

for (j=n;j>=i+1;j--)

if (a[j-1]>a[j])

{

temp=a[j-1];

a[j-1]=a[j];

a[j]=temp

}

}

void main()

{

(1) struct time t1,t2;

int durata;

(2) gettime(&t1);

(3) bubble_sort(a);

(4) gettime(&t2);

(5) durata=(t2.ti_sec*100+t2.ti_hund)

-(t1.ti_sec*100+t1.ti_hund);

printf("Durata de executie=%dms",durata);

}

Trebuie ţinut cont însă de faptul că funcţia gettime are nevoie ca şi parametri de variabile de tip structură de timp, deci în cazul nostru vom avea nevoie de două variabile t1 şi t2 în care să se stocheze ora calculatorului (1). Se stochează ora calculatorului în t1, exact înainte de a rula algoritmul (2). Se rulează algoritmul (3) dupa care, imediat se stochează în t2 ora calculatorului (4). Pentru obţinerea diferenţei se va realiza un mic calcul matematic pentru diferenţa între cei doi timpi t2 şi t1 (5), iar rezultatul final obţinut va fi durata de execuţie în sutimi de secunda.

Utilizînd aceasta metodă experimentală de determinare a timpului de execuţie, rezultatul se obţine mult mai uşor, fiindu-ne oferit chiar de calculator, în comparaţie cu metoda analitică, unde tot calculul trebuie realizat manual de catre programator, şi care implică, în anumite cazuri, cunoştinţe aprofundate de matematică. Este adevărat că metoda analitică este mai generală.

Preview document

Programarea Calculatoarelor - Pagina 1
Programarea Calculatoarelor - Pagina 2
Programarea Calculatoarelor - Pagina 3
Programarea Calculatoarelor - Pagina 4
Programarea Calculatoarelor - Pagina 5
Programarea Calculatoarelor - Pagina 6
Programarea Calculatoarelor - Pagina 7
Programarea Calculatoarelor - Pagina 8
Programarea Calculatoarelor - Pagina 9
Programarea Calculatoarelor - Pagina 10
Programarea Calculatoarelor - Pagina 11
Programarea Calculatoarelor - Pagina 12
Programarea Calculatoarelor - Pagina 13
Programarea Calculatoarelor - Pagina 14
Programarea Calculatoarelor - Pagina 15
Programarea Calculatoarelor - Pagina 16
Programarea Calculatoarelor - Pagina 17
Programarea Calculatoarelor - Pagina 18
Programarea Calculatoarelor - Pagina 19
Programarea Calculatoarelor - Pagina 20
Programarea Calculatoarelor - Pagina 21
Programarea Calculatoarelor - Pagina 22
Programarea Calculatoarelor - Pagina 23
Programarea Calculatoarelor - Pagina 24
Programarea Calculatoarelor - Pagina 25
Programarea Calculatoarelor - Pagina 26
Programarea Calculatoarelor - Pagina 27
Programarea Calculatoarelor - Pagina 28
Programarea Calculatoarelor - Pagina 29
Programarea Calculatoarelor - Pagina 30
Programarea Calculatoarelor - Pagina 31
Programarea Calculatoarelor - Pagina 32
Programarea Calculatoarelor - Pagina 33
Programarea Calculatoarelor - Pagina 34
Programarea Calculatoarelor - Pagina 35
Programarea Calculatoarelor - Pagina 36
Programarea Calculatoarelor - Pagina 37
Programarea Calculatoarelor - Pagina 38
Programarea Calculatoarelor - Pagina 39
Programarea Calculatoarelor - Pagina 40
Programarea Calculatoarelor - Pagina 41
Programarea Calculatoarelor - Pagina 42
Programarea Calculatoarelor - Pagina 43
Programarea Calculatoarelor - Pagina 44
Programarea Calculatoarelor - Pagina 45
Programarea Calculatoarelor - Pagina 46
Programarea Calculatoarelor - Pagina 47
Programarea Calculatoarelor - Pagina 48
Programarea Calculatoarelor - Pagina 49
Programarea Calculatoarelor - Pagina 50
Programarea Calculatoarelor - Pagina 51
Programarea Calculatoarelor - Pagina 52
Programarea Calculatoarelor - Pagina 53
Programarea Calculatoarelor - Pagina 54
Programarea Calculatoarelor - Pagina 55
Programarea Calculatoarelor - Pagina 56
Programarea Calculatoarelor - Pagina 57
Programarea Calculatoarelor - Pagina 58
Programarea Calculatoarelor - Pagina 59
Programarea Calculatoarelor - Pagina 60
Programarea Calculatoarelor - Pagina 61
Programarea Calculatoarelor - Pagina 62
Programarea Calculatoarelor - Pagina 63
Programarea Calculatoarelor - Pagina 64
Programarea Calculatoarelor - Pagina 65
Programarea Calculatoarelor - Pagina 66
Programarea Calculatoarelor - Pagina 67
Programarea Calculatoarelor - Pagina 68
Programarea Calculatoarelor - Pagina 69
Programarea Calculatoarelor - Pagina 70
Programarea Calculatoarelor - Pagina 71
Programarea Calculatoarelor - Pagina 72
Programarea Calculatoarelor - Pagina 73
Programarea Calculatoarelor - Pagina 74
Programarea Calculatoarelor - Pagina 75
Programarea Calculatoarelor - Pagina 76
Programarea Calculatoarelor - Pagina 77
Programarea Calculatoarelor - Pagina 78
Programarea Calculatoarelor - Pagina 79
Programarea Calculatoarelor - Pagina 80
Programarea Calculatoarelor - Pagina 81
Programarea Calculatoarelor - Pagina 82
Programarea Calculatoarelor - Pagina 83
Programarea Calculatoarelor - Pagina 84
Programarea Calculatoarelor - Pagina 85
Programarea Calculatoarelor - Pagina 86
Programarea Calculatoarelor - Pagina 87
Programarea Calculatoarelor - Pagina 88
Programarea Calculatoarelor - Pagina 89
Programarea Calculatoarelor - Pagina 90
Programarea Calculatoarelor - Pagina 91
Programarea Calculatoarelor - Pagina 92
Programarea Calculatoarelor - Pagina 93
Programarea Calculatoarelor - Pagina 94
Programarea Calculatoarelor - Pagina 95

Conținut arhivă zip

  • Programarea Calculatoarelor.doc

Alții au mai descărcat și

Baze de Date - Gestionarea Cartilor intr-o Biblioteca

1 Introducere Trebuie menţionat faptul că lucrarea de faţă îşi propune înainte de toate să identifice cele mai importante aspecte şi probleme ale...

Program de Contabilitate Primara intr-un Laborator de Cofetarie

1 INTRODUCERE Gestiunea datelor a stat in atentia majoritatii utilizatorilor calculatoarelor inca de la incerputul folosirii acestora. La inceput...

Gestiunea Bazei de Date a unei Librării

Introducere Aplicaţia realizează gestiunea activităţii unei librării: - Înregistrează într-o bază de date cărţile care se găsesc în librărie; -...

Analiza Algoritmilor Genetici

I. Analiza algoritmilor genetici 1.1. Algoritmi evoluţionişti Algoritmii evoluţionişti au la bază câteva principii ale evoluţiei: supravieţuirea...

Baza de Date a unui Catalog Scolar Limbajul de Programare C

1. Tema proiectului Se cere sa se realizeze o baza de date care sa simuleze un catalog scolar. Pentru realizarea bazei de date se vor folosi: o...

Modele Teste Licenta Programarea Sistemelor Informatice

1. Care definiţie este corectă: a) Un sistem reprezintă un ansamblu de elemente (componente) interdependente, între care se stabileşte o...

Programarea Calculatoarelor și Algoritmi

Dev C++ este un mediu integrat de dezvoltare pentru limbajul de programare C/C++. Soft-ul este free si poate fi obtinut si instalat urmand...

Operatori Aritmetici C++

1. SCOPUL LUCRĂRII În această lucrare se vor studia următoarele: -Funcţii de citire / scriere: -Instrucţiunea de atribuire -Operatori...

Ai nevoie de altceva?