szilard5 Posted Február 14, 2009 Share Posted Február 14, 2009 Hali Elkezdtem tanulni a nyelvet, de már az elején probléma lépett fel,annak ellenére hogy mindent ugyanúgy csinálok mint a könyvben van(könyv: Kezdőkönyv a programozásról) Hiba: Nemértem mi a baj. Valaki tud segíteni? (várhatóan ahogy tanulok, több kérdés/gond is lesz...) És nem arról van szó hogy nem próbálgattam, de már nem tudok mit tenni. szili Idézés Link to comment Share on other sites More sharing options...
hajani Posted Február 14, 2009 Share Posted Február 14, 2009 így próbáld: #include <iostream> (vagy <iostream.h>) Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 14, 2009 Author Share Posted Február 14, 2009 val volt, nemvoltjó, de el sem jó... :S így néz ki a kód #include void main() { int x; cout << "Adjon meg egy szamot 1 tol 10 ig!"; cin >> x if (y == 7) { cout << "Ön nyert!" < cout << "Köszönjük a részvételt!" << endl; } else { cout << " Köszönjük hogy résztvett,de nem nyert!" << endl; } } Idézés Link to comment Share on other sites More sharing options...
furo80 Posted Február 14, 2009 Share Posted Február 14, 2009 Van üres karakter az '#include' és az '<iostream>' között? Ha van, akkor írd egybe: #include <iostream> Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 14, 2009 Author Share Posted Február 14, 2009 nem ez a hiba, úgy sem működik. még valakinek valami tipp? :\ (az eddigieket köszönöm) Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 14, 2009 Author Share Posted Február 14, 2009 direkt nem editelem: már csak 1 hibát ír ki: Idézés Link to comment Share on other sites More sharing options...
Pörköltszaft Posted Február 14, 2009 Share Posted Február 14, 2009 ha 'x'-et deklarált miért 'y'-ra tesztelsz?? (7. sor, mint ahogy a compiler írja is) Idézés Link to comment Share on other sites More sharing options...
hajani Posted Február 15, 2009 Share Posted Február 15, 2009 az if előtt amikor beolvasod az x változót, nem raktál ;-t a sor végére (az más kérdés, hogy nincs y változó) Idézés Link to comment Share on other sites More sharing options...
Marky18 Posted Február 15, 2009 Share Posted Február 15, 2009 Igen, mikor átfutottam ez jutott először eszembe. Nem ismerem pontosan, hogyan kellene megoldani, de szerintem ezt javítsd ki. Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 15, 2009 Author Share Posted Február 15, 2009 az y-t már kijavítottam x re, csak nem írtam. a probléma fennáll, bár már nem 7 est ír ki a hiba elé hanem 14 est: íme a kód és a hiba a fordítás közben. ha valakinek van ötlet, szólhat:) borland 5.5 ös a fordító. létrelett hozva a 2 .cfg fájl, amit a telepítés után létrekellett hozni. Idézés Link to comment Share on other sites More sharing options...
hajani Posted Február 15, 2009 Share Posted Február 15, 2009 A 14. sorban a sor végén ott van még hogy "<<" cout << "Köszönjük hogy résztvett,de nem nyert" << ; azt kellene leszedni (vagy utánaírni h endl) Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 15, 2009 Author Share Posted Február 15, 2009 megy :DDDDDD ezer köszi. Idézés Link to comment Share on other sites More sharing options...
enisz Posted Február 15, 2009 Share Posted Február 15, 2009 de van rá egy ezresem, hogy fingod sincs miért a compiler nem véletlenül dobja vissza a hibaüziket... szerintem nem c++al kéne kezdened, hanem sima c-vel... de ahogy gondolod Idézés Link to comment Share on other sites More sharing options...
Marky18 Posted Február 16, 2009 Share Posted Február 16, 2009 Hát igen.... Nem elég, hogy menjen a program, értened is kell a kódot. A C++ nem éppen a kezdő-tanuló programozóknak való Ez még csak szintaktikai hiba volt, de később már lehet jó a kódod, de nem azt csinálja majd, amit te szeretnél! Olyankor gubanc lesz.... Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 16, 2009 Author Share Posted Február 16, 2009 az eddigieket értem, bár hogy oda miért kellett " ; " nem teljesen. ezenkívül maga a megírt program sem működik túl jól,ugyanis kiadja hogy Adjak meg egy számot 1 től 10 ig, beírom, és egyszerűen enter után kilép. hogy miért ez amit nézegetek: a könyvre tudok csak hivatkozni. először a javascriptről írt 1-2 dolgot,felépítése, ilyesmik, az ment,é s ezután jött ez a fejezet. a könyv maga teljesen tudatlanoknak készült,akik most hallottak először erről, gondoltam biztos tudja a szerző hogy s mint...:S edit: igaázból megy, de csak akkor ha nem simán nyitom meg, hanem parancssorból. és akkor sem ismeri fel a különlegesebb karaktereket(Ő Ű Í stb) Idézés Link to comment Share on other sites More sharing options...
Marky18 Posted Február 16, 2009 Share Posted Február 16, 2009 Hmm.... kellene valami parancs, ami a kiíratás után egy eseményre (pl. billentyű lenyomása) vár. Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 16, 2009 Author Share Posted Február 16, 2009 a teljes függvényt bemásoltam még 9 szer. (ez elég amatőr megoldás, de logikus ) így ha nem találod el a számot, kiadja újra hogy adjak meg egy számot 1 és 10 között így az megoldva. ez a program sikeresen elkészült, és 1-2 dolgot meg is tapasztaltam. délután csináltam egy másikat. #include void main() { float num1; float num2; char op; float ans; cout << "Kerem, adjon meg egy szamot:"; cin >> num1; cout << "Kerem adjon meg megegy szamot:"; cin >> num2; cout << "A ket szam osszeget az 'a' billentyu lenyomasaval kapja meg" << endl <<"A ket szam kulonbseget az 's' billentyu lenyomasaval kapja meg" << endl << "A ket szam szorzatat a 'm' billentyu lenyomasaval kapja meg" << endl << "A ket szam hanyadosat a 'd' billentyu lenyomasaval kapja meg" << endl; cin >> op; if (op == 65) ans = num1 + num2; if (op == 83) ans = num1 - num2; if (op == 77) ans = num1 * num2; if (op == 68) ans = num1 / num2; cout << " Az eredmeny: " << ans << endl; } } ez a kód. ezzel az egyetlen baj, hogy miután megadom a 2 számot, és benyomom pl az s betűt, enter, és ezután záródik be az egész.(tehát nem látom a megoldást) ide már tényleg fog kelleni valami,ami várja a billentyű lenyomást,és csak utána záródik be. Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Február 16, 2009 Share Posted Február 16, 2009 getchar(); gondolom windows: system("pause"); Én így csináltam egyszer régen talán. Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 17, 2009 Author Share Posted Február 17, 2009 #include void main() { float num1; float num2; char op; float ans; cout << "Kerem, adjon meg egy szamot:"; cin >> num1; cout << "Kerem adjon meg megegy szamot:"; cin >> num2; cout << "A ket szam osszeget az 'a' billentyu lenyomasaval kapja meg" << endl <<"A ket szam kulonbseget az 's' billentyu lenyomasaval kapja meg" << endl << "A ket szam szorzatat a 'm' billentyu lenyomasaval kapja meg" << endl << "A ket szam hanyadosat a 'd' billentyu lenyomasaval kapja meg" << endl; cin >> op; if (op == 65) ans = num1 + num2; if (op == 83) ans = num1 - num2; if (op == 77) ans = num1 * num2; if (op == 68) ans = num1 / num2; cout << " Az eredmeny: " << ans << endl; system("pause"); } a kiemelt rész miatt a végén kiirja hogy nyomjak le egy billentyűt. elötte kiadja az eredményt. kár hogy rossz,mert valami 60,0909e-39 et ír ki eredménynek az 5+4 re és ez a getchar(); parancs mit csinál? amikor azt is beraktam, annyi volt billentyűlenyomás után hogy nem záródott be. (a célnak megfelel) Idézés Link to comment Share on other sites More sharing options...
Marky18 Posted Február 17, 2009 Share Posted Február 17, 2009 Nevében is benne van. Bekér egy karaktert. Gondolom paraméterezhető. Egyébként örülök, hogy "aktív" a programozás fórum A többiek is jöhetnének ide, nem csak feladatokat adni. Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 17, 2009 Author Share Posted Február 17, 2009 #include void main() { float num1; float num2; char op; float ans; cout << "Kerem, adjon meg egy szamot:"; cin >> num1; cout << "Kerem adjon meg megegy szamot:"; cin >> num2; cout << "A ket szam osszeget az 'a' billentyu lenyomasaval kapja meg" << endl <<"A ket szam kulonbseget az 's' billentyu lenyomasaval kapja meg" << endl << "A ket szam szorzatat a 'm' billentyu lenyomasaval kapja meg" << endl << "A ket szam hanyadosat a 'd' billentyu lenyomasaval kapja meg" << endl; cin >> op; if (op == 97) ans = num1 + num2; if (op == 115) ans = num1 - num2; if (op == 109) ans = num1 * num2; if (op == 100) ans = num1 / num2; cout << " Az eredmeny: " << ans << endl; system("pause"); } Ez a jó kód. Azt hiszem ez is sikeresen elkészült. (bár lehet hogy azt még megpróbálom hogy ne csak a kis a betűt fogadja el,hanem a nagyot is,de késznek mondható) Jelen pillanatban akkor ennyi, de mivel nem állok le, hanem neki kezdek valami másnak, ezért a topic él, mivel biztos lesz olyan gond amit próbálgatások után sem fogok tudni megoldani. (mellesleg a topic jó másnak is aki elkezdi, biztos találkozik ezekkel a hibákkal ő is) Ezeket pedig köszönöm Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 18, 2009 Author Share Posted Február 18, 2009 Gondoltam felturbózom picit, és 4 szám átlagát is kiirja majd. Most ez nem jött össze, gondot ír ki. A kód: #include void main() { float num1; float num2; char op; float ans; cout << "Kerem, adjon meg egy szamot:"; cin >> num1; cout << "Kerem adjon meg megegy szamot:"; cin >> num2; cout << "A ket szam osszeget az 'a' billentyu lenyomasaval kapja meg" << endl <<"A ket szam kulonbseget az 's' billentyu lenyomasaval kapja meg" << endl << "A ket szam szorzatat a 'm' billentyu lenyomasaval kapja meg" << endl << "A ket szam hanyadosat a 'd' billentyu lenyomasaval kapja meg" << endl; cin >> op; if (op == 97) ans = num1 + num2; if (op == 115) ans = num1 - num2; if (op == 109) ans = num1 * num2; if (op == 100) ans = num1 / num2; cout << " Az eredmeny: " << ans << endl; system("pause"); } // itt van a hiba { float num1; float num2; float num3; float num4; char op; float ans; cout << "Adj meg egy szamot" ; cin >> num1; << "Adj meg megegy szamot" ; cin >> num2; << "Adj meg megegy szamot" ; cin >> num2; << "Adj meg megegy szamot" ; cin >> num3; cout << " A negy szam atlagahoz nyomd le a 'z' billentyűt " << endl ; cin >> op; if (op == 122) ans = (num1 + num2 + num3 + num4) /4 cout << "Az atlag:" << ans << endl; } a 32. sorra írja ki a hibát, méghozzá hogy "declaration syntax error". oda valamilyen függvény nyitásához szükséges dolog kell? Deklarálnom kéne valamit? Előszőr van hogy próbálok 2 függvényt egymás után. Gondolom ehez nem kell semmi, csak egy sima ' { ' a függvény nyitásához.(és a végére a ' } ' zárás ) Miután lefut az első,tehát az összeadós, kéri hogy nyomjak meg egy billentyűt, és ezután automatikus fut le a 2. függvény, ami kér 1 számot, majd még 1 et , még 1 et és még 1 et. vagy ez nem így működik? Idézés Link to comment Share on other sites More sharing options...
Marky18 Posted Február 18, 2009 Share Posted Február 18, 2009 Gondolom a "void main" a főfüggvényt jelenti. Tehát szerintem előtte kellene deklarálnod és meghívnod a függvényedet. Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 18, 2009 Author Share Posted Február 18, 2009 de én nem a főfüggvényt akarom meghívni, hanem egy másikat akarok. a főfüggvény meghívása nem azt jelenti mintha mégegyszer bemásolnám? mert nekem nem a főfüggvény kell mégegyszer,hanem az amelyiket megcsinltam. amelyik összeadja a 4 számot és elosztja 4 el(erről szól a 2.) Idézés Link to comment Share on other sites More sharing options...
Marky18 Posted Február 18, 2009 Share Posted Február 18, 2009 Menüt akarsz? Csak az a gond, hogy hibát írt a fordító? Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 18, 2009 Author Share Posted Február 18, 2009 Nem. Elméletileg volt 1 jó program,amit tovább akartam fejleszteni. A jó program: Kért 1 szánot. Kért még 1 et. Utána megkérdezte mit akarok vele csinálni. (a szerint kellett nyomni egy betűt) ezután kiírta az eredményt, és hogy nyomjon meg egy billentyűt. Ha megnyomtál,kilépett. (mivel minden feladatot elvégzett) És én ez után raktam (/akartam) berakni egy másik függvényt. Én -gondoltam- semmi bonyolult nincs benne, csak { } közé berakom azt,amit akarok hogy ezután csináljon. Beraktam, hogy adjon meg 4 számot, és elméletileg a 'z' gomb lenyomása után kiadja a 4 nek az átlagát. De híbát ír ki, ott ahol jeleztem. Idézés Link to comment Share on other sites More sharing options...
Pörköltszaft Posted Február 18, 2009 Share Posted Február 18, 2009 Ha egyszer van könyved, akkor miért nem lapzod fel a függvények / eljárások témát (biztos van benne, ha meg nincs, akkor dobd el, )?? Ha új függvényt akarsz, illik elnevezni / deklarálni, nem csak odavádni a programkódot két {} közé, amúgy honnan tudná szerencsétlen compiler hogy mi az?! (meg te hogy az istennyilába hívnád meg, ha nem lenne neve egyik függvénynek se?) Ha meg nem akarsz új függvényt, akkor miért kellett a main záró } után rakni a további kódot?? Ja, és egy main-en kívüli függvény soha nem fut le, ha a main-ben nem hívod meg, tehát ezt ne is feltételezd, hogy majd minden, amit a main után írsz, automatikusan lefut! Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Február 20, 2009 Share Posted Február 20, 2009 a kiemelt rész miatt a végén kiirja hogy nyomjak le egy billentyűt. elötte kiadja az eredményt. kár hogy rossz,mert valami 60,0909e-39 et ír ki eredménynek az 5+4 re és ez a getchar(); parancs mit csinál? amikor azt is beraktam, annyi volt billentyűlenyomás után hogy nem záródott be. (a célnak megfelel) #include #include int main(){ //...// printf("nem értem miről szól ez a topik\n"); getch(); } Mert a getchar() enterig olvas pufferbe ! csoki Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Február 20, 2009 Author Share Posted Február 20, 2009 a gond az volt hogy a könyvben a nagybetűs ASCII betűk kódja volt, és én meg kisbetűket nyomtam le, és azt nem fogadta el. kikerestem a kisbetűnek megfelelő kódot és azzal jó. írtam arra is kódot hogy ha nem "a" nak nem "s" nek nem "d" nek megfelelő billentyűt nyomnak le,akkor kiirja hogy rossz betűt adtál meg, próbád újra. bár most a 2. "project" nél a gond, hogy kiadja az eredményt rendesen, és kéri nyomjak billentyűt. nyomok, és kilép. én a 'kérek nyomjon egy billentyűt ' szöveg után gondoltam hogy kér 4 számot, megadom, és az kiszámolja az átlagot. most kiír még 1 db fordítási hibát. a 28. sorra írja ki hogy : 'ans' is assigned a value that is never used in fuction atlag () ***1 errors in compile*** passz... Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Február 21, 2009 Share Posted Február 21, 2009 Ehhez a kód kellene... én a 'kérek nyomjon egy billentyűt ' szöveg után gondoltam hogy kér 4 számot, megadom, és az kiszámolja az átlagot. most kiír még 1 db fordítási hibát. ... printf("kérek billentyűt"); getch(); //műveletek getch(); ... Sztem mielőtt ide írnál olvasd el legalább az első fejezetet a programozás könyvből. Idézés Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.