Click here to load reader

Teorie informatica pentru BAC

  • View
    2.782

  • Download
    98

Embed Size (px)

DESCRIPTION

Teorie informatica pentru BAC

Text of Teorie informatica pentru BAC

CONINUTURI Bacalaureat1. Algoritmi 1.1. Noiunea de algoritm, caracteristici 1.2. Date, variabile, expresii, operaii 1.3. Structuri de baz (liniar, alternativ i repetitiv) 1.4. Descrierea algoritmilor (programe pseudocod) 2. Elementele de baz ale unui limbaj de programare (Pascal sau C, la alegere) 2.1. Vocabularul limbajului 2.2. Constante. Identificatori 2.3. Noiunea de tip de dat. Operatori aritmetici, logici, relaionali 2.4. Definirea tipurilor de date 2.5. Variabile. Declararea variabilelor 2.6. Definirea constantelor 2.7. Structura programelor. Comentarii 2.8. Expresii. Instruciunea de atribuire 2.9. Citirea/scrierea datelor 2.10. Structuri de control (instruciunea compus, structuri alternative i repetitive) 3. Subprograme predefinite 3.1. Subprograme. Mecanisme de transfer prin intermediul parametrilor 3.2. Proceduri i funcii predefinite 4. Tipuri structurate de date //(tipul pointer)4.1. Tipul tablou 4.2. Tipul ir de caractere operatori, proceduri i funcii predefinite pentru: citire, afiare, concatenare, cutare, extragere, inserare, eliminare i conversii (ir valoare numeric) 4.3. Tipul nregistrare 5. Fiiere text 5.1. Fiiere text. Tipuri de acces 5.2. Proceduri i funcii predefinite pentru fiiere text 6. Algoritmi elementari 6.1. Probleme care opereaz asupra cifrelor unui numr 6.2. Divizibilitate. Numere prime. Algoritmul lui Euclid 6.3. irul lui Fibonacci. Calculul unor sume cu termenul general dat 6.4. Determinare minim/maxim 6.5. Metode de ordonare (metoda bulelor, inseriei, seleciei, numrrii) 6.6. Interclasare 6.7. Metode de cutare (secvenial, binar) 6.8. Analiza complexitii unui algoritm (considernd criteriile de eficien durata de executare i spaiu de memorie utilizat) 7. Subprograme definite de utilizator 7.1. Proceduri i funcii declarare i apel parametri formali i parametri efectivi parametri transmii prin valoare, parametri transmii prin referin variabile globale i variabile locale, domeniu de vizibilitate 7.2. Proiectarea modular a rezolvrii unei probleme 8. Recursivitate 8.1. Prezentare general 8.2. Proceduri i funcii recursive 9. Metoda backtracking (iterativ sau recursiv) 9.1. Prezentare general 9.2. Probleme de generare. Oportunitatea utilizrii metodei backtracking 10. Generarea elementelor combinatoriale 10.1. Permutri, aranjamente, combinri 10.2. Produs cartezian, submulimi 11. Grafuri 11.1. Grafuri neorientate terminologie (nod/vrf, muchie, adiacen, inciden, grad, lan, lan elementar, ciclu, ciclu elementar, lungime, subgraf, graf parial) proprieti (conex, component conex, graf complet, hamiltonian, eulerian) metode de reprezentare (matrice de adiacen, liste de adiacen) 11.2. Grafuri orientate terminologie (nod/vrf, arc, adiacen, inciden, grad intern i extern, drum, drum elementar, circuit, circuit elementar, lungime, subgraf, graf parial) proprieti (tare conexitate, component tare conex) metode de reprezentare (matrice de adiacen, liste de adiacen) 11.3. Arbori terminologie (nod, muchie, rdcin, descendent, descendent direct/fiu, ascendent, ascendent direct/printe, frai, nod terminal, frunz) metode de reprezentare n memorie (matrice de adiacen, liste de descendeni, vector de tai)

I. Algoritmi

1.1. Noiunea de algoritm, caracteristici

Ce este un algoritm?Conceptul de algoritm nu este nou. Termenul algoritm deriv din numele unui matematician persan, Abu Jafar Mohammed ibn Musa al Khowarizmil (cca. 825 e.n.), care a scris o carte cunoscut sub denumirea latin de Liber algorithmi.Matematicienii Evului Mediu nelegeau prin algoritm o regul pe baza creia se efectuau calcule aritmetice. Ulterior, termenul de algoritm a circulat ntr-un sens restrns, exclusiv n domeniul matematicii. O dat cu dezvoltarea calculatoarelor cuvntul algoritm a dobndit o semnificaie aparte, astfel nct astzi gndirea algoritmic s-a transformat, dintr-un instrument specific matematicii, ntr-o modalitate fundamental de abordare a problemelor n diverse domenii.Un algoritm reprezint o metod de rezolvare a problemelor de un anumit tip.A rezolva o problem nseamn a obine, pentru anumite date de intrare, rezultatul problemei (date de ieire):

Date de intrare Date de ieireALGORITM

Algoritmul este constituit dintr-o succesiune de operaii care descriu, pas cu pas, modul de obinere a datelor de ieire, plecnd de la datele de intrare. Se pot descrie algoritmi pentru rezolvarea problemelor din orice domeniu de activitate.Scopul elaborrii algoritmului unei probleme este acela de a scrie un program ntr-un anumit Iimbaj de programare. Dar dac avem de-a face cu o problem mai complex, nainte de a scrie programul este bine s scriem paii algoritmului; n acest scop avem la dispoziie o form foarte accesibil de reprezentare a algoritmilor, i anume pseudocodul.

De exemplu, orice reet de buctrie poate fi considerat un algoritm prin care, plecnd de la materiile prime, obinem printr-o succesiune finit de operaii produsul finit.

Exemplul 1:Presupunnd c dispunem de un aragaz, o tigaie, 2 ou, sare i 2oo ml ulei, s pregtim ochiuri.Date de intrare: ou, ulei, sare.Date de ieire: ochiuri.Pas 1: Se pune tigaia pe foc.Pas 2: Se toarn uleiul n tigaie.Pas 3: Ateptm pn cnd se ncinge uleiul.Pas 4: Spargem cu ndemnare oule n tigaie.Pas 5: Ateptm pn cnd oule se rumenesc.Pas 6: Dac nu inem regim, adugm sare.Observm c am descris o succesiune de pai, prin care, pentru orice ,,date de intrare (ulei, sare, ou), obinem rezultatul dorit (ochiuri). Fiecare pas const din operaii culinare specice, care se execut n ordinea n care sunt specicate.Exemplul 2S analizm un alt exemplu, cu care suntem familiarizai de la matematic: rezolvarea ecuaie de gradul I de forma : ax+b=0, cu a,b R.Date de intrare: a, b RDate de ieire: x R, soluia ecuaiei, sau un mesaj adecvatPas 1: citete datele de intrare a i b numere realePas 2: dac a0 atunci scrie soluia ecuaiei este , x -b/a altfel dac b=0 atunci scrie infinitate de soluii altfel scrie relaie matematic imposibil Aceast succesiune de pai rezolv ecuaia de forma specificat pentru orice valori ale datelor de intrare, prin urmare este un algoritm.

Proprieti caracteristice ale algoritmilor

Exemplele precedente genereaz n mod resc dou ntrebri: 1. Pentru orice problem exist un algoritm de rezolvare? Rspunsul este NU! Exist probleme pentru care se poate demonstra c nu exist algoritmi de rezolvare, dar i probleme pentru care nici nu s-a demonstrat c nu admit o metod de rezolvare algoritmic, dar nici nu s-a descoperit soluia algoritmic. 2. Orice succesiune de pai reprezint un algoritm?Din nou, rspunsul este NU! Pentru a un algoritm, secvena trebuie s ndeplineasc condiiile: Rezolvabilitate ~ algoritmul s aib cel puin o soluie; Claritate ~ la ecare moment, operaia care urmeaz a executat este unic determinat denit i realizabil (adic poate efectuat la momentul respectiv, cu mijloacele disponibile); Generalitate (universalitate) ~ o secven de pai reprezint un algoritm de rezolvare a unei probleme dac obine date de ieire (rezultate) pentru orice date de intrare specice problemei (adic s rezolve o ntreag clas de probleme, nu una particular ); Finitudine ~ rezultatele problemei se obin dup un numr nit de pai; Eficiena ~ algoritmul s rezolve problema ntr-un numr ct mai mic de pai pentru a se obine un timp de execuie ct mai mic alturi de un consum mic de memorie.

n concluzie, dei nu putem deni cu rigurozitate noiunea de algoritm, putem descrie mai detaliat aceast noiune astfel:

Un algoritm este constituit dintr-o succesiune clar i finit de operaii realizabile, efectuate mecanic, care pornind de la un set de date de intrare conduc n timp finit la obinerea unui set de date de ieire ( rezultate ).

Etapele rezolvrii unei problemeRezolvarea unei probleme constituie un proces complex, care comport mai multe etape.1. Analiza problemei n scopul stabilirii datelor de intrare, precum i a rezultatelor pe care trebuie s le obinem prin rezolvarea problemei.2. Elaborarea unui algoritm de rezolvare a problemei.3. Implementarea algoritmului ntr-un limbaj de programare.4. Vericarea corectitudinii algoritmului propus.Un prim pas const n testarea programului pe diverse seturi de date de test. Seturile de date de test trebuie elaborate cu atenie, astfel nct s acopere, pe ct posibil, toate variantele de execuie a algoritmului, inclusiv situaii de excepie, i s verice dac fiecare subproblem a problemei date este rezolvat corect (dac este posibil, se va testa separat fiecare modul de program).5. Analiza complexitii algoritmului.n general, exist mai muli algoritmi de rezolvare a unei probleme date. Pentru a alege cel mai bun algoritm, trebuie s analizm aceti algoritmi n scopul determinrii eficienei lor i, pe ct posibil, a optimalitii lor.Eficiena unui algoritm se evalueaz din dou puncte de vedere:a. Din punctul de vedere al spaiului de memorie necesar pentru memorarea valorilor variabilelor care intervin n algoritm (complexitate spaiu);b. Din punctul de vedere al timpului de execuie (complexitate timp).

1.2 Date, variabile, expresii, operaii

Definiie: O dat este orice entitate cu care poate opera calculatorul.Orice algoritm lucreaz cu date: date de intrare (datele pe care trebuie s le primeasc un algoritm din exterior), date de ieire (datele pe care trebuie s le furnizeze algoritmul n exterior), precum i date de manevr (date temporare, necesare algoritmului pentru a obine datele de ieire pe baza datelor de intrare).Datele cu care lucreaz algoritmii pot clasificate din mai multe puncte de vedere. O prim clasicare a datelor, n funcie de posibilitatea de a-i modica valoarea, este: Constante - date care nu i modic valoarea; de exemplu: 10, 3 .14, sirde caractere, A, fals ( 0 ). Variabile - date care i modic valoarea. O variabil poate referit printr-un nume (o succesiune de litere, cifre i liniu de subliniere, primul caracter ind obligatoriu liter

Search related