Jump to content
PirateClub.hu

c++ gond


szilard5
 Share

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

Link to comment
Share on other sites

  • Replies 87
  • Created
  • Last Reply

Top Posters In This Topic

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;

}

}

Link to comment
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

 

 

Link to comment
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....

Link to comment
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)

Link to comment
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.

Link to comment
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)

Link to comment
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.

Link to comment
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 :)

Link to comment
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:

Link to comment
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.)

Link to comment
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.

Link to comment
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!

Link to comment
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

Link to comment
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...

Link to comment
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. :)

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Hozzászólás a témához...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Jelenleg olvassa   0 members

    • No registered users viewing this page.



×
×
  • Create New...