[pasca] sprawdzanie zmiennej

0

Witam,
jestem na etapie nauki i nie wiem czy lub jak mozna sprawdzic jaki jest rodzaj zmiennej a mianowicie chodzi mi np o petle warunkowa if w ktorej na poczatku chce sprawdzic czy zmenna to cyfra jesli nie to wykonuje sie inny kod lub aby powtorzone bylo wpisanie zmiennej. Nie wiem czy jasno opisalem. :)

Cos w tym stylu
if warunek o ktory mi chodzi then
write('bleble');
else
write(bleble2');
end

0

Hmm, może się mylę, ale w Delphi, jeśli tak zmienna jest zmienną wariantową, to możesz zrobić coś takiego. Jeśli to jest łańcuch to możesz ew. spróbować skonwertować go na liczbę - jak wystąpi błąd to łańcuch liczbą nie jest. Mam nadzieję, że wyraziłem się jasno i nie mam dzisiaj zaćmienia :)

0

Hmm nie zalapalem (czyt. zbyt mala wiedza) :)
Sytuacja dosc prosta pewnie. Ogolnie jest to programik na prace zaliczeniowa w ktorym mam obliczac miedzy innymi pole kola. Odczytuje zmienna i obliczam. Problem mi sie pojawia gdy wpisze zamiast cyfry litere i to chce zabezpieczyc.

0

Podstawowe pytanie: piszesz w Delphi czy w TP?
Jeśli w Delphi, to masz tam funkcję StrToInt(), która generuje wyjątek, jeśli nie można skonwertować, wystaczy go obsłużyć.
Jeśli w TP, to (chociaż w Delphi tak też można :) - aplikacje konsolowe mam teraz na myśli) wczytujesz za pomocą Readln do zmiennej typu string, a potem za pomocą funkcji Val konwertujesz na Integer. Jeśli błąd <> 0 (któryś parametr funkcji Val - adres zmiennej, do której zapisze numer błędu lub 0 w przypadku powodzenia) to wypisujesz, że to nie jest liczba i jeszcze raz prosisz o podanie liczby.

// For Detox only :)
I minus jeśli ujemne :)

0

Ja zawsze proponuje zapobieganie takich sytuacji, niż później sprawdzanie - po prostu przy wczytywaniu liczby daj możliwość wprowadzenia tylko i wyłącznie cyfr [ 0..9 ] .. jeśli inne - nic nie rób. Do tego można dodać znak kropki, jeśli liczby rzeczywiste.

// Moze nie jestem aż tak restryktywny jak Detox, ale wyjatków unikam jak ognia. Val() ma tą piękną cechę, że zwaraca informację, czy ciąg znaków dało się skonwertować, właśnie bez wywoływania wyjątku [mf]

// flaber, a od kiedy w tp są wyjątki? - ŁF
// nie doczytalem czegos ? czyzby pascal mi umknelo ? :> [mf]

1 użytkowników online, w tym zalogowanych: 0, gości: 1