Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Nájdite dve logické chyby v programe

Ponaucenie: neukladat si zbytocne data ktore zavisia od inych dat, tazko sa to potom udrziava na spravnej hodnote. To vidim dost casto, neviem preco ludi laka mat vsetko kdesi v milion premennych. Pre casovo kriticke operacie sa to da vyratat pred casovo kritickou operaciou a ulozit do docasnej premennej (resp. rovno ako parameter casovo kritickej fcie). Dlzka je predsa:

int iWurmLength;
iWurmLength = w0-w1;
if(iWurmLength<0) iWurmLength += wmax+1;
alebo jednym riadkom
iWurmLength = w0>=w1 ? w0-w1 : w0+wmax+1-w1;

wmax+1 preto, lebo je pole definovane ako 0..wmax (t.j. wmax+1) prvkov (to tiez nie je moc obvykle, v C by som urobil pole Wurm[MAX_WURM_LEN] co by vytvorilo pole s indexami 0..(MAX_WURM_LEN-1), je to obvyklejsie, v tom pripade by som mal
iWurmLength = w0>=w1 ? w0-w1 : w0-w1+MAX_WURM_LEN

To vsetko plati ak to chces mat tak ako teraz (ze ak je samotna hlava tak sa to povazuje za dlzku=0, neviem ci si to tak chcel alebo je to chyba).

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny