[ 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 | 55
Bydlisko: Rohožník
NapísalOffline : 29.12.2010 20:21 | z funcie do cyklu

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 | 2
NapísalOffline : 29.12.2010 20:27 | z funcie do cyklu

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 | 55
Bydlisko: Rohožník
Napísal autor témyOffline : 29.12.2010 20:55 | z funcie do cyklu

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ý: 04.01.25
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 29.12.2010 21:01 | z funcie do cyklu

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 | 55
Bydlisko: Rohožník
Napísal autor témyOffline : 29.12.2010 21:05 | z funcie do cyklu

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 | 88
Bydlisko: 00100100
NapísalOffline : 30.12.2010 8:55 | z funcie do cyklu

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!
;-)
 [ Príspevkov: 6 ] 


z funcie do cyklu



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

600

14.04.2008 12:46

NUE

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

zmena cyklu

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

4

532

25.03.2011 10:08

zaefrim

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

Opakovanie while cyklu

v PHP, ASP

2

533

05.08.2010 10:24

eth4rendil

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

Asembler zrychlenie vykonavania cyklu

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

6

487

05.03.2013 19:25

n0sf3ratus

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

čast cyklu while obsahujuca IF sa mi neopakuje

v PHP, ASP

6

491

26.07.2010 12:30

Blackshadow

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

1072

16.10.2008 15:34

Roko



© 2005 - 2025 PCforum, edited by JanoF