Documente Academic
Documente Profesional
Documente Cultură
_____________
Informatica… la început
Clasa a V-a
Informatica… la început Jeni Ionela Moise
Prefaţă
Prezenta lucrare se adresează profesorilor care predau la clasa a V-a, unde sunt
întâmpinate cele mai multe dificultăţi la această materie, datorită faptului că are alocată o
oră, ca şi disciplină opţională. O oră care de obicei este prea scurtă sau în care cei mai mulţi
dintre elevi scriu încet sau iau notiţele pe sărite şi ajungând acasă descoperă că nu au după
ce învăţa.
Lucrarea este adaptată particularităţilor de vârstă ale elevilor din primul an de
gimnaziu şi este structurată pe trei capitole: Noţiuni introductive, Algoritmul şi Limbajul
Pascal.
Deoarece trăim intr-o lume avansată in tehnologie şi ţinând seama că majoritatea
elevilor „s-au născut cu calculatorul în braţe” nu am insistat prea mult pe partea de
tehnologie ci mai mult pe algoritmi şi implementarea lor în limbajul Pascal.
2
Informatica… la început Jeni Ionela Moise
Cuprins
3
Informatica… la început Jeni Ionela Moise
2. Resurse fizice
3. Mediul Windows
4. Lucrul cu ferestre
5. Foldere şi fişiere
4
Informatica… la început Jeni Ionela Moise
Însă acesteia i se pot ataşa diferite dispozitive care măresc aria de utilizare
a unui sistem de calcul, şi anume:
- imprimanta, cu ajutorul căreia rezultatele pot fi transpuse pe hârtie;
5
Informatica… la început Jeni Ionela Moise
Activitate independentă
2. Resurse fizice
Unitatea centrală este dispozitivul cel mai important, care conţine, în forme miniaturizate,
subansamble şi componente cu o funcţionalitate bine determinată. Cele mai importante
componente sunt procesorul, memoria internă şi echipamentele de stocare a datelor.
Componentele unităţii centrale comunică intre ele prin canale specializate, încorporate pe
placa de baza.
Procesorul este un dispozitiv care efectuează calculele aritmetice şi logice. Un procesor
este cu atât mai performant cu cât poate efectua mai repede, mai multe operaţii. Viteza cu care
operează un procesor este dată de aşa numita „frecvenţă”.
Memoria este un dispozitiv care permite reprezentarea codificată a informaţiei. Cea mai
mică unitate de informaţie poartă numele de bit, având două valori convenţionale: 0 şi 1. Unităţile
de măsură ale informaţiei (memoriei) sunt:
Byte (octet) reprezintă un şir de 8 biţi;
Kilobyte(Kb) reprezintă 210 = 1024 octeţi;
Megabyte(Mb) reprezintă 210 =1024 Kb;
Gigabyte(Gb) reprezintă 210 = 1024 Mb;
Terabyte(Tb) reprezintă 210 = 1024 Gb.
6
Informatica… la început Jeni Ionela Moise
7
Informatica… la început Jeni Ionela Moise
3. Mediul Windows
Fără resurse logice, un calculator este un echipament costisitor şi absolut inutil. Totalitatea
programelor care asigură funcţionarea de bază a unui calculator poartă numele de sistem de
operare.
Dintre cele mai cunoscute sisteme de operare menţionăm: UNIX, LINUX, DOS,
WINDOWS.
Lansat în 1985, sistemul de operare Windows a cunoscut numeroase versiuni, dintre care
amintim: Windows 3.11, Windows 95, Windows NT, Windows Me, Windows 2000, Windows
XP, Windows Vista, Windows 7, Windows 8. Sistemul de operare Windows foloseşte o serie de
elemente grafice care uşurează legătura om – calculator:
Iconiţe sau pictograme;
Ferestre;
Meniuri, butoane, casete de dialog şi altele.
Lansarea sistemului de operare Windows se face automat la pornirea calculatorului.
Terminarea unei sesiuni de lucru se face folosind butonul START, opţiunea Shut Down. După
lansarea sistemului Windows se poate observa aspectul ecranului. Fundalul se numeşte desktop
sau suprafaţă de lucru. Aici sunt plasate o mulţime de iconiţe şi bara programelor lansate în
execuţie. Această bară este aşezată, de obicei, în partea de jos a suprafeţei de lucru, iar pe ea se
observă câte un buton pentru fiecare program lansat în execuţie – i se mai spune bara de task-uri.
Butonul START se află în colţul din stânga jos al ecranului, acţionarea sa deschizând o
fereastră de opţiuni. Aceasta este o caracteristică generală a mediului Windows, şi anume că
fiecare acţiune poate avea la rândul său opţiuni, care pot deschide la rândul lor alte variante de
selecţie, etc. Acţionarea butonului stâng al mouse-ului deasupra butonului Start va deschide o
fereastră de opţiuni, fiecare dintre ele având o arie specifică.
Pictograme. Fiecare iconiţă semnifică o aplicaţie, un grup de aplicaţii sau o funcţie. Pentru
execuţia unei aplicaţii se face dublu clic pe iconiţa respectivă. Orice iconiţă are ataşat un meniu de
comenzi rapide la care se obţine acces făcând clic pe butonul din dreapta al mouse-ului, fiind
poziţionaţi pe ea.
8
Informatica… la început Jeni Ionela Moise
4. Lucrul cu ferestre
Zona de lucru
Bara de drulare
Cele trei butoane figurate in fereastra aplicaţiei Word de mai sus sunt: butonul de
minimizare, butonul de redimensionare şi butonul de maximizare.
O fereastră poate fi deschisă, mutată, închisă, mărită, micşorată, redimensionată sau redusă
la o iconiţă.
1. Deschideţi calculatorul la care lucraţi. Într-un document Word scrieţi un text oarecare.
Faceţi un printscreen documentului şi ataşaţi imaginea după text. Minimizaţi fişierul, după care
faceţi iar printscreen şi ataşaţi şi această imagine în continuare.
2. Salvaţi fişierul creat cu numele Lucru_ferestre.
9
Informatica… la început Jeni Ionela Moise
5. Foldere şi fişiere
10
Informatica… la început Jeni Ionela Moise
II. ALGORITMUL
1. Noţiunea de algoritm
- Proprietăţile algoritmilor
11
Informatica… la început Jeni Ionela Moise
1. Noţiunea de algoritm
O problemă este formată din date cunoscute şi un enunţ care specifică relaţia existentă între
datele care trebuiesc aflate şi soluţia problemei.
Un algoritm reprezintă o succesiune de etape care se execută într-o anumită ordine astfel
încât plecând de la anumite date de intrare (date cunoscute), într-un timp finit, să se obţină datele
de ieşire (datele care trebuiesc aflate, adică soluţia) .
Făcând o analogie cu matematica, ipoteza (adică acele date cunoscute la începutul
problemei) constituie datele de intrare, iar concluzia (acele date pe care trebuie să aflăm)
constituie datele de ieşire.
Soluţia problemei se obţine prin executarea algoritmului, însă, algoritmul nu poate fi
executat dacă nu este introdus în calculator sub forma unui program folosindu-ne de un limbaj de
programare sau dacă nu este executat pe o maşină formală (in faza de proiectare şi analiză).
De exemplu:
- Algoritmul de interpretare a muzicii prin urmărirea notelor de pe partitură;
- Algoritmul de funcţionare a unei maşini de spălat
- Rezolvarea unei probleme de matematică, fizică, chimie… ; ca de exemplu: regula de trei
simplă, rezolvarea ecuaţiilor de gradul I şi II, găsirea ariei unui dreptunghi, aflarea volumului unei
piramide, schema lui Horner…
- Respiraţia
- Succesiunea zilelor şi nopţilor
- Programul zilnic
- etc.
Problemă :
Să ne gândim, de exemplu, că dorim să facem cartofi prăjiţi. Poate nu vă vine să credeţi, dar şi în
spatele acestei activităţi se ascunde un algoritm.
1. Curăţăm cartofii
2. Spălăm cartofii
3. Tăiem cartofii în bucăţele mai mici
4. Punem o tigaie pe focul aragazului şi ulei în tigaie
5. Punem cartofii în tigaie
6. Aşteptăm să se prăjească întorcându-i din când în când
7. Când sunt prăjiţi scoatem cartofii din tigaie şi îi punem într-un castron. Nu uităm să oprim
focul!
8. Punem un pic de sare şi condimente după gust.
POFTĂ BUNĂ!
Temă:
Proprietăţile algoritmilor
De exemplu, nu putem scrie un algoritm pentru următoarea problemă: Dacă Ionuţ ia nota 10 la
examenul de bacalaureat la matematică fie urmează cursurile la Automatică fie urmează cursurile
la Telecomunicaţii.
De asemenea, e bine ca un algoritm să fie clar pentru că, în cazul în care îl implementăm într-un
limbaj de programare şi rulăm programul, să ştim locul de unde ar putea proveni greşeala.
De exemplu: Se dau valorile pentru lungimea şi lăţimea unui dreptunghi. Să se găsească aria
dreptunghiului.
Un algoritm nu trebuie să furnizeze la prima execuţie pentru problema 2+5=? rezultatul 7 iar la o
altă execuţie rezultatul -7 sau alt rezultat.
De exemplu, atunci când un algoritm este transpus într-un limbaj de programare, programatorul
poate să execute programul după terminarea fiecărei etape a problemei pe care doreşte să o
rezolve iar în felul acesta să elimine încă din faza de proiectare cea mai mare parte din erori sau
13
Informatica… la început Jeni Ionela Moise
Metoda 1 este cea optima atât din punct de vedere al timpului de execuţie (o singură instrucţiune)
cât şi a memoriei ocupate de variabilele pe care le folosim.
6. Eficienţa: reprezintă proprietatea unui algoritm de a se termina într-un număr finit şi "rezonabil"
de paşi chiar dacă această soluţie nu este cea optimă. Un algoritm este ineficient dacă se termină
după un timp mai lung sau dorit.
De exemplu, dacă în programul în care a fost implementat algoritmul are ca limită de timp pentru
rulare 1 secundă şi el se termină în 2 secunde, atunci algoritmul nu este eficient.
7. Existenţa unei intrări: deoarece un algoritm trebuie să rezolve o problemă pe baza unor date
cunoscute, existenţa acestor date de intrare este obligatorie.
8. Existenţa unei ieşiri: utilitatea unui algoritm nu se vede dacă nu furnizează o soluţie. De
exemplu, dacă implementăm într-un limbaj de programare algoritmul pentru suma a două numere
şi programatorul uită să scrie instrucţiunea pentru afişarea rezultatului pe ecran, utilizatorul care
execută programul nu poate vedea soluţia problemei.
10. Finitudinea: reprezintă proprietatea algoritmilor de a se termina după un număr finit de paşi.
Dacă un algoritm rulează la nesfârşit atunci trebuie introdusă o condiţie la îndeplinirea căreia
algoritmul să se oprească.
14
Informatica… la început Jeni Ionela Moise
Orice algoritm lucrează cu date. Aşa cum am mai precizat avem date de intrare (datele
cunoscute înainte de a rezolva problema), datele de ieşire (soluţia problemei, datele care trebuiesc
aflate) dar, în cele mai multe cazuri, pot apare şi date intermediare (numite şi date de manevră)
care sunt temporare şi ajută să se obţină datele de ieşire pe baza datelor de intrare.
Datele cu care lucrează algoritmii pot fi clasificate din mai multe puncte de vedere.
1. În funcţie de posibilitatea de a-şi modifica valoarea:
a) constante: acele date care nu-şi schimbă valoarea (cifre, litere, CNP...)
b) variabile: acele date care îşi schimbă valoarea (temperatura, starea vremii, numele unei
persoane, numărul de telefon...)
- e referită printr-un nume (succesiune de litere şi cifre, primul caracter fiind obligatoriu literă)
- are asociată o valoare
- numele unei variabile nu se schimbă pe parcursul executării algoritmului însă valoarea acesteia
se poate schimba.
2. În funcţie de valoare:
Dacă datele componente sunt de acelaşi tip atunci structura se numeşte omogenă altfel,
poartă numele de eterogenă. Un exemplu de dată structurată este numele unei persoane care este
formată din mai multe caractere unul după altul, formând astfel un şir de caractere.
Rezolvarea unei probleme este un proces care se realizează în mai multe etape:
2. Analiza problemei:
- stabilirea cerinţelor problemei
- stabilirea datelor de intrare şi ieşire
15
Informatica… la început Jeni Ionela Moise
6. Analiza complexităţii algoritmului: în general există mai mulţi algoritmi pentru a rezolva o
anumită problemă. Ideal este să optimizăm algoritmii găsiţi şi să-i facem mai eficienţi. Eficienţa
unui algoritm se evaluează din două puncte de vedere:
- spaţiul de memorie folosit pentru valorile variabilelor care intervin in algoritm
- timpul de execuţie.
7. La programele mai mari care sunt exploatate de mai mulţi utilizatori e nevoie şi de
- elaborarea documentaţiei pentru folosirea programului
- depistarea erorilor în timpul exploatării de alţi utilizatori şi îndepărtarea acestora în
versiunile următoare ale programului.
După câte observăm, elaborarea algoritmilor nu este un proces liniar. De cele mai multe ori
este nevoie să revenim asupra unei etape şi să o repetăm în vederea îndepărtării erorilor sau a
optimizării programului.
16
Informatica… la început Jeni Ionela Moise
17
Informatica… la început Jeni Ionela Moise
program identificator_program;
Declaraţii opţiuni de compilare;
Declaraţii de UNIT-uri; (fişiere bibliotecă)
Uses crt, graph, dos;
Definiţii de constante; const n=15;
Definiţii de tipuri de date type sir = array[1..5] of real;
Declaraţii de variabile; var x, y : byte;
Declaraţii de subprograme (funcţii şi sau proceduri);
begin
instrucţiuni;
apeluri de subprograme;
end.
Precizări:
Exemplu:
Program simplu;
Begin
Writeln („ Un exemplu de program‟);
Writeln („OK‟) ;
End.
18
Informatica… la început Jeni Ionela Moise
Orice limbaj de programare foloseşte un vocabular, acesta este format din: setul de
caractere, identificatori, separatori şi comentarii.
Setul de caractere
Prin set de caractere se înţelege totalitatea caracterelor cu ajutorul cărora se poate scrie un
program. El este alcătuit din:
- literele mici şi mari ale alfabetului englez: a, b, ……, z, A, B, …..Z, numite caractere
alfabetice;
- cifrele sistemului zecimal de numeraţie: 0 – 9, numite caractere numerice;
- caractere speciale: +, -, *, /, =, <, >, (, ), [, ], {, }, ., ,, :, ;, “, „, @, !, #, $, %, ^, &, _, |,
blank(spaţiu) etc.
Identificatori
Identificatorul reprezintă numele asociat unui program, variabilă, constantă, etc. având
întotdeauna primul caracter o literă şi nu poate conţine nici un caracter special cu excepţia
caracterului „_”. Poate avea orice lungime.
Exemple:
- identificatori corecţi: a, b1, cod_0, sumă, maxim.
- Identificatori incorecţi: 3a, nr*m, %c.
Există un set de identificatori predefiniţi, numiţi cuvinte – cheie sau cuvinte rezervate:
and, or, while, if, for, do, repeat, array, mod, div, trunc, begin, end, type, procedure,
function, nill.
Separatori
Succesiunile de caractere care luate împreună au o semnificaţie bine definită (unităţile
lexicale) pot fi diferenţiate între ele prin separatori. Aceştia sunt, după caz: blank (caracterul
„spaţiu”), caracterul de sfârşit de linie (EOL), caracterul „;”(punct şi virgulă) care se utilizează
pentru separarea instrucţiunilor şi a declaraţiilor.
Comentarii
Într-un program, sunt necesare note explicative (comentarii) ataşate unor secvenţe de
operaţii, declarări de tipuri de date sau variabile, care nu au rol activ în derularea programului.
Acestea sunt delimitate prin {…} sau (*…*).
Exemplu:
Se citesc două numere naturale a şi b. Să se afişeze suma lor.
program exemplu;
var a, b: integer; (* declararea variabilelor*)
begin {Corpul programului}
write („a= „); readln(a); (*citirea, pe rând, a celor doua numere*)
write („b= „); readln(b);
writeln („Suma a+b = „, a+b); {calcularea şi afişarea sumei}
19
Informatica… la început Jeni Ionela Moise
end.
Temă:
Mediul de programare este o aplicaţie cu meniu interactiv care are o interfaţă accesibilă
pentru operaţiile necesare dezvoltării, compilării, execuţiei şi depanării programelor (FILE, EDIT,
COMPILE, RUN, DEBUG).
20
Informatica… la început Jeni Ionela Moise
2. dacă există fişierul folosim calea File →Open, alegând fişierul dorit ( fie cel sursă, fie cel
text cu date de intrare pentru testarea programelor)
Pas 4. Salvarea
Salvarea fişierului se realizează prin următoarele căi:
1. dacă fişierul se salvează în directorul ales, se alege File →Save sau apăsând tasta
funcţională F2.
2. dacă fişierul se salvează sub un alt nume sau intr-un alt director, se alege File →Save as
…
21
Informatica… la început Jeni Ionela Moise
Pas 6. Compilarea
Compilarea liniilor de program se realizează alegând opţiunea Compile din meniul Compile
sau apăsând concomitent tastele Alt + F9.
22
Informatica… la început Jeni Ionela Moise
Se realizează prin alegerea opţiunii Run din meniul Run sau prin apăsarea tastelor Ctrl+F9.
Închiderea unui fişier se realizează fie prin combinaţia de taste Alt + F4, fie prin alegerea
opţiunii File →Exit.
23
Informatica… la început Jeni Ionela Moise
Temă:
Unei constante de orice tip i se poate ataşa un identificator de constantă, adică un nume. În
cadrul unui program o constantă se declară în secţiunea de declaraţii, astfel:
Observaţii:
Dacă avem de declarat mai multe constante, vom scrie cuvântul const o singură dată;
Tipul unei constante rezultă chiar din valoarea sa.
3.2.2. Variabilele sunt datele care nu îşi modifică numele dar îşi modifica valoarea pe
parcursul execuţiei programului. Pe lângă nume şi tip, variabilele mai au şi adresă.
Tipul unei variabile defineşte mulţimea valorilor pe care le poate lua variabila respectivă.
Unde:
<v1>, <v2>, ……→identificatori de variabilă, separaţi prin virgulă;
<tip> →tipul variabilelor <v1>, <v2>, ……
Observaţii:
Dacă avem mai multe linii de declaraţii, cuvântul cheie var se scrie o singură data, la
începutul primei linii;
Putem declara intr-o singură linie mai multe variabile de acelaşi tip, separându-le
prin virgulă.
Exemplu:
Program cu_variabile;
var a1, b: integer;
media_info: real;
begin
………………..
end.
3.2.3 Expresii
O expresie este formată din unul sau mai mulţi operanzi (constante, variabile, funcţii), legaţi
prin operatori. O expresie are o valoare şi un tip.
Într-o expresie, ordinea în care se execută operaţiile este dată de aşa – numitele reguli de
prioritate a operatorilor.
Operatorii sunt de următoarele tipuri:
- operatori aritmetici: +(adunare), - (scădere), * (înmulţire), / (împărţire), div (câtul
împărţirii întregi), mod (restul împărţirii întregi);
- operatori relaţionali: < (mai mic), <=(mai mic şi egal), > (mai mare), >= (mai mare şi
egal), = (egal ) , <> (diferit);
- operatori logici: and (şi), or (sau), not (nu);
25
Informatica… la început Jeni Ionela Moise
Astfel, primele se execută operaţiile aritmetice, apoi se evaluează operatorii logici, iar în
final cei relaţionali.
Exemple:
1. expresie numerică :
e:= a*x+b;
2. expresie logica:
(a>0) and (b<0);
Tema:
Pentru fiecare tip de operaţie de citire sau de scriere, există comenzi specifice implementate
în bibliotecile limbajelor de programare.
Operaţiile de citire a datelor de intrare de la tastatură şi de scriere (afişare) a celor de ieşire
pe ecran sunt prezentate mai jos cu ajutorul procedurilor. Valorile afişate pot fi cele reţinute în
zonele de memorie sau cele rezultate din evaluarea unor expresii.
Citirea de la tastatură se face cu:
read (id_v1[, id_v2, …,id_vn]);
readln( id_v1[, id_v2, …,id_vn]);
unde id_v1, id_v2,…, id_vn sunt identificatori de variabile elementare de orice tip, cu
excepţia celor logice.
Procedura readln are acelaşi rol cu cel al procedurii read, cu diferenţa că, la terminarea
citirii, cursorul este poziţionat pe linia următoare a ecranului.
Scrierea (afişarea) pe ecran se face cu:
write( id1[, id2,…, idn]);
writeln(id1[, id2,…, idn]);
unde id1, id2, …, idn sunt identificatori de variabile de orice tip sau de constante.
La terminarea scrierii(afişării), cu procedura writeln , cursorul este adus pe prima poziţie a
rândului următor.
26
Informatica… la început Jeni Ionela Moise
Program P1;
Var x,y: integer;
Begin
Writeln('Introduceti doua numere intregi:');
Write('x='); Readln(x);
Write('y='); Readln(y);
x:=x+100;
y:=y+100;
Write('Numerele mărite cu 100: ');
Writeln('x=',x,' ','y=',y);
Readln;
End.
Program P2;
Var a,b,c,Suma: integer;
media: real;
Begin
Write('Introduceti trei numere intregi: ');
Readln(a,b,c);
Suma:=a+b+c;
Writeln('Suma numerelor ',a,', ',b,'si ',c,' este: ',Suma);
media:=Suma/3;
Write('Media aritmetica este: ');
Writeln(media:5:2);
Readln;
End.
Despre citirea şi scrierea datelor din / în fişiere vom vorbi şi studia într-un capitol separat.
Temă:
1. Marin a cumpărat x caiete, preţul unuia fiind de p1 lei, şi y creioane cu p2 lei bucata. Să se scrie
un program care calculează suma cheltuită de Marin.
2. O cameră de arie cunoscută trebuie mochetată. Cât costă mochetarea camerei ştiind că 1 m2
costă 126 lei?
27
Informatica… la început Jeni Ionela Moise
4. Structuri de control
1. Instrucţiunea if
Definiţie:
Instrucţiunea IF este o structură de calcul alternativă, care permite în funcţie de anumite
condiţii, executarea (sau neexecutarea) unei anumite instrucţiuni sau secvenţă de instrucţiuni.
caz II:
dacă plouă atunci
merg cu taxi
altfel
merg pe jos
În ambele cazuri plouă reprezintă o condiţie, iar merg cu taxi şi respectiv merg pe
jos reprezintă instrucţiuni.
Principiul de execuţie:
· se evaluează expresia logică;
· dacă aceasta are valoarea TRUE, atunci se execută secvenţa prezentată în cadrul
instrucţiune1 iar în caz contrar se execută secvenţa prezentată în cadrul instrucţiune2 sau se iese
din structură (când construcţia ELSE lipseşte).
28
Informatica… la început Jeni Ionela Moise
Atenţie: dacă secvenţele cuprind mai mult de 2 instrucţiuni,acestea trebuie cuprinse între
BEGIN şi END;
Exemplu 1.
Să se elaboreze un program care citeşte de la tastatură un număr şi să
stabilească paritatea lui.
Program P1;
{Determinarea parităţii unui număr}
var x: integer;
begin
writeln ('Daţi numărul: ');
write ('x=');
readln (x);
if x mod 2=0 then
writeln ('număr par')
else
writeln ('număr impar');
readln;
end.
Temă:
2. Instrucţiunea de selecţie
Definiţie:
Structura alternativă de selecţie dirijează execuţia unei secvenţe de instrucţiuni (s1, s2, …, sn) în
funcţie de valoarea unui selector. Indexul lui CASE trebuie sa fie o expresie (selector) sau o
variabila de tip ordinal.
case expresie_ordinală of
caz1: instr1;
caz2: instr2;
..............
cazn: instrn
else instr
end;
Principiul de execuţie:
29
Informatica… la început Jeni Ionela Moise
Dacă eticheta căutata este găsita, se execută acţiunea corespunzătoare, după care se trece la
executarea primei acţiuni după END;
Dacă nu se găseşte o astfel de etichetă se execută enunţul asociat lui ELSE; dacă acesta
din urma nu există, atunci nu se execută nimic.
Exemple:
case Ch of
'A'..'Z', 'a'..'z': WriteLn('Litera');
'0'..'9': WriteLn('Cifra');
'+','-','*','/': WriteLn('Operator')
else WriteLn('Caracter special')
end;
Temă:
Structurile repetitive cu număr necunoscut de paşi sunt structurile care se repetă cât timp /
până când este îndeplinită o condiţie. Ele se numesc: structuri repetitive cu test iniţial şi
structuri repetitive cu test final.
2. dacă valoarea expresiei este True ,atunci se execută instrucţiunea <instr> şi se revine la
pasul 1, altfel execuţia se termină.
Cu alte cuvinte, ea cere execuţia repetată a unei instrucţiuni Pascal în funcţie de valoarea de
adevăr a unei expresii logice. Dacă iniţial expresia logică este falsă execuţia instrucţiunii
respective nu va avea loc niciodată.
Observaţii:
Pentru ca structură repetitivă să nu intre într-un ciclu infinit, trebuie ca secvenţa de
instrucţiuni să modifice cel puţin una din variabilele care intervin în condiţie astfel încât aceasta să
poată deveni falsă la un moment dat.
Dacă de la bun început condiţia are valoarea fals, secvenţa de instrucţiuni nu se execută nici
măcar o dată.
Exemplu:
1. Se afişează pe ecran, suma cifrelor unui număr natural nenul. Numărul x se citeşte de la
tastatură.
Explicarea algoritmului: Rezolvarea presupune că se extrag pe rând cifre din număr şi se
adaugă la sumă. Soluţia se poate exprima în cuvinte astfel: CÂT TIMP numărul este diferit de
zero (deci mai sunt cifre de extras), EXECUTĂ extrage şi elimină ultima cifră din numărul x apoi
adaugă cifra la sumă.
Soluţia are două componente:
• condiţia, trascrisă prin “ numărul este diferit de zero”;
• acţiune transcrisă prin “ extrage şi elimină ultima cifră din numărul x apoi adaugă cifra la
sumă”;
Notând numărul dat cu „x”, cifra eliminată cu „c” şi suma cifrelor cu „s”, algoritmul de
rezolvare va fi:
Var x, c, s : word;
Begin
Write („x= „); read(x);
S:=0; {se iniţializează suma cu 0 }
While x<>0 do begin
C:=x mod 10; {extrage ultima cifră}
S:= s+ c; {adună cifra la sumă}
X:= x div 10; {elimină ultima cifră din număr}
End;
Writeln(„suma cifrelor = „, s);
Readln;
End.
Temă:
32
Informatica… la început Jeni Ionela Moise
2. Se afişează pe ecran, produsul cifrelor unui număr natural nenul. Numărul x se citeşte
de la tastatură.
Var x, c, p : word;
Begin
Write („x= „); read(x);
p:=0; {se iniţializează produsul cu 1 }
While x<>0 do begin
C:=x mod 10; {extrage ultima cifră}
p:= p* c; {înmulţeşte cifra la produsul iniţial}
X:= x div 10; {elimină ultima cifră din număr}
End;
Writeln(„produsul cifrelor = „, p);
Readln;
End.
Temă:
Semantica:
33
Informatica… la început Jeni Ionela Moise
V primeşte valoarea expresiei e1. Apoi, se verifică, dacă s-a depăşit valoarea e2. Dacă da,
ciclul se incheie, iar dacă nu, atunci se execută instrucţiunea <instr>, apoi v creşte la succesorul
său, apoi se reia verificarea condiţiei de continuare a ciclului.
In forma cu downto, avem un test invers de continuare.
Exemplu:
1. Sa se determine suma primelor n numere naturale.
Var i,n,s: word;
Begin
Write (‟dati numărul de numere naturale‟); read(n)ş
S:=0;
For i:=1 to n do s:=s+i;
Write(‟suma este‟ , s);
Readln; end.
12
123
......
1 2 3 ..n
program triunghi;
var i,j,n:word;
BEGIN
write('n=');readln(n);
for i:=1 to n do
begin
for j:=1 to i do
write(j,' ');
writeln;
end;
34
Informatica… la început Jeni Ionela Moise
readln;
END.
Temă:
35
Informatica… la început Jeni Ionela Moise
Unde id_v1, id_v2,…id_vn sunt identificatori de variabile elementare de orice tip sau
constante
Închiderea fişierului: close(id_f).
Un fişier text poate fi creat direct din mediul de programare File →New, salvat cu extensia
dorită (exemplu: date.in) şi folosit în program.
Exemplu:
Din fişierul date.in (creat in directorul curent), se citesc variabilele reale a, b şi c, separate
prin câte un spaţiu.
În fişierul date.out se vor afişa valorile citite,pe prima linie, cu câte un spaţiu între ele, iar
pe urmatoarele linii, suma şi produsul lor.
Date.in date.out
345 345
12
60
Temă:
1. Să se afişeze în fişierul date.out , suma cifrelor unui număr x citit de pe primul rand al
fişierului date.in.
2. Să se calculeze şi să se afişeze în fişierul date.out câte cifre are un număr citit din
fişierul date.in.
3. Se dă un şir de numere care se termină cu valoarea 0. Să se calculeze suma elementelor
pare din şir şi produsul elementelor impare din şir şi să se afişeze în fişierul date.out.
4. Se dă un sir de numere care se termină cu valoarea 0. Să se calculeze câte elemente pare
şi câte elemente impare sunt in şir şi să se afişeze în fişierul date.out.
5. Să se afişeze următorul triunghi de numere in fişierul „triunghi.txt”:
36
Informatica… la început Jeni Ionela Moise
12
123
......
1 2 3 ..n
Exemple:
abs(9)=9......abs(8.5)=8.5
abs(-9)=9.....abs(-8.5)=8.5
abs(0)=0......abs(-12.0)=12.0
round(5.62)= 6.00
int(5.62)= 5
trunc(5.62)= 5
sqr(6)= 36
sqrt(81)= 9
37
Informatica… la început Jeni Ionela Moise
R emarcă:
Funcţia sqrt are o quasi-inversă numită sqr care calculează pătratul lui x - pozitiv sau
negativ - cu condiţia ca pătratul (lui x) să nu depăşească maxint, pentru x întreg, sau să
nu depăşească maxreal (!) atunci când x are valori reale.
O numim quasi - inversă deoarece numai pentru x real şi pozitiv este adevărat că
sqr(sqrt(x))=x=sqrt(sqr(x))
şi chiar în acest caz este adevărat numai pentru x pentru care:
sqr(x)<=maxreal.
Regulă:
Funcţia sqrt returnează întotdeauna o valoare reală, indiferent de tipul argumentului
(întreg sau real).
Fie ecuaţia de grad I cu forma: ax+b =0. Să se scrie un program care rezolvă ecuaţia.
program ecuatie_de_gradul_intai;
var a,b,x:real;
begin
writeln('Ecuatia de gradul I: ax+b=0');
writeln;
write('Introduceti o valoare pentru a: ');
readln(a);
write('Introduceti o valoare pentru b: ');
readln(b);
if a=0 then
writeln('Ecuatia nu are sens')
else
begin
x:=-b/a;
writeln('Valoarea lui x este: ',x);
end;
Readln;
end.
Un număr prim este un număr natural care are exact doi divizori: numărul 1 și numărul în sine. Cel
mai mic număr prim este 2, în afară de 2 toate numerele prime sunt numere impare.
38
Informatica… la început Jeni Ionela Moise
În acest fel pentru fiecare număr din şir trebuie să verificăm dacă este prim (dacă are
numere mai mici decat el care se împart exact la el).
var n, x, i, j :word;
prim: boolean;
begin
write (‟n= ‟); readln (x);
for i:= 1 to n do
begin
write(‟numărul = ‟); readln (x);
if x=1 then prim:=false
else
begin
prim:= true; j :=2;
while (prim=true) and (j<=trunc(sqrt(x))) do
if x mod j = 0 then prim := false
else j:= j+1;
end;
if prim = true then writeln(x);
end;
end.
39
Informatica… la început Jeni Ionela Moise
Bibliografie selectivă
1. Liliana Arici, Informatică – caiet de lucru pentru clasa a V-a, ed. Polirom, 2003
2. Mioara Gheorghe, Constanţa Năstase, Monica Tătărâm, Informatică – manual
pentru clasa a X-a, ed. Corint, 2005
3. Sorin Tudor, Informatică, manual pentru clasa a IX-a, ed. L&S Infomat,
Bucureşti
4. Daniela Oprescu, Marcel Călinoaia, Informatică. Manual pentru clasa a IX-a, ed.
Niculescu, Bucureşti, 2000
40