Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 12.01.12 Prihlásený: 01.01.16 Príspevky: 474 Témy: 13 | 13 Bydlisko: Martin |
Ahoj, ako ulohu som dostal spraviť dotazník alebo niečo na ten štýl a mal som použiť príkazy CASE a IF.
Spravil som niečo takéto no hádže mi to error, neviete v čom môže byť chyba?
Kód: program dotaznik; uses crt; label navrat; var i:integer; odpoved,volba:char begin clrscr; write('Vitajte v mojom dotazniku'); readln; navrat: writeln('čo by ste zmenili na našej škole'); writeln('a)nič, je to fajn'); writeln('b)pár maličkostí, ale inak nič'); writeln('c)Všetko, je to tu hrozne'); readln(odpoved); CASE odpoved OF 'A','a' : begin write('Otvor oči...'); readln; goto navrat; end; 'B','b': begin write('robíš si srandu??' ); readln; goto navrat; end; 'C','c' : write('Super, môj človek'); ELSE begin write('Nevies citat? Iba a/b/c'); readln; goto skok; end; end; readln; clrscr; write('Uspešne si to dokončil, chceš si to zopakovať? A/N'); IF (volba='a') OR (volba='A') then goto navrat else write('zbohom'); readln; end.
dakujem
_________________ CPU:AMD Athlon 4200+@2,5GHz,MB:MSI MS-7369, RAM:1GB GoodRam,VGA:ATi Radeon HD5550, PSU:Fortron FSP350-60APN HDD:Samsung HD161HJ,Monitor:BenQ GL950AM, CASE:Redstar OEM02 ATX,DVD:Samsung SH S203d,Keyboard:KME 2881,Repro:Teac X-3,Mouse1:Genius Net Scroll 110X,Mouse2Connect IT Premium CI-43 Router:Belkin N+ Wireless Router(F5D8235-4 v2),NTBLenovo G570,2GB,W7 Home |
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
Rozumies tomu kodu? Neviem naco je tam to goto, zbytocne komplikovane. Vyuziva sa to pre udavanie pozicie kurzora. Zbezne som to pozrel a zda sa mi vsetko v poriadku az na 3 riadok od konca. Nenacitavas vstup.
V pascale ti ukazuje poziciu riadka v ktorom ma chybu.
Naposledy upravil F3RY dňa 12.02.2012 18:42, celkovo upravené 1
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 | 96 Bydlisko: Bratislava,... |
Niesom jasnovidec, a predpokladám, že žiadneho tu ani nenájdeš.. preto, keď chceš svoj kód ukazovať iným, a chceš aby sa v ňom vyznali, dodržiavaj nasledovné zásady:
1. odsádzaj kód, tak aby bolo jasné, čo patrí do ktorého bloku (bloky sú napr. begin-end, case-end, atď) napr. takto:
Kód: begin; writeln(blabla); end; Kód: case a of 'A','a': begin writeln(blabla); end; end;
2. nepoužívaj GOTO, je to prežitok z doby basicu a podobných jazykov, strašne to zneprehľadňuje kód, môže spôsobiť ťažko nájditeľné chyby.. náhradou GOTO sú funkcie a procedúry
A teraz k hľadaniu chýb: je dobré naučiť sa chyby si hľadať sám, pretože na chybách sa človek učí, a pokiaľ budeš čakať, kým ti tvoju chybu niekto nájde, tak strácaš drahocenný čas.. a pri väčších projektoch ti už nikto v tvojom kóde chyby hľadať nebude.. Tu je niekoľko tipov:
1. tvoj kompilátor/IDE ti vždy okrem chyby napíše aj jej znenie a jej umiestnenie, z toho by si mal byť schopný pochopiť o akú chybu sa jedná, pokiaľ to nedokážeš, tak aspoň keď žiadaš o pomoc, uveď tieto údaje, nech to ostatní nemajú ťažšie..
2. keď si hľadáš chybu, skús sa zamyslieť nad tým, že čo tvoj program robí, ja chápem, že je to ťažké, obzvlášť pokiaľ používaš veľakrát goto a case, ale v takomto malom programe je to ešte relatívne jednoduché.. mne napr. na prvý pohľad bije do očí riadok goto skok, vzhľadom na to, že žiadny label s menom skok nikde nemáš..
AD F3RY: goto nie je to isté, čo gotoxy, gotoxy sa používa na presun kurzora, goto sa používa na skok v rámci programu, je to stará praktika pochádzajúca s prehistorických jazykov ako basic a fortran, dnes sa to už nepoužíva a myslím, že ani nevyučuje..
a áno, je tam viac chýb, z ktorých jedna je tá, že premennú voľba nenačítava zo vstupu..
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
Registrovaný: 12.01.12 Prihlásený: 01.01.16 Príspevky: 474 Témy: 13 | 13 Bydlisko: Martin |
ach ano, uz to mám, problém bol v tom skok. Tam som sa pomýlil.. A este k tomu goto, aká je teda adekvátna náhrada za príkaz goto?
_________________ CPU:AMD Athlon 4200+@2,5GHz,MB:MSI MS-7369, RAM:1GB GoodRam,VGA:ATi Radeon HD5550, PSU:Fortron FSP350-60APN HDD:Samsung HD161HJ,Monitor:BenQ GL950AM, CASE:Redstar OEM02 ATX,DVD:Samsung SH S203d,Keyboard:KME 2881,Repro:Teac X-3,Mouse1:Genius Net Scroll 110X,Mouse2Connect IT Premium CI-43 Router:Belkin N+ Wireless Router(F5D8235-4 v2),NTBLenovo G570,2GB,W7 Home |
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | 39 |
nBXXL píše: náhradou GOTO sú funkcie a procedúry
Funkcie a procedúry
samoštúdium...hodne zdaru
_________________ always is always wrong |
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
Aka nahrada? To goto tam pisat nemusis. Preto som sa ta pytal, ze ci vies ako to funguje. Mas tam vetvenie, cize ak sa podmienka splni, vypise text a program pokracuje dalej. Mas to zbytocne zdlhave a neprehladne. V case of uved iba podmienky. Usetris si begin/end, kedze za jednym prikazom to pisat nemusis a readln ti staci napisat raz po skonceni podmienky.
nBXXL píše: AD F3RY: goto nie je to isté, čo gotoxy, gotoxy sa používa na presun kurzora, goto sa používa na skok v rámci programu, je to stará praktika pochádzajúca s prehistorických jazykov ako basic a fortran, dnes sa to už nepoužíva a myslím, že ani nevyučuje..
Vdaka viem, ze to nieje gotoxy, ale na co sa to goto pouziva som nemal ani sajnu.
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 0 | 429 | 19.12.2014 13:18 Styracoz | | v Assembler, C, C++, Pascal, Java | 7 | 665 | 09.10.2011 21:30 F3RY | | [ Choď na stránku: 1, 2 ] v Assembler, C, C++, Pascal, Java | 40 | 1558 | 11.12.2016 22:08 viki | | v Assembler, C, C++, Pascal, Java | 2 | 1151 | 09.03.2007 14:08 misolax | | v Assembler, C, C++, Pascal, Java | 7 | 873 | 14.05.2011 20:04 F3RY | | v Assembler, C, C++, Pascal, Java | 2 | 614 | 24.06.2010 20:17 KatjushaMan | | v Kôš | 1 | 30 | 06.11.2018 14:38 werwest | | v Assembler, C, C++, Pascal, Java | 5 | 948 | 18.10.2008 19:02 redog | | v Assembler, C, C++, Pascal, Java | 6 | 775 | 08.01.2009 17:45 majka090 | | v Assembler, C, C++, Pascal, Java | 11 | 1325 | 07.04.2007 16:50 programator | | v Assembler, C, C++, Pascal, Java | 19 | 3114 | 30.04.2007 19:54 nikita | | v Assembler, C, C++, Pascal, Java | 0 | 745 | 03.05.2009 12:35 ebb | | v Assembler, C, C++, Pascal, Java | 4 | 2425 | 01.03.2018 8:02 MTK | | v Assembler, C, C++, Pascal, Java | 3 | 394 | 16.05.2012 22:49 nBXXL | | v Assembler, C, C++, Pascal, Java | 2 | 631 | 30.01.2008 17:46 alex7625 | | v Assembler, C, C++, Pascal, Java | 8 | 611 | 02.11.2009 23:19 Arsenius |
|