Jump to content
Begedeu

Un mic programel in c++

Recommended Posts

Mai erau de adaugat o groaza de algoritmi dar ajunge atat.

Multumesc pentru ajutor @nedo

#include<iostream>
#include<conio.h>

#include<math.h>

#include<vector>

#include<string>

using namespace std;

int main(){

int alege,prog=0,n,test=0,test1,test2=1,w,z,r;

float a,b,c,x1,x2,delta,x,real,img;

char alege1,ec;

string input;

char choise = ' ';

restart:

cout <<"1.Calculator\n";

cout <<"2.Ecuatia de gradul intai\n";

cout <<"3.Ecuatia de gradul 2\n";

cout <<"4.Progresii\n";

cout <<"5.Cmmdc\n";

cout <<"6.Exit\n";

cout <<"Alege (1,2,3..6): ";cin>>alege;

switch(alege){

case 1 : cout <<"\nFelicitari , ai ales 'Calculatorul'\n\n";

operatii:

cout <<"a)Inmultire\n";

cout <<"b)Impartire\n";

cout <<"c)Adunare\n";

cout <<"d)Scadere\n";

cout <<"Alege operatia dorita: ";cin>>alege1;

switch(alege1){

case 'a' : cout <<"Ai ales operatia de inmultire calculeaza acum\n";

cout <<"a=";cin>>a;

cout <<"b=";cin>>b;

cout <<"Rezultatul este " <<a*b<<endl;

break;

case 'b' : cout <<"Ai ales operatia de impartire calculeaza acum\n";

cout <<"a=";cin>>a;

cout <<"b=";cin>>b;

cout <<"Rezultatul este " <<a/b<<endl;

break;

case 'c' : cout <<"Ai ales operatia de adunare calculeaza acum\n";

cout <<"a=";cin>>a;

cout <<"b=";cin>>b;

cout <<"Rezultatul este " <<a+b<<endl;

break;

case 'd' : cout <<"Ai ales operatia de scadere calculeaza acum\n";

cout <<"a=";cin>>a;

cout <<"b=";cin>>b;

cout <<"Rezultatul este " <<a-b<<endl;

break;

default : cout <<"Alegere gresita . Alege doar dintre 'a' , 'b' , 'c' si 'd'";}

break;

cout <<"\nDoresti sa revii in meniul de operatii ?[Y/N]";

choise=_getch();

if (choise == 'n')

goto operatii;

case 2 : cout <<"Felicitari , ai ales 'Ecuatia de gradul intai'\n";

cout <<"Alege tipul de ecuatie\n";

cout <<"a) ax+b=0\n";

cout <<"Alege : "; cin>>ec;

if (ec == 'a'){

cout<<"Dati valoarea lui a = ";

cin>>a;

cout<<"Dati valoarea lui b = ";

cin>>b;

if (a == 0)

if (b == 0)

cout <<"Ecuatie nedeterminata";

else cout <<"Ecuatie imposibila";

else {

x=-b/a;

cout <<"Rezultatul este: "<<x<<endl;}}

break;

case 3 : cout <<"Felicitari , ai ales 'Ecuatia de gradul doi'\n";

cout <<"a=";cin>>a;

cout <<"b=";cin>>b;

cout <<"c=";cin>>c;

delta = b*b-4*a*c;

if (a==0) cout <<"Ecuatia de gradul 1";

else

{

delta=b*b-4*a*c;

if(delta >= 0)

{

cout<<"Radacini reale: ";

x1=(-b+sqrt(delta))/(2*a);

x2=(-b-sqrt(delta))/(2*a);

cout<<"x1 = "<<x1<<" x2 = "<<x2;

}

else

{

cout<<"Radacini complexe :";

delta=-delta;

real=-b/(2*a);

img=sqrt(delta)/(2*a);

cout<<"x1 = "<<real<<" + i*"<<img<<"\n";

cout<<"x2 = "<<real<<" - i*\n"<<img;

}

}

break;

case 4 : cout <<"Felicitari , ai ales 'Progresii' , acum va trebui sa alegi tipul de progresie\n";

reset:

cout <<"a)Progresii aritmetice\n";

cout <<"b)Progresii geometrice\n";

cout <<"Alege cu 'a' sau 'b': ";cin>>choise;

if (choise == 'a')

{

cout <<"Ai ales progresiile aritmetice , poti da sirul de numere\n";

vector<float> sir;

cout <<"Adauga sirul : [apasa 0 cand ai terminat, orice alt tip de caracter va fi ignorat]\n";

do

{

cin >>input;

prog = atoi(input.c_str());// transformam in numar(daca in input e un sir de caractere, chiar si urmat de cifre, functia va returna 0)

if(prog == 0)

//prog = - 1;

continue; // iesim daca s-a introdus un sir de caractere

sir.push_back(prog);

}while (input != "0");

int dif = 0;

int difVeche = 0;

bool first = true;

bool ok = false;

for(int i = 1; i < sir.size();i++)

{

if(first)

{

dif = sir - sir[i - 1];

difVeche = dif;

first= false;

continue;

}

dif = sir - sir[i - 1];

if(dif != difVeche)

{

cout << "Sirul nu este in progresie aritmetica." << endl;

ok = false;

break;

}

ok = true;

if(ok)

cout << "Sirul este in progresie aritmetica cu ratia " <<dif<< endl;

cout <<"Sirul are " <<sir.size()<< " elemente\n";

cout <<"Doresti sa calculezi suma primilor n termeni? [Y/N] \n";

choise = getch();

if (choise == 'n')

goto reset;

else cout <<"Ce termen doresti sa calculezi? ";cin>>test;

test1=sir[0]+(sir.size()-1)*dif;

cout <<"Termenul " <<test<< " este egal cu " <<test1;

break;

}

}

if (choise == 'b')

{

cout <<"Ai ales progresiile geometrice , poti da sirul de numere\n";

vector<float> sir;

cout <<"Adauga sirul : [apasa 0 cand ai terminat, orice alt tip de caracter va fi ignorat]\n";

do

{

cin >>input;

prog = atoi(input.c_str());// transformam in numar(daca in input e un sir de caractere, chiar si urmat de cifre, functia va returna 0)

if(prog == 0)

//prog = - 1;

continue; // iesim daca s-a introdus un sir de caractere

sir.push_back(prog);

}while (input != "0");

int q = 0;

int q1 = 0;

bool first = true;

bool ok = false;

for(int i = 1; i < sir.size();i++)

{

if(first)

{

q = sir / sir[i - 1];

q1 = q;

first= false;

continue;

}

q = sir / sir[i - 1];

if(q != q1)

{

cout << "Sirul nu este in progresie geometrica." << endl;

ok = false;

break;

}

ok = true;

if(ok)

cout << "Sirul este in progresie geometrica cu ratia " <<q<< endl;

cout <<"Sirul are " <<sir.size()<< " elemente\n";

cout <<"Doresti sa calculezi suma primilor n termeni? [Y/N] \n";

choise = getch();

if (choise == 'n')

goto reset;

else cout <<"Ce termen doresti sa calculezi? ";cin>>test;

float a=pow(q , test-1); //bn = b1·qn-1

test2=sir[0]*a;

cout <<"Termenul " <<test<< " este egal cu \n" <<test2;

break;

}

}

break;

case 5 : cout <<"Felicitari ai ales 'cmmdc'\n";

cout<<"a=";cin>>w;

cout<<"b=";cin>>z;

while(w!=z)

if(w> w=w-z;

else z=z-w;

cout<<"Cmmdc : "<<z;

break;

default : cout <<"Nu exista aceasta optiune";}

goto restart;

getchar();

cin.ignore(cin.rdbuf()->in_avail() +1);

return 0;

}

 

Edited by Begedeu
wrong syntax highlight
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...