Cursul “Bazele informaticii”

1.    Contents

1.      Contents. 1

1.      Ce este informatica. 2

2.      Definirea algoritmului 2

3.      Caracteristicile algoritmului 3

4.      Obiectele unui algoritm.. 3

1.      Date. 3

A.      Dupa nivelul de structurare. 3

B.      Dupa valoare. 3

C.      Dupa momentul in care se produc. 4

D.      Dupa tipul acestora. 4

2.      Operatiile de baza ale unui algoritm.. 4

5.      Variabila. 4

6.      Operatori 4

1.      Operatori matematici 5

2.      Operatori relationali 5

3.      Operatori logici 5

4.      Operatorii de incrementare și decrementare. 5

7.      Expresii 6

1.      Expresii aritmetice. 6

2.      Expresii logice. 6

3.      Evaluarea unei expresii 6

8.      Structuri 6

1.      Structura liniară. 6

2.      Structura alternativa. 6

3.      Structura repetitiva. 6

9.      Reprezentarea algoritmilor. 7

1.      Scheme logice. 7

2.      Pseudocod. 9

10.         Exemple de algoritmi 9

11.         Etape in rezolvarea problemelor cu ajutorul calculatorului 10

 

1.   Ce este informatica

 

O prima definitie ar fi: Informatica este ştiinţa care se ocupă cu prelucrarea informaţiilor cu ajutorul calculatorului.

Alta definitie este si: Informatica este stiinta care se ocupa cu studiul algoritmilor de prelucrare a informatiei cu ajutorul unui calculator.

În prezent, calculatorul este implicat din ce în ce mai mult în viaţa noastră, fiind utilizat în foarte multe domenii: educatie, medicina, comunicare, armata, relaxare (jocuri, filme, muzica), etc.

Importanta ei a fost puternic amplificata de impactul pe care l-a avut aparitia si dezvoltarea Internetului.

De asemenea, informatica inglobeaza un un complex de discipline prin care se asigura prelucrarea rationala a informatiei, prin intermediul masinilor automate:

·         Algoritmi si structure de date;

·         Limbaje de programare – tehnici de reprezentare a algoritmilor;

·         Arhitectura calculatoarelor – organizarea si proiectarea calculatoarelor pentru cresterea performatelor acestora;

·         Ingineria programarii – obtinerea de programe corecte, fara erori si usor de exploatat;

·         Sisteme de gestiune a bazelor de date – modul in care pot fi gestionate cantitati mari de date;

·         Inteligenta artificiala – studiul si proiectarea de agenti inteligenti.

 

2.   Definirea algoritmului

Algoritmul este conceptul fundamental al informaticii. Il definim ca fiind este un set finit de pasi executabili (instructiuni), descrisi fara echivoc, care solutioneaza o clasa de probleme. Cu ajutorul lui datele de intrare vor fi transformate in date de iesire.

Primul algoritm se considera algoritmul lui Euclid (utilizat pentru determinarea celui mai mare divizor comun a doua numere naturale).

Termenul de algoritm poate fi înţeles în sens larg nefiind neapărat legat de rezolvarea unei probleme cu caracter ştiinţific, ci doar pentru a descrie într-o manieră ordonată activităţi care constau în parcurgerea unei succesiuni de paşi (cum este de exemplu utilizarea unui telefon public sau a unui bancomat).

În matematică există o serie de algoritmi: cel al rezolvării ecuaţiei de gradul doi, algoritmul lui Eratostene (pentru generarea numerelor prime mai mici decât o anumita valoare), schema lui Horner (pentru determinarea câtului şi restului împărţirii unui polinom la un binom) etc. Soluţia problemei se obţine prin execuţia algoritmului. Algoritmul poate fi executat pe un calculator după ce a fost codificat într-un limbaj de programare.

 

Observaţii:

1.      Oricărei probleme care admite o formulare matematică i se poate asocia un algoritm.

2.      Nu orice problema admite un algoritm de rezolvare. 

a.    Fiind dat un număr n să se determine toţi divizorii săi. Pentru această problemă se poate scrie un algoritm foarte uşor.

b.      Fiind dat un număr n să se determine toţi multiplii săi. Pentru această problemă nu se poate scrie un algoritm deoarece nu cunoaştem un criteriu de oprire a operaţiilor.

3.      Doi agoritmi sunt echivalenti cand pentru aceleasi date de intrare se obtin aceleasi date de iesire.

 

3.   Caracteristicile algoritmului

Un algoritm trebuie să satisfacă în general următoarele cerinţe:

a)      claritate - descrierea algoritmului trebuie să se facă precis, fără nimic arbitrar, fără ambiguităţi şi să fie prevăzute toate etapele de calcul şi toate situaţiile care se pot ivi până la obţinerea soluţiei;

b)      generalitate - algoritmul trebuie să permită rezolvarea de probleme dintr-o întreagă clasă;

c)       finititudine - algoritmul trebuie să furnizeze rezultatele într-un număr finit (cât mai mic) de paşi;

d)      completitudinea-presupune tratarea cazurilor speciale (a exceptiilor) unei probleme;

e)       unicitate - etapele algoritmului trebuie să fie definite în mod unic;

f)       Eficienta folosirii resurselor calcul. Prin resurse de calcul se înţelege volumul de memorie şi timpul necesar pentru execuţie (procesorul).

a.      Resursa procesor - timpul de executie sau numarul de operatii trebuie sa fie cat mai mic;

b.      Resursa memorie - spatiul de memorie utilizat sa fie cateste mai mic.

 

4.   Obiectele unui algoritm

Obiectele cu care lucreaza algoritmii se clasifica in date si operatii.

1.    Date

Clasificarea datelor se poate face dupa mai multe criterii:

 

A.    Dupa nivelul de structurare  

·         Elementare(intregi, reale, logice, caracter)

·         Structurate. Tipurile structurate se obţin prin gruparea tipurilor elementare (tablouri de memorie, siruri, fisiere etc)

B.    Dupa valoare

o   constante – isi vor pastra valoarea pe tot parcursul prelucrarii. Pot fi de mai multe feluri:

o   Constante numerice: intregi: 2, 4; reale: 5.2, 7.8;

o   Constante logice: TRUE, FALSE;

o   Constante Caracter: ‘c’, ‘\n’;

o   Constante sir de caractere : “mama are mere”;

 

o   variabile – isi pot modifica valoarea pe parcursul procesului de prelucrare. Pot fi de aceleasi tipuri ca si constantele. Proprietatile variabilelor: nume, tip, locatie de memorie, valoare la un moment dat.

C.    Dupa momentul in care se produc

-date de intrare – datele care urmeaza sa fie prelucrate in cadrul algoritmului
-date intermediare – folosite pentru realizarea unei prelucrari
-date de iesire – reprezinta rezultatul obtinut

 

D.    Dupa tipul acestora

o   tipul numeric (numerelor intregi si reale, pozitive si negative);

o   tipul de data caracter. Exemplu ‘a’, ‘b’, ‘1’, etc.

o   tipul logic - pentru reprezentarea datelor carenu pot lua decat doua valori: adevarat (TRUE) sau fals (FALSE)

 

2.    Operatiile de baza ale unui algoritm

Operaţiile de bază care apar într-un algoritm sunt următoarele:

1.      operaţii de intrare/ieşire:

a.      operatii de intrare: citirea datelor de intrare (datele de intrare se citesc);

b.      operatii de iesire (datele de ieşire se afişează/se tipăresc);

2.      operaţii de atribuire - unei variabile i se atribuie valoarea unei expresii;

3.      operaţii de decizie - se determină valoarea de adevăr a unei expresii logice şi, funcţie de rezultatul obţinut, se ramifică rezultatul algoritmului.

 

5.   Variabila

O noţiune de bază în programare o constituie noţiunea de variabilă. O variabilă este caracterizată de patru elemente:

o   Nume - numele unei variabile este format din unul sau mai multe caractere (litere şi cifre, primul fiind literă), de exemplu: A, o ,min, X3;

o   Tip - tipul indică mulţimea de valori posibile: întreg, real, şir de caractere, boolean etc

o   Valoare - valoarea variabilei reprezintă valoarea efectivă pe care aceasta o are la un moment dat. Aceasta se poate modifica numai printr-o instrucţiune de citire sau atribuire.

o   Adresă în memorie - adresa variabilei este adresa fizică din memoria calculatorului la care se află valoarea variabilei. De obicei adresa este invizibilă pentru programator.

 

6.   Operatori

Operatorii au rolul de a preciza ce operatii se vor realiza asupra datelor cu care lucram.

Operatorii se aplica doar anumitor tipuri de date. Principalele tipuri de operatori se pot vedea in urmatorul table:

 

 

Limbajul C++ conține un set puternic de operatori. Cei mai importanți operatori ai limbajului C++ sunt:

1.    Operatori matematici

+,-,*,/

In plus vom avea doi operatori :

div =catul impartirii a doua numere intregi

mod=restul impartirii a doua numere intregi

2.    Operatori relationali

< ,>, >=,<=,=,<>

Ex: a<b, 2=3,

Acesti operatori se aplica in cadrul  expresiilor logice si au ca rezultat o valoare logica (adevarat sau fals).

3.    Operatori logici

4.    Operatorii de incrementare și decrementare

a) prefixați

b) postfixați

 

7.   Expresii

Ca si la matematica, expresia este alcătuită dintr-unul sau mai mulţi operanzi legaţi între ei prin operatori.

Expresiile se pot clasifica si ele in functie de valoarea rezultata in urma evaluarii expresiei. Vom

avea :

1.    Expresii aritmetice

a)      expresii intregi. ex: 2+3; 4*50; 30+a, unde a este o variabila numerica de tip intreg

b)      expresii reale. ex: 2.3+4, 2+x, unde x este o variabila numerica de tip real

Ex: 2+3, a div 2, a+2*x; aceste expresii au un rezultat numeric, de aceea se numesc expresii aritmetice.

2.    Expresii logice

Ex: a>b AND 4<c, c%2=1

Ex: a<b, 2=3,

Aceste expresii au ca rezultat o valoare logica (adevarat sau fals). De aceea vom spune despre

acestea ca sunt expresii logice chiar daca nu contin operatori logici.

3.    Evaluarea unei expresii

Pentru evaluarea expresiilor se respecta regulile de baza invatate la matematica. Se evalueaza intai expresiile dintre parantezele rotunde, apoi se executa operatiile in ordinea prioritatii lor.

Daca exista operatii cu aceasi prioritate, ele se executa in ordine, in functie de asociativitatea lor.

O operatie importanta in scrierea programelor este transformarea unei expresii din forma sa matematica intr-o forma ce poate fi introdusa de la tastatura. Acest proces se denumeste liniarizarea expresiilor.

 

8.   Structuri

Structurile elementare sunt următoarele:

1.    Structura liniară

Constă în execuţia necondiţionată a unei secvenţe de instrucţiuni, un algoritm liniar fiind un algoritm în care etapele de calcul se succed una după cealaltă;

2.    Structura alternativa

Constă în ramificarea execuţiei algoritmului în funcţie de valoarea de adevăr a unei condiţii evaluate, algoritmii ramificaţi presupunând luarea unei anumite decizii în funcţie de care se continuă execuţia pe ramuri distincte.

3.    Structura repetitiva

Constă în execuţia repetată, de un număr finit de ori, a unei secvenţe de instrucţiuni. Un algoritm repetitiv presupune repetarea unor etape de calcul de un anumit număr de ori. Ansamblul etapelor ce se repetă alcătuiesc un ciclu. Dacă numărul de repetări este cunoscut, ciclul se numeşte cu număr cunoscut de paşi, iar dacă nu este cunoscut, ciclul se numeşte cu condiţie sau cu număr necunoscut de paşi.

9.   Reprezentarea algoritmilor

Pentru reprezentarea algoritmilor se pot utiliza mai multe metode:

- schema logică;

- pseudocodul (sau limbajul algoritmic);

- limbajul de programare.

Primele două sunt independente de tehnica de calcul, nu respectă o sintaxă rigidă şi sunt utile programatorului doar în faza de proiectare a algoritmilor.

Algoritmul scris într-un limbaj de programare este singura formă direct utilizabilă pe calculator, fiind un text codificat, pe baza unor legi sintactice bine determinate.

1.    Scheme logice

Reprezinta o modalitate de reprezentare grafica a algoritmilor. Este alcatuita din figuri geometrice denumite si blocuri functionale.

2.    Pseudocod

10.               Exemple de algoritmi

1.      Ecuatia de gradul I

11.               Etape in rezolvarea problemelor cu ajutorul calculatorului

 

Rezolvarea problemelor cu ajutorul calculatorului presupune parcurgerea mai multor etape:

1.      Analiza problemei (cu stabilirea datelor de intrare/ieşire);

2.      Descrierea algoritmului cu ajutorul schemei logice şi/sau a pseudocodului (elaborarea algoritmului prin codificare);

3.      Scrierea programului într-un limbaj de programare (implementarea);

4.      Etapa de depanare. Depanarea înseamnă eliminarea erorilor din program. Erorile pot fi

·         erori de sintaxă, mai uşor de depistat şi eliminat, programul nu rulează;

·         erori logice, numite şi erori ascunse, programul poate fi rulat, dar rezultatele nu sunt cele corecte;

5.      Etapa de testare - este etapa de verificare a corectitudinii programelor. Pentru aceasta se folosesc seturi de date de intrare pentru care sunt cunoscute rezultatele obţinute în urma aplicării algoritmului

 

 















Free Web Hosting