Sa se scrie un program care calculeaza valoarea expresiei: P=1*(1/2)*3*(1/4)*5*(1/6)*…n

Configurare noua (How To)

Situatie

Operatorii aritmetici binari in C++ sunt reprezentati de multimea formata din caracterele: {+,-,*,/,%}. In tabelul de mai jos putem vedea ce rol indeplineste fiecare din ele:

Operator Denumire Semnificatie
+ adunare determina adunarea a doua variabile sau valori
scadere determina scadere a doua variabile sau valori
* inmultire determina inmultirea a doua variabile sau valori
/ impartire determina impartirea a doua variabile sau valori
% modulo determina restul impartirii a doua variabile sau valori

Cu ajutorul acestor operatori putem face diverse operatii aritmetice in C++. In tabelul de mai jos regasim cateva exemple de operatii realizate cu ajutorul operatorilor aritmetici:

Expresie matematica Rezultat
(presupunem ca avem declarate 2 variabile int a=14 si int b=4)  
a+b 14+4=18
a-b 14-4=10
a*b 14*4=56
a/b 14/4=3
a%b 14%4=2
(b+a)/b 18/4=4
(a+b)%b 18%4=2
(a+b)/3 18/3=6

Observatii:

  1. Impartirea a doua numere returneaza o valoare de tip intreg (catul impartirii) doar daca valorile impartite sunt de tip intreg. Exemplu: int a=10; int b=3; atunci a/b=3 (10/3=10)
  2. In cazul in care impartitorul sau deimpartitul sunt de tipul float sau double (de tip real adica), atunci expresia matematica a/b va intoarce rezultatul impartirii. Exemplu: float a=10; int b=3; atunci a/b=3.33333(3) ( 10.0/3=3.3333(3) )

Solutie

#include<stdio.h>

#include<math.h>

float produs1(int n)           //cu instructiunea FOR

{

float p=1;

float z=1;

 

for(int i=1; i<=n; i++)

{

if (!(i%2))    //se mai putea scrie if(i%2==0) <=> testeaza dc nu e impar

{

z=1/(float)i;

p=p*z;

}

 

else p=p*i;    //pt impar

}

return p;

}

float produs2(int n)           //cu instructiunea WHILE

{

float p=1;

float z=1;

int i=1;

while(i<=n)

{

if (!(i%2))    //se mai putea scrie if(i%2==0) <=> testeaza dc nu e impar

{

z=1/(float)i;

p=p*z;

}

else p=p*i;    //pt impar

i++;

}

return p;

}

float produs3(int n)           //cu instructiunea WHILE

{

float p=1;

float z=1;

int i=1;

do

{

if (!(i%2))    //se mai putea scrie if(i%2==0) <=> testeaza dc e par

{

z=1/(float)i;

p=p*z;

}

 

else p=p*i;    //pt impar

i++;

}

while(i<=n);

return p;

}

void main()

{

int n;

printf(“Introduceti n: “);

scanf(“%d”, &n);

 

printf(“\nProdusul cu FOR este: %.5f\n”, produs1(n));

printf(“\nProdusul cu WHILE este: %.5f\n”, produs2(n));

printf(“\nProdusul cu DO WHILE este: %.5f\n”, produs3(n));

 

getchar();

int k;

scanf(“%d”, k);

}

 

Tip solutie

Permanent

Voteaza

(7 din 12 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?