Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi...

7
Minislerul Educoliei Ei Cercerdrii Profil real Speciali zirtle: matematicS-informaticl gtiinfe ale naturii Miooro Gheorghe {coordonotor} Conslqnlq Noslose Monico Totor0m

Transcript of Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi...

Page 1: Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi C/C++ au gi versiuni OOP in acest manual, ... Profil real - Clasa 10 - Manual Author:

Minislerul Educoliei Ei Cercerdrii

Profil real

Speciali zirtle:matematicS-informaticl

gtiinfe ale naturii

Miooro Gheorghe{coordonotor}

Conslqnlq Noslose

Monico Totor0m

Page 2: Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi C/C++ au gi versiuni OOP in acest manual, ... Profil real - Clasa 10 - Manual Author:

CUPRINS

1. Iimbaje de programare -elemente de ba2.d,................................. 3

1. Nofi uni introductive ....................'...'... 3

1.1. Evolu$a limbajelor de programare '.31.2. Structura programelor ..'......'.....'.. 3

1.3. Vocabularul limbajelor de

programare ..............6

1.4. Mediul limbajului de programare

studiat......... '.............82. Descrierea gi prelucrarea datelor ....10

2.1. Tipuri standard de date ..............10

2.2. Constante, variabile, expresii ..... 11

2.2.1. Constante Ei variabile ...........11

2.2.2. Expresii ................. ....'........ -'..12

2.3. Citirea gi scrierea datelor .'..'.....' 15

2.3.1. Opera,tii cu tastatura.si ecranul . 15

2.3.2. Operafi cu fiqiere text....."'..16

2.4. Funclii matematice :uzluale ...'..... 18

3. Instucfiuni pentru codificarea

skucturilor de control ....'.......'.....'.... 20

3.1. Structuri liniare .....-20

3.2. Structuri alternative .................... 2L

3.2.1. Instrucf,unea if ...'..'....'......... 21

3.2.2. Instrucfiunea de selecfie ......23

3.3. Structuri repetitive ...................... 24

3.3.1. Structuri repetitive cu contor ... 24

3.3.2. Sfuchri repetitive cu condifie.. 26

4. Algoritni elementari - implementare' 30

4.1. Rezolvarea ecuafiei de sradul II 30

4.2.Celmai mare divizor comun a

doui numere naturale .........'...... 31

4.3. Numere prime .......................'..'.. 31

4.4. Descompunerea ln factori

ireductibifi a unui numhr natural33

2. Tablouri unidimensionale ................ 33

1. Prelucrarea datelor cu aceeagi

semnificafie ................. 33

2. Organizarea datelor ln tablouri

unidimensionale .........'........'........'...... 37

3. Implementarea tablourilor

unidimensionale ......'................'.......... 39

3. Algoritni fundamentali Pentruprelucrarea datelor ........ 47

1. Algorikni de sortare .......47

1.1. Cand gi de ce ordonam datele......47

1.2. Sortarea Prin metoda

bulelor - Bubble Sort ..,........'....49

1.3. Sortarea prin selecf,e'..........'.'."... 51

2. Analaaeficienfei unui algoritun ....'...- 53

3. Algoritmi de cdutare .......56

3. 1. Ciutarea secvenfialS ...'................. 56

3.2. Cdutarea intr-un tablou ordonat ..57

3.3. Cdutarea cu metoda

componentei marcaj ........'............ 58

3.4. Ciutarea prin metoda Divide

et Impera - cdutarea binard....... 59

4. Algoritmul de interclasare .................. 64

4. Aplicatr interdisciPlinare

specifice profiIului............,................. 7 1

1. Variabile aleatoare. Valori medii ........71

2. Serii de valori '.................72

3. Determinarea valorii unui polinom ...73

4. Calcule combinatoriale'...'.......... .....'.. 7 4

4.1. Diagonale .........'........ ....,................7 4

4.2.Loto (6 din 49) ..........75

5. Determinarea unor mirimi fizice

dintr-un circuit electric'.....'...'........... 76

6. Apticatii din geneticd ......77

6.1. l,egea Hardy-Weinb erg................. 77

6.2. Roiul de albine - arborele

7. Aplicafii din chimia organicl ....'......... 78

Formula molecularl a unei substanfe ' 78

Page 3: Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi C/C++ au gi versiuni OOP in acest manual, ... Profil real - Clasa 10 - Manual Author:

TIMBA'E DEPROGRAMAREETEMENTE DE BAZA

1. NOTIUN| INTRODUCTIVE

1.1. Evolutia limbajelor de programare

tn chsa a DGa, s-au conskuit algorifoni pentru rezolvareaunor probleme dindiverse arii de activitate (matematicd,,frzicd, chimie etc.). Algoritmii au fostreprezentali prin secvenfe pas cu pas sau ln pseudocod. Penku a prelucra unalsoritn prin intermediul unui sistem de calcul, algoritmul trebuie descris intr-unlimbaj de programare.

Evolufia limbajelor de programare a avut loc in paralel cu evolufia sistemelorde calcul (figura 1).

utilizatori

rWrl

Hgura 1. Evolufia limbajelor de programare

a r imbaW de programare reprezintl un mijloc de comunicare intreutilizatorul uman, care este programatorul, ,si sistemul de calcul.

x Descrierea algoritmului in limbaj de programare se face cu ajutorul unuiprognm.

;q Un progrun este o succesiune de comenzi - instuclhni ce vor fiexecutate de sistemul de calcul.

x Un calculator poate sI ,,lnfeleagi" mai multe limbaje de programarelntrucAt fiecare limbaj are un,,traduc5tor" - compila0orpropriu.

Page 4: Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi C/C++ au gi versiuni OOP in acest manual, ... Profil real - Clasa 10 - Manual Author:

r) Generafiile cele mai importante ale limbajelor de programare

L. Limbaie cod-maSind

Denumite ;i limbaje de bazdsau de nivel zero,limbaiele cod-magind descriu

inskucfiunile in sistemul de numerafie binar (secvenfe de 1 qi 0). Programele sunt

executate numai de calculatorul penfru care au fost scrise.

Primul program a fost realizatpentru maqina mecanicd a lui Charles Babbage

(1834) de cltre contesa Ada lnvelace, fiica poetului lord Byron.

2. Limbaie de asamblareLimbajele de asamblare aulabazd,un set de coduri (mnemonice) care sunt

reprezentdri simbolice ale instrucliunilor maginl. Un program specializat,

asarnblorul, translateazd aceste coduri in sistemul binar, asffel incAt sI poatd fidecodificate gi prelucrate de procesorul calculatorului. Fiecare tip de procesor

are un limbaj de asamblare propriu.

3. limbaie de nivel tnaltLimbajele de programare de nivel lnalt sunt mai apropiate de

limbajul natural in care gAndim gi comuniclm noi. Aceste limbaje

folosesc cuvinte din vocabularul limbii engleze, sunt accesibile pi au

o arie largi de aplicafle: calcule gtiinfifice sau economice, reprezentlrigrafce, probleme de optimizare, jocuri.

Cele mai reprezentative limbaje de nivel lnalt sunt:. FORTRAI.I (FORmulaTMl.lslation) - aapdrutin anul 1955, fiind destinat

calculelor tehnico-gtiinfifi ce.. COBOL (C0mmon Businesss Oriented language) - a apdrut ln anul 1960;

limbajul este orientat spre rezolvarea problemelor economice.. BASIC @egginer's Allpurpose Symbolic Insfructions Code) - limbajul a fost

conceput in anul 1964, impunAndu-se puternic in perioada 197'1980. Variantele

realizate mai recent (Quick Basic, Yisual Basic) sunt utilizate cu succes pentru

deztoltareaunor aplicafli complexe.. PASCAL- definit in anul 1971 de cltre Niklaus Wirth, a fost imbundtif,t ln

noi variante: Turbo Pascal, Borland Pascal, Delphi varianta virnl. ld. Versiunea

actual[ permite .si programarea orientatd spre obiecte (OOP).. C/C#- este creat in anul1972 de cdtre Dennis Ritchie gi Brian Kernigham

de Ia firma Bell Iaboratories penku dewoltarea sistemului de operare Unix. Acest

limbaj dispune de facilitdfi specifice limbajelor de asamblare (calculul pe bi!i,prelucrarea adreselor). Versiunea C++ a fost dezvoltatd de dr. Bjarne Stroustrupin laboratoarele AT&T Bell pentru programarea orientati spre obiecte.

. JAVA - a fost proiectat in cadrul companiei Sun Microsystems pentruaparaturd elecfronicd inteligenti conectatd in refea, pornind de la limbajul C,/C++;

limbajul JAVA este dedicat programdrii ln Internet.

Page 5: Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi C/C++ au gi versiuni OOP in acest manual, ... Profil real - Clasa 10 - Manual Author:

trJ. USP (LISt Processing language), creat in 1965, 9i PROIOG

(PRogramming LOGic), creat in lg73 - sunt limbaje dedicaterezolvdrii problemelor de inteligenfi artificial5.

I Stiluri de programare

Evolufia limbajelor de programare a determinat formarea mai multor stiluri deprogramare. Stilul de programare reflect[ atAt modul de gAndire alprogramatorului, cAt 9i felul in care acesta descrie algoritmul la nivel de program.

1. Programarea nestucturatl - stil ,,liber" de programare, fdrd reguli; dinacest motiv, programele nesffucfurate au un aspect,,dezordonaf', fiind mai greude urmlrit gi de depanat. Acest stil de programare este specific programatorilorcare folosesc limbajele de programare FORTMN, BASIC.

2. Programarea structurattr- stil de programare care respectd principiul: ,,oriceprogram poate fi implementat doar prin stuctui de contol secvenfiale, alterna-tive sau repetitive" (teorema de structurf, Brihm Si Jacopini). Programeleskucturate potfi, realizate doar in limbajele de programare care au instrucfiuniechivalente structurilor de control. Pascal qi C/C++ sunt asffel de limbaje.

3. Programarea orientattr spre obiecte (OOP) - tendinfl noul de programarecare imbind programarea structurati cu tehnica descrietii datelor -si a prelucrdrilorprin analogie cu obiectele din lumea reald. Un obiect este descris prin caracteristici

,si funcfii, poate proveni din alt obiect sau poate genera, prin transformare, unobiect nou. Limbajele de programare Pascal qi C/C++ au gi versiuni OOP

in acest manual, sunt prezentate elemente debazdaleprogram[rii sfucfurate utileunui programator incepito4 cu exemplfficdri tn limbajele Pascal Si C/C++.

#t\l(p> rEME

1. Realizali o scurti prezentare a limbajelor de programare urmirind evolulialn timp a acestora.

2.RealizSun referat cu tema FiSurt celebre din lumea informaticii.3. Realizafl un scurt eseu cu tema De ce Pascal!, in care sI justificali numele

acestui limbaj de programare.

1 .2. Structura programelorIndiferent de limbajul in care este scris, un program descrie datele gi

prelucr[rile unui algoritm. Opfional, pot exista gi declarafii tehnice prin care sesolicitd anumite resurse ale calculatorului (biblioteci, opfiuni de compilare,preprocesare). Structura generali a unui program realizat ln limbajul Pascal,respectiv, 1n C/C++ este redatd in tabelul 1.

Page 6: Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi C/C++ au gi versiuni OOP in acest manual, ... Profil real - Clasa 10 - Manual Author:

Tabelul lfuiAnpWmelor

LIMBAJULPASCAL LIMBAJT]L CIC++

program identificatorirogram;declarayii op{iuni de compilare; {$}declara;ii de IJNIT -uri; (fiqiere bibliotecd)

uses crt, graph, dos;definilii de constante; const n:15;defin@ de tipuri de date type siraray[l..5]of real;declara;ii devaiabile; var x, y : bYte;declarayii de subprograme (funcfii qi/sau proceduri)

begininstrucliuni;apeluri de subprograme;

end.

Precizdri:1. Un program Pascal este un ansamblu de instuc,thmi,grupate in corpul programului principal qi insubprograme, definite de programator - dacd

acestea sunt necesaxe.

2. in orice program Pascal, pot fi folosite subprograme

din unit-ul System, care nu fiebuie declarat.

3. Corpul programului principal este delimitat prinbegin qi end.4. Un bloc de instructiuni este delimitat prinbegin gi end5. Fiecare instucliune se terrnindcu I (punctvirggl6).

directiv e prepro c es areincludere fi;iere bibliotecd header (antet)

#include <math.h>definilii de constante; const n:15;defin@ detiryri de date;typdef float sir[5];declaralii de variabile; int x,Y;d e c I ar ay i i d e s ubpro gr am e (funclii)void mainQ

{instrucliuni;apeluri de subprograme;

)

Precizdri:1. Un program CIC* este un ansarnblu de

instucliuni grupate in funcfii.2. Orice program C/C++ are cel pulin o

funcfie - funclia principalI care se declarlprin void main ( ).3. Orice program C/C# poate avea una sau

mai multe funcfii declarate de programator.

4. Un bloc de instructiuni este delimitatprintr-o pereche de acolade { }.5. Fiecare instrucfiune se termini cu ; (punctvirgulS).

Exemplu:Se citesc doul numere lnkegi a $ b; se afi9eaz[ suma lor.

LIMBAJUL PASCAL LIMBAJUL CIC++

program exemplu;var a, b: integer;begin {programprinciPal}

write(' a: '); readln(a);write(' b :'); readln(b);writeln(' Suma a + b :', a + b);

end.

#include <iostream.h>int a,b;void mainQ ll fiincliaPrinciPali

{cout<<"3=t';ciP}a;COUt<<,,6: ,,; Cin>>bicout("Suma a + b : "<<.a i b <<endl;

)

1.3. Vocabularul limbaiului de programare

Vocabularul oriclrui limbaj de programare este format din:

setul de caractere, identificatori, separatori gi comentarii.

Page 7: Informatica. Profil real - Clasa 10 - Manual. Profil real... · Limbajele de programare Pascal qi C/C++ au gi versiuni OOP in acest manual, ... Profil real - Clasa 10 - Manual Author:

0 Setul de caractereOrice program este scris cu ajutorul urmltoarelor caractere:

- litere mari gi mici ale alfabetului englez (A-2, a-z) ,numite caractere alfabetice;

- cifrele sistemului de numerafle zecimal, numite sj caractere numeice (U9);

- caractere speciale: *, -, *, l,:, &, [, ],{,}, #, l, blank (spatriu) , -, -, @.

Codificarea gi reprezentarea informaf,ei alfanumerice folosegte standardulASCll(American Standard Code for lnformation Interchange).

0IdentificatoriUn identificatorreprezirfiAo succesiune de litere, cifre sau caracterul special,,-";

primul caracter nu kebuie si fie cifri. Idenfficatorii pot avea orice lungime.

Exemple:1. Identificatori: a, b1, cod-O, produs.

2. Succesiuni de caractere ce nu pot fi identificatori: 3y (primul caractereste o cifrI), ur+m (congne un caracter special).

Orice identificator trebuie definit sau declarat into linie anterioarl referirii sale.

Identificatorii desemneazl constante, tipuri de date, variabile. Existi un set de

identificatori predefinifl, numiti a nin@heie saa aninE rwab (tabelul 2) .

Tabelul2CwinMheie fu lintb4ieJe de prognmarc Pag;al Fi C/C.t+

0 SeparatoriUnitiste sintactice (ansambluri de caractere) sunt separate lntre ele fie prin

unul sau mai multe spalii libere Olank), fie prin sfArqitul de linie (caracterul CR),fie prin caracterul ; (punct virgul[) care se utilizeazd pentru separareainskucfiunilor gi a declaraflilor.

0 Comentariitn textul unui program, sunt necesare note explicative (comentarii) atagate unor

sewenle de operafii, declarlri de tipuri de date/vartabile, care nu au un rol activ inderularea programului. Acestea sunt delimitate in limbajul Pascal prin { ....}, iartn limbajul C/C* suntprecedate de ll .

G\.<u>Lll%--. rEMAxF

56 consideri urmltorii identificatori. incercuitri litera corespunz[toareidentificatorului corect definit. Justificaf rlspunsul!

a) n3 ; b) 4-nr ; c) stea ; d) p.adresa ; e) nr pare ; 0 x + y ; g) mi#sol ; h) var-4.

In{BAIT'LPASCAL LIMBAJUI C/C#and, or, while, for, do, repeat, array, mod, div,trunc, begin, end, type, procedure, function, nil.

while, void, for, do, struct, char, float, switch,NULL, include, const, floor, if, define.