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ść * * * *******************************