Diskuze: Najdi chybu!
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 46 zpráv z 46.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
tak to potom je céčko divný proč psát 2x void? úplně zbytečný tímhle jsem ztratil totálně zájem o další jazyk, prostě java je pro mě nejlepší
není divný jen nevíš co to znamená
void je takovej bezparametrovej typ takže pokud je void neco(void);
tak je to bez_typu neco(zatim bez typu); a takhle je to "gramaticky" správně
samozřejmě můžeš to psát i void neco(); ale 100% správně je ta první
verze ale dál ti to tu vyprávět nebudu čti tutoriály nejlépe ty moje
Hlavně je ten příklad mizerně napsán. Špagetový kód se už dávno nepoužívá. Také pojmenování proměnných ztěžuje orientaci. Takový program bych autorovi omlátil o hlavu.
Chybně je tam funkce
system("pause");
Ta nemá v programech co pohledávat.
Chybně je tam označení stupňů a vteřin.
Chybně je používání proměnných k jinému účelu, než ke kterému byly původně deklarovány.
polomer_kruznice_opsane = sin(vysledek_uhela);
je blbost. Poloměr se nerovná sinu nějakého úhlu.
Prostě ten program se nedá číst. Jdu se vyzvracet.
měl jsem ti chuť něco napsat ale jelikož vidím že jsi idiot a trefil si jen tu chybku v kružnici tak vyhráváš zlatýho bludištáka i když v tom ta chyba nebyla a kdyby jsi nebyl hlupak a nechoval se jak dement tak viš že pravá chyba je v doublu
Ale no tak, přeci se budeme bavit trochu na úrovni. DontCryMyLittleBoy to myslel dobře a vážíme si jeho aktivity. Sice to neměl dokonalé, ale mohli bychom si zvracení nechat na diskuze na idnes a stejně i ty idioty, nemyslíte?
Je fakt, že ten program mohl být poloviční a přehlednější, ale přiznávám, že jsem to s tím zvracením přehnal. Jen bych byl velmi nerad, kdyby se takový programovací styl snažil někdo napodobovat.
btw štábní kulturu používám z klasickýho C a taky je to v něm napsané, system("pause") se v systomovym C normálně používá takže si nech zvracení na nějakej sharp ani nevíš co říkáš ^^
Tady nejde o pravdu či lež, tady jde o způsob jakým jsi oslovil Kita Nemyslím že by bylo v pořádku dávat inkrementace za nadávky
To víš, dnes je taková doba, že vítězí bulvární texty nad beletrií. Zkus ty příklady příště psát lépe a já budu (nezávisle na tom) slušnější. Řekněme, že větu "Jdu se vyzvracet" beru zpět, ale na tom zbytku trvám.
system("pause") se používá jen v učebnicích. Jinde není třeba. Se sharpem nedělám.
podle mě by měla vítězit pravda teď nemam chuť sem ani chodit to že děláš nějakou javu , c# nebo co nemění na tom že můj kód je napsaný správně možná né podle nějaký nový štábní kultury ale podle Cčkový základní je zcela správně pokud vím, nebudeš slušnější kritizuješ vše co není dle tvýho gusta a to se mě zas s prominutím z takových lidi zvracet já vám chci udělat zábavu pro Cčkaře a nějakej ňouma mi sem přijde a začne kritizovat každý písmeno a pritom ani z 5% nevěděl kde ta chyba opravdu je to samé jsem udělal na portalu s normálními lidmi (programujte.com) a lidi hledali chybyčku bez keců bavili se u toho , hádali a nakonec jí našli ale ty jsi mi zkazil náladu hned po 5ti minutách facepalm a na nějaký hry pro takový šašky vám seru xD
Ve Windows to bohužel funguje tak, že se ty konzolové programy jinak zavírají. Jak jinak bys to vyřešil?
Mám takovou nejasnou vzpomínku, že v těch vývojových prostředích se dalo nastavit, aby se to terminálové okno po skončení aplikace nezavíralo. Stačilo jen zaškrtnout.
Chceš mi naznačit, že vývojová prostředí pro Windows stále tuto trivialitu nemají vyřešenu a musí se kvůli tomu prznit aplikace?
Mně funkce system("pause"); vyhazuje chybovou hlášku
pause: příkaz nenalezen
To si raději ten příkaz "pause" naprogramuji. Vlastně k tomu nemám důvod, protože nechci, aby se mi programy zastavovaly před ukončením. Mně se to okno po ukončení aplikace nezavře.
Máš pravdu, nemám okna. Ještě by se mi sama zavírala a to bych byl nerad.
Jenže ty funkce getch() či getchar() potřebují nějaký vstup. Když v tom vstupu mám data určená ke zpracování, tak z něj nemohu číst klávesnici. Uživatelé Windows tedy za účelem umožnění funkce getch() odříznou možnost vstupu dat do aplikace tímto kanálem. To není zrovna ideální řešení.
ja jsem rekl ze se to da ne ze je to super tak porad neplakej pod na nestabilni okna a nemusis resit blbosti
Na konci nemusí být jen return 0; běžně tam dávám i jiná čísla do 255, která se v navazující aplikaci dají využít.
Když se program ukončí, tak to ještě neznamená, že se zavře okno terminálu. To dělají pokud vím jen Windows a to jen ve chvíli, kdy se program spouští kliknutím. Pokud se spustí z terminálu, tak to nedělá.
Zkusil jsem dělat s Windows, ale moc mi to nejde. Připadá mi to takové neohrabané. Není tam ani pořádný instalátor aplikací a pořád se musí odklikávat nějaká hlášení. Skoro jako kdyby v každé aplikaci bylo system("pause");
stale nevidim kde mas problem... nejakej system("pause"); kod nezkazi hlavne kdyz to dodelas a nepotrebujes si to zapauzovat aby si videl vysledky az to je hotovy tak to muzes dat pryc
tak jasny neni to pro kazdyho ale nemusis resit veci jako je tohle... "zbytecnosti"
Nedá mi sa nezapojiť do tejto už offtopic diskusie Mám Windows 7, robím v CodeBlocks s kompilátorom GCC a po ukončení c-programu sa mi okno samo nezavrie. Keď som skúšal VisualStudio (síce neviem aký presne, ale GCC kompilátor nie) okno sa zatvorilo samo. Pravdepodobne je toto zatváranie okien závislé na kompilátore, alebo jeho verzii...
taky pouzivam codeblocks diky te pauze ale samotny .exe se zavre hned po ukonceni
Myslím, že toto se moc nepovedlo a tak bych toto vlákno uzavřel. Docela mě to zkazilo náladu, i když některé Kitovy připomínky byly pravdivé, nevidím důvod pro takové odsouzení dobrého úmyslu. Doufám, že se DontCryMyLittleBoy nenechá odradit.
Ještě by mě zajímalo, jak by Kit řešil nešpagetovost v neobjektovém jazyce, pokud vím, tak buď použiješ globální proměnné nebo máš u funkcí nespočet parametrů.
Tu pauzu podle mne nemá smysl řešit, přijdeš o multiplatformnost kódu, ale než začátečníkům motat hlavu s nějakou složitou náhražkou, tak bych ji tam klidně přežil.
ja nerikam ze nema pravdu v necem urcite jo ale z pulky to byly kraviny doslova mi to prislo az rypani a to ja nemam rad
Výsledky vidím i bez zapauzování, proto system("pause") nepoužívám.
Problém by mohl nastat například v tom, že pokud se tam takové zastavení zapomene, tak se neuzavřou datové soubory. Zbytečně se spouští další proces "pause", to však problém není. Také takový proces zůstane trčet v paměti i ve správci procesů, takže pokud by se spouštěl periodicky v plánovači úloh, zaplní se časem RAM i swap.
Prostě to zastavování před koncem nemám rád.
ale ty to beres jako kdybych delal projekt manhattan xD tohle sou kraviny na ukazku tady nejaky malinky "vytizeni" pameti nevadi v tomhle pripade ani getch() pac ta zatez bufferu je uplne minimalni xDD
Nešpagetovost v neobjektovém jazyce řeším tak, že mám u funkcí nespočet parametrů. Ono jich nebývá moc, nemívám víc než 4, ale obvykle stačí 1-2.
Globálním proměnným se vyhýbám globálním obloukem.
Tady nejde o vytížení paměti, ale o to, že se ta aplikace pak chová jinak, než od ní očekávám. Zřejmě máme každý jiné očekávání a u toho bychom mohli klidně zůstat.
Mým úmyslem není do tebe rýpat. Nenadával jsem ti do idiotů a dementů. Pouze jsem ten program označil jako chybně napsaný, neudržovatelný a nepřehledný. A také jsem k tomu dodal argumenty, aby se začátečníci podle toho neučili.
Když nad tím přemýšlím, tak se glob. proměnným asi dá vyhnout, ale co jsem se učil Pascal, tak jsem snad neviděl program, který by je neměl (plus nás to učili), v těchto jazycích se prostě takto programovalo a tak byly i navrženy. Nebo se mýlím?
ja to pro zacatecniky nepsal rekni mi jaky zacatecnik by poznal chybu ze nevyrovnavam double o 0.000000000000001 to bylo pro chytry kluky jinak tvejch vyhrad si vazim ale priste to podej trochu normalne a ne ze to vypada jako " ja jsem buh vy vsichni ste idioti a takhle to proste je a tecka" kazdej mame asi jiny zajmy a predstavy a tim bych i tenhle topic ukoncil zacina se to tu rozvijet od ty hry az proc je linux lepsi nez windows
"Zvracení" jsem už vzal zpět.
O globálních proměnných víme oba své. Dobrý sluha, ale zlý pán. Ve vícevláknových aplikacích to s nimi není jednoduché.
Tak fajn, já to tu zavřu
jop za ty globalni promenne se omlouvam ale zacal jsem to psat a pak uz jsem to nedomyslel tak jsem pokradoval dal priste uz to fixnu hned na zacatku no nic priste az neco vymyslim spis se zamer na ukol nez na hledani zbytecnych veci jako je treba pause a podobne
Globálním proměnným se dá vyhnout. Pascal jsem se také učil a odrazovali nás od nich. Dokonce nás odrazovali i od parametrů předávaných odkazem. Naučili nás i používání goto a také že bychom se mu měli vyhnout. Na to, že v původním Pascalu není break ani continue, to bylo někdy docela zábavné.
Těch zásad se stále držím a dokonce i testovací a jednoúčelové programy píšu podle nich. Raději předám vše přes parametry, než bych měl použít jen jednu globální proměnnou. Kdysi jsem to nějakou dobu v PHP používal a blbě se hledaly chyby. Dokonce ani funkce define() mi nevoní, protože to omezuje znovupoužitelnost bloků, které je potřebují.
Zobrazeno 46 zpráv z 46.