Как составить программу с readln

На занятии происходит знакомство с операторами readln и writeln в pascal; разбираются решенные задачи по работе с операторами ввода и вывода на языке Паскаль

Содержание:

    • Вывод данных: Оператор write или writeln в Pascal
  • Оператор присваивания и оператор Readln в Pascal
    • Оператор присваивания
    • Ввод данных
    • Список сниппетов

Вывод данных: Оператор write или writeln в Pascal

Оператор writeln (от англ. write line — написать строку) или write (от англ. write — написать) — оператор вывода в Паскале, т.е. служит для вывода на экран каких-либо данных (просто текста, результатов выполнения программы, значений переменных и т.п.).

  • Выводимый текст заключается в одиночные кавычки.
  • Для вывода значений переменных кавычки использовать нельзя, указывается просто идентификатор (имени переменной).
  • Если необходимо после вывода перейти на другую строку, то используется оператор writeln ().
    оператор write и writeln
    Результат:

    2+2=?
    Ответ: 4

    Рассмотрим примеры задач с использованием вывода Writeln в Pascal:

    1
    
    Write('Сумма 5 + 6 = ',5+6);

    Результат: Сумма 5 + 6 = 11

    Результат: Привет

    1
    
    Write('A'); Write('B');

    Результат: AB

    1
    
    Writeln('A'); Write('B');

    Результат:
    A
    B


    Print — это оператор, позволяющий выводить результаты на монитор. При выводе текста нужно заключать его в апострофы (одинарные кавычки). Похожий оператор PrintLn — после вывода автоматически переходит на следующую строку.
    1 способ:

    begin
      var n:integer;
      n := 5;
      n := n * n;
      print('n =',n); // n = 25
    end.

    2 способ (форматный вывод):

    begin
      var a:=1.2;
      var b:=4;
      var c:=a+b;
      WritelnFormat ('f({0}, {1}) = {2}', a, b, c); 
    end.

    Результат:

    f(1.2, 4) = 5.2
    

    Первый параметр в кавычках — это шаблон того, как будет выглядеть выводимое выражение. В фигурных скобках цифры будут замещены на значения переменных, в том порядке, в котором они следуют.

    3 способ:

    var x := 5;
    var y := 6;
    var res := x + y;
    Print($'Сумма {x} + {y} = {res}'); // Сумма 5 + 6 = 11

    Задача 1. Написать программу, которая выводит на экран ваши ФИО, каждое слово – с новой строки.

    [Название файла: L1task1.pas]

    В среде Pascal можно использовать так называемые сниппеты (snippets): — фрагменты названий функций для быстрого их добавления в код:

  • Так, для быстрой записи оператора print, достаточно просто напечатать латинскую букву p и щелкнуть [shift]+[пробел] — появится строка кода Print();
  • Для быстрой записи операторных скобок begin..end, достаточно напечатать сочетание be и щелкнуть [shift]+[пробел].
  • Оператор присваивания

    Обычно программе для решения какой-либо задачи требуются данные. Данные хранятся в переменных, которые имеют свои идентификаторы (имена), например, идентификаторы X или Y, или более длинные идентификаторы переменных — number1, counter и т.п.

    Важно: Идентификаторы состоят из буквы, за которой могут следовать буквы, цифры или символ подчеркивания

    Чтобы задать переменной какое-либо значение используется оператор присваивания. Оператор присваивания в Паскале обозначается как :=, выполняет правую часть выражения и присваивает результат переменной, расположенной в левой части выражения:

    оператор присваивания
    Пример:

    1
    2
    
    a:=2;
    writeln('квадрат ',a,'=',a*a);

    1 способ:

    begin
      var n:integer; // объявление переменной
      n:=1; // присваивание

    2 method (канонический):

    begin
      var n:=1; // объявление переменной и присваивание значения  => инициализация
  • Если программный код достаточно большой, то такой вариант инициализации переменных весьма неудобен. В Pascalabc.net переменные могут описываться внутри тела программы — между begin и end и инициализироваться при описании.
  • В этом состоит принцип локальности: переменная описывается непосредственно перед началом своего использования.

  • Ввод данных

    Но часто в программе необходимо запрашивать данные (т.е. вводить значения переменных с клавиатуры, а затем использовать эти значения для решения поставленной задачи). Для ввода данных используется оператор ввода read или readln, в Паскале разницы между ними при вводе практически нету (на данном этапе знаний).
    оператор read

    Пример использования readln в Pascal:

    1
    2
    3
    
    Writeln('Введите число');
    readln(a);
    writeln('квадрат ',a,'=',a*a);

    то же самое, что и read:
    Пример использования read в Pascal:

    1
    2
    3
    
    Writeln('Введите число');
    read(a);
    writeln('квадрат ',a,'=',a*a);

    Если запрашиваются две переменные, то можно перечислять их через запятую:

    1
    2
    3
    
    Writeln('Введите два числа');
    read(a,b);
    writeln('сумма чисел = ',a+b);

    Пример: Запросить для ввода два целых числа и вывести на экран их сумму.

    1


    1 способ:

    begin
      var n:integer; // n  - целочисленная переменная
      read(n); // ввод значения и сохранение его в переменной n
    begin
      var n:real; // n  - переменная вещественного типа
      read(n);// ввод значения и сохранение его в переменной n

    2 способ:

    // n  - целочисленная переменная и мы вводим значение и сохранением его в переменной n
    var n:=ReadInteger(); 
    // х  - переменная вещественного типа и мы вводим значение и сохранением его в переменной х
    var x:=ReadReal();

    3 способ (кортежное присваивание):

    var n1, n2: integer; // объявление двух переменных
    (n1, n2) := (1, 2); // 1 присваивается переменной n1, 2 присваивается переменной n2
    // Кортежное присваивание позволяет коротко записать обмен двух переменных значениями:
    (n1, n2) := (n2, n1); // n1 = 2; n2 = 1

    4 способ:

    // n1 и n2 - целочисленные переменные и мы вводим для них два значения
    var(n1, n2) := readInteger2;

    Обычно перед вводом выводится поясняющее сообщение о том, какие данные должны быть введены:

    var x := ReadInteger('Введите x:');
    var y := ReadInteger('Введите y:');
    var res := x + y;

    Кроме того, оператор ReadInteger или ReadReal может быть использован непосредственно в процедуре Print, т.е. в выводе. Например, так можно посчитать площадь прямоугольника:

    Print(ReadInteger * ReadInteger);

    Задача 2. Даны две переменные. Выполнить основные арифметические действия с переменными (+ - * /) и вывести результат на экран.
    [Название файла: L1task2.pas]

    Задача 3. Пользователь вводит сторону квадрата. Найдите периметр и площадь квадрата.

    [Название файла: L1task3.pas]

    Задача 4. Даны две переменных с некоторыми значениями. Поменять местами значения этих переменных.

    [Название файла: L1task4.pas]

    Список сниппетов

    Список основных сниппетов (при наборе использовать shift + пробел):

    a     → (лямбда-выражение)
    ar    array of ;
    b     begin
        
          end;
    be    begin
            
          end.
    bo    boolean
    c     case  of
            : ;
            : ;
          end;
    cl    type  = class
            
          end;      
    f     for var i:=1 to 10 do
    fb    for var i:=1 to 10 do
          begin
            
          end;
    fo    foreach var x in a do
    fu    function (): ;
          begin
            
          end;
    i     integer
    if    if  then
    ifb   if  then
          begin
            
          end;
    l     loop 10 do
    lb    loop 10 do
          begin
            
          end;
          
    p     Print();
    pr    procedure ();
          begin
      
          end;
    r     repeat
            
          until ;
    s     string
    t     try
            
          except
            
          end;
    u     unit Program1;
          
          interface
            
          implementation
           
          begin
            
          end.
    w     while  do
    wb    while  do
          begin
            
          end;

    Основы программирования 2.0

    Основы программирования
    Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать.
    Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь.
    Подробнее…

    Раздел: Стандартные функции Паскаля

    Процедуры Read и ReadLn
    выполняют чтение информации из устройства стандартного ввода. В консольных приложениях этим устройством может быть, например, клавиатура (точнее – введённые с клавиатуры данные), в графических приложениях – файл на диске.

    То есть эти процедуры являются “антиподами”
    процедур Write и WriteLn – выполняют противоположные им действия.

    Процедуры Read и ReadLn выполняют схожие действия. Основное отличие между ними следующее: процедура ReadLn после завершения ввода выполняет перевод строки (а в случае с файлами читает файл строка за строкой). А процедура Read читает данные подряд – без перевода строки.

    ПРИМЕЧАНИЕ:

    В Турбо Паскале я не помню такого (может просто забыл), но в FreePascal ввод с клавиатуры можно выполнять только процедурой ReadLn, а процедура Read почему-то не работает.

    Синтаксис для вывода на консоль:


    procedure Read(Args: Arguments);

    Синтаксис для вывода в файл:


    procedure Read(var F: Text; Args: Arguments);

    Аргументами (Arguments) могут быть переменные разных
    типов.
    Если используется несколько переменных, то они перечисляются через запятую. Например:

    var x, y    : integer;
        z       : real;
        str     : string;  
    
    begin
      WriteLn('Введите три целых числа через пробел:');  
    
      ReadLn(x, y, z);                                   
    
      WriteLn('Вы ввели: ', x, ', ', y, ', ', z:0:2);    
    
      ReadLn(str);                                       
    
      WriteLn(str + str);                                
    
      ReadLn;     
    end.

    Как уже было сказано, при вводе с консоли эти переменные могут быть разных типов. Но, в
    отличие от процедур Write/WriteLn использовать константы не допускается (и это логично))).

    ВАЖНО!
    При вводе данных следует учитывать, что в случае, если введённое пользователем значение имеет тип, отличный от типа переменной, в которую вводится это значение, то возникнет ошибка времени выполнения. Если, например, в указанном выше примере пользователь в качестве первого числа введёт вещественное значение (такое как 3.14), то программа завершится аварийно, так как переменная х имеет целый тип.

    При чтении из файла можно работать как с типизированными файлами, так и с текстовыми файлами.

    Если F (см. синтаксис) – это типизированный файл, то переменные,
    передаваемые как параметры (Args) должны иметь такой же тип, какой указан
    для файла F. Нетипизированные файлы использовать не допускается.
    Если параметр F не указан, то предполагается, что чтение выполняется из стандартного устройства ввода.

    Если файл F имеет тип Text, то переменные
    должны иметь тип Char,
    Integer,
    Real или
    String.

    Если при чтении файла нет данных, доступных для чтения, то в переменную F
    возвращается пустое значение (0 – для порядковых типов, пустая строка – для строковых).

    В случае использования процедуры ReadLn, то есть при построковом чтении данных, конец строки обозначается определённой последовательностью символов (какими именно – зависит от операционной системы, для DOS/Windows это два символа – #10 и #13).

    Маркер конца строки не является частью прочитанной строки и игнорируется.

    Если во время выполнения процедуры Read/ReadLn происходит
    ошибка, то генерируется ошибка времени выполнения. Такое поведение не всегда
    приемлемо (например, во время чтения файла). Поэтому в каких-то случаях
    генерацию ошибок отключают. Сделать это можно с помощью
    директивы компилятора {$I}.

    ПРИМЕЧАНИЕ:

    В разных отладочных и учебных программах процедуру ReadLn часто используют для того, чтобы консольное приложение не закрылось автоматически после выполнения. Для этого в конце программы просто записывают (как в примере выше):

    ReadLn;

    То есть просто имя процедуры без параметров. В этом случае программа будет
    ожидать нажатия клавиши ENTER. Следовательно, программа не завершится, пока не
    будет нажата клавиша ENTER, и это позволит увидеть результат работы программы.
    Разумеется, в операционной системе DOS (и подобных) такой проблемы нет. Это актуально только для Windows.

    Как стать программистом 2.0

    Как стать программистом 2.0

    Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки…
    Подробнее…

    Помощь в технических вопросах

    Помощь в технических вопросах

    Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение – ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации.
    Подробнее…

    “Программы без ошибок можно написать
    двумя способами, но работает — третий”
    Алан Джей Перлис

    Приветствую. Сегодня я хотел бы затронуть тему операторов ввода данных.

    Операторов ввода существует всего два. А именно:

    1. read
    2. readln

    Ничего не напоминает? Те, кто внимательно читали предыдущую статью, скажут что эти операторы похожи на операторы вывода. И будут правы! Оператор readln отличается от оператора read только лишь тем, что после ввода данных переводит курсор на следующую строку

    Возьмем для примера задачу №1 из первого урока. В ней, если вы помните, длину и ширину прямоугольника мы непосредственно вбивали в код программы. Сейчас мы немного поколдуем над кодом и сделаем так, чтобы эти данные можно было вводить с клавиатуры каждый раз при запуске программы.

    Для этого вместо куска кода

    A:=5;
    B:=7;

    пишем

    read (A);
    read (B);

    Попробуйте теперь запустить программу с измененным кодом. На всякий случай напишу весь код:

    program perimetr;
    var A,B,P: integer;
    begin
      read(A);
      read(B);
      P:=2*(A+B);
      write(P);
    end.

    Заметили, как теперь при запуске программа ждет ввода данных? И пока ввод не будет осуществлен, она не продолжит выполнение. Но согласитесь, это мы с вами знаем, что при запуске программы нужно ввести значения длины и ширины, а кто-то другой, запустив ее, не догадается до этого. Поэтому нам нужно вывести на экран просьбу, что-то вроде “Введите длину”. Для этого используем оператор вывода write. О нем я уже писал в предыдущем уроке.

    Ход ваших рассуждений при составлении программы должен быть примерно следующим:
    1) Мне нужно попросить пользователя ввести значения ширины прямоугольника. Для этого использую оператор вывода:
    writeln('Введите ширину прямоугольника');
    2) Теперь нужно чтобы программа прочитала это значение. Для этого использую оператор ввода:
    readln(A);

    Здесь немного остановимся. Возможно у вас возник вопрос: “А что значит буква А в скобках?” Так вот, в скобках вы указываете ту переменную, которой будет присвоено значение, введенное с клавиатуры. В нашем случае ширину мы записываем в переменную А, следовательно и в скобках пишем ее.
    3) Далее мне нужно попросить пользователя ввести длину. По аналогии с первым пунктом:
    writeln('Введите длину прямоугольника');
    4) Считываем введенное значение по аналогии со 2-ым пунктом: readln(B);

    Вот и все, соберем весь код в кучу:

    program perimetr;
    var A,B,P: integer;
    begin
        writeln('Введите ширину прямоугольника');
        read(A);
        writeln('Введите длину прямоугольника');
        read(B);
        P:=2*(A+B);
        write(P);
    end.

    Запустите программу, посмотрите как она выполняется. На мой взгляд чего-то не хватает. Как думаете? Следует выводить на экран что-то типа “Ответ” или “Периметр = “ перед тем как выведется результат расчета. А то у нас получается, что программа выводит какое-то число, а что за число – поди разбери. Для этого можно пойти двумя путями:

    1) Дописать перед строчкой write(P); строку: write('Периметр =');

    2) Модернизировать предпоследнюю строчку кода write(P). Делается это следующим образом: пишем оператор write, открываем круглую скобку, в одинарных кавычках пишем ‘Периметр = ‘, ставим запятую и после нее пишем переменную P. Вот как это будет выглядеть: write('Периметр = ',P);

    Запустите программу, протестируйте ее при разных значениях длины и ширины. Если возникли какие-то вопросы, не стесняйтесь задавать их, контакты для связи со мной находятся здесь. Ну, а если вопросов нет, можете приступать к следующему уроку

    Процедура Readln используется не только для задержки экрана. Ее основная задача – ввод данных с клавиатуры. В этой статье мы научимся вводить числа с клавиатуры, и потом выводить их на экран. Для этого нам будет необходимо познакомиться с разделом для описания переменных Var, а также с одним из типов данных, используемых в Pascal.

    Program number3;
    uses crt;
    var n:integer;
    begin
    clrscr;
    write (‘Введите число с клавиатуры:’);
    readln (n);
    writeln (‘Вы ввели число ’,n);
    readln
    end.
    

    В строке №3 мы записываем служебное слово Var. Оно используется для объявления переменных. Переменные – это различные значения, числа или слова, которые могут меняться в процессе выполнения программы. Когда мы вводим с клавиатуры числа или буквы, они записываются в переменые. После слова Var через пробел указываем идентификатор переменной (т.е ее название, которое мы придумываем сами). Переменные – это не служебные слова, программист задает их сам. В данном случае мы задали одну переменную «n» и в дальнейшем мы будем использовать только эту переменную. После записи переменной через двоеточие указывается тип данных. Существует несколько типов данных Один из них – Integer (целый). Он дает понять программе, что наша переменная «n» может быть только целым числом, лежащим в диапазоне от -32768 до 32767. Использование различных типов данных зависит от конкретных потребностей программиста при написании программы. Самое главное на данном этапе понять, что если в своей программе вы собираетесь использовать какое-то число, то для него нужно указать переменную (в нашем случае «n») и тип данных (в нашем случае Integer).

    В строке №7 мы записываем оператор для ввода данных с клавиатуры Readln. Этот оператор вызывает встроенную процедуру ввода данных и на этом этапе программа останавливается и начинает ждать ввода данных. Мы уже использовали этот оператор для задержки экрана. В данной программе после оператора Readln в круглых скобках указывается наша переменная «n». То число, которое мы будем вводить с клавиатуры, запишется в эту переменную. Соответственно, это число должно соответствовать параметрам переменной, т.е. должно быть целым, лежащим в диапазоне -32768 до 32767. После того как программа дойдет до 7-ой строки, она выведет на экран сообщение «Введите число с клавиатуры: » и будет ждать. На этом этапе мы должны ввести какое-то число и нажать Enter.

    Строка №8. Здесь мы записываем оператор вывода на экран Writeln. Он будет выводить сообщение «Вы ввели число», а также будет выводить значение нашей переменной «n» (т.е. то значение, которое мы введем с клавиатуры). Заметьте, что в строке №8 перед переменной «n» мы ставим запятую, а сама переменная не заключается в апострофы.

    Теперь наберем программу в Паскале.

    vvod chisel s klaviaturih

    Запускаем (Сtrl+F9). Набираем число, например, 5 и нажимаем Enter.

    vvod chisel s klaviaturih.

    19.03.2019
    1643
    Программируем на Паскале
    Ваш комментарий

    Это четвёртый урок по изучению языка программирования Паскаль для начинающих. В нём мы подробно ознакомимся с встроенными процедурами языка: write, writeln и readln. Первые две выводят информацию на экран, третья позволяет считывать информацию с клавиатуры и используется как пауза в программах. Очевидно, трудно переоценить то, чем они занимаются. Крайне мало найдётся программ, которые совсем ничего не писали бы на экране.

    То есть программы такие есть, есть хотя бы части программ (функции или процедуры), занятые расчётами, результаты которых передают не на экран, а в другие части программы, но в конечном итоге, любые программы так или иначе оповещают человека, что они всё ещё действуют или наоборот, уже закончили работу.

    Наши простые программы все до единой что-то выводят на экран — пишут, чему они посвящены и какую информацию пользователь должен ввести с клавиатуры. А это значит, что все три процедуры используются буквально в каждой из них.

    Процедуры write и writeln очень похожи друг на друга, они выводят на экран строки, переменные (точнее значения переменных) и результаты действия других процедур и функций. Основное их отличие состоит только в том, что первая выводит информацию на экран и курсор остаётся в той же строке сразу за последним символом, в то время как вторая курсор принудительно переводит на следующую строку — линию.

    Write переводится с английского как «писать», в нашем случае — печатать на экране. Название writeln составлено из двух слов «write line» — «писать линию», выводит информацию на экран и даже если в строке ещё остаётся место, строка на этом завершается и курсор переводится на новую строку.

    Перейдём к примерам.

    Листинг 1.

    program WriteWritelnReadln;
    
    BEGIN
      writeln('Очередная программа курса изучения языка программирования Паскаль.');
    END.

    Посмотрите листинг 1. Вообще-то для вас в нём не должно быть ничего нового. Когда мы собираемся передать нашей процедуре строку, мы обособляем её одиночными кавычками — апострофами. Так PascalABC поймёт, где начало строки, где её конец и выведет информацию на экран. Если мы запустим нашу программу в среде разработки без компиляции, то в окне вывода увидим переданную строку.

    Не скажу, что выводимый текст был таким уж большим, но частенько случается так, что на экран нужно вывести длинные строки или значения нескольких переменных. В таких случаях, данные (аргументы) в процедуру передаются через запятую, а длинную строку, разбивают на более короткие и апострофами обособляют уже каждую короткую строку. Давайте немного перепишем нашу программу, теперь она примет следующий вид:

    Листинг 2.

    program WriteWritelnReadln;
    
    BEGIN
      writeln(
        'Очередная программа курса изучения ',
    	'языка программирования Паскаль.'
      );
      readln;
    END.

    Обратите внимание, короткие строки — аргументы процедуры я написал с новой строки, сдвинув их на пару пробелов вправо. Когда аргументов будет ещё больше, такая форма записи будет более наглядной. Каждая короткая строка обособлена апострофами, между собою строки отделены запятой, а первая строка заканчивается пробелом. Если этого не сделать, последнее слово первой строчки неминуемо «прилипнет» к первому слову во второй.

    Именно программист обязан позаботиться об этих пробелах. Оставлять ли пробелы в конце предыдущей строки или начинать с них следующую — не важно, вы в праве писать то так, то иначе, главное — не забывать это делать.

    Кроме того, чтобы можно было откомпилировать нашу программу и безболезненно её запускать, последним оператором я добавил процедуру readln без параметров. Впрочем, так мы её уже использовали в прошлых уроках.

    Откомпилируйте программу, перейдите в папку с нею и запустите исполняемый файл. Открывается консольное окно программы, в нём напечатан наш текст, а курсор мигает в следующей строке. Вы можете набрать что-то с клавиатуры и завершить ввод, нажав клавишу «Enter». Пока любые введённые вами данные пропадут, но скоро мы научимся их принимать и обрабатывать. Пока же вернитесь к листингу программы, процедуру writeln замените на write. Снова откомпилируйте программу и запустите exe-файл. Несложно заметить, что теперь курсор мигает в самом конце нашего текста и ввод с клавиатуры начинается здесь же. Из этого можно сделать ещё один вывод: если вы используете процедуру write, после которой планируется ввод с клавиатуры, позаботьтесь о пробеле в конце выводимого текста, чтобы ввод с клавиатуры к нему не прилипал.

    Уже на протяжении нескольких уроков (сегодняшний — не исключение), мы используем процедуру readln без параметров, для задержки. Давайте научим её принимать данные, введённые пользователем с клавиатуры, чтобы после использовать их в наших программах.

    Для этого объявим в нашей программе переменные. Одна из них будет строкового типа String. Мы его ещё не проходили, но буквально через урок будем с ним знакомиться подробно. Сейчас же следует понимать, что в переменные этого типа можно сохранять строки, длина которых не превышает 255 символов. Давайте позволим пользователю ввести с клавиатуры его имя и возраст. Возраст сохраним в целочисленную переменную, а имя — в строковую. Программа принимает вид:

    Листинг 3.

    program WriteWritelnReadln;
    
    var
      userName: String;
      userAge: Integer;
    
    BEGIN
      writeln(
        'Очередная программа курса изучения ',
    	'языка программирования Паскаль.'
      );
      readln;
    END.

    Из названий переменных уже понятно, какие данные я собираюсь в них хранить. Кроме того, эти имена начинаются со строчных, но каждое новое слово я пишу с прописной. Так их намного удобнее читать.

    Переменные введены, теперь давайте научим нашу программу их читать. Прежде всего, при помощи процедуры writeln укажем пользователю, чего мы от него хотим, а потом используем write и readln для вывода текста и ввода данных в тех же строках. Пока наша программа выглядит так:

    Листинг 4.

    program WriteWritelnReadln;
    
    var
      userName: String;
      userAge: Integer;
    
    BEGIN
      writeln(
        'Очередная программа курса изучения ',
    	'языка программирования Паскаль. ',
    	'Далее предполагается ввод данных с клавиатуры. Если вы ошиблись, ',
    	'используйте клавишу BackSpace, ввод заканчивается по нажатию на Enter.'
      );
      readln;
    END.

    Обратите внимание, все строчки кроме последней оканчиваются пробелами. Вообще же, весь переданный процедуре writeln текст, будет выводиться как одна длинная строка. В общем случае, такая строка будет ограничена только габаритами консольного окна программы и всё, что не поместилось в одной строке, будет напечатано во второй и последующих строках, впрочем, переносами строк процедура не занимается.

    Настало время, когда мы, наконец, введём данные с клавиатуры и используем их в нашей программе. Используем, правда, скромно — просто выведем их на экран, покажем, что мы их получили. Гораздо чаще, введённые данные используют для расчётов или разграничения доступа к функциям программы. Например, введённый пользователем возраст позволяет программе решить, может ли он ей пользоваться в принципе. Впрочем, мы не станем сегодня как-то проверять введённые данные. Да и сложно себе представить, как именно мы могли бы это сделать. В общем, доверимся пользователю, поверим в его честность. Наша программа приняла законченный вид:

    Листинг 5.

    program WriteWritelnReadln;
    
    var
      userName: String;
      userAge: Integer;
    
    BEGIN
      writeln(
        'Очередная программа курса изучения ',
    	'языка программирования Паскаль. ',
    	'Далее предполагается ввод данных с клавиатуры. Если вы ошиблись, ',
    	'используйте клавишу BackSpace, ввод заканчивается по нажатию на Enter.'
      );
      write('Укажите пожалуйста ваше имя: ');
      readln(userName);
      write('Укажите ваш возраст (количество полных лет) целым числом: ');
      readln(userAge);
      
      writeln(
        'Вы указали, что вас зовут ', userName,
    	' и вам ', userAge, ' лет.'
      );
      readln;
    END.

    Процедуры write, writeln и readln. Программируем на Паскале

    Здесь следует обратить внимание на то, что выводя строки вместе со значениями переменных, пробелы мы уже добавляли как до, так и после них. Кроме того, слово «лет» указано именно в этой форме и она не будет меняться автоматически и подстраиваться под указанный возраст. Нужно учитывать, что фраза может принимать вид: «Вы указали, что вас зовут Владимир и вам 41 лет». Очевидно, за формами слов, падежами, склонениями и спряжениями глаголов нужно будет следить отдельно, но это уже выходит за рамки нашего сегодняшнего урока. Мы убедились, что программа работает — нам удалось воспользоваться теми данными, которые пользователь ввёл с клавиатуры. Последний вызов процедуры readln без параметров служит для задержки как и раньше.

    Репозиторий листингов программ.

    Оставьте ваш отзыв:

    Добавить комментарий