Portofoliu de probleme ingineria programării

Referat
8/10 (1 vot)
Domeniu: Calculatoare
Conține 1 fișier: docx
Pagini : 13 în total
Cuvinte : 2987
Mărime: 31.42KB (arhivat)
Publicat de: Cantemir Bodea
Puncte necesare: 5
Academia de Studii Economice Facultatea de Cibernetică, Statistică și Informatică Economică

Extras din referat

Problema din Siracuza

Fie n un număr natural oarecare citit de la tastatură. Dacă n este număr par, se împarte la 2, iar dacă este număr impar, se înmulțește cu 3 și se adaugă 1. Algoritmul se repetă până când se ajunge în final cu n=1. Să se genereze iterativ și recursiv valorile succesive ale lui n.

Varianta iterativă

Această modalitate de rezolvare a problemei propuse presupune construirea unui subprogram iterativ care realizează efectiv generarea de numere conform condițiilor impuse de cerință și a funcției principale în care se citește un număr de la tastatură și se apelează subprogramul numit Iterativ care primește numărul citit ca parametru.

#include<iostream>

#include<conio.h>

using namespace std;

void Iterativ(int p)

{ cout<<p<<',';

while(p!=1)

{if(p%2==0) {p=p/2;

cout<<p<<',';}

else {p=p*3+1;

cout<<p<<',';}

}}

void main()

{int n;

cout<<"Introduceti un numar natural!"<<endl;

cin>>n;

Iterativ(n);

getch();

}

Varianta recursivă

În cazul acestui tip de rezolvare se folosește funcția recursivă denumită Recursiv. Singura modificare pe care o suferă funcția principală față de varianta iterativă este schimbarea numelui funcției apelate. În funcția recursivă, condiția de oprire este ca valoarea numărului primit prin intermediul parametrului să fie 1. Numerele căutate se generează și se afișează prin autoapelarea funcției.

#include<iostream>

#include<conio.h>

using namespace std;

int Recursiv(int p)

{cout<<p<<' ';

if(p==1) return 1;

else if(p%2==0) return Recursiv(p/2);

else if(p%2==1) return Recursiv(3*p+1);

}

void main()

{int n;

cout<<"Introduceti un numar natural!"<<endl;

cin>>n;

Recursiv(n);

getch();

}

I.2. Problema indianului

În anul de grație 0001, un indian a depus la banca statului său suma de s0. După n ani, indianul vrea să vadă suma din contul său, știind că, anual, dobânda este p% (dobândă compusă).

Varianta iterativă

Pentru a afla valoarea sumei existente în contul indianului după n ani, ne folosim de o funcție care calculează această sumă, utilizând formula suma_finală=suma_inițială*(1+dobânda)^număr_ani. În funcția principală se realizează citirea de la tastatură a datelor de intrare (suma depusă inițial, dobânda anuală și numărul de ani după care indianul dorește să facă verificarea contului), apelarea funcției Iterativ și afișarea sumei căutate pe ecran.

Preview document

Portofoliu de probleme ingineria programării - Pagina 1
Portofoliu de probleme ingineria programării - Pagina 2
Portofoliu de probleme ingineria programării - Pagina 3
Portofoliu de probleme ingineria programării - Pagina 4
Portofoliu de probleme ingineria programării - Pagina 5
Portofoliu de probleme ingineria programării - Pagina 6
Portofoliu de probleme ingineria programării - Pagina 7
Portofoliu de probleme ingineria programării - Pagina 8
Portofoliu de probleme ingineria programării - Pagina 9
Portofoliu de probleme ingineria programării - Pagina 10
Portofoliu de probleme ingineria programării - Pagina 11
Portofoliu de probleme ingineria programării - Pagina 12
Portofoliu de probleme ingineria programării - Pagina 13

Conținut arhivă zip

  • Portofoliu de Probleme Ingineria Programarii.docx

Ai nevoie de altceva?