Kezdőoldal » Számítástechnika » Programozás » Mi lehet a probléma? (Pascal)

Mi lehet a probléma? (Pascal)

Figyelt kérdés

A feladat: Kérjünk be karaktereket ESC végjelig, majd jelenítsük meg a beírtakat, majd a nem beírtakat. Minden betűt csak egyszer írjunk ki, ne különböztessünk meg nagy- és kisbetűt.


Eddig eljutottam:

program asd;

uses crt;

var

betuk: set of 'A'..'Z';

kar: char;


Begin

clrscr;


betuk:=[];

while kar <> #27 do begin

readln(kar);

kar:=upcase(kar);

if kar in ['A'..'Z'] then

betuk:=betuk+[kar];

end;


write('beirt betuk: ');

for kar:='A' to 'Z' do begin

if kar in betuk then

write(kar);

end;

writeln;



write('nem beirt betuk: ');

for kar:='A' to 'Z' do begin

if not(kar in betuk) then write(kar);

end;


readln;

end.


A baj az, hogy egyszerűen nem lesz vége a beolvasásnak ESC leütésekor. Kipróbáltam egyes betűk esetén ilyen formában: while kar<>'L' do...így működik, de ASCII kódokkal sehogysem akar, sőt, még CTRL+BREAK-kel sem lép ki. Előre is köszi.



2015. márc. 17. 18:50
 1/2 coopper ***** válasza:

Szia.


Ide a readln-s beolvasás nem jó. mivel as ESC karakter a nem nyomtatható ( igy nem megjelenithető) tartományban van az ASCII kódtáblában ( [link] - első öszlop ).


Ebből következik, hogy keypressed illetve readkey függvények használastával kellene megoldani a feladatot.


pl igy :


while kar <> #27 do begin

if keypressed then begin

Kar:=readkey ;

if Kar=#0 then begin { Specialis karakterek }

Kar:=readkey;

Kar:=#0;

end ;

kar:=upcase(kar);

writeln (kar);

if kar in ['A'..'Z'] then

betuk:=betuk+[kar];

end ;

end;


Sok sikert.

üdv.

2015. márc. 17. 20:42
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
Nagyon szépen köszönöm, sokat segített.
2015. márc. 17. 21:07

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!