I. Wstęp
Witaj. W tej części kursu zajmiemy się czymś praktycznym, czyli pobieraniem danych od użytkownika oraz ich wyświetlaniem. Poznasz podstawowe procedury służące do wyświetlania i pobierania danych.
II. Pobieranie i wyświetlanie danych
Teraz podam kilka procedur, a następnie przedstawię kod kilku programów korzystających z tych procedur. Niektóre z nich będą pochodziły z biblioteki CRT, zatem jeśli chcemy ich użyć, należy dodać jej nazwę po słowie uses i zakończyć średnikiem. Przy procedurach pochodzących z biblioteki CRT zaznaczyłem to w nawiasie, natomiast reszta procedur pochodzi z domyślnie dołączonego modułu System.
Write - wyświetla podane wartości w oknie konsoli. Wartości możemy oddzielić przecinkiem.
Przykładowe wywołania:
Write('Witaj!'); //wypisuje na ekran tekst Witaj!
Write('Wynik: ',suma); //wypisuje na ekranie tekst Wynik:, a obok wartość zmiennej suma
Write(liczba); //wyświetla wartość zmiennej liczba
Write(liczba:10:2); //wyświetla wartość zmiennej liczba
//zaokrągloną do 10 miejsc przed kropką i dwóch po kropce
//(zakładając, że zmienna zawiera liczbę zmiennoprzecinkową)
W ostatnim przykładowym wywołaniu widzimy wyświetlanie liczb z podaną precyzją. Robimy to poprzez podanie wartości i po pierwszym dwukropku piszemy do ilu cyfr ma wyświetlić przed kropką (jeżeli cyfr jest mniej, wypełni te miejsca spacjami), a po drugim dwukropku piszemy ile miejsc po kropce ma zostać wyświetlonych.
WriteLn - podobnie do Write, wyświetla wartości podane za parametry, różni się tym, że przechodzi do następnej linii.
Przykładowe wywołania:
WriteLn('Witaj!'); //wypisuje na ekran tekst Witaj! i przechodzi do kolejnej linii
WriteLn; //przechodzi tylko do następnej linii
Read - zatrzymuje program i oczekuje na wprowadzenie danych przez użytkownika, które zapisuje do podanej za parametr zmiennej.
Przykładowe wywołania:
Read(znak); //czeka na wprowadzenie danych i zapisuje je do zmiennej o nazwie znak, nie przechodzi do następnej linii
Read(znak2); //czeka na wprowadzenie danych i zapisuje je do zmiennej o nazwie znak2, nie przechodzi do następnej linii
Read; //zatrzymuje działanie programu do czasu wciśnięcia klawisza, nie zapisuje nigdzie wprowadzonych wartości
ReadLn - podobnie do procedury Read, zatrzymuje program i czeka na wprowadzenie danych, po wprowadzeniu ich przechodzi do kolejnej linii
Przykładowe wywołania:
ReadLn(tekst); //czeka na wprowadzenie danych i zapisuje je do zmiennej tekst, po wprowadzeniu danych przechodzi do kolejnej linii
ReadLn(); //przenosi kursor do nowej linii i czeka tylko na naciśnięcie klawisza
ClrScr (z biblioteki CRT) - czyści okno konsoli i ustawia kursor w pozycji 0,0
Wywołanie:
ClrScr(); //lub bez nawiasów: ClrScr;
GotoXY (z biblioteki CRT) - ustawia kursor na podane poprzez parametry współrzędne. Wymiary okna konsoli to 80 kolumn na 25 wierszy.
Przykładowe wywołania:
GotoXY(10,7); //przenosi kursor do 10 kolumny i 7 wiersza
GotoXY(80,25); //przenosi kursor do 80 kolumny i 25 wiersza
Podam również kilka procedur nie związanych z wyświetlaniem danych, ale również użytecznych:
Delay (z biblioteki CRT) - zatrzymuje działanie programu na czas podany za parametr w milisekundach (1 sekunda = 1000 milisekund).
Przykładowe wywołanie:
Delay(2000); //zatrzyma program na dwie sekundy
Sound (z biblioteki CRT) - włącza sygnał dźwiękowy o podanej za parametr częstotliwości (parametr to liczba typu word).
Przykładowe wywołanie:
Sound(2000); //włączy się sygnał dźwiękowy o częstotliwości 2000
NoSound (z biblioteki CRT) - włącza sygnał dźwiękowy o podanej za parametr częstotliwości (parametr to liczba typu word).
Przykładowe wywołanie:
NoSound(); //wyłączy sygnał dźwiękowy
Halt - zamyka program i powraca do systemu
Wywołanie:
Halt(); //lub bez nawiasów: Halt;
III. Przykładowe programy
Teraz napiszmy prosty program, który zapyta użytkownika o jego imię, a następnie pozdrowi go słowami Witaj <imię>! Najpierw przedstawię kod programu, który zaraz opiszę.
W programie powyżej widzimy zadeklarowaną zmienną o nazwie szName, zmienna jest typu napisowego (String). Niżej widzimy wywołanie procedury ClrScr(), która czyści ekran konsoli. Nawias przy jej wywołaniu jest pusty, gdyż nie przyjmuje ona żadnych parametrów. Niżej została użyta procedura WriteLn(), której w nawiasie podaliśmy za parametr tekst 'Podaj swoje imię:'. Dalej jest procedura ReadLn(), której w nawiasie podaliśmy zmienną do której ma zostać zapisany pobrany od użytkownika tekst. Dalej jest ponowne wywołanie procedury WriteLn(), jednak tym razem podaliśmy jej jako parametry trzy napisy, oddzielone przecinkiem, które zostaną wyświetlone jeden obok drugiego. Dalej jest wywołanie procedury ReadLn(), jednak bez parametrów. Została ona użyta tutaj do zatrzymania programu do czasu wciśnięcia klawisza, aby móc zobaczyć rezultat.
Poprzedni program operował na napisach, dlatego ten będzie operował na liczbach. Prezentuje on sposób wyświetlania liczb zmiennoprzecinkowych (ułamków) z podaną dokładnością.
W powyższym programie widzimy zadeklarowaną stałą zawierającą wartość liczby Pi z dokładnością do 17 miejsc po kropce. W głównym kodzie programu możemy zobaczyć procedurę czyszczącą ekran, a dalej procedurą wyświetlającą wartość stałej o nazwie PiValue z dokładnością do jednego miejsca przed kropką i dwóch miejsc po kropce. Przy okazji dodam, że istnieje funkcja o nazwie Pi(); zwracająca przybliżoną wartość liczby Pi.
Kolejny program działający na liczbach. Ten prezentuje kilka prostych działań arytmetycznych wraz z wyświetleniem rezultatu.
Powyższy kod po kolei: czyści ekran, wyświetla komunikat proszący o podanie pierwszej liczby, pobiera i zapisuje tą liczbę w zmiennej A, wyświetla komunikat proszący o podanie drugiej liczby, zapisuje tą wartość w zmiennej B, a następnie wyświetla wyniki kilku działań arytmetycznych wykonanych na podanych liczbach. Widzimy tam dodawanie, odejmowanie, mnożenie, dzielenie, zaokrąglony wynik z dzielenia (jeżeli liczby nie są podzielne) oraz resztę z dzielenia (obliczamy ją korzystając z operatora mod).
IV. Zakończenie
To już wszystko w tej części kursu programowania w Pascalu. Dziękuję.
Witaj. W tej części kursu zajmiemy się czymś praktycznym, czyli pobieraniem danych od użytkownika oraz ich wyświetlaniem. Poznasz podstawowe procedury służące do wyświetlania i pobierania danych.
II. Pobieranie i wyświetlanie danych
Teraz podam kilka procedur, a następnie przedstawię kod kilku programów korzystających z tych procedur. Niektóre z nich będą pochodziły z biblioteki CRT, zatem jeśli chcemy ich użyć, należy dodać jej nazwę po słowie uses i zakończyć średnikiem. Przy procedurach pochodzących z biblioteki CRT zaznaczyłem to w nawiasie, natomiast reszta procedur pochodzi z domyślnie dołączonego modułu System.
Write - wyświetla podane wartości w oknie konsoli. Wartości możemy oddzielić przecinkiem.
Przykładowe wywołania:
Write('Witaj!'); //wypisuje na ekran tekst Witaj!
Write('Wynik: ',suma); //wypisuje na ekranie tekst Wynik:, a obok wartość zmiennej suma
Write(liczba); //wyświetla wartość zmiennej liczba
Write(liczba:10:2); //wyświetla wartość zmiennej liczba
//zaokrągloną do 10 miejsc przed kropką i dwóch po kropce
//(zakładając, że zmienna zawiera liczbę zmiennoprzecinkową)
W ostatnim przykładowym wywołaniu widzimy wyświetlanie liczb z podaną precyzją. Robimy to poprzez podanie wartości i po pierwszym dwukropku piszemy do ilu cyfr ma wyświetlić przed kropką (jeżeli cyfr jest mniej, wypełni te miejsca spacjami), a po drugim dwukropku piszemy ile miejsc po kropce ma zostać wyświetlonych.
WriteLn - podobnie do Write, wyświetla wartości podane za parametry, różni się tym, że przechodzi do następnej linii.
Przykładowe wywołania:
WriteLn('Witaj!'); //wypisuje na ekran tekst Witaj! i przechodzi do kolejnej linii
WriteLn; //przechodzi tylko do następnej linii
Read - zatrzymuje program i oczekuje na wprowadzenie danych przez użytkownika, które zapisuje do podanej za parametr zmiennej.
Przykładowe wywołania:
Read(znak); //czeka na wprowadzenie danych i zapisuje je do zmiennej o nazwie znak, nie przechodzi do następnej linii
Read(znak2); //czeka na wprowadzenie danych i zapisuje je do zmiennej o nazwie znak2, nie przechodzi do następnej linii
Read; //zatrzymuje działanie programu do czasu wciśnięcia klawisza, nie zapisuje nigdzie wprowadzonych wartości
ReadLn - podobnie do procedury Read, zatrzymuje program i czeka na wprowadzenie danych, po wprowadzeniu ich przechodzi do kolejnej linii
Przykładowe wywołania:
ReadLn(tekst); //czeka na wprowadzenie danych i zapisuje je do zmiennej tekst, po wprowadzeniu danych przechodzi do kolejnej linii
ReadLn(); //przenosi kursor do nowej linii i czeka tylko na naciśnięcie klawisza
ClrScr (z biblioteki CRT) - czyści okno konsoli i ustawia kursor w pozycji 0,0
Wywołanie:
ClrScr(); //lub bez nawiasów: ClrScr;
GotoXY (z biblioteki CRT) - ustawia kursor na podane poprzez parametry współrzędne. Wymiary okna konsoli to 80 kolumn na 25 wierszy.
Przykładowe wywołania:
GotoXY(10,7); //przenosi kursor do 10 kolumny i 7 wiersza
GotoXY(80,25); //przenosi kursor do 80 kolumny i 25 wiersza
Podam również kilka procedur nie związanych z wyświetlaniem danych, ale również użytecznych:
Delay (z biblioteki CRT) - zatrzymuje działanie programu na czas podany za parametr w milisekundach (1 sekunda = 1000 milisekund).
Przykładowe wywołanie:
Delay(2000); //zatrzyma program na dwie sekundy
Sound (z biblioteki CRT) - włącza sygnał dźwiękowy o podanej za parametr częstotliwości (parametr to liczba typu word).
Przykładowe wywołanie:
Sound(2000); //włączy się sygnał dźwiękowy o częstotliwości 2000
NoSound (z biblioteki CRT) - włącza sygnał dźwiękowy o podanej za parametr częstotliwości (parametr to liczba typu word).
Przykładowe wywołanie:
NoSound(); //wyłączy sygnał dźwiękowy
Halt - zamyka program i powraca do systemu
Wywołanie:
Halt(); //lub bez nawiasów: Halt;
III. Przykładowe programy
Teraz napiszmy prosty program, który zapyta użytkownika o jego imię, a następnie pozdrowi go słowami Witaj <imię>! Najpierw przedstawię kod programu, który zaraz opiszę.
Kod:
program Hello;
uses CRT;
var
szName : String;
begin
ClrScr();
WriteLn('Podaj swoje imię:');
ReadLn(szName);
WriteLn('Witaj ',szName,'!');
ReadLn();
end.
W programie powyżej widzimy zadeklarowaną zmienną o nazwie szName, zmienna jest typu napisowego (String). Niżej widzimy wywołanie procedury ClrScr(), która czyści ekran konsoli. Nawias przy jej wywołaniu jest pusty, gdyż nie przyjmuje ona żadnych parametrów. Niżej została użyta procedura WriteLn(), której w nawiasie podaliśmy za parametr tekst 'Podaj swoje imię:'. Dalej jest procedura ReadLn(), której w nawiasie podaliśmy zmienną do której ma zostać zapisany pobrany od użytkownika tekst. Dalej jest ponowne wywołanie procedury WriteLn(), jednak tym razem podaliśmy jej jako parametry trzy napisy, oddzielone przecinkiem, które zostaną wyświetlone jeden obok drugiego. Dalej jest wywołanie procedury ReadLn(), jednak bez parametrów. Została ona użyta tutaj do zatrzymania programu do czasu wciśnięcia klawisza, aby móc zobaczyć rezultat.
Poprzedni program operował na napisach, dlatego ten będzie operował na liczbach. Prezentuje on sposób wyświetlania liczb zmiennoprzecinkowych (ułamków) z podaną dokładnością.
Kod:
program Liczby1;
uses CRT;
const
PiValue = 3.14159265358979320;
begin
ClrScr();
WriteLn('Liczba Pi z dokladnoscia do dwoch miejsc po kropce: ',PiValue:1:2);
ReadLn();
end.
W powyższym programie widzimy zadeklarowaną stałą zawierającą wartość liczby Pi z dokładnością do 17 miejsc po kropce. W głównym kodzie programu możemy zobaczyć procedurę czyszczącą ekran, a dalej procedurą wyświetlającą wartość stałej o nazwie PiValue z dokładnością do jednego miejsca przed kropką i dwóch miejsc po kropce. Przy okazji dodam, że istnieje funkcja o nazwie Pi(); zwracająca przybliżoną wartość liczby Pi.
Kolejny program działający na liczbach. Ten prezentuje kilka prostych działań arytmetycznych wraz z wyświetleniem rezultatu.
Kod:
program Liczby2;
uses CRT;
var
A,B : Integer;
begin
ClrScr();
WriteLn('Podaj pierwsza liczbe: ');
Read(A);
WriteLn('Podaj druga liczbe: ');
Read(B);
WriteLn('Suma liczb ',A,' i ',B,' wynosi ',A+B);
WriteLn('Różnica liczb ',A,' i ',B,' wynosi ',A-B);
WriteLn('Iloczyn liczb ',A,' i ',B,' wynosi ',A*B);
WriteLn('Iloraz liczb ',A,' i ',B,' wynosi ',A/B);
WriteLn('Przyblizony iloraz liczb ',A,' i ',B,' wynosi ',A/B:10:5);
WriteLn('Reszta z dzielenia liczby ',A,' przez ',B,' wynosi ',A mod B);
ReadLn();
end.
Powyższy kod po kolei: czyści ekran, wyświetla komunikat proszący o podanie pierwszej liczby, pobiera i zapisuje tą liczbę w zmiennej A, wyświetla komunikat proszący o podanie drugiej liczby, zapisuje tą wartość w zmiennej B, a następnie wyświetla wyniki kilku działań arytmetycznych wykonanych na podanych liczbach. Widzimy tam dodawanie, odejmowanie, mnożenie, dzielenie, zaokrąglony wynik z dzielenia (jeżeli liczby nie są podzielne) oraz resztę z dzielenia (obliczamy ją korzystając z operatora mod).
IV. Zakończenie
To już wszystko w tej części kursu programowania w Pascalu. Dziękuję.