Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
z funcie do cyklu

Registrovaný: 19.09.09
Prihlásený: 12.09.13
Príspevky: 359
Témy: 55
Bydlisko: Rohožník
Príspevok NapísalOffline : 29.12.2010 20:21

Zdravím pánové ;-)

riešim taký menší problém ... potrebujem z funkcie hra (ktorá spravuje pole), aby do cykla for (ktoreho je súčasťou) aby vždy, ak je pole plné, vráti o krok späť.

niečo ako

Kód:

int hra (int pole[50], int kontrola)
 {
   zistenie, ci je pole plne, ak ano, kontrola=1;

}

int main ()
{
   ...
   for (krok=1;krok<=50;krok++)
    kontrola=0;
    ...
    hra(pole,kontrola);
    if (kontrola=1)
       krok=(krok-1);   // resp. krok--   
    ...
}




problem je ten, ze ked mam kontrola=1 (hodnota z funkcie), tak ten cyklus to neakceptuje, tj. nevrati krok spat ...

resp. skusal som kontrola nahradit cez return ... ak je plne, tak return 0 ... ak dam podmienku potom v main if (hra==0) krok--; tak vzsledok ten isty...

kde je chyba, kde robim chybu alebo je nejaka alternativa?
vdaka


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 29.12.2010 20:27

if (kontrola=1) alebo if (kontrola==1) ?:)


Offline

Užívateľ
Užívateľ
z funcie do cyklu

Registrovaný: 19.09.09
Prihlásený: 12.09.13
Príspevky: 359
Témy: 55
Bydlisko: Rohožník
Príspevok Napísal autor témyOffline : 29.12.2010 20:55

sorry ... pomylil som sa .. samozrejme v podmienke mám == ... no jednoducho to nejde .... dal by som sem cely zdrojak, no je do zadanie do skoly a nechcem riskovat :)

mám 2 hracov .... aj je parny krok, hraje 1., ak neparny, tak 2. ... cize on cez funkciu ulozi do pola cislo ... aj je daná suradnica plna, tak program napise, ze je to plne a aby isiel este raz ... a mal by byt zasa na rade vdaka tomu, ze sa vrati cyklus o krok spat ... lenze to nefunguje ... le to lepsie teraz popísane? ;-)


Offline

Skúsený užívateľ
Skúsený užívateľ
z funcie do cyklu

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 29.12.2010 21:01

Nefunguje ti to, lebo funkcia hra ti nemení premennú kontrola. Prečo? Lebo:
Kód:
int hra (int pole[50], int kontrola)

Toto je prototyp funkcie. V tele tejto funkcie pracuješ iba s hodnotami parametrov tejto funkcie, nemeníš priamo premennú, ale iba kópiu, ktorá sa vytvorila na stacku po zavolaní funkcie. Ak potrebuješ meniť hodnotu premennej vo vnútri funkcie, použi smerníky ( prípadne v jazyku C++ môžeš použiť aj referencie ). Tvoja funkcia bude vyzerať potom takto:
Kód:
int hra ( int pole[50], int* kontrola ) {

    // tvoj kod
    *kontrola = 1;

}


Takto sa ti už bude meniť hodnota premennej, ktorú vložíš ako parameter tejto funkcie.

Funkciu potom voláš takto:
Kód:
hra( pole, &kontrola );


Offline

Užívateľ
Užívateľ
z funcie do cyklu

Registrovaný: 19.09.09
Prihlásený: 12.09.13
Príspevky: 359
Témy: 55
Bydlisko: Rohožník
Príspevok Napísal autor témyOffline : 29.12.2010 21:05

aha ... pointer ... a ja som vedel, že mi tam niečo chýba :)

Fakt ďakujem ;-)


Offline

Užívateľ
Užívateľ
z funcie do cyklu

Registrovaný: 08.03.09
Prihlásený: 06.10.20
Príspevky: 1116
Témy: 88
Bydlisko: 00100100
Príspevok NapísalOffline : 30.12.2010 8:55

v C++ by si mohol pouzit dodanie odkazom
Kód:
int & a;

funguje to ako pointer ibaze je zamaskovany :)
hodi sa pri praci s velkymi hodnotami, triedy, struktury...







_________________
Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-)
Odpovedať na tému [ Príspevkov: 6 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Funcie pre Jazyk C

v Assembler, C, C++, Pascal, Java

0

567

14.04.2008 12:46

NUE Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmena cyklu

v Assembler, C, C++, Pascal, Java

4

497

25.03.2011 10:08

zaefrim Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Opakovanie while cyklu

v PHP, ASP

2

505

05.08.2010 10:24

eth4rendil Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Asembler zrychlenie vykonavania cyklu

v Assembler, C, C++, Pascal, Java

6

443

05.03.2013 19:25

n0sf3ratus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. čast cyklu while obsahujuca IF sa mi neopakuje

v PHP, ASP

6

455

26.07.2010 12:30

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. da sa pouzit nekonecny cyklus na spustenie mesacneho cyklu?

v PHP, ASP

16

1035

16.10.2008 15:34

Roko Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra