C while for..for....for
Pavel Hudeček
edizon na seznam.cz
Pátek Leden 27 16:41:22 CET 2023
No jak se to vezme. Když se má zpracovat 11rozměrná sada dat, tak je
těch 11 vnoření přímočaré řešení. Pak bych jako první volbu použil něco
jako:
for(i[0]=0; i<len[0]; i[0]++) for(i[1]=0; i<len[1]; i[1]++) for(i[2]=0;
i<len[2]; i[2]++)
for(i[3]=0; i<len[3]; i[3]++) for(i[4]=0; i<len[4]; i[4]++) for(i[4]=0;
i<len[2]; i[4]++)
....
{
delatNeco11(i, data);
if (test11(i, data)) return;
} // konec for-for-for-...
Kdyby to ale bylo v projektu použito víckrát, rozchodil bych asi některé
zde zmiňované řešení, při nenáročnosti na rychlost by byla taky hezká
rekurze, případně bych uložení pole v paměti udělal tak, aby se k němu
zároveň dalo přistupovat 1rozměrně.
Nebo udělat funkci, která z jednoho indexu udělá pole těch co se mají
použít a pak zase stačí 1 for.
Ale stojím si za tím, že při jednom použítí je těch 11 vnoření poměrně
dobrá volba:-)
PH
Dne 27.01.2023 v 15:33 Jindroush napsal(a):
> On 27.01.2023 15:07, Jan Waclawek wrote:
>> 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".
>>
> Ale to plati obecne, pro volby postupu, nastroju apod.
>
> V kazdem pripade pravidla (sety pravidel) jako MISRA je dobre znat a
> uplatnovat. Tim, ze "znat" znamena chapat, proc ono pravidlo existuje
> a cemu ma branit. A az pak by clovek mel (s rozmyslem) porusovat.
>
> Samozrejme, na takove to domaci zvykani, tam je nekdy to nejjednodussi
> reseni i za cenu poruseni techto pravidel, ale pro kod, ktery jde ven,
> tam by aspon minimalni hygiena mela byt vyzadovana.
> A stojim si za tim, ze 11 vnoreni je spatne ze vsech moznych pohledu ;-)
>
Další informace o konferenci Hw-list