Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <math.h>
- using namespace std;
- class Numere {
- public:
- int nr1;
- int nr2;
- Numere();
- Numere(int, int);
- void Adunare();
- };
- Numere::Numere() {
- nr1 = 0;
- nr2 = 0;
- }
- Numere::Numere(int a, int b) {
- nr1 = a;
- nr2 = b;
- }
- void Numere::Adunare() {
- cout<<nr1+nr2;
- }
- void pb1() {
- int a, b;
- cout<<"a = "; cin>>a;
- cout<<"b = "; cin>>b;
- Numere x;
- x.nr1 = a;
- x.nr2 = b;
- x.Adunare();
- }
- class NumerePerfecte {
- public:
- int inf;
- int sup;
- int suma;
- NumerePerfecte();
- NumerePerfecte(int, int);
- void ParcurgereNumere();
- int SumaDivizori(int);
- void AfisareNumar(int);
- };
- NumerePerfecte::NumerePerfecte() {
- inf = 0;
- sup = 0;
- suma = 0;
- }
- NumerePerfecte::NumerePerfecte(int a, int b) {
- inf = a;
- sup = b;
- }
- int NumerePerfecte::SumaDivizori(int x) {
- if (x == 0 || x == 1) {
- return 1;
- }
- int i, suma = 1;
- for (i = 2; i <= x/2; i++) {
- if (x % i == 0) {
- suma+=i;
- }
- }
- return suma;
- }
- void NumerePerfecte::AfisareNumar(int x) {
- cout<<x<<" ";
- }
- void NumerePerfecte::ParcurgereNumere() {
- int i;
- for (i = inf; i <= sup; i++) {
- if (NumerePerfecte::SumaDivizori(i) == i) {
- NumerePerfecte::suma += i;
- }
- }
- NumerePerfecte::AfisareNumar(NumerePerfecte::suma);
- }
- void pb2() {
- int a, b;
- cout<<"Limita inferioara = "; cin>>a;
- cout<<"Limita superioara = "; cin>>b;
- NumerePerfecte x;
- x.inf = min(a, b);
- x.sup = max(a, b);
- x.ParcurgereNumere();
- }
- typedef struct {
- char forma[50];
- double gem;
- double frisca;
- } forme;
- class Bunicuta {
- protected:
- double pi = 3.1415;
- public:
- int contor;
- forme Forme[100];
- Bunicuta();
- void Add(char*, int, int, int);
- void Remove(int);
- };
- Bunicuta::Bunicuta() {
- contor = 0;
- }
- void Bunicuta::Remove(int x) {
- for (int i = x; i < contor; i++) {
- Forme[i] = Forme[i+1];
- }
- contor--;
- }
- void Bunicuta::Add(char forma[50], int v1, int v2, int v3 = 0) {
- double perimetruB = 0, ariaB = 0;
- contor++;
- strcpy(Forme[contor].forma, forma);
- if (strcmp(Forme[contor].forma, "cerc") == 0) {
- perimetruB = 2 * pi * v1;
- ariaB = pi * v1 * v1;
- Forme[contor].gem = ariaB * v2 * 2;
- Forme[contor].frisca = perimetruB * v2;
- } else if (strcmp(Forme[contor].forma, "dreptunghi") == 0) {
- perimetruB = 2*(v1 + v2);
- ariaB = v1 * v2;
- Forme[contor].gem = ariaB * v3 * 2;
- Forme[contor].frisca = perimetruB * v3;
- } else if (strcmp(Forme[contor].forma, "patrat") == 0) {
- perimetruB = 4*v1;
- ariaB = v1 * v1;
- Forme[contor].gem = ariaB * v2 * 2;
- Forme[contor].frisca = perimetruB * v2;
- } else if (strcmp(Forme[contor].forma, "triunghi") == 0) {
- double ipotenuza = sqrt(v1*v1 + v2*v2);
- perimetruB = (double) v1 + v2 + ipotenuza;
- ariaB = (double) v1*v2/2;
- Forme[contor].gem = ariaB * v3 * 2;
- Forme[contor].frisca = perimetruB * v3;
- }
- cout<<Forme[contor].gem<<" "<<Forme[contor].frisca<<"\n";
- }
- void pb3() {
- Bunicuta x;
- char opt[10];
- char forma[50];
- cout<<"Optiunea ta (ADD/REMOVE/STOP): ";
- // cin.get(opt, 10);
- // cin.get();]
- // cin>>opt;
- while (strcmp(opt, "STOP") != 0) {
- cout<<"Optiunea ta (ADD/REMOVE/STOP): ";
- // cin.get(opt, 10);
- // cin.get();
- cin>>opt;
- if (strcmp(opt, "ADD") == 0) {
- cout<<"Citeste forma (cerc, dreptunghi, patrat, triunghi): ";
- // cin.get(forma, 50);
- cin>>forma;
- if (strcmp(forma, "cerc") == 0) {
- int raza, inaltime;
- cout<<"Citeste raza: ";
- cin>>raza;
- cout<<"Citeste inaltimea: ";
- cin>>inaltime;
- x.Add(forma, raza, inaltime);
- } else if (strcmp(forma, "dreptunghi") == 0) {
- int l, L, inaltime;
- cout<<"Citeste latimea: "; cin>>l;
- cout<<"Citeste lungimea: "; cin>>L;
- cout<<"Citeste inaltimea: "; cin>>inaltime;
- x.Add(forma, l, L, inaltime);
- } else if (strcmp(forma, "patrat") == 0) {
- int l, inaltime;
- cout<<"Citeste latura: "; cin>>l;
- cout<<"Citeste inaltimea: "; cin>>inaltime;
- x.Add(forma, l, inaltime);
- } else if (strcmp(forma, "triunghi") == 0) {
- int c1, c2, inaltime;
- cout<<"Citeste cateta mica: "; cin>>c1;
- cout<<"Citeste cateta mare: "; cin>>c2;
- cout<<"Citeste inaltimea: "; cin>>inaltime;
- x.Add(forma, c1, c2, inaltime);
- }
- } else if (strcmp(opt, "REMOVE") == 0) {
- int el;
- cout<<"Elementul care va fi sters: "; cin>>el;
- x.Remove(el);
- }
- }
- double total_gem = 0, total_frisca = 0;
- for (int i = 1; i <= x.contor; i++) {
- total_gem += x.Forme[i].gem;
- total_frisca += x.Forme[i].frisca;
- }
- cout<<"Total gem: "<<total_gem<<"\nTotal frisca: "<<total_frisca;
- }
- int main() {
- int option = 1;
- while (option) {
- cout<<"0. Opreste\n1. Problema 1\n2. Problema 2\n3. Problema 3\n";
- cout<<"Optiunea ta: ";
- cin>>option;
- switch(option) {
- case 1: {
- pb1();
- break;
- }
- case 2: {
- pb2();
- break;
- }
- case 3: {
- pb3();
- break;
- }
- default: break;
- }
- cout<<"\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement