Как пишется оператор ввода паскаль

На занятии происходит знакомство с операторами readln и writeln в 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;

    Ввод данных:

    Процедура ввода данных с клавиатуры – Read (читать). Ее можно представить так:

    Read(<Список ввода>);

    В качестве списка ввода выступают имена переменных. Во время выполнения оператора ввода данных программа останавливается и ждет, пока они будут введены. Для завершения ввода необходимо нажать Enter. Если переменных несколько, то они могут вводиться через пробел, либо, введя одну переменную нужно нажать Enter, потом ввести вторую и т. д.

    Для перевода каретки после выполнения оператора Read на новую строку, следует прибавить окончание ln:

    Readln(<Список ввода>);

    Также можно не указывать список ввода:

    Readln;

    Программа не перейдет к выполнению следующей части до тез пор, пока не выполниться пустой оператор.

    Вывод данных:

    Для вывода данных в Паскале имеется оператор Write. Для того, чтобы каретка переводилась на следующую строку, к нему прибавляется окончание ln и получается Writeln. В общем виде эти операторы имеют вид:

    Write(<Список вывода>);

    Writeln(<Список вывода>);

    Элементами списка вывода являются величины различных типов, в том числе выражения и строки, отделенные друг от друга запятыми, например:

    Write(x, y);

    Здесь x и y – параметры, заключенные в круглые скобки. Возможно использование оператора вывода и без параметров:

    Writeln; {Курсор переведется на следующую строку}

    Форматированный вывод:

    Недостаточно просто вывести значение на экран, нужно также сделать это как можно корректнее. Допустим нам нужно в одном операторе Write вывести значения нескольких переменных (a=1, b=2, c=3). Пишем:

    Write(a, b, c);

    После выполнения, на экране действительно отобразятся значения данных переменных, но это понятно компьютеру, а пользователь увидит число 123. Необходимо придать вид выводимым данным, сделать это в Паскале можно двумя способами:

    1) Вписать пробел вручную, например:

    Write(a, ‘ ’, b, ‘ ’, c);

    2) Воспользоваться возможностью форматированного вывода:

    Write(a, b:2, c:2);

    Двоеточие относиться к переменной, после которой оно следует, и говорит программе, что при выводе (переменной) нужно выделить место, заданное целым числом (в нашем случае это 2), т. е. под значения, хранящиеся в переменных b и c отводиться две клетки, сами они выведутся «прижатыми» к правому краю.

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

    Write(32.1012:5:2);

    Результат выполнения: 32.101

    Формат 5 означает, что всего под число 32.1012 выделено 5 клеток, а 2 – из этих пяти под дробную часть отводиться 2 клетки.


    Похожие записи:

    • Работа с типизированными файлами Паскаль
    • Перечисляемый и интервальный тип данных Паскаль
    • Pascal. Условные операторы.
    • Pascal. Структура программы, комментарии
    • Pascal. Процедуры и функции

    Операторы присваивания, операторы ввода-вывода

    Содержание: 

    1. Операторы присваивания
    2. Операторы ввода-вывода
    3. Составной оператор
    4. Условный оператор
    5. Условный оператор Case (оператор варианта)

    Поскольку язык Pascal алгоритмический, то для записи шагов алгоритмов, для наглядного однозначного представления алгоритмов в стиле структурного программирования существует набор операторов. Основные операторы считаются простыми, остальные – структурными, т.е. в их состав могут входить другие операторы, причем глубина «вложенности» операторов не ограничена.

    Операторы присваивания

    Оператор присваивания предназначен для присваивания переменной значения выражения. Оператор обозначается символом «:=», в левой части указывается имя переменной, в правой – вычисляемое выражение. Выражение может составлять число, знаки арифметических действий, круглые скобки, переменные и константы, процедуры и функции, допускаемое вложение друг в друга. Обязательное условие — совместность типов данных. Оператор считается синтаксически правильным, если тип выражения в правой части совпадает с типом переменной. Исключение составляет случай, когда выражение имеет целый тип, а переменная – вещественный. Допускается использование этого оператора с переменными любого типа, кроме файлового. Синтаксис:

    <Оператор присваивания> :: = < Переменная> : = <Выражение>

    Если в левой части оператора присваивания указана переменная типа Boolean, то в правой части оператора должно быть задано логическое выражение, задающее правило вычисления логического значения (true или false). Синтаксис:

    <Логич. оператор присваивания> ::= < Логическая переменная> := <Логическое выражение>

    Логическое выражение есть логическая формула, записанная на языке программирования. Логическое выражение состоит из логических операндов, связанных логическими операциями и круглыми скобками. Результатом вычисления логического выражения является булева величина (true или false). Логическими операндами могут быть логические константы, переменные, функции, операции отношения. Один логический операнд является простейшей формой логического выражения.

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

    с переменными целого типа:  x := 200;

    вещественного:  y := Sin(Pi/3);

    символьного:      с := ‘6’;

    булевского:         test := false;

    Примеры:

    1. Вычисление длины окружности L (тип — real):
    L := 2 * Pi * R

    R – радиус окружности (тип – integer или real)

    Pi – константа, равная значению p.

    1. Присвоить переменной Flag (тип — Boolean) значение true, если переменная X (тип — real) находится в интервале (0; 1), и false – в противном случае:
    Flag := (X>0) and (X<1)
    1. Присвоить переменной Rect (тип — Boolean) значение true, если из отрезков длиной X, Y, Z (тип — real) можно построить треугольник, и false – в противном случае:
    Rect := (X < Y + Z) and (Y < X + Z) and (Z < X + Y)

    Операторы ввода-вывода

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

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

    Основными устройствами ввода-вывода у ПК являются клавиатура и экран монитора. Именно через эти устройства главным образом осуществляется диалог между человеком и ПК.

    Для того чтобы программа могла работать в диалоговом режиме (позволяла бы вводить данные и видеть результаты работы на экране) существуют операторы ввода и вывода.

    Существует две формы оператора ввода: Read и ReadLn. Процедура ввода с клавиатуры имеет следующий формат:

                         Read (<список ввода>),

    где <список ввода> – это последовательность имен переменных, разделенных запятыми.

    Оператор обеспечивает ввод данных разных типов с клавиатуры. В скобках указываются имена переменных, которым присвоятся введенные значения. При вводе нескольких значений с помощью одного оператора они разделяются символом <пробел>. Для окончания ввода (завершения работы оператора Read) нажимается клавиша <Enter>. Если же в программе есть несколько подряд идущих операторов Read, то данные вводятся потоком, т.е. без нажатия <Enter>.

    Другой вариант оператора ввода с клавиатуры имеет вид:

                         ReadLn (<список ввода>)   

    Оператор ReadLn аналогичен предыдущему, отличие заключается в том, что при выполнении одного оператора ReadLn курсор на экране монитора переходит на новую строку.

    Примеры:

    Read (a);
    
    Read (a, b, c);
    
    ReadLn (x, y);

    Аналогично существует две формы оператора вывода. Оператор вывода на экран (обращение к стандартной процедуре вывода) имеет следующий формат:

    Write (<список вывода>)

    Здесь элементами списка вывода могут быть выражения различных типов. В результате выполнения данного оператора значения списка будут выведены на экран монитора.

    Примеры:

    Write (234);   {выводится целая константа}
    
    Write (A + B - 2);   {выводится результат вычисления выражения}
    
    Write (X, SUMMA, ARG1, ARG2);   {выводятся значения переменных}

     Если необходимо вывести на экран какой-либо текст, то внутри оператора Write этот текст записывается в апострофах.

    Пример:

    x:=5;
    
    Write (‘x=’, x);   {результат выполнения этих операторов: x=5}

    Второй вариант процедуры вывода на экран:

    WriteLn (<список вывода>)

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

    Примеры:

    1. WriteLn;
                        WriteLn;         {выполнение этой последовательности команд приведет к тому, что курсор опустится на 3 строки вниз}
      
                        WriteLn;
      
      WriteLn (‘Hello World!’);
      Write (‘a=’, a, ‘b=’, b, ‘c=’, c);
      x:=4;
      y:=3;
      
      WriteLn (‘Значение выражения =’, x + sqr(y)); { Значение выражения =13 }

    В операторах вывода Write и WriteLn имеется возможность установить ширину поля вывода. Если X и I – целочисленные выражения, а Y — вещественное выражение, то вызов

    Write ( X : I, Y : I ) — печатает значения X и Y каждое в крайние правые позиции полей шириной I;

    Write ( Y : I : X) – вызовом в крайние правые позиции поля шириной I символов выводится десятичное представление значения Y в формате с фиксированной точкой, причем после десятичной точки выводится X цифр, представляющих дробную часть числа.

    Составной оператор

    Для того чтобы задать последовательное выполнение (по порядку, один за другим) нескольких операторов, в языке Pascal существует составной оператор. Операторы, входящие в составной, разделяются символом «;», в начале ставится служебное слово Begin, в конце – End.

    Составной оператор применяется в тех случаях, когда синтаксис языка допускает использование только одного оператора, а смысл требует выполнения нескольких действий.

    Пример:

    Begin
    
                X:=10;
    
                WriteLn (‘Y=’, X* SQR(X))
    
    End

    Обратите внимание: перед служебным словом End разделитель (символ «;») не ставится.

    Условный оператор

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

    если x<0, то f(x)=x+1;

    если x>=0, то f(x)=2x.

    Здесь значение функции f вычисляется в зависимости от величины x по разным формулам.

    Для задания выбора того или иного действия в зависимости от условия в языке Pascal предназначен условный оператор, который имеет две формы: полную и сокращенную.

    Полная форма:

    if  <условие>  then <оператор1>
    
                      else <оператор2>;

    В качестве условия используется значение логического выражения, в качестве операторов – любой простой или составной оператор, в том числе и сам условный оператор.

    Если значение логического выражения – true, то выполняется <оператор1>, если false, то выполняется <оператор2>.

    И по ветке then, и по ветке else должен выполняться единственный оператор. Если по смыслу задачи необходимо выполнить несколько операторов, тогда следует использовать составной оператор.

    Часть условного оператора, начинающаяся со слова else, может отсутствовать, такая форма оператора называется сокращенной и выглядит следующим образом:

    if  <условие>  then <оператор>;

    Оператор в этом случае выполняется, если условие истинно, иначе программа переходит к следующему оператору.

    Пример полной формы: рассмотрим определение функции f(x):

    if x<0 then f:=x+1
    
                else f:=2*x;

    Если в нашем примере описать логическую переменную В, значение которой будет равно true, если x<0, и false иначе, то можно записать так:

    B:=x<0;
    
    If B then f:=x+1
    
            else f:=2*x;

    Пример краткой формы:

    if not((x<3) and (x>1))  then  y:=sqr(x);

    При использовании вложенных условных операторов может возникнуть неоднозначность, например:

    if <условие1> then if <условие2> then <оператор1> else <оператор2>

    .

    В данном случае необходимо помнить, что служебное слово else всегда ассоциируется с ближайшим по тексту программы словом if, которое еще не связано с else. А чтобы такая двусмысленность не возникала, лучше всего пользоваться составным оператором:

    if <условие1> then
    
    begin
    
    if <условие2> then <оператор1>
    
    else  <оператор2>
    
     end;

    Теперь дадим строгое описание условного оператора в форме синтаксической диаграммы:

    123

    То, что мы раньше называли условием, есть логическое выражение, которое вычисляется в первую очередь. Если его значение равно true, то будет выполняться <Оператор1>, если false, то <Оператор2> для полной формы или сразу следующий оператор после условного для неполной формы.

    Пример: По длинам трех сторон треугольника a, b, c вычислить его площадь.

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

    Program Geron;
    
    Var A, B, C, P, S: Real;
    
    Begin
    
    WriteLn(‘Введите длины сторон треугольника:’);
    
    Write (‘a=’); ReadLn(A);
    
    Write (‘b=’); ReadLn(B);
    
    Write (‘c=’); ReadLn(C);
    
    If (A>0) And (B>0) And (C>0) And (A+B>C) And (B+C>A) And (A+C>B)
    
    Then Begin
    
    P:= (A+B+C) / 2;
    
    S:= Sqrt (P*(P-A)*(P-B)*(P-C));
    
    WriteLn(‘Площадь=’, S)
    
    End
    
    Else WriteLn(‘Неверные исходные данные’)
    
    End.

    Условный оператор Case (оператор варианта)

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

    case <выражение> of
    
                <значение1> : <оператор1>;
    
                <значение2> : <оператор2>;
    
                <значение3> : <оператор3>;
    
                            …                        …
    
          else <оператор N>
    
    end;

    <оператор N> выполнится только в том случае, если значение выражения не совпадет ни с одним из <значений I>. При использовании оператора Case необходимо помнить о том, что значение выражения и <значения I> должны быть одного типа.

    Пример:

    Присвоить строке S значение дня недели для заданного числа D при условии, что в месяце 31 день и 1-ое число – понедельник.

    Для построения алгоритма воспользуемся операцией mod, позволяющий вычислить остаток от деления двух целых чисел, и с условием, что 1-ое число – понедельник. Тогда можно записать следующий оператор Case:

    case D mod 7 of                                                case D mod 7 of
    
    1 : S:= ‘понедельник’;                                            1 : S:= ‘понедельник’;   
    
    2 : S:= ‘вторник’;                                                2 : S:= ‘вторник’;
    
    3 : S:= ‘среда’;                                                  3 : S:= ‘среда’;
    
    4 : S:= ‘четверг’;                                                4 : S:= ‘четверг’;
    
    5 : S:= ‘пятница’;                                                5 : S:= ‘пятница’;
    
    6 : S:= ‘суббота’;                                                6 : S:= ‘суббота’;
    
    7 : S:= ‘воскресенье’;                                           else : S:= ‘воскресенье’;
    
    end;                                                             end;

    Чтобы завершить построение алгоритма решения поставленной задачи, необходимо ограничить область возможных значений переменной D (тип — integer):

    If (D>=1) and (D<=31) then
    
    case D mod 7 of
    
    1 : S:= ‘понедельник’;                                            
    
    2 : S:= ‘вторник’;            
    
    3 : S:= ‘среда’;                                                  
    
    4 : S:= ‘четверг’;                                              
    
    5 : S:= ‘пятница’;                                             
    
    6 : S:= ‘суббота’;                                              
    
    else : S:= ‘воскресенье’;
    
    end;

    В качестве <значения> можно также задать список и (или) диапазон значений.

    Пример:

    case X of
    
    1 .. 2 : F:=5;
    
    3, 4, 10 .. 20 : F:=10;
    
    5, 6 : F:=15;
    
    else WriteLn (‘Введен неправильный параметр!’)
    
    end;

    Контрольные вопросы

    1. Как работает оператор присваивания?
    2. Приведите синтаксис оператора присваивания.
    3. Что такое ввод данных?
    4. Что такое вывод данных?
    5. Перечислите формы операторов ввода данных.
    6. Перечислите формы операторов вывода данных.
    7. Сформулируйте правила записи оператора IF.
    8. Что такое вложенный оператор IF?
    9. Что представляет собой оператор варианта?

    Ввод и вывод данных в языке Паскаль

    Любая программа при вводе исходной информации и выводе результатов взаимодействует с внешними устройствами. Частным случаем обмена данными с внешними устройствами является обмен с консолью. Консоль представляет собой совокупность клавиатуры и экрана монитора.

    Рассмотрим способы организации ввода и вывода информации, предоставляемые языком программирования Паскаль.

    Процедура ввода

    Ввод данных — это процесс передачи исходных данных от внешнего устройства в оперативную память.

    В качестве внешнего устройства ввода, как правило, является клавиатура или файл с данными.

    Для ввода данных с клавиатуры в языке Паскаль используются процедуры read и readln, имеющие следующий формат:

    • read(список);
    • readln(список);

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

    Элементом «список» является список имен переменных через запятую, значения которых будут вводится с клавиатуры (заметим, что список может быть пустым), например:

    • read(a, b, c);
    • readln;

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

    ВНИМАНИЕ: вводимые значения должны соответствовать типам переменных, в противном случае возникает ошибка (например, переменная b имеет тип integer, а вводится вещественное число).

    Процедура вывода

    Вывод – это процесс передачи данных после обработки из оперативной памяти на внешнее устройство.

    Для вывода данных на экран в языке Паскаль используются процедуры write и writeln, которые имеют следующий вид:

    • write(список);
    • writeln(список);

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

    Правила записи параметров процедуры вывода

    1. Список вывода разделяется запятыми
    2. Список вывода может содержать переменные, константы и выражения
    3. Под вывод любого значения можно задать формат поля вывода — количество позиций, в которых будет размещаться величина (указывается сразу после выводимого значения через двоеточие):
      • если значение выводимой величины оказывается короче, то оно «прижимается» к правому краю отведенного поля, в противном случае — поле «раздвигается» до необходимых размеров;
      • для вещественных чисел в формате поля вывода предусматривается возможность указания количество выводимых позиций и отводимых под дробную часть числа (десятичная точка также занимает одну позицию).

    Например:

    • writeln(‘a = ‘, a:2, ‘ ‘, 10 + sqrt(a):2:4, ‘ ‘, pi:4:2);

    Операторы ввода данных

    Для
    ввода данных
    в
    Pascal
    применяют операторы Read
    или Readln,
    которые имеют одинаковый формат записи:

    Read(список
    ввода);

    Readln(список
    ввода);

    В
    операторе после ключевого слова Read
    следует заключенный в круглые скобки
    список переменных, в котором переменные
    друг от друга отделяются запятыми.
    Оператор завершается точкой с запятой.
    Например:

    Var
    a,b,c:
    Real;

    .
    . . . . . .

    Read(a,b,c);

    После
    запуска программы на выполнение
    осуществляется ввод данных, например:

    0.5
    6.25 -2.5E-2

    При
    выполнении оператора
    Read
    программа
    приостанавливает свои действия в
    ожидании ввода значений, которые по
    очереди в соответствии с приведенным
    в операторе списком будут присвоены
    переменным. Значения переменных могут
    вводиться с клавиатуры во время исполнения
    программы или читаться из файла. При
    вводе числовых значений (типы Integer,
    Real,
    Byte)
    их отделяют друг от друга как минимум
    одним пробелом или размещают в разных
    строках. В пределах одного числа пробелы
    между цифрами недопустимы. Тип вводимых
    значений должен соответствовать типу
    переменных, которым они будут присвоены.
    В Паскале допускается ввод данных типов
    Integer,
    Real,
    Char,
    Byte.

    Оператор
    Readln
    по своим
    действиям аналогичен оператору Read,
    за исключением того, что по окончании
    чтения значения последней переменной
    из списка ввода он дает указание на
    переход к началу новой строки для чтения
    данных последующими операторами Read
    или Readln.
    Оператор Readln
    может быть
    применен и без списка переменных, тогда
    будет произведен переход на новую
    строку. Например:

    VAR
    a,b:real;

    i,k:integer;

    …………

    Read(a,b);

    Readln;
    или Readln(a,b);

    Read(i,k); Read(i,k);

    После
    запуска программы на выполнение данные
    для ввода должны быть расположены
    следующим образом:

    1.5
    7.48

    6
    -1

    Операторы вывода данных

    Вывод
    данных
    организуется
    операторами
    Write
    и
    Writeln,
    формат записи
    которых имеет вид:

    Write(список
    вывода);

    Writeln(список
    вывода);

    В
    списке вывода приводят разделенные
    запятыми переменные, выражения и
    заключенные в кавычки строки символов.
    Например:

    По
    умолчанию в строке вывода для данных
    целого типа отводится 13 позиций (мест
    для размещения цифр и знака “±” числа).
    Вещественные числа выводятся в
    экспоненциальном виде с плавающей
    точкой по формату ±
    .Е±
    (знаком 
    отображено место для цифр мантиссы и
    степени числа). Формат выводимых данных
    может быть изменен явным указанием
    числа отводимых позиций. Для этого после
    идентификаторов переменных (выражений,
    констант) в списке вывода указывается
    отведенная ширина поля для выводимой
    информации и точность представления
    числа (только для вещественных чисел).
    Эти две величины должны быть целыми и
    положительными, отделяться от имен
    переменных (выражений, констант) и друг
    от друга двоеточием. Они соответственно
    указывают количество позиций в строке,
    отводимых под значение переменной
    (выражения, константы), и количество
    мест под цифры дробной части числа.
    Например:

    Write(’I=’,I:3,’K=’,K:4:2);

    на
    экране появится
    I=-12
    K=3.25

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

    WRITELN
    (’ЗАДАЧА’);

    WRITELN
    (’
    I=’,I:3,’K=’,K:4:2);

    WRITELN
    (’Z=’,Z:4:1);

    WRITELN
    (’Y=’,Y);

    на экране появится
    следующая информация:

    ЗАДАЧА

    I=-12
    K= 3.25

    Z=-9.5

    Y=3.7800E+02

    Очистка
    экрана выполняется оператором
    CLRSCR,
    который удаляет всю имеющуюся на экране
    информацию и устанавливает курсор в
    его левый верхний угол.

    Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #

    2. ОПЕРАТОРЫ ЯЗЫКА ПАСКАЛЬ

    2.2.2. Ввод данных с клавиатуры

    Процедура чтения Read обеспечивает ввод данных для последующей их обработки программой. Чаще эту процедуру называют оператором ввода.

    Общий вид: Read (<список переменных>);

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

    Процедура чтения Readln аналогична процедуре Read, единственное отличие в том, что после считывания последнего в списке значения курсор переходит на начало новой строки.

    Пример 2.2. Использование операторов ввода.

    program primer;

    var   i, k:integer;  c,d, s: real;

    begin

    readln (c,d);

    read(i,k);

    end.

    В данном случае необходимо ввести сначала два действительных числа через пробел. Переменной с присваивается значение, равное первому введенному числу, а переменной d – значение, равное второму введенному числу. После ввода этих значений курсор переходит на начало новой строки (за это отвечает ln, следующий за словом Read). Далее требуется ввести еще два целых числа, которые будут присвоены значениям переменных i и k соответственно.

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

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

    Гораздо удобнее для ввода значений переменных организовать диалог с компьютером. Для этого непосредственно перед каждым оператором ввода переменной нужно поставить оператор вывода Write для вывода на экран поясняющего текста:

    Write (‘X=’); Readln(X);

    Write (‘Z=’); Readln(Z);

    или

    Write (‘Введите значение А > ’); Readln(A);

    Предпочтительно использовать именно такой ввод переменных с клавиатуры.

    Пример 2.3. Организация ввода переменных.

    program primer;

    var   X,Z,Sum: real;

    begin

    Write (‘X=’); Readln(X);

    Write (‘Z=’); Readln(Z);

    Sum:=X+Z;

    Writeln (‘Сумма равна ’, Sum:10:2);

    end.

    Понравилась статья? Поделить с друзьями:
  • Как пишется оперативный ответ
  • Как пишется оперативно разыскная или
  • Как пишется оперативно значимая информация
  • Как пишется оперативная память на английском
  • Как пишется оперативная память коротко