Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Structuri de control fundamentale

c


Structuri de control fundamentale

5.1. Instructiunea de selectie cu doua alternative (if)

Sintaxa instructiunii if este urmatoarea:



if (expresie)

instructiune1;

[else

instructiune2;]

unde instructiune1 si instructiune2 reprezinta o singura instructiune C/C++ sau un bloc de instructiuni incadrat intre acolade. Partea else a instructiunii este optionala.

Mod de executie:

Pasul 1: se avalueaza expresia "expresie".

Pasul 2: daca expresia este adevarata (diferita de zero) atunci se executa instructiune1, trecandu-se apoi la executarea urmatoarei instructiuni din program. Daca expresie este falsa (egalǎ cu zero) si partea else este prezenta atunci se executa instructiune2.

5.2. Instructiunea de selectie ternarǎ (?)

Sintaxa instructiunii de selectie ternara ? este urmatoarea:

expresie1 ? expresie2:expresie3;

Aceastǎ selectie se mai numeste ternara deoarece necesita trei operanzi si poate inlocui in 333f58d structiunea de selectie if-else de forma:

if (expresie1)

expresie2;

else

expresie3;

unde: expresie1, expresie2 si expresie3 sunt expresii in sensul limbajului C.

Mod de executie:

Pasul 1: se evalueazǎ expresia "expresie1";

Pasul 2: dacǎ expresie1 este adevarata (diferita de zero) se evalueaza expresie2 care devine valoarea intregii expresii. Daca expresie1 este falsa (egala cu zero) se evaluaza expresie3 care devine valoarea intregii expresii.

5.3. Instructiunea de selectie cu mai multe alternative (switch)   

Sintaxa instructiunii switch este urmatoarea:

switch (expresie)

unde:

expresie este o expresie intreaga care reprezinta valoarea de selectie a secventei de instructiuni ce urmeazǎ sǎ fie executata

secventai_de_instructiuni, i=1,2,.reprezinta o secventa de instructiuni din C/C++

- expresie_constantai i=1,2, . este o expresie constanta de tip literal caracter sau intreg sau o constantǎ de tip caracter sau intreg, de acelasi tip cu tipul expresiei de selectie si reprezinta eticheta grupului de instructiuni la inceputul caruia apare.

5.4. Instructiunile de ciclare (for, while, do-while).

Instructiunile de ciclare sau iterative permit executarea unui grup de instructiuni de un anumit numar de ori, sau cat timp este indeplinita o conditie logica.

Instructiunile de ciclare sunt: for, while si do-while.

5.4.1. Instructiunea de ciclare cu un numǎr cunoscut de pasi (for) are urmatoarea sintaxa:

for ([expresie1];[expresie2];[expresie3])

instructiune;

unde:

expresie1 reprezinta, in general, instructiuni de atribuire (una sau mai multe) folosite pentru a stabili valorile initiale ale variabilelor de control ale ciclului instructiunii.

expresie2 este o expresie conditionala, a carei valoare determina continuarea sau oprirea executarii ciclului instructiunii.

expresie3 reprezinta instructiuni de modificare ale variabilelor de control ale ciclului dupa fiecare repetare a ciclului.

instructiune este o instructiune executabila sau un bloc de instructiuni executabile care poate sa contina orice instructiune executabila, inclusiv instructiuni de salt (break, continue).

5.4.2. Instructiunea de ciclare cu testarea initialǎ a conditiei de ciclare(while)

Sintaxa instructiunii este:

while (expresie)

instructiune;

unde:

- expresie poate fi orice expresie care poate lua o valoare diferita de zero (asociata cu valoarea logica true) sau o valoare egala cu zero (asociata cu valoarea logica false).

- instructiune formeaza corpul ciclului, care se executa cat timp expresie este adevarata (diferita de zero), si poate fi o singurǎ instructiune sau un bloc de instructiuni executabile.

5.4.3. Instructiunea de ciclare cu testarea finalǎ a conditiei de ciclare (do-while)

Sintaxa instructiunii este:

do

while (expresie);

unde:

- expresie poate fi orice expresie care poate lua o valoare diferita de zero (asociata cu valoarea logica true) sau o valoare egala cu zero (asociata cu valoarea logica false).

- instructiune formeaza corpul ciclului, care se executǎ cat timp expresie este adevarata (diferita de zero), si poate fi o singurǎ instructiune sau un bloc de instructiuni executabile.

Probleme rezolvate

Problema 8. Se da un sir de 5 numere. Sa se scrie un program care sa calculeze suma si media termenilor sirului. Valorile termenilor sirului se vor citi de la tastatura. Programul este cel de mai jos.

#include<iostream.h>

int main()

media = s / 5;

cout << 'suma este '<< s <<' media este ' << media << endl;

return 0;

Rezultatele rularii programului sunt cele de mai jos.

Problema 9. Sa se scrie un program care sa calculeze suma primelor n numere impare

s = 1 + 3 + 5 + . + (2n-1)

Valoarea lui n se va citi de la tastatura. Programul este urmatorul.

#include<iostream.h>

int main()

Rezultatele rularii programului sunt cele de mai jos.

Problema 10. Sa se scrie un program care sa calculeze suma a doua matrici A si B si cu doua linii si trei coloane fiecare. Elementele matricelor se vor citi de la tastatura. Dacǎm notǎm prin C matricea suma, algoritmul de calcul este urmatorul.

for i =1 to 2

for j = 1 to 3

#include<iostream.h>

int main()

cout << 'matricea suma este' << endl;

for(i = 0; i < 2; i++)

return 0; }

Rezultatele rularii programului sunt cele de mai jos.

Problema 11. Sa se scrie un program care sa calculeze valorile functiei

cu pasul

#include<iostream.h>

#include<math.h>

#include <iomanip.h>   

int main()

return 0;

Rezultatele rularii programului sunt prezentate in caseta text.

Problema 12. Sa se scrie un program care sa testeze daca doua numere intregi sunt prime intre ele. Programul va citi repetat seturi de doua numere intregi de la tastatura pana cand primul numar citit este zero. Programul este urmatorul.

#include<iostream.h>

int cmmdc(int a,int b)

r=a%b;

while (r!=0)

return(b);

int main()

return (0);

Rezultatele rularii programului sunt cele de mai jos.

Problema 13. Sa se calculeze valoarea aproximativa a sumei:

a) Se vor aduna primii 100 de termeni.

b) Se vor aduna termeni pana cand termenul urmator adaugat este mai mic in modul decat . Se va calcula suma pentru x=1, x=2 si x=-3, x=10, x=20, x=-30. Se va afisa si valoarea calculata cu functia de biblioteca sin(x). Programul este urmatorul.

#include<iostream.h>

#include<math.h>

float sin_100(float x)

return(s);

float sin_prec(float x)

return(s);

int main()

Rezultatele rularii programului sunt cele de mai jos.

Problema 14. Fie vectorii a = (1.2, -1.0, 7.5) si b = (-2.33, 1.244, 13.1) Sa se scrie un program care sa calculeze suma celor doi vectori. Programul este cel de mai jos.

#include<iostream.h>

int main();

float b[3]=;

for (i=0;i<3;i++)

Rezultatele rularii programului sunt cele de mai jos.

Probleme propuse

Problema 1. Fie numarul intreg x = 10. Sa se deplaseze numarul la stanga cu trei biti si la dreapta cu doi biti. Se vor afisa in zecimal si hexazecimal numarul initial si numarul deplasat.

Problema 2. Se da variabila intreaga a = 10. Se vor extrage bitii numarului a executand operatia & intre variabila a si fiecare dintre variabilele: m1=0x1, m2=0x2, m3= 0x4 si m4=0x8. Rezultatele se vor scrie in hexazecimal cu manipulatorul hex.

Problema 3. Se da numarul intreg x = 23457. Se vor extrage cifrele hexazecimale ale numarului executand operatia & intre variabila x si fiecare din variabilele m1 = 0xf, m2 = 0xf0, m3 = 0xf00 si m4 = 0xf000. Rezultatele se vor scrie in hexazecimal cu manipulatorul hex.

Problema 4. Se da numarul intreg x = 345. Se vor extrage cifrele octale ale numarului executand operatia & intre variabila x si fiecare din variabilele m1 = 07, m2 = 070, m3 = 0700. Rezultatele se vor scrie in octal cu manipulatorul oct.

Problema 5. Fie numerele intregi 57 si 28. Se vor efectua operatiile & , | si ^ intre cele doua numere. Rezultatele se vor scrie in hexazecimal cu manipulatorul hex.

Problema 6. Sa se faca un program care sa testeze daca un numar intreg este divizibil cu altul. Cele doua numere intregi se vor citi de la tastatura.

Indicatie. Se va calcula restul impartirii celor doua numere.

Problema 7. Sa se faca un program care sa calculeze minimul a doua numere intregi. Numerele se vor citi de la tastatura.

Problema 8. Sa se faca un program care sa calculeze minimul a trei numere intregi care se citesc de la tastatura.

Problema 9. Sa se faca un program care sa citeasca varsta si sa afiseze mesajele: tanar daca varsta < 18, adult daca 18 <= varsta <= 65 si batran daca varsta > 65

Problema 10. Fie un vector x cu cinci componente reale care se citesc de la tastatura. Sa se calculeze cel mai mare dintre componentele vectorului.

Problema 11. Fie a un vector cu patru componente reale ce se citesc de la tastatura. Sa se calculeze norma vectorului a.

Indicatie. Norma vectorului a este

Problema 12. Fie z un vector cu sase componente reale ce se citesc de la tastatura. Sa se faca suma componentelor pare si suma componentelor impare ale vectorului z.

Problema 13. Sa se calculeze valorile expresiei pentru cu pasul 0.2.

Problema 14. Fie A o matrice cu 2 linii si 3 coloane cu elemente reale. Elementele matricei se citesc de la tastatura. Sa se determine valoarea celui mai mare dintre elementele matricei.

Problema 15. Sa se citeasca doua numere reale de la tastatura si un operator +, - *, / si sa se calculeze rezultatul operatiei corespunzatoare. Operatorul se va citi intr-o variabila de tip char.

Indicatie. Pentru a calcula rezultatul se va utiliza instructiunea switch.

Problema 16. Sa se calculeze valorile functiei f(x) = sin(x) + sin(2x) pentru cu pasul 0.1 si sa se afiseze valorile minima si maxima calculate pe acest interval.

Problema 17. Sa se calculeze produsul a n numere reale citite de la tastatura. Valoarea n se va citi de la tastatura. Citirea si produsul numerelor se vor face intr-un ciclu realizat cu instructiunea while.



Document Info


Accesari: 2900
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )