Názory ke článku Zaheslujte si svoj program – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Názory ke článku Zaheslujte si svoj program – Programujte.comNázory ke článku Zaheslujte si svoj program – Programujte.com

 

Názory ke článku Zaheslujte si svoj program

Smokie   NOVÝ
21. 5. 2007

v buducom dielI, radsej ;)

FufurR   NOVÝ
21. 5. 2007

co nezda sa nieco?

Titto   NOVÝ
21. 5. 2007

Sakra, neviem ako to je mozne :O...
Som to menil a aj som daval nbsp; za v,s,z,o,k... a teraz to tam nieje...
Tomu nechapem, uz 3x sa mi to stalo.
PS: Fixed...

Titto   NOVÝ
21. 5. 2007

v dieli - respektive v hoteli je lokal, takze je tam jota, ale ak by to nebolo lokal, je tam Y...
PS: Díík za upozornenie :)

Frosty   NOVÝ
21. 5. 2007

To Titto: Jota? To je nějaký užívaný termín pro měkké "i"? Že jsem to ještě nepotkal. Jsi asi trochu využil řeckou abecedu, co? ;)

Titto   NOVÝ
21. 5. 2007

Ta co? Ta to recnícky termín :)

Titto   NOVÝ
21. 5. 2007

Ehm, ktorý múdry Slovák povedal, že „piš ako pošuješ“? :)

ChaoticRoman   NOVÝ
21. 5. 2007

program (nápad) samotný je zajímavý, ale:
1.) ty goto nejsou úplně ideální, lepší je prostě repeat cyklus, má někdo jiný názor? tady by mě zajímaly vaše důvody k používaní skoku.
2.) co je to file of schuler?
3.) v těch proměnných je divný zmatek, pomohlo by používat lokální a globální už míň, no... třeba meno, f, g se navíc nikde nepoužívá
4.) no to odsazování, napsat to jinak (aspoň jednotně), bylo by to lepší, přehlednější...

benghi   NOVÝ
21. 5. 2007

V příštím díle si ukážeme, jak připojit žárovku k baterii tak, aby baterie nezačala hořet. Žárovka pochopitelně svítit nebude.

Sri, jsem velmi jizlivý, je to už moje vlastnost. Ještě si neodpustím jedno. Zkušený programátor v jazyce pascal nepoužívá příkaz goto, neb basicovské moresy nepatří do programovacího jazyka, pominu-li fakt, že je to neskutečně nepřehledný, tak nemůžu pominout to, že leckterej kompilátor má trochu problémy s uklízením po goto. V uvedeným příkladě by to sice nemělo nastat, ale to není omluva. Pokud povypínám všemožné ochrany, tak na některejch kompilátorech půjde zkompilovat kod, kde pomocí goto vletím doprostřed for, while nebo repeat until, přičemž proměný, který ten lítající cirkus říděj, nemusí být inicializovaný, takže může následovat docela nepříjemnej průser. Obdobně je vhodné vletět do nějaké rekurze, což ovšem není tak tragický, jako když pomocí goto z té rekurze vyletíte (podotýkám, že je nutný povypínat všechny ochrany, aby to vůbec šlo zkompilovat a i tak u některejch kompilátorů nejde použít goto z funkce ven mimo tu funkci, u některejch bohužel jo, mám pocit, že přesně tohle člověka nechal udělat jeden z kompilátorů pascalu pro C64, ale je to už moc let na to, abych si to pamatoval), neb pak už stack neuklidí ani pámbu a skončí to v lepším případě zásahem OS, v horším případně se program po určitý době hryzne zásobníkem do zadnice a co se stane je v podstatě dílem náhody, pokud to teda hned ze startu neskončí na nějaký nealokovaný proměný. Už si nepamatuju, jak je v pascalu dělaný function call a procedure call, v principu to může bejt v různejch implementacích různě, ale vzhledem k tomu, že to není interpretovanej jazyk, tak silně pochybuju o tom, že by to šlo úplně mimo stack.

Teď konkrétně. Procedura login je dokladem programátorský neobratnosti nejhorší kategorie. Místo while a goto musí stačit while. Uchází mi smysl toho else, protože je jasný, že pokud se program dostane někam za goto, tak podmínka splněna nebyla. Není mi jasný, proč do c přiřazuju v každým průchodu cyklem, nikoliv jenom v případě, že je potřeba přiřadit ,,true'', čímž se dostávám k tomu, co jsem psal na začátku, tj. do c bych úplně v počátcích přiřadil false, pomocí or bych ho spojil s eof v podmínce while a v porovnávací podmínce bych jenom zvednul c na true, pádem čímž bych z while vyletěl normálním způsobem bez použití goto, ač použití goto by tady (pokud by se eliminovalo to else) mohlo znamenat zmenšení počtu vykonávanejch instrukcí. Pak by pochopitelně padala i ta druhá podmínka a or ve while, ovšem nepřipadá mi to úplně čistý, asi bych se zabýval tím, co kompilátor z něčeho takovýho vyplodí, jinými slovy, jestli je navrženej tak, že můžu beztrestně pomocí goto vyletět z while, což si myslím, že by měl.

FufurR   NOVÝ
22. 5. 2007

dik za pripomienku, nadbytocne premenne som odstranil (boli tam preto, lebo som to kopiroval zo zdrojaku, co som pouzival do skoly a tam program pokracoval ...) co sa tyka lokalnych premennych je to asi dobry napad, ale ja ich akosi namam rad... (no a ked ich tam niekto chce mat, tak to uz je malickost si ich presunut)

pravda tiez je, ze goto nie je idealne riesenie, ale ten repeat tam robi problemy ...

a k bodu 4, nabuduce sa posnazim

a este raz dik za konstruktivny nazor a nie len kritizovanie do vetra :)

ChaoticRoman   NOVÝ
22. 5. 2007

Souhlasím, ten problém ve while už taky vidím. hraní s tím c je strašné, abych přidal i něco nového, takhle bych to asi udělal já:



procedure login;
begin
writeln('meno: ');
readln(meno2);
c:=false;
while not ( ( eof(po) ) or c ) do
begin
readln (po,n);
if meno2 = n then
c :=true;
end;
writeln;
if c = true then
writeln ('OK')
else
writeln ('NOT OK');
close(po);
end;

ChaoticRoman   NOVÝ
22. 5. 2007

Ježišmarjá, ono to nezachovává odsazení... Webmasteři programujte.cz, co ste to stvořili??

Frosty   NOVÝ
22. 5. 2007

To ChaoticRoman: Neboj, v nové verzi už zachovává. Ve staré už to nemá cenu opravovat, stejně všechno půjde do koše.

FufurR   NOVÝ
22. 5. 2007

no, snad niekto oceni aspon napad o ktory som sa chcel s vami podelit

Ciba   NOVÝ
22. 5. 2007

bravo... dalsi uzasny neprustrelny algoritmus... teda ja cumim... mas to kryty jak americkyho prezidenta :D

FufurR   NOVÝ
22. 5. 2007

tak vidis, aspon im ukazem, ako sa to ma :)

ChaoticRoman   NOVÝ
23. 5. 2007

no, nápad dobrý, zpracování už horší, jak sem říkal.
já sem ještě i v tom svém zpracování nechal tohle:



if c=true then...

to je samozřejmě zbytečné, podmínka se vyhodnotí kladně, pokud má logickou hodnotu true a vyrázy (c) a (c=true) jsou ekvivalentní.


if c then...

Blujacker   NOVÝ
23. 5. 2007

to je nejlepší takhle kritizovat a neukázat lepší řešení... Nejdřív napis článek a pak máš právo kritizovat...

FufurR   NOVÝ
23. 5. 2007

thx :)

Ciba   NOVÝ
28. 5. 2007

Ty jsi fakt komik. Takze dle tveho nazoru smi kritizovat pouze clovek, ktery napsal nejaky clanek - tj. je redaktorem ... Bravo objektvite... Zaloz si nejakou svoji diskuzi a dej pravo hodnotit pouze redaktorum ty joudo... Jsi uplne mimo misu, kdyz nasi zahrajou hovno v hokeji vidi to cely narod a nikdo neni lepsi hokejista nez oni...

Blujacker   NOVÝ
28. 5. 2007

lol, to netrvdím. Když má někdo k článku nějaké připomínky at slušně sepíše do nějakých bodů (popř nabídne lepší řešení) a nenapíše že je fakt algoritmus "na hovno". Kritizovat zvládne každej, lepší řešení nabídně málokdo...
Prostě mě nase*e když někdo řekne že se takovej článek ani nemusel psát, že to je stejně úplně debilní algoritmus. Nezapomínej že redaktoři nedostávaj za články peníze takže je to pouze jejich dobrá vůle že se snaží pomáhat začátečníkům, ale vždycky se najde někdo kdo jejich práci zkritizuje:(

ciba   NOVÝ
29. 5. 2007

Davam ti za pravdu... Mas recht, ze je to zadarmo a kdyz to nekomu pomuze nejakou hodnotu to preci jen ma... :)

Independent   NOVÝ
8. 7. 2007

Ten program je prasarna, prasarna, a prasarna. Pouzivani navesti v Pascalu se obecne povazuje za prasarnu, vzhled kodu je sileny, ...

Mircosoft   NOVÝ
4. 9. 2007

Tohle mě dokáže pěkně naštvat (hlavně v případě, že jde o cestu k BGI souborům):

assign(po,'E:\temp\tp\jojo.txt');

Představ si, že ten program zkompiluješ a že si ho pak bude chtít spustit někdo na jiném počítači, kde ale nemá ani disk E:, natož pak takovýhle adresář. Lepší je zadat adresu relativní:
assign(po,'jojo.txt');

a příslušný soubor hodit do stejného adresáře jako program. (A nějak ho zašifrovat, jinak je to opravdu celkem zbytečná práce - každý se do té databáze může připsat ručně.)

Na vyskočení z jakéhokoli cyklu se dá (kromě dobře zvolené podmínky) použít příkaz Break, Goto není potřeba. BTW, celý tenhle program jde napsat i bez jediného Goto :-).

Nevím, co se ti nelíbí na lokálních proměnných. Zlepšují přehlednost, šetří paměť (po skončení procedury se zruší) a předcházejí problémům (nechtěná změna některé globální proměnné nějakou procedurou).

Přidej svůj názor

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý