C while for..for....for

Jan Waclawek konfera na efton.sk
Pátek Leden 27 15:07:54 CET 2023


V tomto konkretnom pripade by stacil podla mna celkovy popis ("prechadzanie
vsetkymi variaciami ozubenych kolies v jednom cykle"). Funkcia "test" ma
urcite svoj popis, k tomu volaniu sa moze prihodit komentar, nieco ako
"rozklad 'spolocneho'/'kumulativneho' parametra na jednotlive zlozky".

Ano, zakomentovanie %maxl by mohlo byt okomentovane ako "optimalizacia",
myslim ze to by malo stacit.

Ono sa tak viacmenej predpoklada, ze v normalnom programe su vsetky funkcie
viac-menej okomentovane, ci uz explicitne alebo prostrednictvom mena
funkcie a mien parametrov, alebo akokolvek inak. No a treba predpokladat
urcita mieru schopnosti "zreverzovat" program na zamer. Napokon, komentar
moze klamat.

Uz sa opakujem, ale volba riesenia je dana okolnostami, takze podla mna nie
je vhodne urcovat nejake poradie, nieto este kategoricky prehlasit ze
"toto je najlepsie riesenie". 

Na druhej strane je asi pomerne lahke odovodnit, preco to riesenie
https://list.hw.cz/pipermail/hw-list/2023-January/558151.html s narvanim
viacerych cyklov do zlozeneho comma-vyrazu v parametroch for() je urcite
zle ;-)

wek


----- Original Message ---------------
>To je samozřejmě typický místo, kde se musí pro jisttotu napsat i koment 
>proč to tak je.
>V podstatě v±echna nepřímočará ře±ení vyµadují přiměřené komenty a 
>samozřejmě by se měly pouµívat jen kdyµ je to nezbytně nutné.
>
>Tedy např. z hlediska diskutovaného problému bych viděl pořadí:
>1. vnořené cykly a za kaµdým cyklem nějaké if i<počet break;
>2. při vět±ím počtu vnoření return
>3. kdyµ se nehodí return tak jedna řídící proměnná a něco na způsob if 
>(++něco ... continue;
>4. kdyµ se ani to nehodí, tak jedna řídící proměnná a %
>5. kdyµ nejde ani to, tak goto
>
>Přičemµ 3/4 se můµou prohodit při men±ím počtu vnoření.
>Nebo taky můµe být první volba to, co je v projektu z jiných důvodů jiµ 
>několikrát pouµito, takµe se nebude zavádět dal±í konstrukce.
>
>PH
>
>Dne 27.01.2023 v 14:08 Ladislav Vaiz napsal(a):
>> Jen do doby, neµ to někdo po 5 letech otevře a začne se ptát třeba: "A 
>> proč je to %maxl zakomentované? Nemělo by se odkomentovat? A co to 
>> vlastně celé dělá?"
>> Je±tě existuje C obfuscated contest? Tam by to patřilo.
>> L.
>>
>> On 27.01.2023 13:58, Pavel Hudeček wrote:
>>> Tohle ře±ení přístupu k více rozměrům přes jeden index občas 
>>> pouµívám, typicky teda pro obrazová data v jednorozměrném poli. Tady 
>>> bych asi na ten řádek "if (test(" doplnil // komentář. Pak uµ bych to 
>>> řadil mezi nejlep±í zde zmínená ře±ení.
>>>
>>> PH
>>>
>>> Dne 27.01.2023 v 11:37 Jan Waclawek napsal(a):
>>>> Bez continue, so zachovanim myslienky "prechadzam vsetkymi stavmi" (a s
>>>> nabehom na parametrizovatelny pocet ozubenych kolies):
>>>>
>>>> n = 0;
>>>> maxij = maxi * maxj; maxijk = maxij * maxk;
>>>> for (n = 0; n < (maxijk * maxl); n++) {
>>>>    if (test(
>>>>      (n / 1) % maxi,
>>>>      (n / maxi) % maxj,
>>>>      (n / maxij) % maxk,
>>>>      (n / maxijk) // % maxl
>>>>    )) break; // hotovo
>>>> }




Další informace o konferenci Hw-list