Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "CDalele.h"
- using namespace std;
- //================================================================
- CDalele::CDalele()
- {
- koordinaciu_skaicius = atkarpu_skaicius = intervalas = 0;
- koordinaciu_masyvas = NULL;
- atkarpu_masyvas = NULL;
- }
- //-------------------------------------------------------------------
- CDalele::CDalele(const char failas[])
- {
- ifstream duomenys;
- duomenys.open(failas);
- duomenys >> koordinaciu_skaicius >> intervalas;
- atkarpu_skaicius = koordinaciu_skaicius - 1;
- koordinaciu_masyvas = new KOORDINATES [koordinaciu_skaicius];
- atkarpu_masyvas = new ATKARPA [atkarpu_skaicius];
- for (int i = 0; i < koordinaciu_skaicius; i++)
- duomenys >> koordinaciu_masyvas[i].x >> koordinaciu_masyvas[i].y;
- duomenys.close();
- for (int j = 0; j < atkarpu_skaicius; j++)
- atkarpu_masyvas[j] = AtkarposSkaiciavimas(&koordinaciu_masyvas[j], &koordinaciu_masyvas[j+1]);
- }
- //-----------------------------------------------------------------------
- CDalele::~CDalele()
- {
- delete [] koordinaciu_masyvas;
- delete [] atkarpu_masyvas;
- }
- //======================================================================
- double CDalele::DidziausiasGreitis()
- {
- int ID = 0;
- for (int i = 0; i < atkarpu_skaicius; i++)
- if (atkarpu_masyvas[i].daleles_greitis > atkarpu_masyvas[ID].daleles_greitis)
- ID = i;
- return atkarpu_masyvas[ID].daleles_greitis;
- }
- //-----------------------------------------------------------------------
- double CDalele::MaziausiasGreitis()
- {
- int ID = 0;
- for (int i = 0; i < atkarpu_skaicius; i++)
- if (atkarpu_masyvas[i].daleles_greitis < atkarpu_masyvas[ID].daleles_greitis)
- ID = i;
- return atkarpu_masyvas[ID].daleles_greitis;
- }
- //-------------------------------------------------------------------------
- double CDalele::VidutinisGreitis()
- {
- return NukeliautasAtstumas() / (intervalas*atkarpu_skaicius);
- }
- //-------------------------------------------------------------------------
- double CDalele::NukeliautasAtstumas()
- {
- double visas_atstumas = 0.0;
- for (int i = 0; i < atkarpu_skaicius; i++)
- visas_atstumas += atkarpu_masyvas[i].ilgis;
- return visas_atstumas;
- }
- //---------------------------------------------------------------------------
- ATKARPA CDalele::AtkarposSkaiciavimas(KOORDINATES * koord1, KOORDINATES * koord2)
- {
- ATKARPA atkarpa;
- atkarpa.ilgis = sqrt(pow(koord1->x - koord2->x, 2) + pow(koord1->y - koord2->y, 2));
- atkarpa.daleles_greitis = atkarpa.ilgis / intervalas;
- return atkarpa;
- }
- //-----------------------------------------------------------------------------
- void CDalele::suvesti_rezultatus(const char failas[])
- {
- ofstream rezultatai;
- rezultatai.open(failas, ios::trunc);
- rezultatai << fixed << setprecision(2);
- rezultatai << "Maziausias greitis: " << MaziausiasGreitis() << " mm/s." << endl;
- rezultatai << "Vidutinis greitis: " << VidutinisGreitis() << " mm/s." << endl;
- rezultatai << "Didziausias greitis: " << DidziausiasGreitis() << " mm/s." << endl;
- rezultatai << "Nukeliaustas atstumas: " << NukeliautasAtstumas() << " mm.";
- //rezultatai.close();//Nebūtina dėl to, kad čia jau pabaiga steko atminties ir klasės destruktorius automatiškai iškviečiamas.
- //Bet geriau uždėti, nes dar kol kas dar neturėtum suprasti tai ką parašiau
- }
Advertisement
Add Comment
Please, Sign In to add comment