Metody wprowadzania liczby
Okna dialogowe i pola edycji pozwalają na wczytywanie łańcucha znaków. Jeśli parametr wejściowy ma być odczytany jako liczba, musimy zamienić wprowadzony łańcuch na liczbę, wykorzystując procedurę Val lub funkcje: StrToInt, StrToFloat, StrToCurr. Sprawdzając poprawność zamiany, możemy pominąć źle wprowadzone dane i powrócić do ponownego czytania.
Sposoby testowania poprawności
Dla znanej z Pascala procedury Val(łańcuch, liczba, k) zamiana podanej wartości z parametrem łańcuch na liczbę odbieraną zmienną liczba dokonana jest poprawnie, gdy trzeci parametr k jest równy zero. Do testowania poprawności zamiany dokonanej przez funkcje StrToInt, StrToFloat, StrToCurr możemy wykorzystać instrukcję obsługi błędu try.... Postać tej instrukcji i sposób bezpiecznego wprowadzania liczby tą metodą będzie omówiony w następnym ćwiczeniu.
Zadanie aplikacji
Aplikacja po naciśnięciu przycisku wczytuje dwie liczby funkcją InputBox, zamienia wczytane wartości na postać liczbową, sumuje je i wyświetla całe działanie na etykiecie. W celu zamiany łańcucha na liczbę zastosowana jest procedura Val, a do zamiany liczby (wyniku działania) na łańcuch funkcja FloatToStr. Przy testowaniu aplikacji należy pamiętać o wprowadzaniu liczb dziesiętnych w formacie z kropką dziesiętną.
Nowe umiejętności
Zamiana łańcucha znaków na liczbę. Bezpieczne wczytywanie liczby.
Na formularzu wstaw przycisk z napisem Czytaj liczbę i etykietę Label.
Do przycisku przypisz procedurę-zdarzenie:
procedure TForm1.Button1Click(Sender: TObject):
Var
x,y:Real;
kod:Integer;
str1,str2:String;
begin
kod:=0;
repeat
str1:=InputBox(`Wprowadzanie danych' ,'Podaj pierwszą liczbę','');
Val(str1,x,kod);
if kod<>0 then
ShowMessage(`Błądna liczba');
Until kod=0;
// opuszczenie pętli następuje, gdy liczba jest wprowadzona poprawnie
kod:=0;
repeat
str2:=InputBox(`Wprowadzanie danych','Podaj drugą liczbą','');
Val (str2,y,kod);
if kod<>0 then
ShowMessage(`Błędna liczba');
until kod=0;
//opuszczenie pętli następuje, gdy liczba jest wprowadzona poprawnie
Label1.Caption:=str1+'+'+str2+'=` + FloatToStr (x+y);
end;
Sprawdź działanie aplikacji.
Zadanie l
Stosując dowolną pętle, przeprowadź sumowanie n liczb wczytywanych z klawiatury i wyświetl wynik w oknie ShowMessage.
Zadanie 2
Napisz prosty kalkulator, który będzie zawierał przyciski symbolizujące określone działania matematyczne. Wprowadzanie danych ma się odbywać za pośrednictwem funkcji InputBox.
Zadanie 3
Napisz program, który stosując funkcję InputBox wczytuje nazwisko i imię oraz wiek osoby i w oknie komunikatu wyświetla informację o tym, czy jest to osoba dorosła, w wieku produkcyjnym czy na emeryturze.
Zadanie 4
Napisz program, który stosując funkcję InputBox wczytuje nazwisko i imię pracownika i jego pensję brutto. Po zaznaczeniu przyciskami opcji progu podatkowego w oknie ShowMessage wyświetla się pensja pomniejszona o podatek. Uwzględnij trzy progi podatkowe.
Metody wprowadzania liczby
Okna dialogowe i pola edycji pozwalają na wczytywanie łańcucha znaków. Jeśli parametr wejściowy ma być odczytany jako liczba, musimy zamienić wprowadzony łańcuch na liczbę, wykorzystując procedurę Val lub funkcje: StrToInt, StrToFloat, StrToCurr. Sprawdzając poprawność zamiany, możemy pominąć źle wprowadzone dane i powrócić do ponownego czytania.
Sposoby testowania poprawności
Dla znanej z Pascala procedury Val(łańcuch, liczba, k) zamiana podanej wartości z parametrem łańcuch na liczbę odbieraną zmienną liczba dokonana jest poprawnie, gdy trzeci parametr k jest równy zero. Do testowania poprawności zamiany dokonanej przez funkcje StrToInt, StrToFloat, StrToCurr możemy wykorzystać instrukcję obsługi błędu try.... Postać tej instrukcji i sposób bezpiecznego wprowadzania liczby tą metodą będzie omówiony w następnym ćwiczeniu.
Zadanie aplikacji
Aplikacja po naciśnięciu przycisku wczytuje dwie liczby funkcją InputBox, zamienia wczytane wartości na postać liczbową, sumuje je i wyświetla całe działanie na etykiecie. W celu zamiany łańcucha na liczbę zastosowana jest procedura Val, a do zamiany liczby (wyniku działania) na łańcuch funkcja FloatToStr. Przy testowaniu aplikacji należy pamiętać o wprowadzaniu liczb dziesiętnych w formacie z kropką dziesiętną.
Nowe umiejętności
Zamiana łańcucha znaków na liczbę. Bezpieczne wczytywanie liczby.
Na formularzu wstaw przycisk z napisem Czytaj liczbę i etykietę Label.
Do przycisku przypisz procedurę-zdarzenie:
procedure TForm1.Button1Click(Sender: TObject):
Var
x,y:Real;
kod:Integer;
str1,str2:String;
begin
kod:=0;
repeat
str1:=InputBox(`Wprowadzanie danych' ,'Podaj pierwszą liczbę','');
Val(str1,x,kod);
if kod<>0 then
ShowMessage(`Błądna liczba');
Until kod=0;
// opuszczenie pętli następuje, gdy liczba jest wprowadzona poprawnie
kod:=0;
repeat
str2:=InputBox(`Wprowadzanie danych','Podaj drugą liczbą','');
Val (str2,y,kod);
if kod<>0 then
ShowMessage(`Błędna liczba');
until kod=0;
//opuszczenie pętli następuje, gdy liczba jest wprowadzona poprawnie
Label1.Caption:=str1+'+'+str2+'=` + FloatToStr (x+y);
end;
Sprawdź działanie aplikacji.
Zadanie l
Stosując dowolną pętle, przeprowadź sumowanie n liczb wczytywanych z klawiatury i wyświetl wynik w oknie ShowMessage.
Zadanie 2
Napisz prosty kalkulator, który będzie zawierał przyciski symbolizujące określone działania matematyczne. Wprowadzanie danych ma się odbywać za pośrednictwem funkcji InputBox.
Zadanie 3
Napisz program, który stosując funkcję InputBox wczytuje nazwisko i imię oraz wiek osoby i w oknie komunikatu wyświetla informację o tym, czy jest to osoba dorosła, w wieku produkcyjnym czy na emeryturze.
Zadanie 4
Napisz program, który stosując funkcję InputBox wczytuje nazwisko i imię pracownika i jego pensję brutto. Po zaznaczeniu przyciskami opcji progu podatkowego w oknie ShowMessage wyświetla się pensja pomniejszona o podatek. Uwzględnij trzy progi podatkowe.
2