Sunteți pe pagina 1din 20

Bazele Informaticii Pseudocod & Programe C/C++

Bazele Informaticii Pseudocod & Programe C/C++

Nchila Ctlin

Nchil Ctlin Laborator UPG

Bazele Informaticii Pseudocod & Programe C/C++

Aplicaia 1.5.1. S se calculeze suma, produsul i media a dou numere x i y.

start
float x,y,sum;
citete x,y;
sum = x+y;
afieaz sum;
stop

#include <iostream.h>
int main()
{
int x, y, sum;
cout << "Intro. x = ";
cin >> x;
cout << "Intro. y = ";
cin >> y;
sum = x + y;
cout << "Suma este: " << sum;
cout << endl << endl;
}

5 x + 3, x > 6
Aplicaia 1.5.2. S se calculeze f ( x ) =
. S se afieze daca numrul citit este > 6
5, x 6
sau <= 6.
#include <iostream.h>

start
float x,f;
citete x;
dac x<=6
atunci f=5;
altfel f=5*x+3;
afieaz f;
stop

int main()
{
int x, f;
cout << "Intro.
cin >> x;
if (x>6)
{
f = 5*x+3;
cout << "\n
}
else
{
f = 5;
cout << "\n
}
cout << "\n f =
cout << endl <<
}

Nchil Ctlin Laborator UPG

x = ";

Ati tastat o valoare > 6";

Ati tastat o valoare <= 6";


" << f;
endl;

Bazele Informaticii Pseudocod & Programe C/C++

x 2 + 1, x 3

Aplicaia 1.5.3. S se calculeze f ( x )= x 2, x ( 3,3) .


x 2 4 x + 5, x 3

#include <iostream.h>
int main()
{
start
float x,f;
float x,f;
cout << "Intro. x = ";
citete x;
cin >> x;
dac x< = 3
if (x<=-3)
atunci f = x*x+1;
f = x*x+1;
altfel
else
dac x<3
{
atunci f = x-2;
if (x<3)
altfel
f
=
x*xf = x-2;
4*x+5;
else
afieaz f;
f = x*x-4*x+5;
stop
}
cout << "f = " << f;
cout << endl << endl;
}

x + 2, x < 0

f ( x ) x 2 , x [0,1] .
Aplicaia 1.5.4. S se calculeze =
x, x > 1

start
float x,f;
citete x;
dac x<0
atunci f = x+2;
altfel
dac x<=1
atunci f = x*x;
altfel f = x;
afieaz f;
stop

Nchil Ctlin Laborator UPG

#include <iostream.h>
int main()
{
float x,f;
cout << "Intro. x = ";
cin >> x;
if (x<0)
f = x+2;
else
{
if (x<=1)
f = x*x;
3

Bazele Informaticii Pseudocod & Programe C/C++


else
f = x;
}
cout << "f = " << f;
cout << endl << endl;
}

4 x 3 + 5 x 2 2 x + 1, x < 0

f ( x ) =
100, x 0
Aplicaia 1.5.5: S se calculeze=
.
2 x 2 + 8 x 1, x < 0

Start
float x;
citete x;
dac x<0
atunci
f = 4*x*x*x+5*x*x-2*x+1;
altfel
dac x = 0
atunci
f = 100;
altfel
f = 2*x*x+8*x-1;
afieaz f;
stop

#include <iostream.h>
int main()
{
float x,f;
cout << "Intro. x = ";
cin >> x;
if (x<0)
f = 4*x*x*x+5*x*x-2*x+1;
else
{
if (x==0)
f = 100;
else
f = 2*x*x+8*x-1;
}
cout << "f = " << f;
cout << endl << endl;
}

Aplicaia 1.5.6: Se citesc trei numere a, b, c. S se afieze maximul dintre ele.


start
float a,b,c;
citete a;
citete b;
citete c;
dac a>b
atunci max = a;
altfel max = b;
Nchil Ctlin Laborator UPG

#include <iostream.h>
int main()
{
float a,b,c,max;
cout << "Introd. a = ";
cin >> a;
cout << "Introd. b = ";
cin >> b;

Bazele Informaticii Pseudocod & Programe C/C++


dac c>max
atunci max = c;
afieaz max;
stop

cout << "Introd. c = ";


cin >> c;
if (a>b)
max = a;
else
max = b;
if (c>max)
max = c;
cout << "Maximul este " << max;
cout << endl << endl;
}

Aplicaia 1.5.7. S se rezolve cuaia de gradul I: ax + b = 0 (se citesc a i b de tip float apoi
se calculeaz i afieaz x). Dac a = 0 s se afieze mesajul Eroare ! apoi pe alt linie mesajul
Introduceti a != 0.

start
float a,b,x;
citete a;
citete b;
dac (a!=0)
atunci
x=-b/a;
altfel
afieaz eroare;
afieaz introd. un
numar
!=0;
afieaz x;
stop

#include <iostream.h>
int main()
{
float a, b, x;
cout << "Introd. a = ";
cin >> a;
cout << "Introd. b = ";
cin >> b;
if (a!=0)
x = -b/a;
else
cout << "Eroare ! " << endl;
cout << "Introduceti a != 0 " <<
endl;
cout << " x = " << x;
cout << endl << endl;
}

S se corecteze programul.
Aplicaia 1.5.8. S se citeasc a, b, c i s se verifice dac pot forma laturile unui triunghi (a,
b, c > 0 i a + b > c, a + c > b, b + c > a). Dac da s se specifice tipul triunghiului: oarecare, isoscel,
echilateral.
#include <iostream.h>
#include <iostream.h>
int main()
{
Nchil Ctlin Laborator UPG

Bazele Informaticii Pseudocod & Programe C/C++


int a,b,c;
cout << "Intro. a = ";
cin >> a;
cout << "Intro. b = ";
cin >> b;
cout << "Intro. c = ";
cin >> c;
if ((a>0) && (b>0) && (c>0))
{
if (a<b+c && b<a+c && c<a+b)
{
cout << "\n Numerele pot forma un triunghi";
if ((a==b) && (a==c) && (b==c))
cout << "\n Triunghiul este echilateral";
else
{
if (a==b || a==c || b==c)
cout << "\n Triunghiul este isoscel";
else
cout << "\n Triunghiul este oarecare";
}
}
else cout << "\n Numerele nu pot forma un triunghi";
}
else cout << "\n Numerele nu pot forma un triunghi";
cout << endl << endl;
}

Aplicaia 1.5.9. S se calculeze aria unui triunghi fiind date laturile a, b, c: p =


A=

a+b+c
,
2

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

#include <iostream.h>
#include <math.h>
int main()
{
int a,b,c,p,arie;
cout << "Intro. a = ";
cin >> a;
cout << "Intro. b = ";
cin >> b;
cout << "Intro. c = ";
Nchil Ctlin Laborator UPG

Bazele Informaticii Pseudocod & Programe C/C++


cin >> c;
if ((a>0) && (b>0) && (c>0) && (a<b+c) && (b<a+c) && (c<a+b))
{
cout << "\n Numerele pot forma un triunghi";
p=(a+b+c)/2;
arie=sqrt(p*(p-a)*(p-b)*(p-c));
cout << "\n Aria este " << arie;
}
else cout << "\n Numerele nu pot forma un triunghi";
cout << endl << endl;
}
Aplicaia 1.5.10. Ecuaia de gradul II: ax 2 + bx + c =
0.
- se citesc a, b i c (de tip float)
- s se afieze soluiile x1 i x2 .
Avem = b 2 4 ac
Dac
b
2a

= 0 x1 = x2 =

b+
x1 =

2a
>0
x = b
2
2a

b + i
x1 =

2a
< 0 se afieaz soluii complexe apoi
x = b i
2
2a

(se afieaz x1 )

(se afieaz x1 i x2 )

#include <iostream.h>
#include <math.h>
int main ()
{
double x1,x2,a,b,c,t1,t2;
double d,d2;
cout << "Introd. coeficientii ecuatiei \n";
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
cout << "c = "; cin >> c;
Nchil Ctlin Laborator UPG

Bazele Informaticii Pseudocod & Programe C/C++

d=b*b-4*a*c;
t1=-b/(2*a);
if (d<0)
cout << "\n Ecuatia nu are solutii reale \n";
else
{
if (d==0)
{
cout << "\n Ecuatia are o singura solutie \n";
cout << "x=" << t1;
}
else
{
x1=t1+sqrt(d)/2*a;
x2=t1-sqrt(d)/2*a;
cout << "x1 = " << t1 << endl;
cout << "x2 = " << t2;
}
}
cout << endl << endl;
}

1.6. Aplicaii cu paritate i cifre


Aplicaia 1.6.1. Se citete un numr. S se afieze restul mpririi sale la 2 i retul mpririi sale la 3.
#include <iostream>
using namespace std;
int main()
{
int a, r1, r2;
cout << "Introduceti a = ";
cin >> a;
r1 = a%2;
r2 = a%3;
cout << " Restul impartirii la 2 este " << r1 << endl;
Nchil Ctlin Laborator UPG

Bazele Informaticii Pseudocod & Programe C/C++


cout << " Restul impartirii la 3 este " << r2;
cout << endl << endl;
}
Aplicaia 1.6.2. Se citete un numr. S se verifice dac numrul este par sau nu. Daca da, s
se afieze mesajul Numarul ... este par. Dac nu, s se afieze mesajul Numarul ... este impar
#include <iostream>
using namespace std;
int main()
{
int a;
cout << "Introduceti a = ";
cin >> a;
if (a%2==0)
cout << " Numarul " << a << " este par" << endl;
else
cout << " Numarul " << a << " este impar" << endl;
cout << endl << endl;
}
Aplicaia 1.6.3. Se citete un numr de dou cifre. S afieze cifrele sale.
#include <iostream>
using namespace std;
int main()
{
int a, r, c1, c2;
cout << "Introduceti a = ";
cin >> a;
c1 = a%10;
a = a/10;
c2 = a%10;
cout << "Cifrele sunt " << c1 << " si " << c2;
cout << endl << endl;
}

Nchil Ctlin Laborator UPG

Bazele Informaticii Pseudocod & Programe C/C++


Aplicaia 1.6.4. Se citete un numr de trei cifre. S calculeze suma, produsul i media cifrelor
sale.
#include <iostream>
using namespace std;
int main()
{
int a, c1, c2, c3;
float s, p, m;
cout << "Introduceti a = ";
cin >> a;
c1 = a%10;
a = a/10;
c2 = a%10;
a = a/10;
c3 = a%10;
cout << "Cifrele sunt " << c1 << ", " << c2 << " si " << c3 <<
endl << endl;
s = c1 + c2 + c3;
p = c1 * c2 * c3;
m = (c1 + c2 + c3)/3;
cout << "Suma este: \t" << s << endl;
cout << "Produsul este: \t" << p << endl;
cout << "Media este: \t" << m << endl;
cout << endl << endl;
}

Nchil Ctlin Laborator UPG

10

Bazele Informaticii Pseudocod & Programe C/C++

2.4. Aplicaii cu structuri repetitive cu numr necunoscut de pai


Aplicaia 2.4.1. S se citeasc i s se afieze numere de la tastatur pn la introducerea
numrului 0.
While
start
float n;
citete n;
ct timp n>0 execut
{
afieaz n;
citete n;
}
stop
#include <iostream.h>
int main()
{
float n;
cout << "Introd. n=";
cin >> n;
while (n!=0)
{
cout
<<
"Numarul
este: " << n << endl << endl;
cout << "Introd. n=";
cin >> n;
}
cout << endl << endl;
}

Do While
start
float n;
repet
citete n;
afieaz n;
pn cnd n=0;
stop

#include <iostream.h>
int main()
{
float n;
do
{
cout << "Introd. n=";
cin >> n;
citit
cout
<<
"Numarul
este: " << n << endl << endl;
}
while (n!=0);
cout << endl << endl;
}

citit

2.5. Aplicaii cu structuri repetitive cu numr cunoscut de pai


Aplicaia 2.5.1. Se citesc n numere. S se afieze suma numerelor citite.
Varianta cu while
#include <iostream.h>
using namespace std;
Nchil Ctlin Laborator UPG

Varianta cu for
#include <iostream.h>
using namespace std;
11

Bazele Informaticii Pseudocod & Programe C/C++


int main()
{
int n, suma, a;
cout << "Introd. n: ";
cin >> n;
suma=0;
while (n!=0)
{
cout << "Introd. un numar:";
cin >> a;
suma = suma + a;
n--;
}
cout << "Suma este " << suma;
cout << endl << endl;
}

int main()
{
int n, suma, i, a;
cout << "Introd. n: ";
cin >> n;
suma=0;
for (i=1;i<=n;i++)
{
cout << "Introd. un numar:";
cin >> a;
suma = suma + a;
}
cout << "Suma este " << suma;
cout << endl << endl;
}

Aplicaia 2.5.2. Se citesc n numere. S se afieze suma numerelor pare.


Varianta cu while
#include <iostream.h>
using namespace std;
int main()
{
int a, suma, n;
cout << "Introd. n: ";
cin >> n;
suma=0;
while (n!=0)
{
cout << "Introd. un numar:";
cin >> a;
if (a%2==0)
suma = suma + a;
n--;
}
cout << "Suma este " << suma;
cout << endl << endl;
}

Nchil Ctlin Laborator UPG

Varianta cu for
#include <iostream.h>
using namespace std;
int main()
{
int n, suma, i, a;
cout << "Introd. n: ";
cin >> n;
suma=0;
for (i=1;i<=n;i++)
{
cout << "Introd. un numar:";
cin >> a;
if (a%2==0)
suma = suma + a;
}
cout << "Suma este " << suma;
cout << endl << endl;
}

12

Bazele Informaticii Pseudocod & Programe C/C++


Aplicaia 2.5.3. Se citete un numr n. S se calculeze suma primelor n numere (S = 1 + 2 + ...
+ n).
Varianta cu while
#include <iostream.h>
using namespace std;
int main()
{
int suma, n;
cout << "Introd. n: ";
cin >> n;
suma=0;
while (n!=0)
{
suma = suma + n;
n--;
}
cout << "Suma este " << suma;
cout << endl << endl;
}

Varianta cu for
#include <iostream.h>
using namespace std;
int main()
{
int n, suma, i;
cout << "Introd. n: ";
cin >> n;
suma=0;
for (i=1;i<=n;i++)
suma = suma + i;
cout << "Suma este " << suma;
cout << endl << endl;
}

2.6. Aplicaii cu structuri repetitive sume i produse


Aplicaia 2.6.1. S se calculeze n!. (Observaie n!= 1 * 2 * 3 * * n)
start
int n,i,fact;
citete n;
fact=1;
i=1;
ct timp i<=n execut
{
fact=fact*i;
i=i+1;
}
afieaz (n!=, fact);
stop

#include <iostream.h>
using namespace std;
int main()
{
double n, p, i;
cout << "Introd. n: ";
cin >> n;
p=1;
for (i=1;i<=n;i++)
p = p * i;
cout << "Produsul este " << p;
cout << endl << endl;
}

Aplicaia 2.6.2. Se citete n. S se calculeze P = 2 * 4 * 6 * * 2*n.

Nchil Ctlin Laborator UPG

13

Bazele Informaticii Pseudocod & Programe C/C++


start
int n,i,p;
citete n;
p=1;
i=2;
ct timp i<=(2*n) execut
{
p=p*i;
i=i+2;
}
afieaz p;
stop

#include <iostream.h>
using namespace std;
int main()
{
double n, p, i;
cout << "Introd. n: ";
cin >> n;
p=1;
for (i=2;i<=2*n;i=i+2)
p = p * i;
cout << "Produsul este " << p;
cout << endl << endl;
}

Aplicaia 2.6.3. Se citete n. S se calculeze S = 1 + 3 + 5 + + (2n1).


start
int n,i,S;
citete n;
S=0;
i=1;
ct timp i<=(2*n-1) execut
{
S=S+i;
i=i+2;
}
afieaz S;
stop

#include <iostream.h>
using namespace std;
int main()
{
double n, s, i;
cout << "Introd. n: ";
cin >> n;
s=0;
for (i=1;i<=2*n-1;i=i+2)
s = s + i;
cout << "Suma este " << s;
cout << endl << endl;
}

1 1
1
Aplicaia 2.6.4. Se citete n. S se calculeze S =1 + + + ... + . Pentru n = 4 rezultatul este
2 3
n
2,283.
start
int n;
float s,i;
citete n;
S=0;
i=1;
Nchil Ctlin Laborator UPG

#include <iostream.h>
using namespace std;
int main()
{
double n, s, i;
cout << "Introd. n: ";
14

Bazele Informaticii Pseudocod & Programe C/C++


ct timp i<=n execut
{
S=S+1/i;
i=i+1;
}
afieaz S;
stop

cin >> n;
s=0;
for (i=1;i<=n;i++)
s = s + 1/i;
cout << "Suma este " << s;
cout << endl << endl;
}

Aplicaia 2.6.5. Se citete n. S se calculeze R =

1 2 3 ... n
. Pentru n = 6 rezultatul este
1 + 2 + 3 + ... + n

34,28.

start
int n,i;
float r,p,s;
citete n;
p=1;
S=0;
i=1;
ct timp i<=n execut
{
p=p*i;
s=s+i;
i=i+1;
}
r=p/s;
afieaz r;
stop

#include <iostream.h>
using namespace std;
int main()
{
double n, s, p, i, r;
cout << "Introd. n: ";
cin >> n;
s=0;
p=1;
for (i=1;i<=n;i++)
{
p=p*i;
s=s+i;
}
r=p/s;
cout << "Produsul este: \t" << p <<
endl;
cout << "Suma este: \t" << s << endl;
cout << "Raportul este: \t" << r;
cout << endl << endl;
}

Aplicaia 2.6.6. Se citete n. S se calculeze R =

1 3 5 ... (2n 1)
. Pentru n = 6 rezultatul este
2 + 4 + 6 + ... + 2n

247,5.
start
int n,i;
float r,p,s;
citete n;
Nchil Ctlin Laborator UPG

#include <iostream.h>
using namespace std;
int main()
{

15

Bazele Informaticii Pseudocod & Programe C/C++


p=1;S=0;i=1;
double n, s, p, i, r;
ct
timp
i<=(2*n-1)
cout << "Introd. n: ";
execut
cin >> n;
{
s=0;
p=p*i;
p=1;
i=i+2;
for (i=1;i<=(2*n-1);i=i+2)
}
p=p*i;
i=2;
for (i=2;i<=2*n;i=i+2)
ct timp i<=2*n execut
s=s+i;
{
r=p/s;
s=s+i;
cout << "Produsul este: \t" << p <<
i=i+2;
endl;
}
cout << "Suma este: \t" << s << endl;
r=p/s;
cout << "Raportul este: \t" << r;
afieaz (r=, r);
cout << endl << endl;
stop
}

Aplicaia 2.6.7. Se citete n. S se calculeze


S = 1 + 1*2 + 1*2*3 + 1*2*3*4 + + 1*2*3**n. Pentru n = 4 rezultatul este 33.

start
int n,i,p,s;
citete n;
p=1;
S=0;
i=1;
ct timp i<=n execut
{
p=p*i;
s=s+p;
i=i+1;
}
afieaz S;
stop

Nchil Ctlin Laborator UPG

#include <iostream.h>
using namespace std;
int main()
{
double n, s, p, i;
cout << "Introd. n: ";
cin >> n;
s=0;
p=1;
for (i=1;i<=n;i++)
{
p=p*i;
s=s+p;
}
cout << "Suma este " << s;
cout << endl << endl;
}

16

Bazele Informaticii Pseudocod & Programe C/C++


Aplicaia 2.6.8. Se citete n. S se calculeze A=
avem: A =

2
3
n
+
+ ... +
. Pentru n = 4
1*3 2* 4
(n 1) *(n + 1)

2
3
4
+
+
= 0.66 + 0.375 + 0.26 =1.308 1.31
1*3 2* 4 3*5

#include <iostream.h>
using namespace std;
int main()
{
float n, i, A;
cout << "Introduceti nr=";
cin >> n;
for (i=2; i<=n; i++)
{
A = A + i/((i-1)*(i+1));
}
cout << "A=" << A;
cout << endl << endl;
}

2.8. Aplicaii cu structuri repetitive cifre, baze de numeraie


Aplicaia 2.8.1. S se citeasc un numr n i s se afieze cifrele acestuia.
#include <iostream.h>
using namespace std;
int main()
{
int n, cifra;
cout << "Introduceti n=";
cin >> n;
while (n!=0)
{
cifra=n%10;
n=n/10;
cout << " " << cifra;
}
}
Nchil Ctlin Laborator UPG

17

Bazele Informaticii Pseudocod & Programe C/C++

Aplicaia 2.8.2. S se citeasc un numr n. S se afieze numrul de cifre i suma acestora.


#include <iostream.h>
using namespace std;
int main()
{
int n, suma, nr;
cout << "Introduceti n=";
cin >> n;
suma=0;
nr=0;
while (n!=0)
{
suma = suma + n%10;
n=n/10;
nr++;
}
cout << "\nSuma este " << suma;
cout << "\nNumarul de cifre este " << nr;
}

Aplicaia 2.8.4. S se transforme un numr din baza 10 n baza 2.


# include <iostream.h>
using namespace std;
int main ()
{
int n, poz, nr_b2, r;
cout << "n=";
cin >> n;
nr_b2 = 0;
poz = 1;
// puterea lui 10 a restului obtinut
while (n>0)
{
r = n%2;
// restul impartirii lui n la 2
n = n/2;
// lui n i se "taie" ultima cifra
nr_b2 = nr_b2 + r*poz; // se compune numarul
poz=poz*10;
}
Nchil Ctlin Laborator UPG

18

Bazele Informaticii Pseudocod & Programe C/C++


cout << endl << "Numarul in baza 2 este: " << nr_b2;
cout << endl << endl;
}

Aplicaia 2.8.5. S se transforme un numr din baza 2 n baza 10.


# include <iostream.h>
using namespace std;
int main ()
{
int n, poz, nr_b10, r;
cout << "n=";
cin >> n;
nr_b10 = 0;
poz = 1;
// puterea lui 10 a restului obtinut
while (n>0)
{
r = n%10;
// restul impartirii lui n la 2
n = n/10;
// lui n i se "taie" ultima cifra
nr_b10 = nr_b10 + r*poz; // se compune numarul
poz=poz*2;
}
cout << endl << "Numarul in baza 10 este: " << nr_b10;
cout << endl << endl;
}

Aplicaia 2.8.6. Se citete un numr n. S se verifice dac numrul citit de la stnga la dreapta
este identic cu numrul citit de la dreapta la stnga. Exemplu 45654.
#include <iostream.h>
using namespace std;
int main()
{
int n, invers, nr;
cout << "Introduceti numarul: ";
cin >> n;
nr = n;
invers = 0;
Nchil Ctlin Laborator UPG

19

Bazele Informaticii Pseudocod & Programe C/C++


while (n!=0)
{
invers = invers * 10 + n%10;
n = n/10;
}
if (nr == invers)
cout << "Nr. este palindrom.";
else
cout << "Nr. nu este palindrom.";
cout << endl << endl;
}

Nchil Ctlin Laborator UPG

20

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