Sunteți pe pagina 1din 9

Universitatea Valahia din Trgovite

Facultatea de Inginerie Electric


Specializarea: Electronic i Telecomunicaii
Anul I

PROIECT
la
Programarea Calculatoarelor i Limbaje de Programare

Student: Uta Ionut


Coordonator: Asist. ing. Ana-Maria SUDUC
Uta Ionut Studiu comparativ intre instructiunile repetitive WHILE si FOR

- 2012

Tema:
Studiu comparativ intre instructiunile repetitive WHILE si FOR

2
Uta Ionut Studiu comparativ intre instructiunile repetitive WHILE si FOR

Cuprins
1. Introducere................................................................................................................................3

2. Instructiunea WHILE...5

3. Instructiunea FOR....6

4. Bibliografie............................................................................................................................10

3
Uta Ionut Studiu comparativ intre instructiunile repetitive WHILE si FOR

1. Introducere

Limbajul C este un limbaj de programare care are o destinaie universal. El este


utilizat n rezolvarea problemelor tiinifice i tehnico-inginereti, n prelucrri de date, precum
i n scrierea programelor de sistem.
El a aparut n anul 1972. Autorul principal al limbajului este Dennis Ritchie de la firma
BELL LABORATORIES. Limbajul C a aprut n legtura cu implementarea sistemului de
operare UNIX pe minicalculatoarele firmei DEC, seria PDP-11. Sistemul de operare UNIX,
compilatorul C i n esen toate aplicaiile sub sistemul
UNIX sunt scrise n C ntr-o proporie mare. Astfel, din cele 13000 linii surs ale
sistemului de operare UNIX, numai 800 linii sunt scrise n limbaj de asamblare, restul fiind
scrise n C. De asemenea, nsi compilatorul C este scris n C n proporie de 80%. n felul
acesta limbajul C asigur o portabilitate bun pentru programele scrise n el. Noiunea de
portabilitate nu este nc definit riguros. n mod intuitiv, spunem c un program este portabil
daca el poate fi transferat uor de la un tip de calculator la altul. Portabilitatea mare a
programelor scrise n C a condus la o raspndire mare a limbajului C i a sistemului de operare
UNIX.
n prezent limbajul C este implementat i sub alte sisteme de operare. Practic el este
disponibil pe toate calculatoarele, ncepnd cu microcalculatoarele personale i terminnd cu
supercalculatoarele. Pe calculatoarele de tip IBM PC este implementat o variant a limbajului C
numit TURBO C. Aceast variant dispune de un mediu de programare menit s ajute
utilizatorul n scrierea i punerea la punct a programelor. De asemenea, pe acelasi tip de
calculatoare este implementat varianta quickC, care dispune i ea de un mediu de programare
dezvoltat.
Limbajul C conine structurile proprii programrii structurate. Succesul ei s-a dovedit din
plin odat cu apariia limbajului Pascal. De asemenea, limbajul C dispune i de faciliti oferite
de limbajele de asamblare, cum sunt lucrul pe bii i utilizarea adreselor.
El este considerat ca fiind un intermediar ntre limbajele de nivel nalt i cele de
asamblare. Compilatorul C ofer programatorului o flexibilitate mai mare n scrierea
programelor dect alte limbaje de programare. El realizeaz un numr mai redus de controale la
compilarea textului surs. Din aceast cauz programarea n limbajul C este mai expus la erori
dect programarea n alte limbaje, cum ar fi de exemplu, limbajul Pascal.

2. Instructiunea WHILE
4
Uta Ionut Studiu comparativ intre instructiunile repetitive WHILE si FOR

Este o instructiune care permite repetarea sau nu a executiei unei bucati de cod functie de
valoare de adevar a unei expresii.
Un exemplu la care ar fi necesar acest tip de instructiuni ar fi restrictia domeniului de
valori in cazul datelor care le poate introduce un utilizator. Acest lucru este necesar pentru ca de
obicei utilizatorul nu tine cont de toate restrictile relative la intervalul la care poate da o valoare
de intrare, sau poate da din gresala o valoare incorecta. Totusi modelul matematic specifica clar
ca algoritmul lucreaza corect numai in intervalul [a,b].
Pentru utilizator faptul ca programul da un rezultat eronat datorita unei valori de intrare
introdusa gresit inseamna ca programul nu functioneaza corect. Este necesar ca programatorul
san u permita introducerea alte date decat cele specificate in modelul matematic.
Observatie: Limbajul C++ spre deosebire de limbajul Pascal nu genereaza un mesaj de
eroare daca tipul de date introdus nu coincide cu specificatorul dat functiei scanf. Din acest
motiv in momentul in care se pregateste o versiune beta (prima versiune a aplicatiei care va fi
folosita de utilizator) trebuiesc introduce toate restrictile de tipul mentionat mai sus. La nivel de
pseudocod metoda poate fi descrisa ca mai jos:
Citeste valoarea de intrare
Atata timp cat valoarea de intrare nu se afla la intervalul [a,b]
Emite un mesaj de de atentionare catre utilizator
Reciteste valoarea
Pentru aceastea se pot folosi instructiunile WHILE a carei sintaxa este prezenta mai
jos.
While (codnitie)// atata timp cat conditia este adevarat executata
{
Bloc de instructiuni
}
In figura 1 este prezentata schema logica corespunzatoare metodei While.

5
Uta Ionut Studiu comparativ intre instructiunile repetitive WHILE si FOR

Fig.1 Schema logica a instructiunilor while

In exemplu de mai joc este vorba de citirea unei valori intregi care trebuie sa apartina intervalului
[0,255].

#include <stdio.h>
#include <conio.h>
Void main(void)
{unsigned char value;
Clrscr();
printf(Nr1:);
scanf(%d,&op1);
while((value>255)&&(value<0))
}
printf(Eroare ! Numarul trebuie sa fie intre 0 si 255 );
printf(Nr1:);
scanf(%d,&op1);
}
// urmeaza restul programului
}

3. Instructiunea FOR
Din cele prezentate mai sus rezulta ca se poate repeta un bloc de instructiuni pana cand
este indeplinita o conditie Exista cazuri in care se cunoaste de la inceput cate valori de se doresc
a fi prelucrate, fie prin specificarea directa a utilizatorului, fie ca rezultat a unor calcule
anterioare. De obicei acest lucru se aplica la calculul vectorial sau matricial sin u numai.
Voi arata mai jos un exemplu simplu, si anume realizarea unui program ce va ridica un
unmar la o putere. Pseudocodul si apoi programul sunt prezentate mai jos:
citeste numaru (nr)
6
Uta Ionut Studiu comparativ intre instructiunile repetitive WHILE si FOR

citeste puterea la care va fi ridicat (pw)


initiaza variabila rezultat, ce va pastra nr la putere cu 1 (rez=1)
atata timp cat variabila ce a primit puterea > 0 fa
rez=rez*nr;
pw=pw-1;
repeat
afisaza rezultatul0

Codul sursa corespunzator:

#include <stdio.h>
#include <conio.h>
void main(void)
{
int nr, pw;
float rez;
clrscr();
printf(Numarul);
scanf(%d,&nr);
printf(\nPuterea);
scanf(%d,&op2);
rez=1; //****
while(pw>0)//*****
{
rez=rez*nr;
pw=pw-1;//*****
}

7
Uta Ionut Studiu comparativ intre instructiunile repetitive WHILE si FOR

printf(Numarul %d la puterea %d este %f,nr,pw,rez);


getch();
}

Instructiunile marcate cu axterix se repata in mai multe situatii cand numarul de pasi este
cunoscut. De aceea s-a implemantat instructiunea FOR avand urmatoarea sintaxa:
for(contor=valoareinitiala;contor<sau>valoarefinala;
contor=contor+sau-pas)
{
Bloc de instructiuni
}
La nivel de schema logica instructiunea for este prezenata in figura 2.

Fig. 2 Schema logica a instructiunii FOR


Acum se poate observa ca aceasta instructiune scuteste programatorul de a scrie cod
suplimentar. Programul anterior rescris folosind aceasta instructiune este dat mai jos.
#include <stdio.h>
#include <conio.h>
void main(void)
{
int nr, pw,i;
float rez;
clrscr();
printf(Numarul);
8
Uta Ionut Studiu comparativ intre instructiunile repetitive WHILE si FOR

scanf(%d,&nr);
printf(\nPuterea);
scanf(%d,&op2);
for(i=0;i<pw;i=i+1)
rez=rez*nr;
//codul mai poate fi scris ca si in zona comentata ce urmeaza
// for(i=pw;i>0;i=i-1)
// rez=rez*nr;
printf(Numarul %d la puterea %d este %f,nr,pw,rez);
getch();
}

Exista un control asupra desfasurari buclei exact ca si in cazul While dar codul scris este
mult mai succinct.
Observatie: 1 Daca blocul de instructiuni consta intr-o instructiune parantezele nu mai sunt
necesare
Observatie 2: Daca se pune ; dupa for aceasta va considera ca are o bucla vida, compilatorul nu
va raporta eroarea sintactica, dar ceea ce este scris in blocul de instructiuni va fid oar o singura
data executat.

4. Bibliografie

[1] Sergiu G. Istrati, [1] Initializarea in limbajele C si C++

[2] infoscience, http://infoscience.3x.ro/c++.html

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