Sunteți pe pagina 1din 5

Universitatea Tehnica a Moldovei

Raport
Lucrarea de laborator Nr.2
Programarea orientata pe obiecte

Var 17

Grupa: AI-211
Student: Sofroni Maxim
Profesor: Sergiu Scrob
Lucrarea de laborator nr.2

Tema: Clase și obiecte. Constructori și destructor pentru clasa

1. Creaţi obiectul ecuaţie2 - va reprezenta o ecuaţie pătratică de ordinul doi


ax2+bx+c=0.
date: a, b, c;
metode: citire, afişare, discriminant, soluţie.
Se vor introduce datele despre două ecuaţii şi se vor afişa ecuaţiile introduse, discriminantul fiecărei
ecuaţii cît şi soluţiile acestora.

Cod:
#include <iostream>
#include <locale.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>

using namespace std;

class A
{
protected:
int a;
public:
A() {}
A(int p) { a = p; }
};

class B :public A
{
protected:
int b;
public:
B() {}
B(int m) :A(m) { b = m; }
};

class C :public B
{
private:
int c;
float x1;
float x2;
public:
C() { c = 0; a = 0; b = 0; }
C(int d) :B(d) { c = d; }
float poisk();
void show();
void set();
void vvod();

};

float C::poisk()
{
int d;
float rez;
d = (b ^ 2) - 4 * a * c;
if (d < 0)
{
cout << "Дискриминант меньше нуля,решений нет,корни проинициализированны как нули." << endl;
x1 = 0; x2 = 0;
}
else

{
rez = sqrt((float)d);
x1 = (-b + rez) / (2 * a);
x2 = (-b - rez) / (2 * a);
}
return 0;
}

void C::show()
{
cout << "Корни уравнения:" << endl;
cout << "x1=" << x1 << endl;
cout << "x2=" << x2 << endl;
}

void C::set()
{
a = 3;
b = -4;
c = -1;
}

void C::vvod()
{
cout << "Введите а" << endl;
cin >> a;
cout << "Введите b" << endl;
cin >> b;
cout << "Введите c" << endl;
cin >> c;

int main()
{
setlocale(LC_ALL, "russian");
int choice;
C ob;
C obj;
cout << "\tДобро пожаловать!" << endl;
cout << "1)Ввести данные самостоятельно" << endl;
cout << "2)Воспользоваться готовыми данными" << endl;
choice = _getch();
_putch(choice);
puts("");
switch (choice)
{
case '1':
{
ob.vvod();
ob.poisk();
ob.show();
}
case '2':
{
obj.set();
obj.poisk();
obj.show();

}
}
_getch();
return 0;
}
Rezultat:

S-ar putea să vă placă și