[ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Pascal , "Dotaznik"

Registrovaný: 12.01.12
Prihlásený: 01.01.16
Príspevky: 474
Témy: 13 | 13
Bydlisko: Martin
NapísalOffline : 12.02.2012 17:35 | Pascal , "Dotaznik"

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
Offline

Užívateľ
Užívateľ
Pascal , "Dotaznik"

Registrovaný: 23.12.10
Prihlásený: 10.09.22
Príspevky: 1056
Témy: 157 | 157
Bydlisko: KK/PP/BA
NapísalOffline : 12.02.2012 18:41 | Pascal , "Dotaznik"

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
Offline

Užívateľ
Užívateľ
Pascal , "Dotaznik"

Registrovaný: 27.12.08
Prihlásený: 13.12.22
Príspevky: 1874
Témy: 96 | 96
Bydlisko: Bratislava,...
NapísalOffline : 12.02.2012 18:42 | Pascal , "Dotaznik"

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)
Offline

Užívateľ
Užívateľ
Pascal , "Dotaznik"

Registrovaný: 12.01.12
Prihlásený: 01.01.16
Príspevky: 474
Témy: 13 | 13
Bydlisko: Martin
Napísal autor témyOffline : 12.02.2012 18:50 | Pascal , "Dotaznik"

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
Offline

Správca fóra
Správca fóra
Pascal , "Dotaznik"

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39 | 39
NapísalOffline : 12.02.2012 19:18 | Pascal , "Dotaznik"

nBXXL píše:
náhradou GOTO sú funkcie a procedúry


Funkcie a procedúry
samoštúdium...hodne zdaru


_________________
always is always wrong
Offline

Užívateľ
Užívateľ
Pascal , "Dotaznik"

Registrovaný: 23.12.10
Prihlásený: 10.09.22
Príspevky: 1056
Témy: 157 | 157
Bydlisko: KK/PP/BA
NapísalOffline : 12.02.2012 19:21 | Pascal , "Dotaznik"

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
 [ Príspevkov: 6 ] 


Pascal , "Dotaznik"



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Free Pascal a Turbo Pascal

v Assembler, C, C++, Pascal, Java

0

429

19.12.2014 13:18

Styracoz

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

v Assembler, C, C++, Pascal, Java

7

665

09.10.2011 21:30

F3RY

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Assembler, C, C++, Pascal, Java

40

1558

11.12.2016 22:08

viki

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Assembler, C, C++, Pascal, Java

2

1151

09.03.2007 14:08

misolax

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

v Assembler, C, C++, Pascal, Java

7

873

14.05.2011 20:04

F3RY

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Assembler, C, C++, Pascal, Java

2

614

24.06.2010 20:17

KatjushaMan

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

v Kôš

1

30

06.11.2018 14:38

werwest

V tomto fóre nie sú ďalšie neprečítané témy.

pascal...

v Assembler, C, C++, Pascal, Java

5

948

18.10.2008 19:02

redog

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Assembler, C, C++, Pascal, Java

6

775

08.01.2009 17:45

majka090

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Assembler, C, C++, Pascal, Java

11

1325

07.04.2007 16:50

programator

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Assembler, C, C++, Pascal, Java

19

3114

30.04.2007 19:54

nikita

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Assembler, C, C++, Pascal, Java

0

745

03.05.2009 12:35

ebb

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

v Assembler, C, C++, Pascal, Java

4

2425

01.03.2018 8:02

MTK

V tomto fóre nie sú ďalšie neprečítané témy.

pascal int64

v Assembler, C, C++, Pascal, Java

3

394

16.05.2012 22:49

nBXXL

V tomto fóre nie sú ďalšie neprečítané témy.

pascal skuska

v Assembler, C, C++, Pascal, Java

2

631

30.01.2008 17:46

alex7625

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal - Balon

v Assembler, C, C++, Pascal, Java

8

611

02.11.2009 23:19

Arsenius



© 2005 - 2024 PCforum, edited by JanoF