Stránka 1 z 1

pascal pomoc zaseknutí v cyklu while

Napsal: 13 led 2018 23:01
od Akrej
Zdravím

Podlouhé době chuť na pascal tak jsem něco zkusil, nehledejte vtom hlupší smysl. Můj problem je že když je odpověď blbě tak se má odečíst život ale pak nevím jak bych to nasměroval zpatky do hry. Bude tam více operací které se budou dat vyresit jinak a jednodusej, ale jak pisu verze 0.01 a opakuju si co umim a učím se. Napiště mi jak to vyřešit přimo jako část kodu můžete ale prosím do spoiler bloku.

hrači test a test1 je prvotní verze jak zamezit vstup bez zadaní.

► Zobrazit spoiler

Re: pascal pomoc zaseknutí v cyklu while

Napsal: 13 led 2018 23:22
od faraon
Takhle nějak?
► Zobrazit spoiler

Re: pascal pomoc zaseknutí v cyklu while

Napsal: 14 led 2018 13:03
od Akrej
faraone můžu se tě odborně zeptat na přehlednost v kodu dřív když jsem začinal vypadalo to jak "blivajs" teď jsem se tomu snažím dat strukturu. Můžež mi poradit co a jak?

Re: pascal pomoc zaseknutí v cyklu while

Napsal: 14 led 2018 21:56
od faraon
Na to ti zcela neodborně řeknu: piš to tak aby ses v tom sám vyznal, nejlépe na první pohled a bez hledání 8)
Zkus si dát v editoru menší písmo, a postav se dál od monitoru. Pokud se ti text slije do skupinek a bloků, a rozeznáš v nich nějakou strukturu, které části spolu souvisejí a navazují na sebe, nebo jsou naopak viditelně oddělené, jsi na správné cestě.

Základ je horizontální odsazování: https://en.wikipedia.org/wiki/Indentation_style, třeba Python je na něm přímo založený.
Vyzkoušej si různé styly, časem přijdeš na to co ti vyhovuje víc nebo méně. Já jsem ten můj našel v jedné prastaré učebnici Algolu, podobá se mu Whitesmiths. Předtím jsem používal všechno možné, a například jsem velmi rychle přišel na to že dva sloupce z Pascalu mi v Céčku pro přehlednost nestačí ani náhodou!

Trochu opomíjené, ale neméně důležité, je vertikální odsazování. Například samostatné souvislé činnosti uvnitř jedné funkce jsou oddělené jedním prázdným řádkem, a jednotlivé funkce třemi řádky, takže i zdálky poznáš kde začínají a končí. Je to stejné jako u Morseovky, čárka je dlouhá jako tři tečky, mezera mezi značkami jako tečka, mezera mezi písmeny jako čárka.
To se dodržuje mnohem snáz než to horizontální, a hlavně není tisíc různých způsobů.

Kdysi v TurboPascalu jsem měl IDE nastavené na rozlišení 50x80 (místo standardního 25x80), byl tak vidět mnohem větší kus zdrojáku a lépe se v něm orientovalo. V tom jsou dnešní módní širokoúhlé nudličky úplně na hovno, to je dobré akorát na sledování filmů, ale ne na práci. K psaní by byl mnohem vhodnější monitor umístěný na výšku, jako měly například počítače Xerox Alto:
https://www.youtube.com/watch?v=M0zgj2p7Ww4
Které měly grafické rozhraní ovládané myší dřív, než Bill Gates založil Micro-Soft :lol:

Re: pascal pomoc zaseknutí v cyklu while

Napsal: 27 úno 2018 14:03
od satik
Par obecnych poznamek, co me ted jen narychlo napadnou k prehlednosti kodu:
1. Mit kod konzistentni - to znamena napriklad odsazovani mit vusde stejny, je uz tvoje osobni preference jestli mezery/taby a kolik, jmenny konvence - pouzivat vsude stejnej zpusob nazvu promennych - od jazyku (nemichat cz/en) po to, jestli pises podtrzitka, velky/maly pismena...
2. Nemit nikde vic nez rekneme 3 radky kodu stejny - pokud se ti nekde takovej kod opakuje, napis si na to funkci a volej ji.
3. Mit kod logicky rozdeleny, nemichat cast, co neco pocita a cast, co to zobrazuje uzivateli, kazdy by melo bejt ve svym souboru a pokud programujes objektove, tak ve svy tride.
4. Nazvy promennych by mely vystihovat tu promennou a kdyz to vidi nekdo cizi, mel by idealne hned poznat, k cemu ta promenna slouzi.
5. Kod by nemely bejt spagety - funkce a tridy se snaz co nejvic rozdrobit. Idealne bys mel kazdou funkci vzdycky celou nacpat na obrazovku + by funkce/trida mela delat vzdycky jen jednu vec. Pokud toho dela vic nebo se prodluzuje, rozdelit.