Kako očistiti prozor i pokrenuti iznova?

1

Kako očistiti prozor i pokrenuti iznova?

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

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: 88

Пробај уместо 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: 10910

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: 88

Што се тиче вектора не могу ти помоћи, изветрело одавно. 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: 4576

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: 10910

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: 88

Овде си направио објекат 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: 10910

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: 14825
  • 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: 10910

Č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 1191 korisnika na forumu :: 80 registrovanih, 6 sakrivenih i 1105 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., alexbr, Asteker, Avalon015, babaroga, Ben Roj, Bivan, Bobrock1, bojcistv, Boxy, bpop, brause, Car89, Centauro, darionis, darkkran, dozorni, draganl, Duh16, eagle.rs, FOX, france93, Glauber, Igor Antonic, Igritelj, InzenjerBL, istina, Jeremiah, jodzula, Jose, kendzo-andzo-boni-fju, komsija1, Kriglord, Kruger, kybonacci, lacko, Leonov, Lester Freamon, Lošmi, lucko1, luka1978, Miki01, milikonst, milutin134, mishkooo, mocnijogurt, moldway, nelezele, oddsock, Papadubi, pein, pera bager, perko91, PlayerOne, Pohovani_00, procesor, radoznao, RajkoB, Savantije, sekretar, Shajlok, Srpska zauvjek, sspp, Stoilkovic, taackee, Teodor60, Tila Painen, Tribal, vjetar, Vlad000, vojnik švejk, x9, Zanim98, zdrebac, Zec, zokilivac, zombicar153, Zoran1959, Đurđevdan, 800077