5. KOMUNIKACJA PROGRAMU Z UŻYTKOWNIKIEM

5.1. Odczyt wartości, które użytkownik wprowadza z klawiatury

Do odczytu przez program wartości wprowadzonej z klawiatury i zapamiętania jej w odpowiedniej zmiennej służy instrukcja wywołania procedury o nazwie Readln (od ang. read line− czytaj wiersz).

Readln(X);

W tej instrukcji Readln jest nazwą wywoływanej procedury odczytu, natomiast napisany w nawiasie argument procedury X jest nazwą zmiennej, w której ma być przechowana odczytana z klawiatury wartość.

Zmienna X może być typu liczbowego, znakowego lub łańcuchowego.

Współpraca użytkownika z programem przy wykonywaniu instrukcji Readln przebiega, jak następuje:

  1. Instrukcja zatrzymuje program, który czeka na reakcję użytkownika.

  2. Użytkownik naciska kolejno klawisze, wpisując wartość, jaką chce nadać zmiennej X. Wpisywane znaki są widoczne na ekranie, co umożliwia kontrolę i poprawienie zapisu w przypadku pomyłki.

  3. Gdy zapis wprowadzanej wartości jest kompletny, użytkownik naciska klawisz <Enter>.

  4. Wprowadzona wartość zostaje przypisana zmiennej X. Dawna wartość X zostaje wymazana.

  5. Program przechodzi do wykonania kolejnej instrukcji programu głównego.

Uwaga: Procedura Readln może mieć wiele argumentów, oddzielonych przecinkami, np:

Readln(X,Y,Z);

Wszystkie argumenty muszą być nazwami zmiennych.

Wprowadzane z klawiatury argumenty oddzielamy od siebie, naciskając klawisz spacji, tabulacji, lub <Enter>.

Po wprowadzeniu wszystkich argumentów naciskamy klawisz <Enter>.

Zalecenia praktyczne:

5.2. Wyprowadzanie danych na ekran za pomocą instrukcji Write, Writeln

Dla wyprowadzenia danych na ekran stosujemy instrukcję wywołania procedury Write (ang. write - pisz) lub Writeln( ang. write line - pisz wiersz).

Write(A1,A2, ... An);

Writeln(A1,A2, ... An);

Argumenty A1..An służą do określenia danych, które są kolejno wyprowadzane na ekran. Liczba argumentów oddzielanych przecinkami jest dowolna.

Typy argumentów mogą być różne - liczbowe, znakowy, logiczny, łańcuchowy, przy czym:

argument Ai może być:

Stałe jawne są wyprowadzane na ekran bez zmian.

W przypadku stałych definiowanych lub zmiennych, instrukcja wypisze definiowaną wartość stałej lub pobraną z pamięci aktualną wartość zmiennej.

Gdy argumentem jest wyrażenie, instrukcja Write lub Writeln obliczy jego wartość i na ekran zostanie wyprowadzony końcowy wynik.

Jeśli argument jest funkcją, to zostanie ona wywołana, a na ekranie ukaże się zwracana przez nią wartość.

Przykład

Write

('3 razy 3 to ',3*3,', a 11 razy 11 to ',Sqr(11),'.');

Na ekranie (rozpoczynając od aktualnego położenia kursora), zostanie wydrukowany napis:

3 razy 3 to 9, a 11 razy 11 to 121.

5.3.Wyprowadzanie wartości zmiennych rzeczywistych. Parametry „długość” oraz „liczba pozycji”

Przykłady:

  1. Wyprowadzanie liczby w notacji wykładniczej

  2. Writeln('Sqrt(2)+1=',Sqrt(2)+1);

    Na ekranie pojawi się tekst:

    Sqrt(2)+1=2.4142135624E+00

    1. Użycie parametru „długość”dla liczb całkowitych

    2. Writeln(5:2,Sqr(5):10);

      Writeln(10:2,Sqr(10):10);

      Writeln(20:2,Sqr(20):10);

      Writeln(30:2,Sqr(30):10);

      Writeln(40:2,Sqr(40):10);

      {Na ekranie pojawi się tekst:

      5 25

      10 100

      20 400

      30 900

      40 1600

      _ }

      1. Wykorzystanie parametrów „długość” i „ liczba pozycji dla liczb rzeczywistych

      2. Writeln(Sqrt(3));

        Writeln(Sqrt(3):12:1);

        Writeln(Sqrt(3):12:2);

        Writeln(Sqrt(3):12:3);

        Writeln(Sqrt(3):12:4);

        Writeln(Sqrt(3):12:5);

        Writeln(Sqrt(3):12:6);

        Na ekranie pojawi się tekst:

        1.7320508076E+00

        1.7

        1.73

        1.732

        1.7321

        1.73205

        1.732051

        _

        5.4. Pierwszy program: dialog z użytkownikiem z obliczeniem jego wieku

        program Witaj;

        uses Crt; {deklaracja modułu zaw. clrscr}

        var R:Integer; {deklaracja zmiennej}

        {program główny - sekcja instrukcji}

        begin

        Clrscr; {czyszczenie ekranu}

        Write('Witaj! Podaj rok urodzenia: ');

        Readln(R);

        Write

        ('W tym roku masz ',2011-R,'. urodziny.');

        Readln; {zatrzymanie programu}

        end.

        20