Kezdőoldal » Számítástechnika » Programozás » Pascalban, hogy lehet tesztet...

Pascalban, hogy lehet tesztet készíteni úgy, hogy legyen a, b, c választási lehetőség? Tovább lent.

Figyelt kérdés

Sziasztok!

Vagy, ha jó választ ad, akkor pl. kiírja, hogy ügyes vagy, ha pedig rosszat, akkor pl. ez most nem sikerült.

Előre is köszi! :)



2016. nov. 30. 14:14
 1/10 anonim ***** válasza:
78%
if
2016. nov. 30. 14:25
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
76%

if tudás=0 then begin

Google keresés

end;

2016. nov. 30. 14:59
Hasznos számodra ez a válasz?
 3/10 tabaki ***** válasza:

program valasz;


var szo : string;

begin

      WriteLn('Kerek egy vicces szot: ');

      ReadLn(szo);

      case szo of

      'kelempaszmadar': WriteLn('Hihihi, huhuhu!');

      'szaletli': WriteLn('Nem rossz.');

      'kecske': WriteLn('Haaat, eleg gyenge...');

      else

            WriteLn('Semmi humorerzeked... Megbuktal!');

      end;

      ReadLn;

end.

2016. nov. 30. 16:51
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:
#3 Köszi szépen! :)
2016. nov. 30. 17:16
 5/10 coopper ***** válasza:

@tabaki


Nem szeretnék kötözködni, de tudomásom szerint a pascalos "case" csak sorszámozott típussal működik (de lehet hogy rosszul tudom) és a string az nem sorszámozott tipus : [link]


Üdv.

2016. nov. 30. 19:26
Hasznos számodra ez a válasz?
 6/10 uno20001 ***** válasza:

@coopper


Elvileg fpc-ben megy.

[link]

2016. nov. 30. 21:45
Hasznos számodra ez a válasz?
 7/10 tabaki ***** válasza:

@coopper:


A legritkább esetben küldök be kipróbálatlan kódot, ez sem az.

Talán valamikor az ősidőkben -- esetleg valami technikai megfontolás okán -- igaz lehetett, amit mondasz, netán még valami korai szabványba is belekerült, most azonban mind a Delphiben, mind a Free Pascalban hétköznapi a fentebbi megoldás:

[link]

[link]

...és ha belegondolsz, ebben nincs semmi csoda. Úgy is képzelheted, hogy a case-ágak egymástól (majdhogynem) független if utasításokként vizsgálják, hogy a megadott érték megegyezik-e valamely előre definiálttal -- márpedig két string egyenlősége ugyanúgy vizsgálható, mint két karakteré vagy integeré. Ebben az esetben az egyébként általam is becsült prog.ide.sk magyarázatát zavarosnak és logikailag indokolatlannak tartom. A feltétel-ellenőrzés semmiféle sorrenddel vagy egymást követő elemekkel nem foglalkozik, csak a megadott érték és a konstansok összehasonlításával. Hogy ebből a realt kizárják, azt a törtek egyenlőségre vizsgálásának ismert problémái érthetővé teszik, de amikor egyértelműen eldönthető a feltétel igazságtartalma, akkor miért is ne?

2016. dec. 1. 01:31
Hasznos számodra ez a válasz?
 8/10 coopper ***** válasza:

@tabaki


Az általad linklelt stackoverflow-os link is azt mondja, (legalább is szerintem), hogy delphiben nem megy : "The Delphi Case Statement only supports ordinal types. So you cannot use strings directly"


És ezt saját tapasztalatból meg is tudom erősiteni, bekopiztam a kódot egy delphi consolos alkalmazásba és hibát kaptam a "Case szo of" sornál kép : [link]


Az lehet, hogy Freepascalban müködik, ezt nem tudom, nem próbáltam, de hogy Delphi7-ben nem az biztos.


üdv.

2016. dec. 1. 06:58
Hasznos számodra ez a válasz?
 9/10 tabaki ***** válasza:

@coopper:


Igazad van, ezt csúnyán benéztem sebtiben, a bejegyzés pont arról szól, hogy a Delphi ez egyszer nem tudja azt, amit a Free Pascal. Ha nem is menti, de valamennyire magyarázza a trehányságomat, hogy a FP általában lelkiismeretesen másolja a Nagy Testvér megoldásait -- hát, most nem. Ennek az alapján már én is inkább azt javaslom, hogy a hordozhatóbb kód érdekében érdemes kerülni a közvetlen stringhasználatot. Mellesleg, ha az ember mégis él vele, illendő a stringet előbb valami megbízhatóbban vizsgálható formára hozni, mondjuk LowerCase utasítással:

...

case LowerCase(szo) of

...

2016. dec. 1. 11:24
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:

Már nem azért de a kérdés az arról szólt, hogy a kérdező szeretne csinálni olyan kérdéssort, ahol 3 (vagy több)megadott válasz is van és azok közül tud választani a teszt kitöltője.


Egy lehetséges megoldás:


[link]

2016. dec. 1. 17:00
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!