L7. Wprowadzanie danych.

Transkrypt

L7. Wprowadzanie danych.
Wprowadzanie danych
Interakcja z uŜytkownikiem to jedna z najwaŜniejszych cech programów uŜytkowych. I chociaŜ do pisania takowych
jeszcze nam daleko, to juŜ teraz dowiesz się jak pobrać pewne dane od uŜytkownika.
Instrukcja Read
Instrukcja Read jest w swym zachowaniu bardzo podobna do Write. Podobnie jak ona posiada analogiczną instrukcję
przechodzącą do następnej linii, podobnie teŜ moŜe przyjmować argumenty będące dowolnymi zmiennymi, jeŜeli tylko ich
wartość moŜna zapisać.
śeby lepiej zrozumieć tę ideę przyjrzyjmy się poniŜszemu przykładowi:
Program DivIMod;
Var
Dzielna, Dzielnik : Integer; { Zastępujemy zmienne stałymi }
Wynik, Reszta
: Integer;
Begin
WriteLn('Witaj w programie dzielącym liczby!');
Write('Podaj pierwszą liczbę... ');
ReadLn(Dzielna);
Write('Podaj drugą liczbę... ');
ReadLn(Dzielnik);
Wynik:=Dzielna Div Dzielnik;
Reszta:=Dzielna Mod Dzielnik;
WriteLn(Dzielna, ' / ', Dzielnik, ' = ', Wynik, ' r ', Reszta, '.');
Write('Wciśnij [ENTER] by zakończyć... ');
ReadLn; { Zatrzymanie programu }
End.
Jak zapewne pamiętacie poprzednia wersja tego programu miała jedną wadę - liczby zostały w niej zapisane jako
stałe. Taki program z punktu widzenia uŜytkownika jest bezuŜyteczny. Dlatego tym razem liczby pobieramy od
uŜytkownika. SłuŜy nam do tego procedura ReadLn, która pobiera od uŜytkownika 1 linię tekstu.
JeŜeli pobawisz się trochę instrukcjami Read i ReadLn zauwaŜysz, Ŝe pobierają one znaki do momentu wciśnięcia
entera. Czym więc się róŜnią? Wyjaśni nam to kolejny program:
Program WprowadzanieDanych;
Var
L1, L2 : Integer;
Begin
L1:=0;
L2:=0;
Read(L1);
Read(L2);
WriteLn('L1 = ', L1 :6, ', L2 = ', L2 :6, '.');
ReadLn(L1);
ReadLn(L2);
WriteLn('L1 = ', L1 :6, ', L2 = ', L2 :6, '.');
End.
Podczas działania programu rzeczywiście moŜna nie zauwaŜyć róŜnicy. Wpisujemy jedną liczbę, enter, drugą liczbę i
otrzymujemy wydruk. Podobnie za drugim razem. Sprawdź jednak co się stanie gdy za pierwszym razem wpiszesz dwie
liczby w jednej linii oddzielając je spacją.
Okazuje się, Ŝe jeśli uŜywamy instrukcji Read moŜemy wprowadzić wartości wielu zmiennych w jednej linii.
MoŜemy je oddzielać dowolnymi znakami białymi, czyli takimi, których nie widać w tekście. NaleŜą do nich spacje i
tabulatory, a takŜe znaki końca wiersza, czyli entery.
Instrukcja wczytania - tak jak instrukcja wyprowadzenia - moŜe przyjmować wiele argumentów. Gdy napiszemy
ReadLn(Zmienna1, Zmienna2, Zmienna2); będziemy mogli wczytać trzy zmienne w jednej linii.
Jeśli jeszcze nie jesteś pewien, czy wszystko dobrze rozumiesz spróbuj po prostu sprawdzić to o czym piszę
eksperymentalnie. To na pewno wiele Ci rozjaśni.
ZADANIA DO WYKONANIA:
Zadanie 1.
Napisz program, który wykona następujące działania matematyczne dla 3 wprowadzonych liczb przez uŜytkownika
- a+b+c
- a*b+c
- (c*b)/a
- (c*b*a)/(a+b+c)
- (a*b)-(b*c)-(c*a)
Zadanie 2.
Napisz program, który wyświetli dane wprowadzone przez uŜytkownika w następujący sposób (wszystkie dane musi
wprowadzić uŜytkownik):
*******************************
*
*
*
Imię i nazwisko
*
*
*
*
ulica i numer domu
*
*
*
*
Miejscowość
*
*
*
*******************************

Podobne dokumenty