• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 
Menu

Zobrazi� pr�spevky

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Zobrazi� pr�spevky Menu

Messages - Rado123

#1
1. ročník / Re: Programovanie
04.03.2011, 04:24:48
Quote from: eminkaa on  03.03.2011, 03:58:22
ten druhy kod nielen zdvojnasobi pocet znaciek, ale navyse tam este polozi dva.
ten kod vyssie je teda spravny -> vyskusaj a uvidis

Asi som moc tvrdohlavy ale neviem preco by moja varianta nemala fungovat korektne?
Na kazde dvihnutie pripadaju dve polozenia a neviem najst kde su tie dve polozenia navyse. Samozrejme ze tento kod bol vyskusany este kym so ho tu napisal a funguje ako ma.... ??? hmmmm
#2
1. ročník / Re: Programovanie
03.03.2011, 03:39:24
Quote from: Danix on  02.03.2011, 17:27:07

void doubleBeeper() {
   if (beepersPresent()) {
      pickBeeper();
      doubleBeeper();
      putBeeper();
      putBeeper();
   }
}
neprišiel som sám na to, no funguje to, ale nechápem ako to môže fungovať. Ako vlastne vykonáva jednotlivé príkazy kompilátor? Napr. ak sa nachádza 1 beeper, tak ho zdvihne a znovu sa zavolá funkcia doubleBeeper() v ktorej sa overuje, ci tam je beeper, ale ked uz nie je, tak sa konštrukcia if vyhodnotí ako false, resp. 0 a sa nevykoná nič. ?!? kedy sa vykonajú putBeeper() ?

ja by som to napisal skor....

void doubleBeeper()
{
     pickBeeper();                      // hned dvihnes lebo tato funkcia sa vola iba ked karel stoji na znacke a teda mozes dvihnut znacku
     if( beepersPresent() )         // ak sa nachadza znacka volas opat doublebeeper
     {
           doubleBeeper();
     }
     putBeeper();
     putBeeper();
}


funguje to asi takto zavolas funkciu doubleBeeper(), dvihne znacku a skontroluje sa ci sa nachadza na pozicii karla dalsia znacka, ak ano opat sa zavola funkcia doubleBeeper().... takto to pojde dovtedy kym sa nedvihne posledna znacka, potom nebude platit podmienka a telo if sa nevykona teda prestane sa vnaranie a zacnes sa vynarat s tym ze polozis dve znacky.  funkcia tym padom konci a beh programu sa vracia tam kde sa prerusil v tomto pripade v tele if predchadzajucej funkcie doubleBeeper() ktora volala prave ukoncenu doubleBeeper(). prikaz if sa vykonal a tak sa vykonava dalej t.j. polozia sa znacky a konci sa funkcia, beh programu sa vracia tam kde bola funkcia zavolana t.j. opat do tela if predchadzajucej funkcie doubleBeeper() az kym sa nevratis do main() alebo akej funkcie z ktorej sa povodne prvykrat volala doubleBeeper()....ked si to zratas na kazdu dvihnutu znacku karel polozi dve znacky ;-)
#3
1. ročník / Re: Programovanie
01.03.2011, 20:21:18
Mas pri tom aj napovedu, ze to mas riesit cez rekurziu...t.j. ked je beeper na zemi zavolas svoju (napr. zdupluj()  ;D ) funkciu v ktorej dvihnes beeper a overis ci je tam dalsi beeper, ak ano opat zavolas tu istu funkciu ( zdupluj() ) a ak nie je polozis dva beepre...
#4
Co potrebujes s programovanim? Myslim ze by som ti vedel pomoct....