ceckovy kviz

Pavel Hudeček edizon na seznam.cz
Čtvrtek Září 7 10:08:10 CEST 2023


No tohle už je extra maglajz. Když třeba učím programování, tak s tímhle 
bych odmít poradit, dokud nebude endif, nebo } zarovnaná se začátkem 
řádku, kde je její začátek bloku. Prostě ne a hotovo:-)

Poznámka: U dlouhých bloků, tak od půl až 1 výšky monitoru, dělám:
if (blabla) {
     ...
} // if (blabla)

stejně for, while, ...

A podobně v Pythonu, tam ještě častěji:
if blabla:
     ...
# if blabla:

PH

Dne 06.09.2023 v 23:30 Jaroslav Buchta napsal(a):
> Jenze pri vice vnorenich je z toho uplnej maglajz. Nehlede na pocet 
> koz ;-)
>
> Dne 06.09.2023 v 23:26 Aleš Procháska napsal(a):
>>
>> Já třeba proto, že si myslím, že ta úplně nejlepšinkatější verze je
>>
>> if kozy>2 then
>>
>> splnuje_predpoklady=1;
>>
>> endif;
>>
>> při formátování příkazu dělám, že tam ta otevírací závorka vůbec není 
>> a píšu
>>
>> if (kozy>2) {
>>
>> splnuje_predpoklady=1;
>>
>> }
>>
>> (včetně stejného odsazeni „}“.
>>
>> Aleš Procháska
>>
>> *From:* Hw-list <hw-list-bounces na list.hw.cz> *On Behalf Of *Jaroslav 
>> Buchta
>> *Sent:* Wednesday, 6 September, 2023 23:13
>> *To:* hw-list na list.hw.cz
>> *Subject:* Re: ceckovy kviz
>>
>> Jo, to je taky zakladni doporuceni v MISRA...
>>
>> Jeste k tem zavorkam, kdyz to vidim, tento zapis me naprosto irituje, 
>> podle me vubec nejsou prehledne bloky. Jak jsem pochopil, je pro to i 
>> ruzne pojmenovani formatovani textu.
>>
>> Proc normalne vsichni nepouzivaji:
>>
>> if(..)
>>
>> {
>>
>>    if(..)
>>
>>     {
>>
>>         neco;
>>
>>     }
>>
>>     neco;
>>
>> }
>>
>> ?
>>
>> Dne 06.09.2023 v 23:09 Petr Labaj napsal(a):
>>
>>     Jen úplně nepodstatná poznámka:
>>     právě kvůli nebezpečí nějakého odsunutí nebo naopak dopsání,
>>     které by už bylo mimo podmínku, používám zásadně blokové závorky
>>     i při jediném příkazu v if.
>>
>>     Tedy ne:
>>     if (kozy>2) splnuje_predpoklady=1;
>>
>>     ale
>>
>>     if (kozy>2) {
>>         splnuje_predpoklady=1;
>>     }
>>
>>     PL
>>
>>     ********************
>>
>>     Dne 6.9.2023 v 22:45 Pavel Hudeček napsal(a):
>>
>>         Já si myslím, že tohle je typický příklad umělé konstrukce,
>>         kterou přímo v této podobě nikdo normálně nepoužije. Jenže
>>         šedá je teorie a zelený strom života...
>>
>>         Měříme na pár kanálech ADC a jednou to uděláme bez přerušení
>>         a podruhé s:
>>
>>         *for (uint8_t mxIdx=AD_chanStart; mxIdx<=AD_chanEnd; mxIdx++)* {
>>             ADC0_MUXPOS = mxIdx;
>>             ...
>>             adData[mxIdx-AD_chanStart] = ADC0_RES;
>>         }
>>
>>         Normální for, v jednom řádku se dozvíme od, do a po jak
>>         velkých krocích.
>>
>>         Jenže normálně nechci měřit for cyklem a v něm čekat až je
>>         změřeno, takže chci použít přerušení. Ale v něm chci mít taky
>>         takový jeden řádek, kde je jedna konstrukce s od, do a po
>>         jakých krocích.
>>
>>         ISR (ADC0_RESRDY_vect) {
>>             static uint8_t mxIdx=AD_chanStart;
>>
>>             adData[mxIdx-AD_chanStart] = ADC0_RES;
>>         *if (++mxIdx > AD_chanEnd) mxIdx = AD_chanStart;*
>>             ...
>>         }
>>         Jen je škoda, že ta inicializační hodnota je tam dvakrát. Ale
>>         pořád je to lepší, než rozdělený na řádky ++ a if. Proč?
>>         Jednak když to vidím, tak je to jako vidět ten for, prostě
>>         jasná konstrukce, kde hned vím co dělá a proč. No a hlavně se
>>         při nějaké úpravě nemůže snadno stát, že se z toho omylem kus
>>         odsune, vymaže, či zkopíruje kam nemá.
>>
>>         Je možné, že když to někdo vidí poprvé, tak mu to chvíli
>>         jasné není. Jakmile to pochopí, tak je to prostě standardní
>>         konstrukce s na první pohled jasným chováním, stejně jako for
>>         použitý běžným způsobem.
>>
>>         PH
>>
>>         Dne 06.09.2023 v 21:38 Petr Labaj napsal(a):
>>
>>             Myslím, že jde o to, jak má člověk nastaveno samohodnocení.
>>             Jestli na svém interním žebříčku postoupím výše pokud
>>             napíšu fakt prďáckou konstrukci, kterou nikdo jiný napsat
>>             neumí.
>>             Nebo jestli naopak postoupím tehdy, pokud napíšu program,
>>             který je každému jasný na první pohled.
>>
>>             a=i--;
>>             a=--i;
>>
>>             je jistě správně.
>>             Ale pokud napíšu
>>             a=i;
>>             i--;
>>
>>             i--;
>>             a=i;
>>
>>             tak je to stejné, a zřejmě i kompilátor to přeloží stejně
>>             nebo skoro stejně.
>>
>>             A otázka:
>>             Který z těch zápisů je na první pohled jasnější, a kde
>>             spíš neudělám chybu? Ne v okamžiku, kdy se soustředím na
>>             kvíz, ale kdy jsem unavený a mám vytahané očí čuměním 10
>>             hodin na monitor.
>>             Který zápis bude pochopitelnější kolegovi, který sice
>>             programuje PLC, ale C viděl jen z rychlíku?
>>
>>             PL
>>
>>             ********************
>>
>>             Dne 6.9.2023 v 21:22 Jindrich Fucik napsal(a):
>>
>>                 ...
>>                 Protože pochopitelně i tohle je správný zápis:
>>                 a=i--;
>>                 a=--i;
>>                 a kupodivu "a" se bude lišit.
>>                 ...
>>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230907/c1187f79/attachment.htm>


Další informace o konferenci Hw-list