GRY-Online.pl --> Archiwum Forum

Turbopascal - prośba o pomoc!

23.05.2006
22:35
smile
[1]

peeyack [ Weekend Warrior ]

Turbopascal - prośba o pomoc!

Czesc wszystkim!
Mam nastepujace pytanie - musze uodpornic moj program na bledy potencjalnie tępego uzytkownika, w zwiazku z czym przy wczytywaniu zmiennej chcialbym nalozyc pewne ograniczenia. Chcę wczytac liczbe calkowitą. Ale uzytkownik moze podac litere, liczbe z przecinkiem albo inny znak i wtedy program sie wykrzaczy. Jaki jest sposob na ominiecie tego klopotu? Tzn jakas komenda, zeby sprawdzic, czy wczytany ciag znakow jest liczbą? Ewentualnie odwrotnie, czy wczytany ciag znakow string nie zawiera cyfr i nic spoza liter a - z?
Licze na was

23.05.2006
22:37
[2]

Regis [ ]

moze jakas funkcja isInt() albo cos takiego?

23.05.2006
22:38
[3]

Didier z Rivii [ life 4 sound ]

zrob tak zeby po wpisaniu znaku sprawdzal jego kod ascii i przyjmowal znak tylko wtedy kiedy kod nalezy do przedzialu ktory Ci odpowiada, to jest najprostsze chyba

23.05.2006
22:56
[4]

peeyack [ Weekend Warrior ]

Moze cos wiecej na ten temat chlopaki? Nie kojarze tych polecen, wiec wolalbym namacalny przyklad

23.05.2006
22:59
[5]

Kijano [ Generaďż˝ ]

robisz cos takiego

while (c <> #13) do begin
if( c == 1 or c ==2 )begin
writeln(c);
numer = numer + c;
end;
end;

Val( numer, liczba, integer );

liczba to twoja liczba

Niewiem czy dobrze dawno w Pascalu nie pisalem.

Pascal ma jeszcze b. dobrze rozwiniete omijanie bledow.

23.05.2006
23:40
[6]

peeyack [ Weekend Warrior ]

==>Kijano
Ta '13' to od czego? Kod Ascii? Pdwojne '=' w Pascalu chyba nie wystepuja? Ja sie nie spotkalem w kazdym badz razie. Mozesz jakos wyjasnic to co napisales? Co robi ta funkcja val ?

Co do sprawdzania kodu ASCII to raczej nie wiem, czy przejdzie, zmienna ma byc liczba typu byte, a nie jedna cyfra :-(

24.05.2006
08:59
[7]

peeyack [ Weekend Warrior ]

Moze dzis ktos cos doda?

24.05.2006
09:11
[8]

GADU [ Pretorianin ]

Kijano pomylil troche Pascala z C.
13 to kod ascii entera
w ifie powinny bys pojedyncze znaki rownosci jako porownania (w C podwojne znaji rownosci to porownania a pojedyncze to przypisania. W Pascalu pojedyncze to porownania a := to przypisania o ile dobrze pamietam)

24.05.2006
10:33
[9]

peeyack [ Weekend Warrior ]

powiedzmy mam zmienna ile.W programie jest readln(ile).
Potem mam wpisac ta petle while ile <>#13 do ?
Nie kumam tego co tam porownywac

24.05.2006
11:02
[10]

kastore [ Troll Slayer ]

Jak tu nie zobaczysz to daj maila , wyśle pasa

24.05.2006
11:05
[11]

kastore [ Troll Slayer ]

Program robi coś takiego
1. Zczytuje znak funkcją ReadKey
2. Funkcja Ord sprawdza jego kod. Jak jest dobry dodaje do tymczasowego Stringa
3. Jak naciśniesz Enter , przycisk o kodzie #13 to petla sie konczy
4. Funkcja Val zmienia Stringa na inta. Zmienna Code to tylko kontrola czy jest dobry string, no ale to już wiesz, bo wszystko inne poza cyframi jest filtrowane.
5. WriteLn wypisuje wynik

24.05.2006
13:24
[12]

Kijano [ Generaďż˝ ]

kastore dobrze zrobil. Tak jak ja chcialem ;)

24.05.2006
15:00
[13]

peeyack [ Weekend Warrior ]

Juz sie z nim dogadalem na gg. Dzieki wielkie wszystkim za pomoc.

© 2000-2024 GRY-OnLine S.A.