1.Realizați un program care calculează data zilei de mâine cunoscând data zilei de
azi și folosind pentru aceasta o clasă.(C++).
2.Realizați un program pentru rezolvarea unei ecuații de gradul 1 și un program
pentru rezolvarea unei ecuații de gradul al 2-lea, folosind o clasă pentru gruparea
datelor și metodelor.(C++).
Răspunsuri la întrebare
PROBLEMA 1
#include <iostream>
using namespace std;
class data_calendaristica {
private:
unsigned zi, luna, an;
bool este_an_bisect() {
if (an % 400 == 0)return 1;
if (an % 100 == 0)return 0;
if (an % 4 == 0)return 1;
return 0;
}
public:
void seteaza_data(unsigned z, unsigned l, unsigned a) {
an = a;
luna = l;
zi = z;
}
void maine() {
zi++;
//Overflow luna
if ((luna == 1 || luna == 3 || luna == 5 || luna == 7 || luna == 8 || luna == 10 || luna == 12) && zi == 32) {
zi = 1;
luna += 1;
}
else if ((luna == 4 || luna == 6 || luna == 9 || luna == 11) && zi == 31) {
zi = 1;
luna += 1;
}
else if (luna == 2) {
if (zi == 29 && !este_an_bisect() || zi==30 && este_an_bisect()) {
zi = 1;
luna++;
}
}
//Overflow an
if (luna == 13) {
luna = 1;
an++;
este_an_bisect();
}
}
void afisare_data() {
cout << "Data : " << zi << " " << luna << " " << an << endl;
}
};
int main(){
unsigned z, l, a;
cout << "Introduceti ziua, luna si anul : ";
cin >> z >> l >> a;
data_calendaristica x;
x.seteaza_data(z, l, a);
cout << "Azi : ";
x.afisare_data();
x.maine();
cout << "Maine : ";
x.afisare_data();
}
PROBLEMA 2
#include <iostream>
#include <math.h>
using namespace std;
class ecuatie_grad_2 {
private:
float a, b, c;
float delta;
public:
void initializeaza(float temp_a, float temp_b, float temp_c) {
a = temp_a;
b = temp_b;
c = temp_c;
}
float calc_delta() {
return b * b - 4 * a * c;
}
void afisare_solutie() {
cout << endl;
if (delta < 0) cout << "Ecuatia nu are solutii reale";
else if (delta == 0)cout << "Ecuatia are solutia x = " << -b / (2 * a);
else cout << "Ecuatia are solutiile x1 = " << (-b + sqrt(delta)) / (2 * a) << " si x2 = " << (-b - sqrt(delta)) / (2 * a);
cout << endl;
}
ecuatie_grad_2(float temp_a, float temp_b, float temp_c) {
initializeaza(temp_a, temp_b, temp_c);
delta = calc_delta();
afisare_solutie();
}
};
class ecuatie_grad_1 {
private:
float a, b;
public:
void initializeaza(float temp_a, float temp_b) {
a = temp_a;
b = temp_b;
}
void afisare_solutie() {
cout << endl;
if (a == 0 && b == 0) cout << "Ecuatia are o infinitate de solutii";
else if (a == 0) cout << "Ecuatia nu are solutii";
else cout << "Solutia ecuatiei este x = " << -b / a;
cout << endl;
}
ecuatie_grad_1(float temp_a, float temp_b) {
initializeaza(temp_a, temp_b);
afisare_solutie();
}
};
int main(){
int a, b, c;
cout << "Introduceti coeficientii ecuatiei de grad 2 : ";
cin >> a >> b >> c;
ecuatie_grad_2(a, b, c);
cout << "Introduceti coeficientii ecuatiei de grad 1 : ";
cin >> a >> b;
ecuatie_grad_1(a, b);
}