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