Kako očistiti prozor i pokrenuti iznova?

1

Kako očistiti prozor i pokrenuti iznova?

offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

Pre par meseci napravio sam program za proračun donje koturače kod dizalica. Pravio sam više programa i stavio ih pod klase. Tj. imam više klasa i svaka može da radi kao zaseban program kada bi se prekopirala u drugi projekat, tj. klase su međusobno nezavisne, a stavio sam da budu kao klase da bi ih objedinio u jedan program sa izbornikom (da ne otvaram četiri različita programa za izradu grafičkog rada).

Dve stvari bih voleo da uradim, a ne znam kako.

Prvo, kada program utvrdi da kuka, recimo ne zadovoljava potrebe, da pokrene program od početka i da očisti prozor. Ja sam to nekako traljavo rešio. Priložiću i ceo kod na kraju posta. Zanima me da li postoji neki elegantniji način koji bi manje 'bagovao'.

Druga stvar. Voleo bih da mi se izveštaj ispiše u nekom tekstualnom fajlu. Kako to izvesti?
Hvala unapred.

#include <cstdlib> #include <iostream> #include <cmath> using namespace std; /*  *  */ class izboruzeta { public:     int provera()     {     if (system("CLS")) system("clear");     int exitpoint;     float Q; // Težina     cout << "Nazivna nosivost Q[t]:" << endl;     cin >> Q;     int pk; // Pogonska klasa     cout << "Pogonska klasa:" << endl;     cin >> pk;     float K;     switch(pk)     {         case 1:             K=4.5;             break;         case 2:             K=5;             break;         case 3:             K=6.3;             break;         case 4:             K=7.1;             break;         default:             cout << "! ! ! G R E S K A ! ! !" <<endl;             cout << "Pogonska klasa ne moze biti manja od 1 niti veca od 4!"<<endl;             cout << "Pokrenite program ponovo." << endl;             cin >> exitpoint;             return 0;     }         } }; class kuka { public:     int racun()     {         if (system("CLS")) system("clear");          int exitpoint;     float Q; // Težina     cout << "Nazivna nosivost Q[t]:" << endl;     cin >> Q;     int pk; // Pogonska klasa     cout << "Pogonska klasa:" << endl;     cin >> pk;     float sigmad;     switch(pk)     {         case 1:             sigmad=8.50;             break;         case 2:             sigmad=7;             break;         case 3:             sigmad=6;             break;         case 4:             sigmad=6;             break;         default:             cout << "! ! ! G R E S K A ! ! !" <<endl;             cout << "Pogonska klasa ne moze biti manja od 1 niti veca od 4!"<<endl;             cout << "Pokrenite program ponovo." << endl;             cin >> exitpoint;             return 0;     }     char exit;     exit='T';     while (exit=='T')     {     cout << endl;     cout << "K U K A" << endl;     cout << "[T.2.7; T.2.10]" << endl;     cout << endl;     cout << endl;     cout << "Unesite odgovarajuce parametre:" << endl;     cout << endl;     cout << "Tip kuke:" << endl;     string tipkuke;     cin.ignore();     getline(cin,tipkuke);     float a1;     cout << "a1 [mm]" << endl;     cin >> a1;     a1=a1/10;     float a2;     cout << "a2 [mm]" << endl;     cin >> a2;     a2=a2/10;     float b1;     cout << "b1 [mm]" << endl;     cin >> b1;     b1=b1/10;     float b2;     cout << "b2 [mm]" << endl;     cin >> b2;     b2=b2/10;     float h1;     cout << "h1 [mm]" << endl;     cin >> h1;     h1=h1/10;     float h2;     cout << "h2 [mm]" << endl;     cin >> h2;     h2=h2/10;     cout << "Unesite odnos 1:"<<endl;     int odnos;     cin >> odnos;     float b1p;     float b2p;     b1p=b1-(2*h1/odnos);     b2p=b2-(2*h2/odnos);     cout << "Vrednost b1' [mm]:" << b1p <<", b2' [mm]:" << b2p << endl;     cout << endl;     cout << "Unete vrednosti podataka za kuku:" << endl;     cout << "a1 [cm]:" << a1 << endl;     cout << "a2 [cm]:" << a2 << endl;     cout << "b1 [cm]:" << b1 << endl;     cout << "b2 [cm]:" << b2 << endl;     cout << "h1 [cm]:" << h1 << endl;     cout << "h2 [cm]:" << h2 << endl;     cout << "b1' [cm]:" << b1p << endl;     cout << "b2' [cm]:" << b2p << endl;     cout << endl;     cout << "O P T E R E C E NJ A  K U K E" << endl;     float Aa;     float Ab;     float e1;     float e2;     float IA;     float IB;     Aa=((b1+b1p)*h1)/2;     Ab=((b2+b2p)*h2)/2;     e1=(h1/3)*(b1+2*b1p)/(b1+b1p);     e2=(h1/3)*(2*b1+b1p)/(b1+b1p);     IA=((pow(b1,2)+4*b1*b1p+pow(b1p,2))*pow(h1,3))/(36*(b1+b1p));     IB=((pow(b2,2)+4*b2*b2p+pow(b2p,2))*pow(h2,3))/(36*(b2+b2p));     float FQ;     float MA;     float MB;     float sigmaa1;     float sigmaa2;     float g;     g=9.81;     //PRESEK A-A     FQ=Q*pow(10,3)*g;     MA=FQ*((a1/2)+e1);     FQ=FQ/1000;     MA=MA/1000;     cout << endl;     cout << "Dobijene vrednosti:" << endl;     cout << "Povrsina Aa = " << Aa << " cm^2" << endl;     cout << "Povrsina Ab = " << Ab << " cm^2" << endl;     cout << "Povrsina e1 = " << e1 << " cm" << endl;     cout << "Povrsina e2 = " << e2 << " cm" << endl;     cout << "Povrsina IA = " << IA << " cm^4" << endl;     cout << "Povrsina IB = " << IB << " cm^4" << endl;     cout << "Sila FQ[kN]:" << FQ << endl;     cout << "Moment MA[kNcm]:" << MA << endl;     sigmaa1=(FQ/Aa)+((MA/IA)*e1);     sigmaa2=(FQ/Aa)-((MA/IA)*e2);     cout << "Napon R1 [kN/cm^2]:" << sigmaa1 << endl;         //PRESEK B-B     float e3;     float e4;     e3=(h2/3)*(b2+2*b2p)/(b2+b2p);     e4=(h2/3)*(2*b2+b2p)/(b2+b2p);     //Opterecenja     float sigmab1;     float sigmab2;     MB=(FQ/2)*((a1/2)+e3);     sigmab1=(FQ/(2*Ab))+((MB/IB)*e3);     sigmab2=(FQ/(2*Ab))-((MB/IB)*e4);     cout << "Napon R3 [kN/cm^2]:" << sigmab1 << endl;     cout << "Napon R4 [kN/cm^2]:" << sigmab2 << endl;     cout << endl << endl << endl;     float R1max;     float R2max;     float K;     float ro;     float sigmapdop;     float odnos78;     ro=e1+(a1/2);     K=(2*ro)*((b1p+(((b1-b1p)/h1)*(h1+(a1/2))))*log((h1+(a1/2))/(a1/2))-(b1-b1p))-1;     R1max=(FQ/Aa)*(1/K)*((2*e1)/a1);     R2max=(-(FQ/Aa))*(1/K)*(e2/(h1+(a1/2)));     odnos78=((R1max-sigmaa1)/R1max);     sigmapdop=sigmad/odnos78;     float pi;     float sigmaz, d0, sigmazd;     pi=3.1415926535897932384626433832795;     cout << "Unesite vrednost precnika jezgra oblog navoja d0 [T2.10] u mm:" << endl;     cin >> d0;     d0=d0/10;     sigmazd=(3+6)/2;     sigmaz=(4*FQ)/(pi*pow(d0,2));     cout << "+----------------+" << endl;     cout << "|    IZVESTAJ    |" << endl;     cout << "+----------------+" << endl << endl;     cout << "| Kuka: " << tipkuke << endl;     cout << "| Povrsina Aa = " << Aa << " cm^2" << endl;     cout << "| Povrsina Ab = " << Ab << " cm^2" << endl;     cout << "| Rastojanje e1 = " << e1 << " cm" << endl;     cout << "| Rastojanje e2 = " << e2 << " cm" << endl;     cout << "| Rastojanje e3 = " << e3 << " cm" << endl;     cout << "| Rastojanje e4 = " << e4 << " cm" << endl;     cout << "| Moment inercije IA = " << IA << " cm^4" << endl;     cout << "| Moment inercije IB = " << IB << " cm^4" << endl;     cout << "+----------------------------------------------+" << endl;     cout << "| Sila FQ = " << FQ << " kN" << endl;     cout << "| Moment MA = " << MA << " kNcm" << endl;     cout << "| Moment MB = " << MB << " kNcm" << endl;     cout << "+----------------------------------------------+" << endl;     cout << "|* PRESEK A-A *" << endl;     cout << "| Napon R1 = " << sigmaa1 << " kN/cm^2" << endl;     cout << "| Napon R2 = " << sigmaa2 << " kN/cm^2" << endl;     cout << "|* PRESEK B-B *" << endl;     cout << "| Napon R3 = " << sigmab1 << " kN/cm^2" << endl;     cout << "| Napon R4 = " << sigmab2 << " kN/cm^2" << endl;     cout << "+----------------------------------------------+" << endl;     cout << "|* Ako kuku posmatramo kao krivi stap:" << endl;     cout << "| Napon R1max = " << R1max << "kN/cmˇ2" << endl;     cout << "| Napon R2max = " << R2max << "kN/cmˇ2" << endl;     cout << "| Razlika izmedju napona pod pretpostavkom da je kuka krivi stap "<< endl <<" i pretpostavke da je pravi:" << odnos78*100 << endl;     cout << "| Dozvoljeni napon bez korekcije = " << sigmapdop << "kN/cm^2" << endl;     cout << "+----------------------------------------------+" << endl;     cout << "|* PROVERA VRATA KUKE" << endl;     cout << "| Napon Rz = " << sigmaz << "kN/cm^2" << endl;     cout << "| Dozvoljeni napon Rzd = " << sigmazd << "kN/cm^2" << endl;     cout << "+----------------------------------------------+" << endl;     cout << "+----------------------------------------------+" << endl;         sigmaa2=abs(sigmaa2);     sigmab2=abs(sigmab2);     if ((sigmaa1<sigmad)&&(sigmaa2<sigmad)&&(sigmab1<sigmad)&&(sigmab2<sigmad)&&(sigmaz<sigmazd))     {         cout << "Ova kuka zadovoljava date uslove." << endl;         exit='N';     }     else     {         cout << "Ova kuka " << tipkuke << " NE zadovoljava date uslove." << endl;         cin >> exitpoint;         }     }     } }; class izbornik {    public:        int meni1;     int izbor()     {         if (system("CLS")) system("clear");       cout << "***G L A V N I  I Z B O R N I K***" << endl;       cout << endl << endl;       cout << "[1] PRORACUN KUKE" << endl;       cout << "[2] PRORACUN UZETA [*]" << endl;       cout << "[3] [*]" << endl;       cout << "[5] IZLAZ" << endl;       cout << endl;       cout << "Vas ibor je:" << endl;       cin >> meni1;       switch(meni1)       {           case 1:               kuka a;               a.racun();               cout << "Ukucajte 1 i pritisnite enter da bi se pojavio meni." << endl;               cin >> meni1;               break;           case 2:               cout << "Ovaj deo programa nije zavrsen" << endl;               cout << "Ukucajte 5 i pritisnite enter da bi izasli u meni." << endl;               cout << "Ukucajte 1 i pritisnite enter da bi ponovili proracun." << endl;               cout << "Vas izbor je:" << endl;               cin >> meni1;               break;           default:                cout << "! ! ! G R E S K A ! ! !" <<endl;       }       }     }; int main() {     cout << "....................................." << endl;     cout << "........**  **........" << endl;     cout << "........... Proracun kuke ..........." << endl;     cout << "............... 2017 ................" << endl;     cout << "....................................." << endl;     cout << "V0.3.1" << endl;     cout << endl << endl << endl;     izbornik a7;     a7.izbor();     while(a7.meni1<5)     {     a7.izbor();     if (system("CLS")) system("clear");     cout << "....................................." << endl;     cout << "........** **........" << endl;     cout << "........... Proracun kuke ..........." << endl;     cout << "............... 2017 ................" << endl;     cout << "....................................." << endl;     cout << "V0.3.1" << endl;     cout << endl << endl;     }     int sto;     cin >> sto;     system("PAUSE");     return 0; }

Za čišćenje prozora, kao što možete videti, koristim: ,,if (system("CLS")) system("clear");", ali sam naišao na tekst koji kaže da to nije dobro, ali nisam razumeo zašto niti šta bih drugo mogao da primenim.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 05 Mar 2016
  • Poruke: 87

Пробај уместо while са do until петљом:
int main (){     izbornik a7;     do{     if (system("CLS")) system("clear");        cout << "....................................." << endl;     cout << "........** **........" << endl;     cout << "........... Proracun kuke ..........." << endl;     cout << "............... 2017 ................" << endl;     cout << "....................................." << endl;     cout << "V0.3.1" << endl;     cout << endl << endl;     a7.izbor();     }until(a7.meni1<5)         int sto;     cin >> sto;     system("PAUSE");     return 0; }

Што се тиче уписа у фајл, најелегантнији начин је да направиш две функције и то да једна исписује на екран а друга уписује у фајл. Нпр:
void izvestaj_ekran(tipkuke,Aa,Ab,....,sigmazd){ cout << "| Kuka: " << tipkuke << endl; .... cout << "| Dozvoljeni napon Rzd =" << sigmazd << "kN/cm^2" << endl; } A за испис у фајл скоро па идентична уместо cout користиш fout. #include <fstream> ..... void izvestaj_fajl(tipkuke,Aa,Ab,....,sigmazd){ string imefajla = "izvestaj.txt"; ofstream fout(imefajla, ios::out | ios::app); fout << "| Kuka: " << tipkuke << endl; .... fout << "| Dozvoljeni napon Rzd =" << sigmazd << "kN/cm^2" << endl; fout.close(); }

Нисам сто година ништа писао тако да ко је свежији у кодирању нека ме исправи.



offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

Napisano: 02 Apr 2018 13:32

Hvala Ziveli

Imam još jedno pitanje.
Kako formirati listu, tj. vektor?
Znači x, recimo, sadrži 20 članova. Kako ga definisati i kako pristupiti pojedinačnom članu.
Guglao sam to ranije i nije mi ispadalo kako treba, tj. nešto nisam dobro razumeo. Pojašnjenje bi mi dobro došlo.

Dopuna: 02 Apr 2018 14:14

Fout ne zadržava formatiranje, tj. ne prelazi u drugi red:



Dopuna: 02 Apr 2018 14:24

To sam rešio:

offline
  • Pridružio: 05 Mar 2016
  • Poruke: 87

Што се тиче вектора не могу ти помоћи, изветрело одавно. Very Happy

Управу си за fout и endl, a овај код:
fout << "OSNOVE ZELEZNICKIH VOZILA" << "\r\n" << "*****************" << '\n';
можеш овако:
fout << "***************************\n"; fout << "*OSNOVE ZELEZNICKIH VOZILA*\n"; fout << "***************************\n";

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

mpman ::Kako formirati listu, tj. vektor?
Znači x, recimo, sadrži 20 članova. Kako ga definisati i kako pristupiti pojedinačnom članu.

Šta te tačno buni kod njih? Imaš push_back funkciju koja dodaje podatak na kraj, a sa at možeš da pristupiš pojedinačnom članu.

std::vector <int> x;     for (int i = 1; i <= 20; i++)     x.push_back(i); std::cout << "Peti element: " << x.at(4) << std::endl;

offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

Hvala Ziveli

Javlja mi se još jedan problem.
Definisao sam klasu za izbor tačke koja ima svoju h i B0 koordinatu u public delu.
Definisao sam drugu klasu u kojoj želim da koristim tu koordinatu. Kada pokušam da je povučem iz prethodne klase, dobijem izmenjenu vrednost. Zašto i kako da izbegnem ovo?

class ulaznipodaci1 { public:     float h, B0;     float odabirtacke()     {         string imefajla="izvestaj.txt";         ofstream fout(imefajla, ios::out | ios::app);         fout << "***************************"<< "\r\n"          << "*OSNOVE ZELEZNICKIH VOZILA*" <<   "\r\n" << "***************************" << "\r\n" << endl;     fout << "*********V.0.0.1.**********" << "\r\n" << "\r\n" <<     "\r\n" << "+----------+"<<     "\r\n" << "|*IZVESTAJ*|"<<     "\r\n" << "+----------+"<< "\r\n" << "\r\n" << endl;         if (system("CLS")) system("clear");          float hR, hP, hO, hN, hM, hL, hA, hB, hC, hD, hE, hF, hG, hH;          float B0R, B0P, B0O, B0N, B0M, B0L, B0A, B0B, B0C, B0D, B0E, B0F, B0G, B0H;          hR=4.310;          hP=4.010;          hO=3.700;          hN=3.250;          hM=1.170;          hL=1.170;          hA=0.401;          hB=0.400;          hC=0.321;          hD=0.320;          hE=0.230;          hF=0.200;          hG=0.142;          hH=0.115;          B0R=0.525;          B0P=1.120;          B0O=1.425;          B0N=1.645;          B0M=1.645;          B0L=1.620;          B0A=1.620;          B0B=1.520;          B0C=1.140;          B0D=1.397;          B0E=1.300;          B0F=1.237;          B0G=1.237;          B0H=1.197;     cout << "+-----------+" << endl;     cout << "|IZBOR TACKE|" << endl;     cout << "+-----+-----+" << endl;     cout << "| 1-R | 8-B |" << endl;     cout << "| 2-P | 9-C |" << endl;     cout << "| 3-O |10-D |" << endl;     cout << "| 4-N |11-E |" << endl;     cout << "| 5-M |12-F |" << endl;     cout << "| 6-L |13-G |" << endl;     cout << "| 7-A |14-H |" << endl;     cout << "+-----+-----+" << endl;     cout << "Za koju tacku radite proracun? Unesite veliko slovo tacke."<< endl;     cout << "Vas izbor je:" << endl;     char izborslova;     cin >> izborslova;     if(izborslova=='R'||izborslova=='r')     {            h=hR;         B0=B0R;     }     else     {         if(izborslova=='P'||izborslova=='p')         {               h=hP;            B0=B0P;         }         else         {             if(izborslova=='O'||izborslova=='o')             {                 h=hO;                 B0=B0O;             }             else             {                 if(izborslova=='N'||izborslova=='n')                 {                    h=hN;                    B0=B0N;                 }                 else                 {                     if(izborslova=='M'||izborslova=='m')                     {                         h=hM;                         B0=B0M;                     }                     else                     {                         if(izborslova=='L'||izborslova=='l')                         {                             h=hL;                             B0=B0L;                         }                         else                         {                             if(izborslova=='A'||izborslova=='a')                             {                                 h=hA;                                 B0=B0A;                             }                             else                             {                                 if(izborslova=='b'||izborslova=='B')                                 {                                     h=hB;                                     B0=B0B;                                 }                                 else                                 {                                     if(izborslova=='C'||izborslova=='c')                                     {                                         h=hC;                                         B0=B0C;                                     }                                     else                                     {                                         if(izborslova=='D'||izborslova=='d')                                         {                                             h=hD;                                             B0=B0D;                                         }                                         else                                         {                                             if(izborslova=='E'||izborslova=='e')                                             {                                                 h=hE;                                                 B0=B0E;                                             }                                             else                                             {                                                 if(izborslova=='F'||izborslova=='f')                                                 {                                                     h=hF;                                                     B0=B0F;                                                 }                                                 else                                                 {                                                     if(izborslova=='G'||izborslova=='g')                                                     {                                                         h=hG;                                                         B0=B0G;                                                     }                                                     else                                                     {                                                         if(izborslova=='H'||izborslova=='h')                                                         {                                                             h=hH;                                                             B0=B0H;                                                         }                                                         else                                                         {                                                             cout << "Izabrali ste nepostojecu tacku" << endl;                                                             izborslova='N';                                                         }                                                     }                                                 }                                             }                                         }                                     }                                 }                             }                         }                     }                     }                 }             }         }     cout << "h=" << h << endl;     cout << "B0=" << B0 << endl;     fout.close();     } };
class ulaznipodaci2 { public:     float h0, eta0, hc, a, p, d, q, w, dhc, dhe, da, di, c, b, nos, pos, Gos;     float Gnm, Gom, dhh, dhg, dh, S;     float izteksta()     {     string imefajla="izvestaj.txt";     ofstream fout(imefajla, ios::out | ios::app);     cout << "Unesite trazene podatke u naznacenim jedinicama" << endl;     cout << endl;     cout << "Visina tezista ogibljenih masa od ose bocne rotacije za pun vagon h0[m]:" << endl;     cin >> h0;     cout << "Ugao nesimetrije vagona eta0[°]:" << endl;     cin >> eta0;     cout << "Visina bocne rotacije u odnosu na gornju ivicu sine hc[m]:" << endl;     cin >> hc;     cout << "Rastojanje izmedju svornjaka obrtnih postolja a[m]:" << endl;     cin >> a;     cout << "Rastojanje izmedju osovina u obrtnom postolju p[m]:" << endl;     cin >> p;     cout << "Rastojanje venaca tockova 10cm ispod srednjeg kruga kotrljanja d[m]:"<< endl;     cin >> d;     cout << "Bocno pomeranje rama obrtnog postolja u odnosu na rukavac osovine q[m]:" << endl;     cin >> q;     cout << "Bocno pomeranje sanduka u odnosu na ram obrtnog postolja w[m]:" << endl;     cin >> w;     cout << "Vertikalno pomeranje usled elasticnosti opruga dhc[m]:" << endl;     cin >> dhc;     cout << "Vertikalno pomeranje usled elasticnosti konstrukcije dhe[m]:" << endl;     cin >> dhe;     cout << "Vertikalno pomeranje usled oscilovanja dhg[m]:" << endl;     cin >> dhg;     cout << "Precnik novog tocka da[m]:" << endl;     cin >> da;     cout << "Precnik tocka na granici istrosenosti di[m]:" << endl;     cin >> di;     cout << "Ekvivalentna krutost opruga jedne bocne strane vagona c[kN/m]:" << endl;     cin >> c;     cout << "Polovina bocnog rastojanja opruga b[m]:" << endl;     cin >> b;     cout << "Broj osovina nos[kom]:" << endl;     cin >> nos;     cout << "Osovinski pritisak pos[kN]:" << endl;     cin >> pos;     cout << "Tezina jednog osovinskog sklopa Gos[kN]:" << endl;     cin >> Gos;     //Izvestaj         fout << "* UNETE VREDNOSTI ZA KOJE SE RADI PRORACUN *" <<"\r\n" << endl;     fout << "Visina tezista ogibljenih masa od ose bocne rotacije za pun vagon h0="<< h0 <<"m" <<"\r\n" << endl;     fout << "Ugao nesimetrije vagona eta0=" <<eta0<< "°" <<"\r\n" << endl;     fout << "Visina bocne rotacije u odnosu na gornju ivicu sine hc=" << hc << "m" <<"\r\n" << endl;     fout << "Rastojanje izmedju svornjaka obrtnih postolja a=" << a << "m" <<"\r\n" << endl;     fout << "Rastojanje izmedju osovina u obrtnom postolju p=" << p << "m" <<"\r\n" << endl;     fout << "Rastojanje venaca tockova 10cm ispod srednjeg kruga kotrljanja d="<<d<<"m"<<"\r\n" << endl;     fout << "Bocno pomeranje rama obrtnog postolja u odnosu na rukavac osovine q="<<q<<"m" <<"\r\n" << endl;     fout << "Bocno pomeranje sanduka u odnosu na ram obrtnog postolja w=" << w << "m" <<"\r\n" << endl;     fout << "Vertikalno pomeranje usled elasticnosti opruga dhc=" << dhc << "m" <<"\r\n" << endl;     fout << "Vertikalno pomeranje usled elasticnosti konstrukcije dhe=" << dhe << "m" <<"\r\n" << endl;     fout << "Precnik novog tocka da="<< da <<"m" <<"\r\n" << endl;     fout << "Precnik tocka na granici istrosenosti di="<<di<<"m" <<"\r\n" << endl;     fout << "Ekvivalentna krutost opruga jedne bocne strane vagona c=" << c << "kN/m" <<"\r\n" << endl;     fout << "Polovina bocnog rastojanja opruga b="<<b<<"m" <<"\r\n" << endl;     fout << "Broj osovina nos="<<nos<<"kom" <<"\r\n" << endl;     fout << "Osovinski pritisak pos="<<pos<<"kN" <<"\r\n" << endl;     fout << "Tezina jednog osovinskog sklopa Gos="<<Gos<<"kN" <<"\r\n" << "\r\n" << "\r\n" << endl;         fout << "+-----------------------------+" << "\r\n" << endl;     fout << "|         PRORACUN            |" << "\r\n" << endl;     fout << "+-----------------------------+" << "\r\n" << endl;         // Odredjivanje neogibljene mase         Gnm=nos*Gos;     Gom=(nos*pos)-Gnm;     cout << "Tezina neogibljene mase: Gnm = " << Gnm << " kN" << endl;     fout << "Tezina neogibljene mase: Gnm = " << Gnm << " kN" << "\r\n" << endl;     cout << "Tezina ogibljene mase: Gom = " << Gom << " kN" << endl;     fout << "Tezina ogibljene mase: Gom = " << Gom << " kN" << "\r\n" << endl;         // Pomeranja u vertikalnom pravcu         dhh=0.5*(da-di);     dh=dhh+dhc+dhe+dhg;     cout << "Ukupno vertikalno pomeranje: dh = " << dh << " m" << endl;     fout << "Ukupno vertikalno pomeranje: dh = " << dh << " m" << "\r\n" << endl;         // Koeficijent naginjanja         S=1/(((2*c*b*b)/(Gom*h0))-1);     cout << "Koeficijent naginjanja: S = " << S << endl;     fout << "Koeficijent naginjanja: S = " << S << "\r\n" << endl;     fout.close();     }     float tacka()     {         string imefajla="izvestaj.txt";         ofstream fout(imefajla, ios::out | ios::app);         ulaznipodaci1 u1;         cout << "h1=" << u1.h << endl;         float z, z1, z2, z3;         z2=u1.h-0.5;         if (z2>0)         {             z2=u1.h-0.5;         }         else         {             z2=0;         }         z1=(S/10)*abs(((u1.h-hc)))-(0.04*z2);         if (z1>0)         {             z1=(S/10)*(abs((u1.h-hc)))-(0.04*z2);         }         else         {             z1=0;         }         z3=eta0-1;         if (z3>0)         {             float pi;             pi=3.141592654;             z3=tan((eta0-1)*pi/180);         }         else         {             z3=0;         }         z=((S/30)+z3)*(abs((u1.h-hc)))+z1;         cout << "Odstupanje od srednjeg polozaja u bocnom pravcu: z = " << z << " m" << endl;         fout << "Odstupanje od srednjeg polozaja u bocnom pravcu: z = " << z << " m" << "\r\n" << endl;         cout << "Odstupanje od srednjeg polozaja u bocnom pravcu: z1 = " << z1 << " m" << endl;         cout << "Odstupanje od srednjeg polozaja u bocnom pravcu: z2 = " << z2 << " m" << endl;         cout << "Odstupanje od srednjeg polozaja u bocnom pravcu: z3 = " << z3 << " m" << endl;         cout << "Odstupanje od srednjeg polozaja u bocnom pravcu: h = " << u1.h << " m" << endl;         fout.close();     } };

Izlaz mi je:
Citat:Vas izbor je:
m
h=1.17
B0=1.645
h1=-1.84389e-39
Odstupanje od srednjeg polozaja u bocnom pravcu: z = 0 m
Odstupanje od srednjeg polozaja u bocnom pravcu: z1 = 0 m
Odstupanje od srednjeg polozaja u bocnom pravcu: z2 = 0 m
Odstupanje od srednjeg polozaja u bocnom pravcu: z3 = 0 m
Odstupanje od srednjeg polozaja u bocnom pravcu: h = -1.84389e-39 m


Primetite da se u1.h menja iz 1.17 u -1.84389e-39...

offline
  • Pridružio: 05 Mar 2016
  • Poruke: 87

Овде си направио објекат u1, али га ниси иницијализовао (доделио основне вредности), па је променљивој h из објекта u1 (u1.h) додељено неко смеће из меморије.
ulaznipodaci1 u1; cout << "h1=" << u1.h << endl;
Вероватно си хтео овако нешто:
ulaznipodaci1 u1; u1.h = h; cout << "h1=" << u1.h << endl;

Уместо if(){}else if(){}else израза боље ти је да користиш switch:
char izborslova; cin >> izborslova: switch(izborslova){     case 'R':     case 'r': h=hR;               B0=B0R;               break;     case 'P':     case 'p': h=hP;               B0=B0P;               break;     .......................     default : cout << "Izabrali ste nepostojecu tacku" << endl;               izborslova='N'; }

offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

Napisano: 06 Apr 2018 13:15

Nisam znao da switch može i za slova da se koristi Shocked
Hvala smešak

Pre ovoga koristio sam:
float h;
h=u1.h;
...alil mi vraća istu vrednost, tj. ovu h = -1.84389e-39 m

Dopuna: 06 Apr 2018 13:30

Probao sam ovo što si napisao:
 ulaznipodaci1 u1;         float h;         u1.h=h;         cout << "h1=" << h << endl;

Izlaz je:
h1=3.25
a treba biti 1.17

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

Pa zapis ti je loš. Štampaš vrednost promenljive h koja je samo deklarisana, a ne i inicijalizovana. U tom slučaju se štampa ono što se nalazi u memoriji u trenutku deklaracije.

offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

Čekaj, ne razumem. Šta je tačno loše?
u1.h=h ili h=u1.h?

Posle izvršavanja prve klase, ja dobijam odgovarajuću vrednost h=1,17. Međutim, ja ne uspevam da pozovem 1.17 u drugoj klasi.

Ko je trenutno na forumu
 

Ukupno su 821 korisnika na forumu :: 32 registrovanih, 11 sakrivenih i 778 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: A.R.Chafee.Jr., Apok, BraneS, darkangel, Duh sa sekirom, dushan, FileFinder, galerija, Georgius, goxin, Kubovac, kybonacci, ljuba, maiden6657, milimoj, Milos ZA, moldway, Nikola00, Panonsky, pein, procesor, raptorsi, robert1979, sasa87, simazr, Srle993, stegonosa, Trpe Grozni, voja64, W123, x9, |_MeD_|