Pomoc oko uradjenog zadatka za ispit

1

Pomoc oko uradjenog zadatka za ispit

offline
  • Pridružio: 13 Jul 2005
  • Poruke: 125
  • Gde živiš: N.Beograd

Napisati 2 klase sa sledecim opisom :
a) Tacka u ravni ima koordinate, metod za izracunavanje rastojanja izmedju dve tacke, metod za ucitavanje, najbliza tacka
b)Pravougaonik ima metod za obim, povrsinu, ispitivanje da li je tacka unutra. ..

Ima jos teksta, al dole je uradjen, pa ako neko moze da nadje greske...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • meka  Male
  • Počasni građanin
  • Pridružio: 06 Avg 2003
  • Poruke: 811
  • Gde živiš: Novi Sad / Vojvodina

Kao sto davno neko rece na forumu, niko nije dovoljno zaludan da radi tudje zadatke za dzabe. Postavi problem koji ne znas da resis a ne ceo zadatak.



offline
  • Pridružio: 13 Jul 2005
  • Poruke: 125
  • Gde živiš: N.Beograd

Evo sam uradio zadatak sa dve klase Pravougaonik i Tacka, nece da se pokrene program ima problem sa std. Ako neko moze da startuje program// odsnosno da vidi gde je greska/e, treba mi za ispit , frka.

napravio sam tacka.h , pravougaonik.h , tacka.cpp , pravougaonik.cpp- c++ source file, i zadatak.cpp


KOD:

class Tacka{
double m_x, m_y;
public:
Tacka();
Tacka(double, double);
Tacka(const Tacka*);
Tacka(const Tacka&);
void postavi (double,double);
double osax () const;
double osay () const;
double rastojanje ();
double rastojanje (const Tacka&);
Tacka najbliza(Tacka*, int);
void citaj();
void pisi();
};


***************************************

class Pravougaonik {
Tacka m_A, m_B;
public:
Pravougaonik();
Pravougaonik (const Tacka&, const Tacka&);
Pravougaonik(const Pravougaonik*);
Pravougaonik(const Pravougaonik&);
Tacka tA();
Tacka tB();
Tacka tC();
Tacka tD();
void postavi (const Tacka&, const Tacka&);
double obim();
double povrsina();
bool unutra(const Tacka&);
void citaj();
void pisi();
};

********************************
#include <iostream>
#include "tacka.h"
#include <cmath>
using namespace std;

Tacka::Tacka(double x, double y):m_x(0), m_y(0) {}
Tacka::Tacka(double x, double y):m_x(x), m_y(y) {}
Tacka::Tacka(double x, double y):m_x(a->m_x), m_y(a->m_y) {}
Tacka::Tacka(double x, double y):m_x(a.m_x), m_y(a.m_y) {}

double Tacka::rastojanje() {return sqrt(m_x*m_x+m_y*m_y);} //odstojanje od koordinatnog pocetka
void Tacka::postavi(double x, double y){m_x=x; m_y=y;} //promena x,y koordinate
double Tacka::osax() const {return m_x;} //Dohvatanje x koordinate
double Tacka::osay() const {return m_y;} //Dohvatanje y koordinate
double Tacka::rastojanje(const Tacka &a)
{return sqrt(pow(m_x-a.m_x,2) + pow(m_y-a.m_y,2));} //Rastojanje od druge tacke
double Tacka::najbilza(const Tacka &a, int n){
Tacka t=a[0]; double r,m=rastojanje(t);
for(int i=1; i<n;i++) {
if(m>(r=rastojanje(a[i]))) {m=r; t=a[i];}
}
} // Najbliza tacka

void Tacka::citaj(){cin>>m_x>>m_y;} // Citanje koordinata tacke
void Tacka::pisi(){cout<<"("<<m_x<<","<<m_y<<")"<<endl;} // Pisanje koordinata tacke

******************************

#include <iostream>
#include "tacka.h"
#include <cmath>
#include "pravougaonik.h"
using namespace std;

Pravougaonik::Pravougaonik() {}
Pravougaonik::Pravougaonik(const Tacka&A, const Tacka&B):m_A(A), m_B(B) {}
Pravougaonik::Pravougaonik(const Pravougaonik *P): m_A(P->m_A), m_A(P->m_B){}
Pravougaonik::Pravougaonik(const Pravougaonik &P): m_A(P.m_A), m_B(P.m_B){}

Tacka Pravougaonik::tA(){return m_A;} // DOhvatanje tacke A
Tacka Pravougaonik::tB(){return m_B;} // Dohvatanje tacke B
Tacka Pravougaonik::tC(){
Tacka C;
C.postavi(m_A.osax(), m_B.osay());
return C;
} // Dohvatanje tacke C
Tacka Pravougaonik::tD(){
Tacka D;
D.postavi(m_B.osax(), m_A.osay());
return D;
}
// Dohvatanje tacke D

void Pravougaonik::postavi(const Tacka &A, const Tacka &B){m_A=A, m_B=B;}
// Promena tacaka

double Pravougaonik::obim(){
return 2*((m_A.osax()-m_B.osax())+(m_A.osay()-m_B.osay());
} // Izracunavnje obima pravogaonika

double Pravougaonik::povrsina(){
return ((m_A.osax()-m_B.osax())*(m_A.osay()-m_B.osay());
} //Izracunavnje povrsine pravogaonika

bool Pravougaonik::unutra(const Tacka &T){
bool a= (m_A.osax()<m_B.osax())?
(T.osax()>m_A.osax())&&(T.osax()<m_B.osax());
(T.osax()<m_A.osax())&&(T.osax()>m_B.osax());
bool b= (m_A.osay()<m_B.osay())?
(T.osay()>m_A.osay())&&(T.osay()<m_B.osay());
(T.osay()<m_A.osay())&&(T.osay()>m_B.osay());
return a&&b; } //Da li je tacka unutar pravougaonika

void Pravougaonik::citaj(){
cout<<"Upisite koordinate dve dijagonale tacke pravougaonika: "<<endl;
m_A.citaj(); m_B.citaj();
}

void Pravougaonik::pisi(){
cout<<"Koordinate dve zadate tacke pravougaonika: "<<endl;<<"A";m_A.pisi();
cout<<endl<<"B"; m_B.pisi(); cout<<endl;
}

*********************************

#include <iostream>
#include "tacka.h"
#include "pravougaonik.h"
#include <stdafx.h>
using namespace std;

int main(int argc, char* argv[]){

Pravougaonik ABCD;
Tacka niz[5];

ABCD.citaj();
ABCD.pisi(); // Ucitavanje i ispisivanje pravougaonika

cout<<"Upisite Koordinate 5 tackaka: "<<endl;
for(int i=0; i<5;i++) niz[i].citaj(); // Ucitavanje niza tacaka

cout<<"Tacke koje su u pravougaoniku: "<<endl;
for(int i=0; i<5;i++){
if(ABCD.unutra(niz[i])) {
cout<<"T"<<i; niz[i].pisi();
}

cout<<"Temena pravougaonika i njihove najblize tacke: "<<endl;

cout<<"A"; Tacka X=ABCD.tA(); X.pisi();
cout<<"Najbliza "; T=X.najbliza(niz, 5); T.pisi();

cout<<"B"; X=ABCD.tB(); X.pisi();
cout<<"Najbliza "; T=X.najbliza(niz, 5); T.pisi();

cout<<"C"; X=ABCD.tC(); X.pisi();
cout<<"Najbliza "; T=X.najbliza(niz, 5); T.pisi();

cout<<"D"; X=ABCD.tD(); X.pisi();
cout<<"Najbliza "; T=X.najbliza(niz, 5); T.pisi();

return 0;
}

offline
  • pixxel  Male
  • Legendarni građanin
  • Pridružio: 21 Jun 2005
  • Poruke: 9091
  • Gde živiš: Tu i tamo...

Milijarda gresaka, nisi pravio empty win32 project, nego si ga odradio pod mfc (atl, nije ni bitno), pa tu imas prvih par gresaka... Dalje, tacka.h i pravougaonik.h se pisu Sa Velikim prvim slovom i pod navodnicima, ne izmedju <>. Pa onda iostream ide bez .h, stdio ne postoji, .cpp fajlovi se ne includuju, fale ti zastite od ponovnog prevodjenja (ifndef, define, endif...), nemas overloadovane operatore za ispis i citanje, pa te i tu zeza... Fale ; na kraju nekih redova... Ima ih jos, mrsko mi je da pisem...

Ja ti preporucujem da krenes ispocetka, jer ovako ces samo da zaglibljujes sve vise i vise... Pre toga, doooobro prouci literaturu, ovde ima bas mnogo gresaka, nije da te ucrnjujem, ali ako je ovo ispitni zadatak, gde si bio kad su bila prespavanja, pardon predavanja...

Pokusao sam da ispravim neke greske, ali onda me je krenulo sa sve vise... Na kraju sam skroz odustao...

offline
  • Pridružio: 13 Jul 2005
  • Poruke: 125
  • Gde živiš: N.Beograd

stdio - standard i/o header, kako ne postoji, mada ovde ni ne treba jer se koristi kad se pozivaju scanf i printf

//nemas overloadovane operatore za ispis i citanje// kod mi treba

ispravio sam greske koje si rekao, al ima jos, aj mi napisi operatore za ispis i citanje

ako neko stavi link za zadatak ispravljen puno, puno hvala... treba mi do sutra

Dopuna: 17 Jul 2005 17:39

mycity.rs/must-login.png


Evo ga snimljen u Visual-u

offline
  • pixxel  Male
  • Legendarni građanin
  • Pridružio: 21 Jun 2005
  • Poruke: 9091
  • Gde živiš: Tu i tamo...

stdio ne znam o cemu sam mislio dok sam pisao, trebalo je da pise stdio se ne koristi...

operatori. hm, svodi se na friend funkcije, i otprilike telo ide ovako:

friend ostream operator << (ostream &dat, const Pravougaonik &P); //ispis friend istream operator >> (istream &dat, Pravougaonik &P); //citanje
Pa umesto pravougaonik mozes da pises tacka... U telo funkcije ubacis ono sto bi radio kad recimo ucitavas pravougaonik ili tacku, ali umesto cin>> i cout<< koristis (u ovom primeru) dat>> i dat<<
I ne secam se, neka pomogne neko iskusniji, kod istream & ostream operatora da li ide return dat; na kraju...

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

Ide return dat na kraju, jer kao sto vidis recimo prva funkcija vraca ostream vrednost znaci mora da ide return dat.

offline
  • Pridružio: 13 Jul 2005
  • Poruke: 125
  • Gde živiš: N.Beograd

ok hvala probacu veceras

Dopuna: 20 Jul 2005 4:16

da ok ide

{return dat>>P.A>>P.B;} //za ucitavnje 2 tacke pravougaonika npr.


{return dat<<P.A<<P.B;} // za ispis

nego nisam uopste skontao da moze da se cita iz datoteka// da se uvoze karakteri,npr. iz tekst fajla ... : ) , dade mi na ispitu i zamalo da polozim: ) , ovo bas mora da se nastreba, pa da se krene u neko razmisljanje

ljudi jel ima knjiga iz c++-a, da ne smara kao Laslo, u vise navrata me zbuni nego sto razjasni, jel bolje prvo da uzmem, c++ 21 dan, sta preporucujete

offline
  • pixxel  Male
  • Legendarni građanin
  • Pridružio: 21 Jun 2005
  • Poruke: 9091
  • Gde živiš: Tu i tamo...

Laslo je pisao knjigu veoma slicno kao c++ za 21 dan, samo na strucnijem nivou, a predavanja i lab vezbe se baziraju po toj knjizi. Procitaj obavezno 21 dan, ali uci i iz njegove knjige... a to citanje iz datoteka ti je bas fazon sa ovim operatorima i na to ne moras da mislis, bitno je da postoji nacin da ti ucitas (cin) i ispises (cout) nesto na ekran. Ako se secas dos vremena ekran je posebna datoteka... kad prevedes program proba dobijes proba.exe. Ako ga izvrsis sa proba, upravljaces sa njim iz datoteke tastatura, a rezultati ce biti upisivani u datoteku ekran. Razumes? ok, a ako pokrenes program sa proba <ulaz.txt >izlaz.txt sve ce se obavljati u datotekama...

offline
  • Pridružio: 13 Jul 2005
  • Poruke: 125
  • Gde živiš: N.Beograd

FILE* file= fopen ("proba.txt", "r")

nisam znao-ustvari bio sam i na prespavanju i pisao i evo sad nadjem papir ispod stola cuci - posto ne ponese svesku taj dan , hvala za pomoc i oko knjige - mada znam da sve to ima kod Lasla, al probacu prvo sa 21 dan da skontam, jer kao sto rekoh konfuzno objasnjava- treba bas koncentracija, a i ova vrucina ....

Dopuna: 02 Sep 2005 22:55

Evo ako nekom treba za vezbu zadatak koji mi je dosao na ispitu


mycity.rs/must-login.png - postavka i resenje



mycity.rs/must-login.png - resenje

Ko je trenutno na forumu
 

Ukupno su 1038 korisnika na forumu :: 46 registrovanih, 7 sakrivenih i 985 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: airsuba, amaterSRB, ArchaBasha, Ben Roj, Bobrock1, branko7, brundo65, bufanje, ccoogg123, Chainsaw, darios, djuriczora58, dragoljub11987, Excalibur13, Georgius, JOntra, kikisp, kolle.the.kid, kuntalo, kybonacci, ladro, Leonov, Lieutenant, mackenzie, mikrimaus, MiroslavD, nebojsag, nenad81, Nikolaa11, nikoladim, operniki, pein, Povratak1912, raketaš, sasa87, Sirius, Srle993, su27, Udvar, vathra, Viceroy, W123, Webb, Yellow Pinky, zoxknez, šumar bk2