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

Zobrazi prspevky

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