Sunteți pe pagina 1din 5

PROGRAMAREA CALCULATOARELOR

LUCRAREA NR. 2

Pentru nici una din problemele care se vor rezolva la disciplina


Programarea Calculatoarelor
NU SE FOLOSESC VARIABILE GLOBALE

ELEMENTE INTRODUCTIVE ALE LIMBAJULUI C


1. PRIMUL PROGRAM N C
Programele pe care le scriem n C lucreaz cu variabile, constante, funcii i
instruciuni.
n variabile stocm diferite informaii care se pot modifica pe parcursul execuiei
programului (de aici i numele de variabil), constantele sunt valori care nu se
modific pe parcursul execuiei programului.
Funciile sunt poriuni de cod (similare rutinelor din limbajul de asamblare) care
pot face o prelucrare bine determinat a unor informaii (de exemplu putem avea o
funcie care, avnd la dispozie lungimile laturilor unui triunghi, s calculeze aria
triunghiului). Pentru a putea scrie o funcie trebuie s specificm informaiile pe care
le are la dispoziie o funcie pentru a face o anumit prelucrare. Aceste informaii le
vom numi n continuare date de intrare pentru funcie sau parametri de intrare ai
funciei (sunt similare argumentelor funciilor din matematic, ele fiind din domeniul
funciei). De asemenea, trebuie s cunoatem ce rezultat avem dup ce funcia face
toate calculele (trebuie specificat codomeniul funciei). De fapt, pentru a putea scrie
sau a folosi o funcie trebuie s cunoatem ce fel de rezultat ateptm de la funcie
(Valoarea rezultat este de tip ntreg sau real?). Pe msur ce naintm n
cunoaterea limbajului, vom vedea c pot exista funcii care nu calculeaz vreun
rezultat.
Programele scrise n C respect urmtorul principiu: nu lucreaz dect cu lucruri
cunoscute.
Din acest motiv nainte de a folosi o variabil trebuie s specificm ce fel de
variabil este. Acest lucru se face indicnd tipul (ntreg sau real) variabilei (sau
variabilelor cu care lucrm).
Exemple:
a) dac vrem s lucrm cu o variabil de tip ntreg pe care s o
denumim a vom scrie:
int a;
b) dac vrem s lucrm cu o variabil de tip real n simpl precizie care
s aib numele ma:
float ma;
Pentru o variabil de tip real n dubl precizie vom avea:
double ma;
n cazul unei funcii, indicarea modului n care vom lucra cu funcia respectiv
nseamn s indicm informaiile pe care funcia trebuie s le primeasc la intrare
(care se numesc parametri de intrare) i tipul rezultatului pe care l calculeaz funcia.
De exemplu dac vom lucra cu o funcie care calculeaz media aritmetic a dou
numerre ntregi vom scrie prototipul (modelul) funciei astfel:

PROGRAMAREA CALCULATOARELOR

LUCRAREA NR. 2

double mediaAritmetica(int a, int b);


n care:
double

mediaAritmetica

(int a, int b)

Prototipul
funciei
trebuie ntotdeauna s
se termine cu acest
semn de punctuaie.
Parametri de intrare ai funciei. Reprezint
informaiile de care are nevoie funcia
pentru a calcula rezultatul cerut.
n acest caz pentru a calcula media aritmetic
a dou numere ntregi avem nevoie de cele
dou numere ntregi.
Numele funciei; numele trebuie s fie sugestiv pentru ce calculeaz
funcia.

Tipul funciei care coincide cu tipul rezultatului calculat de funcie


n acest caz pentru c media aritmetic a dou numere este un numr real,
rezultatul calculat de funcie este un numr real, deci funcia va fi de tip real.

TEMA 1
Problema nr. 1.1.
S se scrie un program care citete de la tastatur trei numere ntregi, folosete
o funcie pentru a calcula maximul lor i afieaz, n main, valoarea maximului.
Problema nr. 1.2.
S se scrie un program care citete de la tastatur cinci numere ntregi (nu se
vor folosi vectori), folosete o funcie pentru a determina media lor aritmetic i
afieaz, n main, rezultatul.
Problema nr. 1.3.
Fie urmtoarea funcie:

x 2 + 3x + 5, x ( ,2]

f (x ) = 3x,
x (2,8)
x
e + 2,
x [8, )

S se scrie o funcie C care calculeaz valoarea funciei f pentru o valoare a lui x


dat.

PROGRAMAREA CALCULATOARELOR

LUCRAREA NR. 2

S se scrie un program care citete o valoare real de la tastatur, calculeaz


(apelnd funcia scris) valoarea funciei n punctul dat i afieaz (din main)
rezultatul.
Problema nr. 1.4.
S se scrie o funcie heron care calculeaz aria triunghiului folosind formula lui
Heron.

A=

p(p a)(p b)(p c )

unde p este semiperimetrul triunghiului, iar a, b i c sunt lungimile celor trei laturi ale
triunghiului.
S se scrie un program prin care se citesc de pe dispozitivul de intrare 3 numere
ntregi (care reprezint lungimile laturilor unui triunghi), apeleaz funcia heron i
afieaz (din main) rezultatul obinut.
Observaie: pentru calculul radicalului se folosete funcia sqrt al crui prototip
se gsete n fiieul header math.h, iar la link-editare trebuie inclus biblioteca
matematic.
Problema nr. 1.5.
S se scrie o funcie care calculeaz, folosind algoritmul lui Euclid (prin
mpriri repetate), cmmdc a dou numere ntregi pozitive primite ca parametri.
S se scrie un program care citete de la tastatur dou numere ntregi pozitive,
folosete funcia scris pentru calculul cmmdc i afieaz (din main) rezultatul obinut.
Problema nr. 1.6.
S se scrie un program care citete de la tastatur trei numere ntregi i
determin dac aceste numere pot reprezenta lungimile laturilor unui triunghi. n caz
afirmativ, programul trebuie s determine i tipul triunghiului (isoscel sau dreptunghic
sau echilateral sau oarecare). (Rezolvarea va cuprinde funcii pentru determinarea
calitii de triunghi, triunghi echilateral, triunghi isoscel sau triunghi dreptunghic).
TEMA 2
Problema nr. 2.1.
Se citesc de pe dispozitivul de intrare 3 numere reale care reprezint coeficienii
unei ecuaii de gradul 2. S se determine rdcinile acestei ecuaii. n cazul n care
ecuaia nu poate fi rezolvat se vor afia mesaje corespunztoare.
Problema nr. 2.2.
Un punct din plan este dat prin coordonatele sale (x, y). S se stabileasc poziia
punctului prin indicarea cadranului (1, 2, 3, 4) n care este plasat. Pentru un punct
situat pe una din semiaxe se vor preciza cadranele separate de semiaxa respectiv
(de exemplu 2-3).
Problema nr. 2.3.
S se calculeze durata unei conexiuni Internet cunoscndu-se momentul
conectrii (dat prin or, minut i secund) i momentul deconectrii (de asemenea dat
prin or, minut i secund). Trebuie s se ia n consideraie cazul n care o conexiune
ncepe ntr-o zi i se ncheie n ziua urmtoare. Atenie: rezultatul trebuie afiat sub
forma ore, minute, secunde, deci pentru calcul NU se va transforma totul n secunde.
Problema nr. 2.4.
S se calculeze momentul ntreruperii unei conexiuni Internet dac se cunoate
momentul de conectare (dat prin or, minut i secund) i durata total a conexiunii

PROGRAMAREA CALCULATOARELOR

LUCRAREA NR. 2

(dat prin ore, minute i secunde). Se ia n consideraie i cazul n care o conexiune


nceput ntr-o anumit i se poate ncheia n ziua urmtoare. Atenie: rezultatul
trebuie afiat sub forma ore, minute, secunde, deci pentru calcul NU se va transforma
totul n secunde.
TEMA 3
Problema nr. 3.1.
O pereche de numere naturale a i b se numesc prietene dac suma divizorilor
unuia din numere este egal cu cellalt numr (i invers). De exemplu, 220 i 284
sunt numere prietene deoarece:
1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 sunt divizori ai numrului 220 i suma lor
este 284
1, 2, 4, 71, 142 sunt divizori ai numrului 284 i suma lor este 220.
S se scrie un program care gsete toate numerele prietene dintr-un interval
dat de numere naturale [x, y]. Cele dou numere care reprezint capetele intervalului
sunt citite de la tastatur i programul face i validarea datelor (verific corectitudinea
datelor de intrare). Nu se vor folosi tablouri.
Indicaii:
n afara funciei main se vor mai scrie dou funcii ale cror prototipuri se vor
indica ntr-un fiier header:
1. o funcie care primete ca parametru un numr natural i returneaz suma
divizorilor numrului.
2. o funcie avnd ca parametri dou numere naturale i care returneaz 1 sau
0 dup cum cele numere sunt sau nu prietene.
Problema nr. 3.2.
Numerele naturale pot fi clasificate n: deficiente, perfecte sau abundente dup
cum suma divizorilor este mai mic, egal sau mai mare dect valoarea numrului.
Astfel:
n = 12 este abundent deoarece are suma divizorilor sd = 1+2+3+4+6 = 16 >
12,
n = 6 este perfect pentru c sd = 1+2+3 = 6,
n=14 este deficient deoarece sd = 1 + 2 + 7 = 10 < 14.
Scriei un program care citete dou valori naturale x i y i, n funcie de
opiunea utilizatorului, afieaz toate numerele perfecte, abundente sau deficiente din
intervalul [x, y]. Programul trebuie s conin o secven de validare a datelor. Nu se
vor folosi tablouri.
Indicaii:
n afara funciei main se vor mai scrie dou funcii ale cror prototipuri se vor
indica ntr-un fiier header:
1. o funcie care primete ca parametru un numr natural i returneaz suma
divizorilor numrului.
2. o funcie avnd ca parametru un numr natural, funcie care returneaz -1,
1 sau 0 dup cum numrul transmis ca parametru este deficient, perfect sau
abundent.
Problema nr. 3.3.
Se citesc de la tastatur un numr necunoscut de numere ntregi nenule
terminate cu caracterul CTRL/Z. S se stabileasc dac acestea:
- formeaz un ir strict cresctor
(tip ir = 6)
- formeaz un ir cresctor
(tip ir = 5)

PROGRAMAREA CALCULATOARELOR

LUCRAREA NR. 2

- formeaz un ir strict descresctor (tip ir = 2)


- formeaz un ir descresctor
(tip ir = 3)
- sunt identice (irul este constant) (tip ir = 4)
- nu sunt ordonate
(tip ir = 1)
Programul are posibilitatea de a analiza mai multe seturi de date (va exista
posibilitatea de reluare a programului).
Observaii:
1. Numerele citite nu se vor memora ntr-un vector (tablou).
2. Caracterul CTRL/D se obine prin apsarea simultan a tastelor Ctrl i D i
are semnificaie de sfrit de fiier asociat tastaturii. Se va consulta Help-ul
pentru a vedea cum se comport funcia scanf n cazul ntlnirii sfritului
de fiier. Pentru Windows sfritul de fiier este indicat prin CTRL/Z.
Indicaii:
Intre doua elemente ale irului se pot stabili urmtoarele relaii de ordine:
- mai mic
- egal
- mai mare
Se determina numrul de relaii de ordine de fiecare tip i n funcie de acest
numr se stabilete tipul irului astfel:
a. numai relaii mai mic - sir strict cresctor
b. relaii mai si relaii egal sir cresctor
c. numai relaii egal sir constant
d. relaii egal si relaii mai mare sir descresctor
e. numai relaii mai mare sir strict descresctor
f. toate tipurile de relaii sir oarecare
n afara funciei main se vor mai scrie dou funcii ale cror prototipuri se vor
indica ntr-un fiier header:
1. o funcie care nu are nici un parametru i returneaz o valoare n funcie de
tipul irului analizat. Aceast funcie citete i analizeaz irul.
2. o funcie care primete ca parametru un numr natural reprezentnd tipul
irului i afieaz mesajul corespunztor.

S-ar putea să vă placă și