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