Sunteți pe pagina 1din 39

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatică și


Microelectronică
Departamentul Ingineria Software și Automatică

RAPORT
la lucrarea de laborator nr. 2

la Programarea Calculatoarelor

Tema: Instructiuni de ramificare si ciclice

Varianta _

A efectuat:Cojucari Dumitru _st.gr.TI-224

A verificat:Barzan Adrian _

Chişinău 2022
Scopul lucrării
1
Scopul lucrării este de a familiariza studentul cu instrucțiunile de ramificare și ciclice
a limbajului C.

Obiectivele temei
Studierea si aplicarea instructiunilor de ramificare si ciclice a limbajului C.

⦁ Extras Teoretic

⦁ Rezolvare

⦁ Scrieți un program C pentru a găsi maxim între două numere.


#include <stdio.h>

int main(){
int a;
int b;

printf("Introdu numarul 1:\n");


scanf("%d\n", &a);
printf("Introdu numarul 2:\n");
scanf("%d\n", &b);

(a>b)? printf("Numarul 1 este mai mare decat numarul 2") :


printf("Numarul 2 este mai mare decat numarul 1");

return 0;
}

2
⦁ Scrieți un program C pentru a găsi maxim între trei numere.
#include <stdio.h>

int main(){
int a;
int b;
int c;

printf("Introdu numarul 1:\n");


scanf("%d", &a);
printf("Introdu numarul 2:\n");
scanf("%d", &b);
printf("Introdu numarul 3:\n");
scanf("%d", &c);

if (a>b && a>c)


{
printf("Numarul %d e mai mare decat numarul %d si %d", a, b, c);
}
else if (b>a && b>c)
{
printf("Numarul %d este mai mare decat numarul %d si %d", b, a,
c);
}
else{

3
printf("Numarul %d este mai mare decat numarul %d si %d", c, a,
b);
}
return 0;
}

⦁ Scrieți un program C pentru a verifica dacă un număr este negativ, pozitiv sau
zero.
#include <stdio.h>

int main(){
int a;

printf("Introdu numarul 1:\n");


scanf("%d", &a);

if (a>0)
{
printf("Numarul %d este pozitiv", a);
}
else if (a<0)
{
printf("Numarul %d este negativ", a);
}
else{
printf("Numarul %d este 0", a);
}
return 0;
}

4
⦁ Scrieți un program C pentru a verifica dacă un număr este divizibil cu 5 și 11
sau nu.
#include <stdio.h>

int main(){
int a;

printf("Introdu numarul 1:\n");


scanf("%d", &a);

if (a%5==0 && a%11==0)


{
printf("Numarul %d este divizibil cu 5 si 11", a);
}
else{
printf("Numarul %d nu este divizibil nici cu 5 nici cu 11", a);
}
return 0;
}

5
⦁ Scrieți un program C pentru a verifica dacă un număr este par sau impar.
#include <stdio.h>

int main(){
int a;

printf("Introdu numarul:\n");
scanf("%d", &a);

if (a%2==0)
{
printf("Numarul %d este par", a);
}
else{
printf("Numarul %d este impar", a);
}
return 0;
}

6
⦁ Scrieți un program C pentru a verifica dacă un an este bisect sau nu.
#include <stdio.h>

int main(){
int a;

printf("Scrieti anul:\n");
scanf("%d", &a);

if (a%4==0 && a%100!=0)


{
printf("Anul este bisect");
}
else if (a%400==0)
{
printf("Anul este bisect");
}
else{
printf("Anul nu este an bisect");
}
return 0;
}

7
⦁ Scrieți un program C pentru a verifica dacă un caracter este sau nu alfabet.
#include <stdio.h>

int main(){
char a;

printf("Introduceti caracterul:\n");
scanf("%c", &a);

if (a>='a' && a<='z')


{
printf("Caracterul introdus apartine alfabetului");
}
else if (a>='A' && a<='Z')
{
printf("Caracterul introdus apartine alfabetului");
}
else{
printf("Caracterul introdus nu apartine alfabetului");
}
return 0;
}

8
⦁ Scrieți un program C pentru a introduce orice alfabet și verificați dacă este
vocală sau consoană.
#include <stdio.h>

int main(){
char a;

printf("Introduceti litera din alfabet:\n");


scanf("%c", &a);

if (a=='A' || a=='a' || a=='E' || a=='e' || a=='U' || a=='u' || a=='O' || a=='o' || a=='I' || a=='i')
{
printf("Litera este vocala");
}
else if (a!='A' || a!='a' || a!='E' || a!='e' || a!='U' || a!='u' || a!='O' || a!='o' || a!='I' || a!='i')
{
printf("Caracterul este consoana");
}
else{
printf("Caracterul introdus nu apartine alfabetului");
}
return 0;
}

9
⦁ Scrieți un program C pentru a introduce orice caracter și verificați dacă este
alfabet, cifră sau caracter special.
#include <stdio.h>

int main(){
char a;

printf("Introduceti caracterul:\n");
scanf("%c", &a);

if (a>='a' && a<='z' || a>='A' && a<='Z')


{
printf("Caracterul este litera din alfabet");
}
else if (a>=0 || a<<0)
{
printf("Caracterul introdus este cifra");
}
else{
printf("Caracterul introdus caracter special");
}
return 0;
}

10
⦁ Scrieți un program C pentru a verifica dacă un caracter este cu majuscule sau
minuscule.

#include <stdio.h>

int main(){
char a;

printf("Introduceti caracterul:\n");
scanf("%c", &a);

if (a>='a' && a<='z')


{
printf("Alfabetul introdus este scris cu minuscule");
}
else if (a>='A' && a<='Z')
{
printf("Alfabetul introdus este scris cu majuscule");
}
else{
printf("Caracterul introdus nu apartine alfabetului");
}
return 0;
}

11
⦁ Scrieți un program C pentru a introduce numărul săptămânii și a imprima ziua
săptămânii.
#include <stdio.h>

int main(){
char a;

printf("Introduceti numarul:\n");
scanf("%c", &a);

if (a=='1')
{
printf("Luni");
}
else if (a=='2')
{
printf("Marti");
}
else if (a=='3')
{
printf("Miercuri");
}
else if (a=='4')
{
printf("Joi");
12
}
else if (a=='5')
{
printf("Vineri");
}
else if (a=='6')
{
printf("Sambata");
}
else if (a=='7')
{
printf("Duminica");
}
else{
printf("Ati introodus un numar care nu corespunde numarului
saptamanii");
}
return 0;
}

⦁ Scrieți un program C pentru a introduce numărul lunii și a imprima numărul de


zile din luna respectivă.
#include <stdio.h>

int main(){

13
int a;

printf("Introducetri numarul lunei din 2022:\n");


scanf("%d", &a);
switch (a)
{
case 1:printf("Luna ianuarie are 31 de zile");
break;
case 2:printf("Luna februarie are 28 de zile");
break;
case 3:printf("Luna martie are 31 de zile");
break;
case 4:printf("Luna aprilie are 30 de zile");
break;
case 5:printf("Luna mai are 31 de zile");
break;
case 6:printf("Luna iunie are 30 de zile");
break;
case 7:printf("Luna iulie are 31 de zile");
break;
case 8:printf("Luna august are 31 de zile");
break;
case 9:printf("Luna septembrie are 30 de zile");
break;
case 10:printf("Luna octombrie are 31 de zile");
break;
case 11:printf("Luna noiembrie are 30 de zile");
break;
case 12:printf("Luna decembrie are 31 de zile");
break;
default:printf("Nu ati introdus luna corect");

14
break;
}
return 0;
}

⦁ Scrieți un program C pentru a introduce unghiurile unui triunghi și verificați


dacă triunghiul este valid sau nu.
#include <stdio.h>

int main(){
int a;
int b;
int c;

printf("Introduceti masura a 3 unghiuri\n");


scanf("%d\n", &a);
scanf("%d\n", &b);
scanf("%d", &c);
if (a+b+c==180)
{
printf("Acest triungi este valid");

15
}
else{
printf("Acest triungi nu este valid");
}

return 0;
}

⦁ Scrieți un program C pentru a introduce toate laturile unui triunghi și verificați


dacă triunghiul este valid sau nu.
#include <stdio.h>

int main(){
int a;
int b;
int c;

printf("Introduceti masura a 3 laturi\n");


scanf("%d\n", &a);
scanf("%d\n", &b);
scanf("%d", &c);
if (a+b>c || a+c>b || b+c>a)
{
printf("Acest triungi este valid");
}
else{
16
printf("Acest triungi nu este valid");
}

return 0;
}

⦁ Scrieți un program C pentru a verifica dacă triunghiul este echilateral, isoscel


sau triunghi scalen.
#include <stdio.h>

int main(){
int a;
int b;
int c;

printf("Introduceti masura a 3 laturi\n");


scanf("%d\n", &a);
scanf("%d\n", &b);
scanf("%d", &c);
if (a==b==c)
{
printf("Triunghiul este echilateral");
}
else if(a==b || b==c || a==c){
printf("Triunghiul este isoscel");
}

17
else{
printf("Triunghiul este scalen");
}

return 0;
}

⦁ Scrieți un program C pentru a găsi toate rădăcinile unei ecuații pătratice.


#include <stdio.h>
#include <math.h>

int main(){
int a;
int b;
int c;
int d=0;
double x1=0;
double x2=0;
double r=0;
double i=0;

printf("Introdu coeficientii ecuatii a, b si c:\n");


scanf("%d %d %d", &a, &b, &c);
d=b*b-4*a*c;
if (a>0)
{
18
printf("radacina 1 =%.2lf si radacina 2 =%.2lf", x1=(-b-sqrt(d))/(2
*a), x2=(-b+sqrt(d))/(2*a));
}
else if (a==0)
{
printf("radacina 1 = radacina 2 =%.2lf", x1=x2=(-b)/(2*a));
}
else{
r=-b/(2*a);
i=sqrt(d)/(2*a);
printf("radacina 1 =%.2lf+%.2lf radacina 2 =%.2lf+%.2lf", r, i, r, i);
}

return 0;
}

Probleme pentru instrucțiuni ciclice:


⦁ Scrieți un program C pentru a imprima toate numerele naturale de la 1 la n. -
folosind bucla while.
#include <stdio.h>

int main(){
int a;
int b=1;
printf("Introdu pana la ce numar:\n");
scanf("%d", &a);

19
while (b<=a)
{
printf("%d\n", b);
b++;
}

return 0;
}

⦁ Scrieți un program C pentru a imprima toate numerele naturale invers (de la n


la 1). - folosind bucla while.
#include <stdio.h>

int main(){
int a=1;
int b;
printf("Introdu de la ce numar pana la 1:\n");
scanf("%d", &b);
while (b<=a)
{
printf("%d\n", b);
b++;
}

return 0;
}

20
⦁ Scrieți un program C pentru a imprima toate alfabetele de la a la z. - folosind
bucla while
#include <stdio.h>

int main(){
char al='a';
printf("Alfabetul este:\n");
while (al<='z')
{
printf("%c\n", al);
al++;
}

return 0;
}

21
⦁ Scrieți un program C pentru a imprima toate numerele pare între 1 și 100. -
utilizând bucla while
#include <stdio.h>

int main(){
int n=2;
printf("Numerele pare de la 1 pana la 100 sunt:\n");
while (n<=100)
{
printf("%d\n", n);
n+=2;
}

return 0;
}

22
⦁ Scrieți un program C pentru a imprima toate numerele impare între 1 și 100.
#include <stdio.h>

int main(){
int n=1;
printf("Numerele impare de la 1 pana la 100 sunt:\n");
while (n<=100)
{
printf("%d\n", n);
n+=2;
}

return 0;
}

23
⦁ Scrieți un program C pentru a găsi suma tuturor numerelor naturale cuprinse
între 1 și n.
#include <stdio.h>

int main(){
int a;
int b=1;
int c=0;
printf("Introduce numarul pozitiv:\n");
scanf("%d", &a);
while (b<=a)
{
c+=b;
++b;
}
printf("Suma este:%d", c);
return 0;
}

24
⦁ Scrieți un program C pentru a găsi suma tuturor numerelor pare între 1 și n.
#include <stdio.h>

int main(){
int a;
int b=2;
int c=0;
printf("Introduce numarul pozitiv:\n");
scanf("%d", &a);
while (b<=a)
{
c+=b;
b+=2;
}
printf("Suma numerelor pare este:%d", c);
return 0;
}

25
⦁ Scrieți un program C pentru a găsi suma tuturor numerelor impare cuprinse
între 1 și n.
#include <stdio.h>

int main(){
int a;
int b=1;
int c=0;
printf("Introduce numarul pozitiv:\n");
scanf("%d", &a);
while (b<=a)
{
c+=b;
b+=2;
}
printf("Suma numerelor impare este:%d", c);
return 0;
}

26
⦁ Scrieți un program C pentru a imprima tabelul de înmulțire a oricărui număr.
#include <stdio.h>

int main(){
int a;
int i;
printf("Intrudu numarul cu care se va afisa tabelul:\n");
scanf("%d", &a);
for (int i = 1; i <= 10; i++)
{
printf("\n%d*%d=%d", a, i, (a*i));
}

return 0;
}

27
⦁ Scrieți un program C pentru a număra numărul de cifre dintr-un număr.
#include <stdio.h>

int main(){
int a;
int b=0;
printf("Introdu numarul;\n");
scanf("%d", &a);
while (a!=0)
{
a/=10;
b++;
}
printf("\nSunt %d numere in numarul introdus", b);

return 0;
}

28
⦁ Scrieți un program C pentru a găsi prima și ultima cifră a unui număr.
#include <stdio.h>

int main(){
int a;
int b;
printf("Introdu numarul:\n");
scanf("%d", &a);
b=a%10;
while (a>=10)
{
a/=10;
}
printf("\nPrimul numar este %d iar ultimul este %d in numarul introdus", a, b);

return 0;
}

29
⦁ Scrieți un program C pentru a găsi suma primei și ultimei cifre a unui număr.
#include <stdio.h>

int main(){
int a;
int b;
printf("Introdu numarul:\n");
scanf("%d", &a);
b=a%10;
while (a>=10)
{
a/=10;
}
printf("\nSuma primului si ultimului numar este:%d", a+b);

return 0;
}

30
⦁ Scrieți un program C pentru a schimba prima și ultima cifră a unui număr.
#include <stdio.h>
#include <math.h>
int main(){
int a;
int b;
int c;
int d;
int e;

printf("Introdu numarul:\n");
scanf("%d", &a);
b=a%10;
e=(int)log10(a);
c=(int)(a/pow(10, e));
d=b;
d*=(int)round(pow(10, e));
d+=a%((int)round(pow(10, e)));
d-=b;
d+=c;
printf("\nNumarul schimbat este:%d", d);
return 0;
}

31
⦁ Scrieți un program C pentru a calcula suma cifrelor unui număr.
#include <stdio.h>

int main(){
int a;
int b;
int c=0;
printf("Introdu numarul:\n");
scanf("%d", &a);
while (a>0)
{
b=a%10;
c+=b;
a/=10;
}
printf("\nSuma cifrelor este:%d", c);

return 0;
}

32
⦁ Scrieți un program C pentru a calcula produsul cifrelor unui număr.
#include <stdio.h>

int main(){
int a;
int b;
int c=1;
printf("Introdu numarul:\n");
scanf("%d", &a);
while (a!=0)
{
b=a%10;
c*=b;
a/=10;
}
printf("\nProdusul cifrelor este:%d", c);

return 0;
}

33
⦁ Scrieți un program C pentru a introduce un număr și imprimați invers.
#include <stdio.h>

int main(){
int a;
int b=0;
printf("Introdu numarul:\n");
scanf("%d", &a);
while (a!=0)
{
b*=10;
b+=a%10;
a/=10;
}
printf("\nNumarul inversat este:%d", b);

return 0;
}

34
⦁ Scrieți un program C pentru a verifica dacă un număr este palindrom sau nu.
#include <stdio.h>

int main(){
int a;
int b=0;
int c;
printf("Introdu numarul:\n");
scanf("%d", &a);
a=c;
while (a!=0)
{
b*=10;
b+=a%10;
a/=10;
}
if (b=c)
{
printf("Numarul este palindrom");
}
else{
printf("Numarul nu este palindrom");
}
return 0;
}

35
⦁ Scrieți un program C pentru a imprima toate caracterele ASCII cu valorile lor.
#include <stdio.h>

int main(){
int a;
for (int a = 0; a <= 255; a++)
{
printf("\nValorile de caractere ASCII sunt: %c = %d", a,a);
}

return 0;
}

36
⦁ Scrieți un program C pentru a găsi puterea unui număr folosind bucla for.

#include <stdio.h>

int main(){
int a;
int b;
long long c=1;
printf("Introdu baza si exponentul\n");
scanf("%d %d", &a, &b);
for (int i = 1; i <= b; ++i)
{
c*=a;
}
printf("%d^%d=%lld", a,b,c);

return 0;
}

⦁ Scrieți un program C pentru a găsi toți factorii unui număr.


#include <stdio.h>

int main(){
int a;
printf("Introdu numaruul:\n");
scanf("%d", &a);

37
printf("Factorii numarului sunt:");
for (int i = 1; i <= a; ++i)
{
if (a%i==0)
{
printf("\n%d", i);
}

return 0;
}

⦁ Scrieți un program C pentru a calcula factorialul unui număr.


#include <stdio.h>

int main(){
int a;
int b=1;
printf("Introduceti numarul:\n");
scanf("%d", &a);
for (int i = 1; i <= a; ++i)
{
b*=i;
}
printf("Numarul factorial este: %d", b);
return 0;
}

38
Concluzie

In limbajul C sunt 2 instructiuni de ramificare: if/else si


switch, 3 instructiuni ciclice: while, do while, for. Diferenta
dintre while si do while este ca do while se executa cel putin
o data, iar diferenta ditre for si while este ca folosim while
cand numarul limita in care trebuie sa se execute o bucata de
cod nu stim, iar for cand stim de cate ori trebuie sa se
citeasca o bucata de cod. Iar diferenta dintre if si switch este
ca if utilizează mai multe instrucțiuni pentru mai multe
opțiuni, iar switch foloseste o singură expresie pentru mai
multe opțiuni.

39

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