Sunteți pe pagina 1din 8

Tema: Programe ciclice

Scopul lucrarii: Elaborarea unui program în limbajul de programare C/C++ și


afișarea rezultatelor unor expresii. Însuşirea, folosire și obținerea deprinderii practicee
de elaborare și depanare a programelor ramificate (for, while, do-while).

Descrierea temei:

Instrucțiunea for

Una dintre cele mai puternice instructiuni iterative ale limbajului C/C++
(si nu numai) este instructiunea for, care are urmatoarea sintaxă:

Modul de functionare: Procesul de executie a ciclului incepe cu calcularea


expresiei de initializare (expl), dupá care se trece la expresia de control (exp2) si
se verifica veridicitatea acesteia. In cazul când aceasta e adeväratà, se trece la
executarea instructiunilor din interiorul corpului lui for. Dupá indeplinirea acestora
se trece la expresia de incrimentare/decrementare (exp3) si din nou se controleaza
expresia de control (exp2), justețea careia duce la indeplinirea repetată a ciclului.
Instructiunea for va cicla de atâtea ori, pána cánd expresia de control fi adevarată.
În caz contrar se va trece la urmatoarea instructiune dupa corpul lui for.

Instrucțiunea while SDE 525.1 081 01 ME


Mod Coala Nr. document. Semnat. Data
Elaborat Dascal Daniel Litera Coala Coli
V. Derevlenco 2 Coli 6
Verificat
Programe ramificate
UTM.FIMET.RST-181
Ciclul while este utilizat in cazul in care nu se cunoaşte numarul de repetări ale
ciclului şi nu exista necesitatea ca ciclul fie executat cel putin o singurå dată.
Sintaxa instructiunii while este urmatoarea:

Modul de functionare: Mai întâi se evaluează ,,expresie", daca aceasta este


adevărată, atunci se executa toate instructiunile din corpul ciclului şi controlul
trece la inceputul buclei while. Astfel, corpul se executa ori de câte ori ,,expresie"
se evalueazà la "adevăr". Terminarea buclei are loc când ,,expresie" ia valoarea
fals.

Instrucțiunea do while

Coala
SDE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
Ciclul do while este utilizat in cazul când nu se cunoaşte numărul de repetări ale
ciclului şi există necesitatea ca ciclul să fie cel putin o singură dată. Sintaxa
instructiunii do while este urmatoarea:

Modul de functionare: La început se execută instructiunile din corpul lui do, apoi
se evaluează expresie. Dacã valoarea lui expresie este diferită de 0 ("adevărat"),
atunci controlul se paseazã la începutul instructiunii do şi procesul se repetă. Dacă
expresie se evaluează la 0 ("fals"), atunci controlul se pasează la instructiunile
urmatoare după while.

Varianta 3- Să se scrie un prog ram ce va calcula valoarea expresie:

Coala
SDE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
a−b2 +t
D= +t-1 ; X +1=t<Y interval min=12.
|a−2|

Listingul programului:
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main()
{
clrscr();
int a,b,t,x,y,k,interval=0;
float S,sum=0;
printf("Introdu a=");
scanf("%d",&a);
printf("Introdu b=");
scanf("%d",&b);
printf("Interval min 12:\n");
scanf("%d%d",&x,&y);
printf("Introdu cazul:");
scanf("%d",&k);
switch(k)
{
case 1 : //for
{
printf ("\n -----Result-----");
printf ("\n Interval ---Rez---\n");
for(t=x+1;t<y;t++)
{
float S=(a-pow(b,2)+t)/(abs(a-2))+t-1;
printf (" | %d ",t);
printf (" - ");
printf (" %f \n", sum); interval++;
sum+=S;
}
printf ("\n-------------\n");
printf ("Interval: %d", interval);

Coala
SDE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
printf ("\nTotal S: %f",sum);
break;
} //end case 1
case 2 : //while
{
printf ("\n -----Result-----");
printf ("\n Interval ---Rez---\n");
t=x+1;
while (t<y)
{
S=(a-pow(b,2)+t)/(abs(a-2))+t-1;
t++;
printf (" | %d ",t);
printf (" - ");
printf (" %f \n", S); interval++;
sum+=S;
}
printf ("\n-------------\n");
printf ("Interval: %d", interval);
printf ("\nTotal S: %f",sum);
break;
} //end case 2
case 3: //do while
{
printf ("\n -----Result-----");
printf ("\n Interval ---Rez---\n");
t=x+1;
do
{
S=(a-pow(b,2)+t)/(abs(a-2))+t-1;
printf (" | %d ",t);
printf (" - ");
printf (" %f \n", S); interval++;
sum+=S;
t++;
}

Coala
SDE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
while(t<y);
printf ("\n-------------\n");
printf ("Interval: %d", interval);
printf ("\nTotal S: %f",sum);
break;
} //end case 3
}
getch ();
}
Rezultatul executiei:

Fig.1 Rezultatul execuției cazului 1 pentru instrucțiunea “for”

Coala
SDE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
Fig.2 Rezultatul execuției cazului 2 pentru instrucțiunea “while”

Fig.3 Rezultatul execuției cazului 3 pentru instrucțiunea “do while”

Coala
SDE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
Concluzie:
In aceasta lucrare am scris un program in limbajul de programare C/C++ care sa ne
calculeze rezultatul expresiilor de mai sus. Conditia data era ca aceste expresii sa fie introduse
intr-un singur program. Şi să se scrie un program care va calcula valoarea expresiei matematice
pe un interval introdus de la tastatură. În program să se utilizeze instrucțiunele:
‘‘switch’’,‘‘for’’,‘‘while’’,‘‘do while’’,‘‘if’’și‘‘else’’.Programul este prezentat mai sus , la fel si
rezultatul sau obtinut in urma scrierii acestui program.Programul incepe prin decalarea
bibliotecilor principale <conio.h> , <stdio.h> si <math.h> precum si prin functia principala
main() si deschiderea/inchiderea programului prin { }.
Aici am utilizat functia printf care are scopul de a permite afisarea datelor de orice tip si
scanf de a alege si a memora in memoria programului, getch este functia care pastreaza rezultatul
la ecran. Declararea bibliotecilor se incepe cu semnul #. Aici am utilizat și instructiunea for, una
dintre cele mai puternice instructiuni iterative ale limbajului C/C++ (si nu numai). Ciclul while
este utilizat in cazul in care nu se cunoaşte numarul de repetări ale ciclului şi nu exista
necesitatea ca ciclul fie executat cel putin o singurå dată. Ciclul do while este utilizat in cazul
când nu se cunoaşte numărul de repetări ale ciclului şi există necesitatea ca ciclul să fie cel putin
o singură dată. Mai întîi am utilizat switch-ul şi in fiecare din cele trei cazuri am introdus
instrucţiunile de mai sus.În primul caz am utilizat for-ul, în cazul 2 while şi în cazul 3 do while,
care ne-a calculat expresia matematica S=(a-pow(b,2)+t)/(abs(a-2))+t-1.For-ul
este o instructiune ciclica, deoarece ciclul se repeat de atitea ori pîna cînd expresia 2 este
adevarata, la fel şi while,iar ciclul instructiunii do while se va repeat atitea ori pina cind valoarea
conditiei va fi adevarata.Intervalul minim in acest program este 12, iar numarul iteratiilor este
calculat din diferenta lui y de x.

Coala
SDE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3

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

  • Cap 4
    Cap 4
    Document38 pagini
    Cap 4
    GrecuAndrian
    100% (1)
  • Microprocesoare Curs
    Microprocesoare Curs
    Document156 pagini
    Microprocesoare Curs
    Radu Constantin
    Încă nu există evaluări
  • Cap 7
    Cap 7
    Document54 pagini
    Cap 7
    GrecuAndrian
    Încă nu există evaluări
  • Cap 12
    Cap 12
    Document53 pagini
    Cap 12
    GrecuAndrian
    Încă nu există evaluări
  • Cap 5
    Cap 5
    Document54 pagini
    Cap 5
    GrecuAndrian
    Încă nu există evaluări
  • Cap 13
    Cap 13
    Document24 pagini
    Cap 13
    GrecuAndrian
    Încă nu există evaluări
  • Capitolul 4
    Capitolul 4
    Document5 pagini
    Capitolul 4
    Rusu Alexandru
    Încă nu există evaluări
  • +37378056850 + - P1P2 373 - in 37378056850 - Nis 78056850 - NNS 78 - 056850
    +37378056850 + - P1P2 373 - in 37378056850 - Nis 78056850 - NNS 78 - 056850
    Document1 pagină
    +37378056850 + - P1P2 373 - in 37378056850 - Nis 78056850 - NNS 78 - 056850
    Daniel
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document46 pagini
    Cap 3
    GrecuAndrian
    Încă nu există evaluări
  • Capitolul 2
    Capitolul 2
    Document17 pagini
    Capitolul 2
    Haroshii7
    Încă nu există evaluări
  • Lab. 3-4
    Lab. 3-4
    Document14 pagini
    Lab. 3-4
    Daniel
    Încă nu există evaluări
  • Lab Dascal
    Lab Dascal
    Document5 pagini
    Lab Dascal
    Daniel
    Încă nu există evaluări
  • Cap 1
    Cap 1
    Document59 pagini
    Cap 1
    GrecuAndrian
    Încă nu există evaluări
  • Capitolul 5
    Capitolul 5
    Document12 pagini
    Capitolul 5
    Rusu Alexandru
    Încă nu există evaluări
  • Atestarea 1 2020 Biletul 5
    Atestarea 1 2020 Biletul 5
    Document2 pagini
    Atestarea 1 2020 Biletul 5
    Daniel
    Încă nu există evaluări
  • Chestionar ROM
    Chestionar ROM
    Document1 pagină
    Chestionar ROM
    Daniel
    Încă nu există evaluări
  • CAPITOLUL 1 Comutatie
    CAPITOLUL 1 Comutatie
    Document17 pagini
    CAPITOLUL 1 Comutatie
    EricȘvidchi
    Încă nu există evaluări
  • Tabel
    Tabel
    Document1 pagină
    Tabel
    Daniel
    Încă nu există evaluări
  • ECONOMIA
    ECONOMIA
    Document4 pagini
    ECONOMIA
    Andrei Burcovschi
    Încă nu există evaluări
  • Tema 5 PDF
    Tema 5 PDF
    Document10 pagini
    Tema 5 PDF
    Dinu Dogaru
    Încă nu există evaluări
  • Lab. 4
    Lab. 4
    Document4 pagini
    Lab. 4
    Daniel
    Încă nu există evaluări
  • Lab. 2
    Lab. 2
    Document5 pagini
    Lab. 2
    Daniel
    Încă nu există evaluări
  • REZULTATE
    REZULTATE
    Document4 pagini
    REZULTATE
    Daniel
    Încă nu există evaluări
  • Utilitatea Bunurilor
    Utilitatea Bunurilor
    Document8 pagini
    Utilitatea Bunurilor
    Daniel
    Încă nu există evaluări
  • Amplificatorul Operational
    Amplificatorul Operational
    Document22 pagini
    Amplificatorul Operational
    Florin Pavel
    Încă nu există evaluări
  • Rezumat Teza Doctorat Optoelectronica
    Rezumat Teza Doctorat Optoelectronica
    Document36 pagini
    Rezumat Teza Doctorat Optoelectronica
    Daniel
    Încă nu există evaluări
  • Plan Afaceri
    Plan Afaceri
    Document2 pagini
    Plan Afaceri
    Daniel
    Încă nu există evaluări
  • Viitorul Țări Mele Sunt Eu
    Viitorul Țări Mele Sunt Eu
    Document3 pagini
    Viitorul Țări Mele Sunt Eu
    Daniel
    100% (1)
  • Fisa Activitatii
    Fisa Activitatii
    Document1 pagină
    Fisa Activitatii
    Daniel
    Încă nu există evaluări