Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

31

Zadatak 2.2

Trouglovi u ravni

Napisati na jeziku C++ klasu trouglova. Predvideti: ispitivanje da li tri dui mogu biti stranice trougla,
stvaranje trougla, dohvatanje duina stranica, izraunavanje obima i povrine, itanje trougla sa glavnog
ulaza i ispisivanje trougla na glavnom izlazu.
Napsiati na jeziku C++ program koji proita dinamiki niz trouglova, uredi niz po neopadajuem
redosledu povrina trouglova i ispie dobijeni rezultat.
Reenje:
// trougao2.h - Definicija klase trouglova.
#include <cstdlib>
using namespace std;
class Trougao {
double a, b, c;
// Stranice trougla.
public:
static bool moze (double a, double b, double c) { // Da li su stranice
return a>0 && b>0 && c>0 &&
//
prihvatljive?
a+b>c && b+c>a && c+a>b;
}
Trougao (double aa=1, double bb=1, double cc=1) { // Postavljanje
if (! moze (aa, bb, cc)) exit (1);
//
koordinata.
a = aa; b = bb; c = cc;
}
double uzmiA () const { return a; }
// Dohvatanje stranica.
double uzmiB () const { return b; }
double uzmiC () const { return c; }
double O () const { return a + b + c; }
// Obim trougla.
double P () const;
// Povrina trougla.
bool citaj ();
// itanje trougla.
void pisi () const;
// Pisanje trougla.
};
// trougao2.C - Definicije metoda klase trouglova.
#include "trougao2.h"
#include <iostream>
#include <cmath>
using namespace std;
double Trougao::P () const {
double s = O () / 2;
return sqrt (s * (s-a) * (s-b) * (s-c));
}

// Povrina trougla.

bool Trougao::citaj () {
double aa, bb, cc;
cin >> aa >> bb >> cc;
if (! moze (aa, bb, cc)) return false;
a = aa; b = bb; c = cc;
return true;
}

// itanje trougla.

void Trougao::pisi () const {


// Pisanje trougla.
cout << "Troug(" << a << ',' << b << ',' << c << ')';
}

Zadatak 2.2

2 Klase

32

// trougao2t.C - Ispitivanje klase trouglova.


#include "trougao2.h"
#include <iostream>
using namespace std;
int main () {
cout << "Broj trouglova? "; int n; cin >> n;
Trougao* niz = new Trougao [n];
for (int i=0; i<n; ) {
cout << i+1 << ". trougao? ";
double a, b, c; cin >> a >> b >> c;
if (Trougao::moze(a,b,c)) niz[i++] = Trougao (a, b, c);
else cout << "*** Neprihvatljive stranice!\n";
}
for (int i=0; i<n-1; i++)
for (int j=i+1; j<n; j++)
if (niz[j].P() < niz[i].P())
{ Trougao pom = niz[i]; niz[i] = niz[j]; niz[j] = pom; }
cout << "\nUredjeni niz trouglova:\n";
for (int i=0; i<n; i++) {
cout << i+1 << ": "; niz[i].pisi ();
cout << " P=" << niz[i].P() << endl;
}
delete [] niz;
return 0;
}
% trougao2t
Broj trouglova? 5
1. trougao? 1 1 1
2. trougao? 3 4 5
3. trougao? 1 2 2
4. trougao? 1 3 5
*** Neprihvatljive stranice!
4. trougao? 2 3 4
5. trougao? 5 6 7
Uredjeni niz trouglova:
1: Troug(1,1,1) P=0.433013
2: Troug(1,2,2) P=0.968246
3: Troug(2,3,4) P=2.90474
4: Troug(3,4,5) P=6
5: Troug(5,6,7) P=14.6969

2 Klase

Zadatak 2.2

You might also like