Forum » Programiranje » Microsoft visual C++ pozabo kako zacet
Microsoft visual C++ pozabo kako zacet
bisernik ::
Ja, to je manjkalo, ja. Sne vedo, da mi neki nekaj manjka, pa nisn vedel ki, pa kaj. Zakomplicirana zadeva, ja.
Tutankhamun ::
Sej če bi šu korak po koraku bi dojeu, da neki ni vredu :). Če še kej nauš vedu sam prašj ;).
AMD Phenom QUAD 9950 Black Edition, 8GB
bisernik ::
Brez skrbi, vprašanj mam zaenkrat tolk, da sploh ne vem, ki naj začnem.
Kak se pa da naret, da bi npr. tisto, kar je blo prej na ekranu, vse zginlo, pa bi napisalo novo.
Npr. ko vnesem "2" in potrdim, bi oni kvadratek iz zvezdic zginil in bi v oknu pisalo samo to, kar mi mora potem izpisat? A je tako kot je "endl" za novo vrstico, kak ukaz za novo stran, al kaj podobnega?
Pa kak se da naret, npr. da bi sam enter prtisno, pa bi šlo naprej? Np. se izpiše:"Za nadaljevanje pritisni ENTER" in potem ko stisneš enter, gre naprej in izpiše naslednje.
Kak se pa da naret, da bi npr. tisto, kar je blo prej na ekranu, vse zginlo, pa bi napisalo novo.
Npr. ko vnesem "2" in potrdim, bi oni kvadratek iz zvezdic zginil in bi v oknu pisalo samo to, kar mi mora potem izpisat? A je tako kot je "endl" za novo vrstico, kak ukaz za novo stran, al kaj podobnega?
Pa kak se da naret, npr. da bi sam enter prtisno, pa bi šlo naprej? Np. se izpiše:"Za nadaljevanje pritisni ENTER" in potem ko stisneš enter, gre naprej in izpiše naslednje.
Zgodovina sprememb…
- spremenilo: bisernik ()
Tutankhamun ::
za zbrisat konzolo
system("cls"); // na linux mislm da vpišeš "clear"
Zdej se bo pa usul folk, da ne uporablj system komande BLA BLA BLA :D. Če rabš to na hitr pol kr uporab ;). Če bi pa rad kej lepš, pa pomoje lahk to nardiš edino, če dobiš handle od konzole in jo ti direkt upravljaš (konzolne bufferčke, evente ...).
Da sam enter stisneš pa gre naprej, uporab getch()
system("cls"); // na linux mislm da vpišeš "clear"
Zdej se bo pa usul folk, da ne uporablj system komande BLA BLA BLA :D. Če rabš to na hitr pol kr uporab ;). Če bi pa rad kej lepš, pa pomoje lahk to nardiš edino, če dobiš handle od konzole in jo ti direkt upravljaš (konzolne bufferčke, evente ...).
Da sam enter stisneš pa gre naprej, uporab getch()
AMD Phenom QUAD 9950 Black Edition, 8GB
bisernik ::
Zaj mam še nekaj, pa nevem, kak se lotit...
Tu bi rad, da bi lahko izbiral med ponovno meritvijo in pa med izhodom, pa tolko krat, kolk bi htel da bi meril, bi lahko šol na začetek. Se pravi izvedem meritev, mi da na izbiro oni kvadratek, pa če stisnem "1", lahko spet vpišem podatke nove meritve, če pa stisnem "2", pa grem iz programa.
Se pravi, tak ko neki ukaz "jump to", ki te vrže na željeno vrstico v programu. Sem pa bral po forumu, da se v C++ tega treba izogibat, ker baje ne dela OK. al kaj jaz vem, da se to vse da rešit z stavki while, do, ...al nekak tak. Tu sem nakaj sprobaval, pa ne dela vredi, a se da to nakak tak?
if (ifs.is_open()) { while ( izbira_2 = 1 ) { //izpis polmera in kota meritve cout << "Trenutne nastavitve so pri polmeru " << polmer << " mm in pri kotu ure " << kot_meritve << " stopinj." << endl; //izračun konstante konstanta = ( cos ( kot_meritve * pi /180) * 360 ) / ( 2 * pi * polmer ); cout << "konstanta je : " << konstanta << endl; //izračun kota zamaknitve cout << "Vnesi izmerjeno dolzino v mm: "; cin >> meritev; kot_zamaknitve = konstanta * meritev; cout << "Kot zamaknitve med utoroma je : " << kot_zamaknitve << " stopinje." << endl; getch(); cout << endl; cout << endl; cout << endl; cout << endl; cout << " **********************" << endl; cout << " * *" << endl; cout << " * 1 - nova meritev *" << endl; cout << " * *" << endl; cout << " * 2 - izhod *" << endl; cout << " * *" << endl; cout << " **********************" << endl; cin >> izbira_2; if (izbira_2 = 2) break; }
Tu bi rad, da bi lahko izbiral med ponovno meritvijo in pa med izhodom, pa tolko krat, kolk bi htel da bi meril, bi lahko šol na začetek. Se pravi izvedem meritev, mi da na izbiro oni kvadratek, pa če stisnem "1", lahko spet vpišem podatke nove meritve, če pa stisnem "2", pa grem iz programa.
Se pravi, tak ko neki ukaz "jump to", ki te vrže na željeno vrstico v programu. Sem pa bral po forumu, da se v C++ tega treba izogibat, ker baje ne dela OK. al kaj jaz vem, da se to vse da rešit z stavki while, do, ...al nekak tak. Tu sem nakaj sprobaval, pa ne dela vredi, a se da to nakak tak?
Zgodovina sprememb…
- spremenil: Mavrik ()
Tutankhamun ::
int izbira; // meni while(true) { cout << "vpis podatkov - pritisni 1" << endl; cout << "izhod iz programa - prtisni 2" << endl; cin >> izbira; // izhod iz programa if (izbira == 2) break; else if (izbira == 1) nekafunkcija (); // klic funkcije, v kateri vpišeš nove podatke } return 0;
Naredi posebej funkcijo za vpis podatkov, da bo bol pregledno. Tko da nauš tlaču celo kodo za vpis podatkov pod if-om.
Ja goto komand ne uporabljat. Piše čisto pravilno.
AMD Phenom QUAD 9950 Black Edition, 8GB
bisernik ::
Zakaj se tu nekaj zmrda? če dam možnost, da pridem spet v meni z meritvami...
Če hočem dat možnost iz določene meritve nazaj v "meni meritve", mi javi error "'meritve' : redefinition; different type modifiers"?
#include <fstream.h> #include <math.h> #include <conio.h> int nicelna_tocka() // dolocanje nicelne tocke { double vr_utor_1, vr_utor_2, vr_utor_3, NP_X, NP_Y; int meni; cout << "Vpisi izmerjeno vrednost na prvem utoru v mm: " << endl; cin >> vr_utor_1; cout << "Vpisi izmerjeno vrednost na drugem utoru v mm: " << endl; cin >> vr_utor_2; cout << "Vpisi izmerjeno vrednost na tretjem utoru v mm: " << endl; cin >> vr_utor_3; NP_X = ( vr_utor_2 - vr_utor_3 ) / 2; NP_Y = vr_utor_1 - ( ( vr_utor_2 + vr_utor_3 ) / 2 ); cout << " Polozaj nicelne tocke je: " << endl; cout << " X-os " << NP_X << " mm." << endl; cout << " Y-os " << NP_Y << " mm." << endl; cout << endl; cout << endl; cout << " Za ponovno merjenje nicelne tocke pritisni 1" << endl; cout << " Za izhod iz programa pritisni 2" << endl; cin >> meni; if ( meni == 1 ) nicelna_tocka(); //klic "nicelna_tocka" else if ( meni == 2 ) getch(); else cout << "nepravilna izbira" << endl; } int simetrija() { int meni; double polmer, kot_meritve, kot_zamaknitve, konstanta, meritev; const double pi = 3.1415; // vnos podatkov za izračun konstante cout << "Vnesi polmer, na katerem je meritev: "; cin >> polmer; cout << "Vnesi kot med merilno uro in med pravokotnico na merjeno ravnino: "; cin >> kot_meritve; //izračun konstante konstanta = ( cos ( kot_meritve * pi /180) * 360 ) / ( 2 * pi * polmer ); cout << "konstanta je : " << konstanta << endl; //izračun kota zamaknitve cout << "Vnesi izmerjeno dolzino v mm: "; cin >> meritev; kot_zamaknitve = konstanta * meritev; cout << "kot zamaknitve med utoroma je : " << kot_zamaknitve << " stopinje." << endl; cout << endl; cout << " Za ponovno merjenje simetrije pritisni 1" << endl; cout << " Za izhod iz programa pritisni 2" << endl; cout << " Za vrnitev na meni meritev pritisni 3" << endl; cin >> meni; if ( meni == 1 ) delitev_kotov(); //klic "nicelna_tocka" else if ( meni == 2 ) getch(); else if ( meni == 3 ) meritve(); <strong>// če mam to možnost, da bi rad šol na meritve spet, // mi javi error "'meritve' : redefinition; different type modifiers"</strong> else cout << "nepravilna izbira" << endl; return 0; } int meritve() { int meni_2; cout << "Za dolocanje nicelne tocke pritisni 1" << endl; cout << "Za dolocanje delitve utorov pritisni 2" << endl; cout << "Za dolocanje simetricnosti utorov pritisni 3" << endl; cin >> meni_2; if ( meni_2 == 1 ) nicelna_tocka(); //klic "nicelna_tocka" else if ( meni_2 == 2 ) delitev_kotov(); //klic "delitev_kotov" else if ( meni_2 == 3 ) simetrija(); //klic "simetrija" else cout << "nepravilna izbira" << endl; } int main() //glavna funkcija { int meni_1; cout << "Za nastavitve pritisni 1" << endl; cout << "Za meritve pritisni 2" << endl; cin >> meni_1; if (meni_1 == 1) nastavitve(); //klic nastavitve else if (meni_1 ==2) meritve(); //klic meritve else cout << "nepravilna izbira" << endl; return 0; }
Če hočem dat možnost iz določene meritve nazaj v "meni meritve", mi javi error "'meritve' : redefinition; different type modifiers"?
Zgodovina sprememb…
- spremenil: Mavrik ()
Tutankhamun ::
tole pa ne bo šlo lih tko :).
Kot prvo, funkicja simetrija() sploh ne pozna funkcije meritve()! Kar pomeni da bi mogu pred funkcijo simetrija narest prototip funkcije meritve()!
Pa še pol prideš do rekurzije kar vrjetn sploh nočeš.
Narobe si se lotu zadeve :D
Kot prvo, funkicja simetrija() sploh ne pozna funkcije meritve()! Kar pomeni da bi mogu pred funkcijo simetrija narest prototip funkcije meritve()!
Pa še pol prideš do rekurzije kar vrjetn sploh nočeš.
Narobe si se lotu zadeve :D
AMD Phenom QUAD 9950 Black Edition, 8GB
bisernik ::
A zato je ne pozna, ker je pod njo, al kaj? Al bi moral "meritve" definirat v funkciji "simetrija"?
Kako pa naj pol nardim, da bom me drugim prišo iz "simetrija" lahko tudi nazaj v "meritve"? A morm naret še eno funkcijo to posebej, al kako?
Pa še pol prideš do rekurzije kar vrjetn sploh nočeš.
Kako pa naj pol nardim, da bom me drugim prišo iz "simetrija" lahko tudi nazaj v "meritve"? A morm naret še eno funkcijo to posebej, al kako?
Tutankhamun ::
iz simetrije sam return napiš pa boš nazaj na meritvah recimo :D.
Sej lahko use funkcije premakneš pod main funkcijo ti tut nebo prevedl ;)
Sej lahko use funkcije premakneš pod main funkcijo ti tut nebo prevedl ;)
AMD Phenom QUAD 9950 Black Edition, 8GB
bisernik ::
Nimam najbol cajta,... Emmm return, kak to misliš? A "return (ime funkcuje)" al kak? A je važn vrstni red, kak mam te funkcije po vrsti?
Z rekurzijo misliš to, da ona funkcija spet lahko kliče funkcijo, ko jo že ta ista funkcija kliče, al nekak tak... A to ne gre?
Z rekurzijo misliš to, da ona funkcija spet lahko kliče funkcijo, ko jo že ta ista funkcija kliče, al nekak tak... A to ne gre?
Tutankhamun ::
zakaj ne nardiš tko kot sm ti napisu kodo zgoraj?
Če že tlačš v usako funkcijo kodo za branje s tipkovnce, naredi while v usaki zanki, ne delat tko da funkcije spet pokliče samo sebe... Sej to gre, ampak je nepotrebno in brez veze v tvojem primeru.
return sm mislu, prekinitev funkcije. Ja je važn vrstni red kako jih napišeš zaradi compilerja.
Sej če nau šlo reč, pa ti bom spisu mal kode kako sm mislu da bi lahk naredu.
Če že tlačš v usako funkcijo kodo za branje s tipkovnce, naredi while v usaki zanki, ne delat tko da funkcije spet pokliče samo sebe... Sej to gre, ampak je nepotrebno in brez veze v tvojem primeru.
return sm mislu, prekinitev funkcije. Ja je važn vrstni red kako jih napišeš zaradi compilerja.
Sej če nau šlo reč, pa ti bom spisu mal kode kako sm mislu da bi lahk naredu.
AMD Phenom QUAD 9950 Black Edition, 8GB
Tutankhamun ::
Me ceu vikend ni blo... Sm neki na hitrco naredu. Nč nisem sprobal, tako da ne vem če deluje 100%. Boš mogu sam sprobat.
void nicelna_tocka() // dolocanje nicelne tocke { double vr_utor_1, vr_utor_2, vr_utor_3, NP_X, NP_Y; cout << "Vpisi izmerjeno vrednost na prvem utoru v mm: " << endl; cin >> vr_utor_1; cout << "Vpisi izmerjeno vrednost na drugem utoru v mm: " << endl; cin >> vr_utor_2; cout << "Vpisi izmerjeno vrednost na tretjem utoru v mm: " << endl; cin >> vr_utor_3; NP_X = ( vr_utor_2 - vr_utor_3 ) / 2; NP_Y = vr_utor_1 - ( ( vr_utor_2 + vr_utor_3 ) / 2 ); cout << " Polozaj nicelne tocke je: " << endl; cout << " X-os " << NP_X << " mm." << endl; cout << " Y-os " << NP_Y << " mm." << endl; cout << endl; cout << endl; } void simetrija() { int meni; double polmer, kot_meritve, kot_zamaknitve, konstanta, meritev; const double pi = 3.1415; // vnos podatkov za izračun konstante cout << "Vnesi polmer, na katerem je meritev: "; cin >> polmer; cout << "Vnesi kot med merilno uro in med pravokotnico na merjeno ravnino: "; cin >> kot_meritve; //izračun konstante konstanta = ( cos ( kot_meritve * pi /180) * 360 ) / ( 2 * pi * polmer ); cout << "konstanta je : " << konstanta << endl; //izračun kota zamaknitve cout << "Vnesi izmerjeno dolzino v mm: "; cin >> meritev; kot_zamaknitve = konstanta * meritev; cout << "kot zamaknitve med utoroma je : " << kot_zamaknitve << " stopinje." << endl; } int meni_nicelnaTocka() { int izbira; while(true) { nicelna_tocka(); //klic "nicelna_tocka" while(true) { cout << " Za ponovno merjenje nicelne tocke pritisni 1" << endl; cout << " Za izhod iz programa pritisni 2" << endl; cin >> izbira; if (izbira == 1) break; else if (izbira == 2) return -1; else cout << "nepravilna izbira" << endl; } } return 0; } int meni_simetrija() { int izbira; while(true) { simetrija(); //klic "simetrija" while(true) { cout << endl; cout << " Za ponovno merjenje simetrije pritisni 1" << endl; cout << " Za izhod iz programa pritisni 2" << endl; cout << " Za vrnitev na meni meritev pritisni 3" << endl; cin >> izbira; if (izbira == 1) break; //klic "simetrija" else if (izbira == 2) return -1; else if (izbira == 3) return 0; else cout << "nepravilna izbira" << endl; } } return 0; } int nastavitve() { // bla bla ... return 0; } int meni_meritve() { int izbira; int ret; while(true) { cout << "Za dolocanje nicelne tocke pritisni 1" << endl; cout << "Za dolocanje delitve utorov pritisni 2" << endl; cout << "Za dolocanje simetricnosti utorov pritisni 3" << endl; cout << "Za izhod pritisni 4" << endl; cin >> izbira; if (izbira == 1) { ret = nicelna_tocka(); //klic "nicelna_tocka" } else if (izbira == 2) { ret = delitev_kotov(); //klic "delitev_kotov" } else if (izbira == 3) { ret = simetrija(); //klic "simetrija" } else if (izbira == 4) return -1; //izhod else cout << "nepravilna izbira" << endl; if (ret == -1) return -1; } return 0; } int main(int argc, char* argv[]) { int izbira; int ret = 0; while(ret != -1) { cout << "Za nastavitve pritisni 1" << endl; cout << "Za meritve pritisni 2" << endl; cout << "Za izhod pritisni 3" << endl; cin >> izbira; if(izbira == 1) nastavitve(); else if(izbira == 2) ret = meni_meritve(); else if (izbira == 3) ret = -1; else cout << "nepravilna izbira" << endl; } _getch(); return 0; }
AMD Phenom QUAD 9950 Black Edition, 8GB
Zgodovina sprememb…
- spremenil: Tutankhamun ()
bisernik ::
Hvala, zadeva dela, enih par napakic mi je najdlo pri kompajlanju, sem jih odpravil, in zaj dela.
Zdaj me zanima enih par stvari, ker je v kodi marsikaj takega, kar še sploh videl nisn, al pa se mi samo napol sanja, kaj naj bi blo.
int ret;
Pod "main" si dal pa int izbira;
int ret = 0; - tu je enako 0, zgor pa ne.
Pa Zakaj si mogo dat tu zraven še ret?
Zdaj me zanima enih par stvari, ker je v kodi marsikaj takega, kar še sploh videl nisn, al pa se mi samo napol sanja, kaj naj bi blo.
void nicelna_tocka() // dolocanje nicelne tockeA si se tu zmoto, ko si dal "void"? Ker mi je javilo napako in sem spremenil v "int" in zaj je vredi, tudi dela OK, kolk sm sprobal.
int meni_nicelnaTocka() 047.{ 048. int izbira; 049. 050. while(true) // zakaj more bit "true" v oklepaju, oz. kaj pomeni? 051. { 052. nicelna_tocka(); //klic "nicelna_tocka" 053. 054. while(true) 055. { 056. cout << " Za ponovno merjenje nicelne tocke pritisni 1" << endl; 057. cout << " Za izhod iz programa pritisni 2" << endl; 058. cin >> izbira; 059. 060. if (izbira == 1) 061. break; 062. else if (izbira == 2) 063. return -1; // zakaj more bit -1? 064. else 065. cout << "nepravilna izbira" << endl; 066. } 067. } 068. 069. return 0; 070.}Vprašanja so kot komentarji pr stavkih...
int meni_meritve() 110.{ 111. int izbira; 112. int ret; 113. 114. while(true) 115. { 116. cout << "Za dolocanje nicelne tocke pritisni 1" << endl; 117. cout << "Za dolocanje delitve utorov pritisni 2" << endl; 118. cout << "Za dolocanje simetricnosti utorov pritisni 3" << endl; 119. cout << "Za izhod pritisni 4" << endl; 120. cin >> izbira; 121. 122. if (izbira == 1) 123. { 124. ret = nicelna_tocka(); //klic "nicelna_tocka" 125. } 126. else if (izbira == 2) 127. { 128. ret = delitev_kotov(); //klic "delitev_kotov" 129. } 130. else if (izbira == 3) 131. { 132. ret = simetrija(); //klic "simetrija" 133. } 134. else if (izbira == 4) 135. return -1; //izhod 136. else 137. cout << "nepravilna izbira" << endl; 138. 139. if (ret == -1) 140. return -1; 141. } 142. 143. return 0; 144.} 145. 146. 147.int main(int argc, char* argv[]) // kaj pomeni to v oklepaju? 148.{ 149. int izbira; 150. int ret = 0; 151. 152. while(ret != -1) 153. { 154. cout << "Za nastavitve pritisni 1" << endl; 155. cout << "Za meritve pritisni 2" << endl; 156. cout << "Za izhod pritisni 3" << endl; 157. cin >> izbira; 158. 159. if(izbira == 1) 160. nastavitve(); 161. else if(izbira == 2) 162. ret = meni_meritve(); 163. else if (izbira == 3) 164. ret = -1; 165. else 166. cout << "nepravilna izbira" << endl; 167. } 168. 169. getch(); 170. 171. return 0; 172.}Zakaj si dal pod "meni izbira" int izbira;
int ret;
Pod "main" si dal pa int izbira;
int ret = 0; - tu je enako 0, zgor pa ne.
Pa Zakaj si mogo dat tu zraven še ret?
Tutankhamun ::
1. void sem dal pred funkcijo, ker funkcija nič ne vrača. Ni nobenega return x;. Kaj ti pa compiler javi?
2. while(true): while je zanka, ki se ponavlja dokler je pogoj true, to vrjetno veš. Če pa kot pogoj vpišeš true, pa pomeni da je pogoj vedno true in pol izpade kot neskončna zanka. Jo moreš prekint z break, če jo hočeš zaključit.
3. Zakaj -1. To sem dal zato, da funkcija meni_meritve in main ve da more program končat. Lahk daš kej druzga sej ni nujno da je -1. Pač sm si zmislu eno številko :D.
4. Aja tist v main funkciji lahko tudi ven zbrišeš. To samo pomeni če tvoj program zaženeš s kšnimi parametri jih lahko preko teh spremenljivk prebereš.
5. zakaj ret = 0; v main. Zato ker ma while zanka pogoj če je ret različn od -1. Samo inicializirov sm ret, da bo zanka najmanj enkrat šla skozi. Pa nč nism mogu dat, js sm se pač tko odloču da bom naredu :).
Sej je fuul težko razložit zakaj pa kako tkole na forumu... Če ti kej nau jasn ti predlagam če maš skajp al pa msn, da mi u ZS to napišeš, pa se tm zmenva. Če ti bo kej laži.
2. while(true): while je zanka, ki se ponavlja dokler je pogoj true, to vrjetno veš. Če pa kot pogoj vpišeš true, pa pomeni da je pogoj vedno true in pol izpade kot neskončna zanka. Jo moreš prekint z break, če jo hočeš zaključit.
3. Zakaj -1. To sem dal zato, da funkcija meni_meritve in main ve da more program končat. Lahk daš kej druzga sej ni nujno da je -1. Pač sm si zmislu eno številko :D.
4. Aja tist v main funkciji lahko tudi ven zbrišeš. To samo pomeni če tvoj program zaženeš s kšnimi parametri jih lahko preko teh spremenljivk prebereš.
5. zakaj ret = 0; v main. Zato ker ma while zanka pogoj če je ret različn od -1. Samo inicializirov sm ret, da bo zanka najmanj enkrat šla skozi. Pa nč nism mogu dat, js sm se pač tko odloču da bom naredu :).
Sej je fuul težko razložit zakaj pa kako tkole na forumu... Če ti kej nau jasn ti predlagam če maš skajp al pa msn, da mi u ZS to napišeš, pa se tm zmenva. Če ti bo kej laži.
AMD Phenom QUAD 9950 Black Edition, 8GB
bisernik ::
1. void sem dal pred funkcijo, ker funkcija nič ne vrača. Ni nobenega return x;. Kaj ti pa compiler javi?
Compiler mi javi, da ne more spremenit iz "void" v "int".
Zgodovina sprememb…
- spremenilo: bisernik ()
Tutankhamun ::
pa pust int. Ampak moreš pol return v funkciji izvest.
Ker compiler pa sploh maš?
Ker compiler pa sploh maš?
AMD Phenom QUAD 9950 Black Edition, 8GB
bisernik ::
ja, return sn dal na koncu, v tvojem programu ni blo. Enih par malenkosti sm mogo spremenit, da zaj dela. Ker kompajler pa mam, to pa sploh ne vem... Ki pa tej to vidiš? A so različni?
Tutankhamun ::
ja sej zato ker si dal return not, pol ne moreš met void funkcije. Če pa maš brez returna pol je pa void. Pomeni da funkcija ne vrača nič.
AMD Phenom QUAD 9950 Black Edition, 8GB
napsy ::
Lahko returnaš tudi iz void funkcije. To narediš tako, da ne podaš nobene vrednosti.
"If you die, you die. But when you live you live. There is no time to waste."
Tutankhamun ::
ja to je res. Ampak ne vračaš nič. To sm hotu povedat.
AMD Phenom QUAD 9950 Black Edition, 8GB
bisernik ::
Aja, pol sn jaz zakompliciro najbrž.
...Ja, samo glih tak ne gre... Sn spremenil nazaj na "void", pa zbrisal "Return 0", pa mi glih tak ne gre. Compiler mi spet javi napako: "error C2440: '=' : cannot convert from 'void' to 'int'"
...Ja, samo glih tak ne gre... Sn spremenil nazaj na "void", pa zbrisal "Return 0", pa mi glih tak ne gre. Compiler mi spet javi napako: "error C2440: '=' : cannot convert from 'void' to 'int'"
Zgodovina sprememb…
- spremenilo: bisernik ()
napsy ::
Nimaš vseh stvari razčiščenih. Predlagam da si dobiš kakšno dobro C++ knjigo in jo preučiš.
"If you die, you die. But when you live you live. There is no time to waste."
bisernik ::
Nimam se cajta nevemkolk ukvarjat s tem, to pač probavam malo. Za nevemkako resno programiranje tak nisn dost pametn. Saj to, kar sem najprej planiral, zdaj dela. To kar zaj probavam s temi meniji sem pa tja, pa še nisn delal nikol. Mogoč bi blo fajn dobit kako knjigo. Kadar mam pač cajt, pač probavam malo.
bisernik ::
Heh, zaj mi je začuda uspelo nasrat skup vse, tako kot sn mislo... Mam par podprogramcicev in enga za shranjevat podatke. Kolk sn probaval, vse lepo dela. Zaj zgleda tak to moje čudo:
Mogoč bom še kaj zatežil v tej temi, če bom še se kaj špilal, pa sprobaval.
Hvala vsem, ki ste si vzeli cajt za moja "globokoumna" vprašanja, posebno tutankhamunu.
#include <fstream.h> #include <math.h> #include <conio.h> int nastavitve() // nastavitve { double polmer, kot_meritve, faktor_razlike; const double pi = 3.1415; ifstream ifs; ifs.open ("datoteka"); if (ifs.is_open()) { // vnos podatkov za izračun faktorja razlike cout << "Vnesi polmer kroznice, na kateri poteka meritev (v mm): " << endl; cin >> polmer; cout << "Vnesi kot med merilno uro in med pravokotnico na merjeno ravnino (v stopinjah):" << endl; cin >> kot_meritve; //izračun konstante faktor_razlike = ( cos ( kot_meritve * pi /180) * 360 ) / ( 2 * pi * polmer ); cout << "faktor_razlike je : " << faktor_razlike << endl; cout << endl; // shranjevanje podatkov v datoteko ofstream ofs; ofs.open("datoteka"); ofs << faktor_razlike <<" "; ofs << polmer <<" "; ofs << kot_meritve; ofs.close(); //izpis polmera in kota meritve cout << "Nove nastavitve so pri polmeru " << polmer << " mm in pri kotu ure " << kot_meritve << " stopinj." << endl; } getch(); return 0; } int nicelna_tocka() // dolocanje nicelne tocke { double vr_utor_1, vr_utor_2, vr_utor_3, NP_X, NP_Y; cout << "Vpisi izmerjeno vrednost na prvem utoru v stotinkah mm: "; cin >> vr_utor_1; cout << "Vpisi izmerjeno vrednost na drugem utoru v stotinkah mm: "; cin >> vr_utor_2; cout << "Vpisi izmerjeno vrednost na tretjem utoru v stotinkah mm: "; cin >> vr_utor_3; cout << endl; NP_X = ( vr_utor_2 - vr_utor_3 ) / 200 ; NP_Y = ( ( ( vr_utor_2 + vr_utor_3 ) / 2 ) - vr_utor_1 ) / 200 ; cout << "Polozaj nicelne tocke je: " << endl; cout << "X-os: " << NP_X << " mm." << endl; cout << "Y-os: " << NP_Y << " mm." << endl; cout << endl; if ( NP_X < 0 ) cout << "Premakni nicelno tocko za " << fabs(NP_X) << " mm v plus po X-osi!" << endl; else if ( NP_X > 0 ) cout << "Premakni nicelno tocko za " << fabs(NP_X) << " mm v minus po X-osi!" << endl; else if (NP_X == 0 ) cout << "Premik po X-osi ni potreben!" << endl; if ( NP_Y < 0 ) cout << "Premakni nicelno tocko za " << fabs(NP_Y) << " mm v plus po Y-osi!" << endl; else if ( NP_Y > 0 ) cout << "Premakni nicelno tocko za " << fabs(NP_Y) << " mm v minus po Y-osi!" << endl; else if (NP_Y == 0 ) cout << "Premik po Y-osi ni potreben!" << endl; getch(); return 0; } int simetrija() // določanje simetrije { double polmer, kot_meritve, kot_zamaknitve1, kot_zamaknitve2, kot_zamaknitve3, faktor_razlike, meritev1, meritev2, meritev3; ifstream ifs; ifs.open ("datoteka"); ifs >> faktor_razlike; ifs >> polmer; ifs >> kot_meritve; //izpis polmera in kota meritve cout << "Trenutne nastavitve so pri polmeru " << polmer << " mm in pri kotu ure " << kot_meritve << " stopinj." << endl; cout << endl; cout << "Vnesi prvo izmerjeno dolzino zamaknitve med utoroma v stotinkah mm: "; cin >> meritev1; cout << "Vnesi drugo izmerjeno dolzino zamaknitve med utoroma v stotinkah mm: "; cin >> meritev2; cout << "Vnesi tretjo izmerjeno dolzino zamaknitve med utoroma v stotinkah mm: "; cin >> meritev3; cout << endl; // izračun kota zamaknitve kot_zamaknitve1 = faktor_razlike * meritev1 / 100; cout << "Kot zamaknitve med prvima utoroma je : " << kot_zamaknitve1 << " stopinje." << endl; kot_zamaknitve2 = faktor_razlike * meritev2 / 100; cout << "Kot zamaknitve med drugima utoroma je : " << kot_zamaknitve2 << " stopinje." << endl; kot_zamaknitve3 = faktor_razlike * meritev3 / 100; cout << "Kot zamaknitve med tretjima utoroma je : " << kot_zamaknitve3 << " stopinje." << endl; cout << endl; if ( kot_zamaknitve1 < 0 ) cout <<"Rotiraj utor 1 za: " << -(kot_zamaknitve1) <<" (v nasprotni smeri ure)!" << endl; else if ( kot_zamaknitve1 > 0 ) cout <<"Rotiraj utor 1 za: " << -(kot_zamaknitve1) <<" (v smeri ure)!" << endl; else if ( kot_zamaknitve1 == 0 ) cout <<"Rotacija prvega utora ni potrebna" << endl; if ( kot_zamaknitve2 < 0 ) cout <<"Rotiraj utor 2 za: " << -(kot_zamaknitve2) <<" (v nasprotni smeri ure)!" << endl; else if ( kot_zamaknitve1 > 0 ) cout <<"Rotiraj utor 2 za: " << -(kot_zamaknitve2) <<" (v smeri ure)!" << endl; else if ( kot_zamaknitve2 == 0 ) cout <<"Rotacija drugega utora ni potrebna" << endl; if ( kot_zamaknitve3 < 0 ) cout <<"Rotiraj utor 3 za: " << -(kot_zamaknitve3) <<" (v nasprotni smeri ure)!" << endl; else if ( kot_zamaknitve3 > 0 ) cout <<"Rotiraj utor 3 za: " << -(kot_zamaknitve3) <<" (v smeri ure)!" << endl; else if ( kot_zamaknitve3 == 0 ) cout <<"Rotacija tretjega utora ni potrebna" << endl; getch(); return 0; } int delitev() // dolocanje delitve kotov { double meritev1_2, meritev2_3, meritev3_1, sr_vr, faktor_razlike, odstopanje1_2, odstopanje2_3, odstopanje3_1; const double pi = 3.1415; ifstream ifs; ifs.open ("datoteka"); ifs >> faktor_razlike; //vnos kotov med utori cout << "vnesi namerjeno vrednost med utoroma 1 in 2 v stotinkah mm: "; cin >> meritev1_2; cout << "vnesi namerjeno vrednost med utoroma 2 in 3 v stotinkah mm: "; cin >> meritev2_3; cout << "vnesi namerjeno vrednost med utoroma 3 in 1 v stotinkah mm: "; cin >> meritev3_1; cout << endl; //izracun srednje vrednosti sr_vr = (meritev1_2 / 100 + meritev2_3 / 100 + meritev3_1 / 100) / 3; //izračun odstopanja od srednje vrednosti odstopanje1_2 = ( sr_vr - meritev1_2 / 100 ) * faktor_razlike; odstopanje2_3 = ( sr_vr - meritev2_3 / 100 ) * faktor_razlike; odstopanje3_1 = ( sr_vr - meritev3_1 / 100 ) * faktor_razlike; //izpis kotov med utori cout << endl; cout << endl; cout <<"kot med utoroma 1 in 2 je: "<< 120 - odstopanje1_2 << endl; cout <<"kot med utoroma 2 in 3 je: "<< 120 - odstopanje2_3 << endl; cout <<"kot med utoroma 3 in 1 je: "<< 120 - odstopanje3_1 << endl; cout << endl; cout << endl; //izpis srednje vrednosti in odstopanj //cout <<"srednja vrednost je : "<< sr_vr << endl; //cout <<"odstopanje kota med utoroma 1 in 2 je: "<< odstopanje1_2 << endl; //cout <<"odstopanje kota med utoroma 2 in 3 je: "<< odstopanje2_3 << endl; //cout <<"odstopanje kota med utoroma 3 in 1 je: "<< odstopanje3_1 << endl; //izbira nacina izracuna if ((odstopanje1_2 > 0.001) && (odstopanje2_3 > 0.001) && (odstopanje3_1 < -0.001)) { cout <<"Rotiraj utor 1 za: " << -(odstopanje1_2) <<" (v smeri ure)!" << endl; cout <<"Rotiraj utor 3 za: " << (odstopanje2_3) <<" (v nasprotni smeri ure)!" << endl; } else if ((odstopanje1_2 < -0.001) && (odstopanje2_3 > 0.001) && (odstopanje3_1 > 0.001)) { cout <<"Rotiraj utor 1 za: " << odstopanje3_1 <<" (v nasprotni smeri ure)!" << endl; cout <<"Rotiraj utor 2 za: " << -odstopanje2_3 <<" (v smeri ure)!" << endl; } else if ((odstopanje1_2 > 0.001) && (odstopanje2_3 < -0.001) && (odstopanje3_1 > 0.001)) { cout <<"Rotiraj utor 2 za: " << odstopanje1_2 <<" (v nasprotni smeri ure)!" << endl; cout <<"Rotiraj utor 3 za: " << -odstopanje3_1 <<" (v smeri ure)!" << endl; } else if ((odstopanje1_2 < -0.001) && (odstopanje2_3 < -0.001) && (odstopanje3_1 > 0.001)) { cout <<"Rotiraj utor 1 za: " << -odstopanje1_2 <<" (v nasprotni smeri ure)!" << endl; cout <<"Rotiraj utor 3 za: " << odstopanje2_3 <<" (v smeri ure)!" << endl; } else if ((odstopanje1_2 > 0.001) && (odstopanje2_3 < -0.001) && (odstopanje3_1 < -0.001)) { cout <<"Rotiraj utor 1 za: " << odstopanje3_1 <<" (v smeri ure)!" << endl; cout <<"Rotiraj utor 2 za: " << -odstopanje2_3 <<" (v nasprotni smeri ure)!" << endl; } else if ((odstopanje1_2 < -0.001) && (odstopanje2_3 > 0.001) && (odstopanje3_1 < -0.001)) { cout <<"Rotiraj utor 2 za: " << odstopanje1_2 <<" (v smeri ure)!" << endl; cout <<"Rotiraj utor 3 za: " << -odstopanje3_1 <<" (v nasprotni smeri ure)!" << endl; } else if ((odstopanje1_2 + odstopanje2_3 < 0.001) && (odstopanje3_1 < 0.001)) { if (odstopanje2_3 < -0.001) cout <<"Rotiraj utor 2 za: " << odstopanje1_2 <<" (v nasprotni smeri ure)!" << endl; else if (odstopanje2_3 > 0.001) cout <<"Rotiraj utor 2 za: " << odstopanje1_2 <<" (v smeri ure)!" << endl; } else if ((odstopanje2_3 + odstopanje3_1 < 0.001) && (odstopanje1_2 < 0.001)) { if (odstopanje3_1 < -0.001) cout <<"Rotiraj utor 3 za: " << odstopanje2_3 <<" (v nasprotni smeri ure)!" << endl; else if (odstopanje3_1 > 0.001) cout <<"Rotiraj utor 3 za: " << odstopanje2_3 <<" (v smeri ure)!" << endl; } else if ((odstopanje3_1 + odstopanje1_2 < 0.001) && (odstopanje2_3 < 0.001)) { if (odstopanje1_2 < -0.001) cout <<"Rotiraj utor 1 za: " << odstopanje3_1 <<" (v nasprotni smeri ure)!" << endl; else if (odstopanje1_2 > 0.001) cout <<"Rotiraj utor 1 za: " << odstopanje3_1 <<" (v smeri ure)!" << endl; } if (fabs (odstopanje1_2) + fabs (odstopanje2_3) + fabs ( odstopanje3_1) < 0.001) cout <<"Vsi koti med utori so enaki, korekcija ni potrebna!" << endl; cout << endl; getch(); return 0; } int meni() // meni { int izbira; while (true) { cout << endl; cout << endl; cout << " **************************" << endl; cout << " * *" << endl; cout << " * 1 - nastavitve *" << endl; cout << " * 2 - nicelna tocka *" << endl; cout << " * 3 - simetrija *" << endl; cout << " * 4 - delitev *" << endl; cout << " * 5 - izhod *" << endl; cout << " * *" << endl; cout << " **************************" << endl; cout << endl; cout << endl; cin >> izbira; if ( izbira == 1 ) nastavitve(); else if ( izbira == 2 ) nicelna_tocka(); else if ( izbira == 3 ) simetrija(); else if ( izbira == 4 ) delitev(); else if ( izbira == 5 ) return -1; else cout << "Nepravilna izbira!" << endl; } getch(); return 0; } int main() // glavna funkcija { cout << endl; cout << endl; cout << endl; cout << endl; cout << endl; cout << endl; cout << " **************************************************"<< endl; cout << " * *"<< endl; cout << " * Program za obdelavo izmerjenih vrednosti *"<< endl; cout << " * *"<< endl; cout << " **************************************************"<< endl; cout << endl; cout << endl; getch (); meni(); return 0; }
Mogoč bom še kaj zatežil v tej temi, če bom še se kaj špilal, pa sprobaval.
Hvala vsem, ki ste si vzeli cajt za moja "globokoumna" vprašanja, posebno tutankhamunu.
Zgodovina sprememb…
- spremenilo: bisernik ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | USB-C (Thunderbolt) - DP alt modeOddelek: Zvok in slika | 2057 (1662) | Mavrik |
» | NHL FINALE - debata 2 poizkus (strani: 1 2 3 )Oddelek: Loža | 12269 (7683) | fantasycamp |
» | [c#] Meni s pomočjo switch stavkaOddelek: Programiranje | 809 (748) | Looooooka |
» | Python, prosim za pomoc pri programiranju (strani: 1 2 3 )Oddelek: Programiranje | 14058 (10160) | lenika |
» | "Ta prava" inflacija?Oddelek: Loža | 2082 (1075) | Hammer123 |