Jump to content
szilard5

c++ gond

Recommended Posts

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:

 

hibanx5.png

w800.png

 

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

Share this post


Link to post
Share on other sites

így próbáld: #include <iostream> (vagy <iostream.h>)

Share this post


Link to post
Share on other sites

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;

}

}

Share this post


Link to post
Share on other sites

Van üres karakter az '#include' és az '<iostream>' között? Ha van, akkor írd egybe: #include <iostream>

Share this post


Link to post
Share on other sites

nem ez a hiba, úgy sem működik. még valakinek valami tipp?:) :\

(az eddigieket köszönöm)

Share this post


Link to post
Share on other sites

direkt nem editelem:

 

már csak 1 hibát ír ki:

 

egyhfe3.png

w662.png

Share this post


Link to post
Share on other sites

ha 'x'-et deklarált miért 'y'-ra tesztelsz?? (7. sor, mint ahogy a compiler írja is)

Share this post


Link to post
Share on other sites

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ó)

Share this post


Link to post
Share on other sites

Igen, mikor átfutottam ez jutott először eszembe. Nem ismerem pontosan, hogyan kellene megoldani, de szerintem ezt javítsd ki.

Share this post


Link to post
Share on other sites

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.

 

newhibaag7.png

w767.png

 

 

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

megy :DDDDDD

 

ezer köszi.

Share this post


Link to post
Share on other sites

de van rá egy ezresem, hogy fingod sincs miért :lol:

 

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

Share this post


Link to post
Share on other sites

Hát igen.... :unsure: 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....

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

Hmm.... kellene valami parancs, ami a kiíratás után egy eseményre (pl. billentyű lenyomása) vár.

Share this post


Link to post
Share on other sites

a teljes függvényt bemásoltam még 9 szer. (ez elég amatőr megoldás, de logikus :D )

í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.

Share this post


Link to post
Share on other sites
getchar();
gondolom

windows:

system("pause");

 

Én így csináltam egyszer régen talán. :D

Share this post


Link to post
Share on other sites
#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 :D

 

é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)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
#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 :)

Share this post


Link to post
Share on other sites

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? :lol:

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.)

Share this post


Link to post
Share on other sites

Menüt akarsz? :huh: Csak az a gond, hogy hibát írt a fordító?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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, :D)??

 

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!

Share this post


Link to post
Share on other sites
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 :D

 

é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

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

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. :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Bejelentkezés

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×