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

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

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

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

    Рассмотрим на примере: необходимо вывести три переменные A = 5, B = 7, C = 3 друг за другом в одну строку. В этом случае следует использовать оператор write. Код будет выглядеть следующим образом:

    program one;
    var A,B,C:integer;
    begin
         A:=5;
         B:=7;
         C:=3;
         write(A);
         write(B);
         write(C);
    end.

    или же таким:

    program one;
    var A,B,C:integer;
    begin
         A:=5;
         B:=7;
         C:=3;
         write(A,B,C);
    end.

    Результат вывода на экран будет следующим: 573

    Если необходимо вывести эти же переменные в столбик, следует воспользоваться оператором writeln( ). Код будет выглядеть так:

    program one;
    var A,B,C:integer;
    begin
         A:=5;
         B:=7;
         C:=3;
         writeln(A);
         writeln(B);
         writeln(C);
    end.

    Результат вывода на экран будет следующим:

    5
    7
    3

    Хочу заметить, что в этом случае запись writeln(A,B,C) не принесет нужного эффекта, а именно, вывод будет осуществлен в строчку, а не в столбец.

    С отличием операторов разобрались. Теперь поговорим о том, как правильно записывать в скобках у операторов write/writeln то, что мы хотим вывести на экран.

    1. Если мы хотим вывести переменную или несколько переменных, то достаточно просто записать их через запятую в скобках оператора вывода. Например:
      write(A,B);
    2. Бывает, что необходимо округлить число (типа real) при выводе. Например, у нас есть переменная А = 34,756942 и необходимо вывести это число с двумя знаками после запятой. Делается это следующим образом: сначала пишем необходимый нам оператор вывода (write/writeln), внутри скобок записываем имя переменной, затем ставим двоеточие и после него цифрой указываем сколько разрядов будет выводится в целой части, затем ставим еще одно двоеточие, после которого цифрой указываем количество выводимых на экран разрядов дробной части числа. Для нашего примера пишем следующий код: write(A:2:2);. На экран выведется
      34.76

      Если для вывода целой части числа указать меньшее количество разрядов, то компилятор проигнорирует это. Например, если написать write(A:1:2);, результат все равно будет

      34.76

      Если же наоборот, для вывода целой части числа указать большее количество разрядов, то перед числом выведутся пробелы, в количестве недостоющих разрядов. Например, если написать write(A:4:2);, результат будет

        34.76

      Думаю, принцип понятен.

    3. Если мы хотим вывести на экран какой-либо текст, то его следует взять в апострофы (одинарные кавычки). Вот так:
      write('Ученье - свет, неученье - тьма')

      Здесь тоже ничего сложного. Едем дальше.

    4. В этом пункте хотелось бы отметить, что в скобки оператора вывода можно записывать какие-либо выражения. Допустим, если взять пример из первого урока про периметр прямоугольника, то там мы сначала посчитали периметр, затем присвоили его значение переменной P, и только потом вывели ее на экран. Хотя можно было записать:
      write(2*(A+B))

      и обойтись без переменной P. Но это уже личное дело каждого, кто-то делает первым способом, кто-то вторым.

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

    Оператор write используют для вывода данных из оперативной памяти на экран.

    Общий вид оператора write.

    Screenshot_19.png

    Оператор вывода друг за другом выводит указанные данные. Например, оператор write (5, 10, 15) выведет на

    экран ряд цифр без пробелов (51015), что будет восприниматься пользователем как одно число (51015), но нам нужно вывести три отдельные числа. Сделать удобными для восприятия данные можно несколькими способами:  

    Screenshot_2.png

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

    Может возникнуть ситуация, когда цифр в числе меньше, чем отведено под него ячеек на экране, тогда слева от числа пустые позиции заполняются пробелами (число просто сдвинется влево). 
    А если после двоеточия число меньше, чем нужно, то программа автоматически увеличит это число до минимально допустимого.

    Рассмотрим пример.

    a:=(1);

    c:=(a/7);

    write (c:(5):(3));

    Цифра (5) показывает, сколько позиций отводится для целой части числа, а цифра (3) показывает сколько позиций выделено для дробной части числа. Соответственно, в окне вывода мы увидим, (3) знака после точки.

    Screenshot_1.png

    Вместо оператора write, который выводит все данные в одну строку без пробелов, можно использовать оператор writeln — выводит данные с новой строки.

    Организация ввода и вывода данных

    Ключевые слова:

    • оператор вывода write
    • формат вывода
    • оператор ввода read
    Вывод данных

    В предыдущей теме мы познакомились со структурой программы на языке Pascal, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.

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

        
        write (<выражение 1>, <выражение 2>, ..., <выражение N>) // список вывода
        
    

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

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

    Пример

    Оператор write ('s= ', s) выполняется так:

    1. на экран выводятся символы, заключённые в апострофы: s=
    2. на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s.

    Если значение переменной s равно 15 и она имеет целочисленный тип, то на экране появится: s=15

    Если значение переменной s равно 15, но она имеет вещественный тип, то на экране появится: s=1.5Е+01

    При выполнении оператора вывода все элементы списка вывода печатаются непосредственно друг за другом. Так, в результате работы оператора write (1, 20, 300) на экран будет выведена последовательность цифр 120300, которая будет восприниматься нами как число 120300, а не как три отдельные числовые константы. Сделать выводимые данные более доступными для восприятия можно разными способами:

    Способы вывода данных

    Вариант организации вывода Оператор вывода Результат
    Добавить разделители — запятые write (1, ‘,’, 20, ‘,’, 300) 1,20,300
    Добавить разделители — пробелы write (1, ‘ ‘, 20, ‘ ‘, 300) 1 20 300
    Указать формат вывода write (1:3, 20:4, 300:5)   1  20  300

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

    Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 1) общее количество позиций, отводимых под число; 2) количество позиций в дробной части числа:

    Способы вывода вещественных данных

    Оператор вывода Результат выполнения оператора
    write (‘s=’, s:2:0); s=15
    write (‘s=’, s:3:1); s= 15.0
    write (‘s=’, s:5:1); s=   15.0

    При выполнении нового оператора write вывод продолжается в той же строке. Чтобы осуществить переход к новой строке, используется оператор writeln. Других различий между операторами write и writeln нет.

    Первая программа на языке Pascal

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

    Исходным данным в этой задаче является радиус: r = 5,4 см. Результатом работы программы должны быть величины c — длина окружности и s — площадь круга. c, s и r — величины вещественного типа.

    Исходные данные и результаты связаны соотношениями, известными из курса математики: c=2πr, s = πr2. Программа, реализующая вычисления по этим формулам, будет иметь вид:

        
        program p_1;
        const pi=3.14;
        var r, c, s: real;
        begin
        r:=5.4;
        c:=2*pi*r;
        s:=pi*r*r;
        writeln ('c=', c:6:4);
        writeln ('s=', s:6:4)
        end.
        
    

    Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

    Первая программа

    Первая программа

    И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).

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

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

    Для ввода в оперативную память значений переменных используется оператор ввода read:

        
        read (<имя переменной 1>, <имя переменной 2>, ..., <имя переменной N>) // список ввода
        
    

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

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

    Пример

    var i, j: integer; x: real; a: char;

    Присвоим переменным i, j, x, а значения 1, 0, 2.5 и ‘А’. Для этого воспользуемся оператором

    read (i, j, x, a)

    и организуем входной поток одним из следующих способов:

    Пример ввода

    Пример ввода

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

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

    Усовершенствуем программу p_1, организовав в ней ввод данных с помощью оператора read. А чтобы пользователь знал, для чего предназначена программа, и понимал, какое именно действие ожидает от него компьютер, выведем соответствующие текстовые сообщения с помощью оператора writeln:

        
        program p_2;
        const pi=3.14;
        var r, c, s: real;
        begin
        writeln('Вычисление длины окружности и площади круга');
        write ('Введите r» ') ;
        readln(r);
        c:=2*pi*r;
        s:=pi*r*r;
        writeln ('с=', c:6:4);
        writeln ('s=', s:6:4)
        end.
        
    

    Результат работы усовершенствованной программы

    Результат работы усовершенствованной программы

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

    САМОЕ ГЛАВНОЕ

    Для ввода в оперативную память значений переменных используются операторы ввода read и readln.

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

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

    Организация ввода и вывода данных

    Ключевые слова:

    • оператор вывода print
    • формат вывода
    • оператор ввода input
    Вывод данных

    В предыдущей теме мы познакомились со структурой программы на языке Python, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.

    Для вывода данных из оперативной памяти на экран монитора используется оператор вывода print:

        
        print (<выражение 1>, <выражение 2>, ..., <выражение N>) // список вывода
        
    

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

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

    Пример

    Оператор print ('s= ', s) выполняется так:

    1. на экран выводятся символы, заключённые в апострофы: s=
    2. на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s.

    Если значение переменной s равно 15, и она имеет целочисленный тип, то на экране появится: s=15

    Оператор print вставляет между выводимыми значениями так называемый разделитель (или сепаратор, англ. separator). По умолчанию разделитель — это пробел, но мы можем его изменить, указав новый разделитель после слова sep

    Способы вывода данных

    Вариант организации вывода Оператор вывода Результат
    По умолчанию print (1, 20, 300) 1 20 300
    Убрать разделители — пробелы print (1, 20, 300, sep=») 120300
    Добавить другой разделитель print (1, 20, 300, sep=’,’) 1,20,300

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

    Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 1) общее количество позиций, отводимых под число; 2) количество позиций в дробной части числа: (◦ — обозначение пробела)

    Способы вывода вещественных данных

    Оператор вывода Результат выполнения оператора
    a = 4
    print (‘a=’, ‘{:5d}{:5d}’.format(a, a * a))
    a= ◦◦◦◦4◦◦◦16
    a = 1 / 3
    b = 1 / 9
    print («{:7.3f}{:7.3f}».format(a, b))
    ◦◦0.333◦◦0.111
    a = 1 / 3
    b = 1 / 9
    print (‘{:10.3e}{:10.3e}’.format(a, b))
    ◦3.333e-0.1◦◦1.111e-01

    При выполнении нового оператора print вывод продолжается в новой строке. Чтобы убрать переход к новой строке, используется параметр end.

        
        print(a, end='') # убран переход на новую строку
        print(b)
        
    
    Первая программа на языке Python

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

    Исходным данным в этой задаче является радиус: r = 5,4 см. Результатом работы программы должны быть величины c — длина окружности и s — площадь круга. c, s и r — величины вещественного типа.

    Исходные данные и результаты связаны соотношениями, известными из курса математики: c=2πr, s = πr2. Программа, реализующая вычисления по этим формулам, будет иметь вид:

        
        r = 5.4
        c = 2 * 3.14 * r
        s = 3.14 * r * r
        print ('c=', c)
        print ('s=', s)
        
    

    Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

    Первая программа

    Первая программа

    Вывод по формату:

        
        r = 5.4
        c = 2 * 3.14 * r
        s = 3.14 * r * r
        print ( 'c=', '{:6.4f}'.format (c))
        print ( 's=', '{:6.4f}'.format (s))
        
    

    Первая программа с выводом по формату

    Первая программа с выводом по формату

    И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).

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

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

    Для ввода в оперативную память значений переменных используется оператор ввода input. Каждая функция input() захватывает только ОДНУ строку данных и воспринимает ее как ТЕКСТ (строковый тип):

        
        a = input ()
        
    
      Тип переменной можно преобразовать налету:

    • для целых: a = int (input())
    • для вещественных: a = float (input())

    При выполнении функции input компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter, система запишет это значение в переменную.

    Есть задачи, в которых вводимые данные заданы в одной строке, например, 10 20. Чтобы была возможность работать с такими данными, их надо разделить.

    Для этого нужно применить следующий синтаксис:

        
        a, b = input().split()
        
    

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

        
        a = int(a)
        b = int(b)
        # или одной строкой
        a, b = int(a), int(b)
        
    

    Теперь рассмотрим ситуацию, когда входные данные заданы в одной строке, но разделены особыми разделителями, отличными от пробела. Классическим примером таких входных данных является показания времени — 10:33.

    В таких случаях надо для split() указывать конкретный символ разделителя. Разделителем будет символ ':', взятый в кавычки или апострофы.

        
        hours, minutes = input().split(':')
        
    

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

        
        a, b = map(int, input().split()) # назначает a и b тип целого числа, данные разделены пробелом
        c, d = map(float, input().split(';')) # назначает c и d тип вещественного числа, данные разделены ';'
        e, f, h = map(str, input().split('_')) # назначает e, f, h строковый тип, данные разделены знаком '_'
        
    

    При вызове функции input в скобках можно записать сообщение-подсказку:

        
        a = input('Введите число:')
        
    

    Усовершенствуем программу 1, организовав в ней ввод данных с помощью оператора input, включив строку с приглашением для ввода:

        
        r = float (input ('Введите радиус:'))
        c = 2 * 3.14 * r
        s = 3.14 * r * r
        print ("c=", "{:6.4f}".format(c))
        print ("s=", "{:6.4f}".format(s))
        
    

    Результат работы усовершенствованной программы

    Результат работы усовершенствованной программы

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

    САМОЕ ГЛАВНОЕ

    Для ввода в оперативную память значений переменных используются оператор ввода input.

    Для вывода данных из оперативной памяти на экран монитора используются оператор вывода print.

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

    Вопросы и задания:
    1. Ознакомьтесь с материалами презентации. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.
    2. Запишите оператор, обеспечивающий во время работы программы ввод значения переменной summa.
    3. Целочисленным переменным i, j, k нужно присвоить соответственно значения 10, 20 и 30. Запишите оператор ввода, соответствующий входному потоку:
      а) 20 10 30
      б) 30 20 10
      в) 10 30 20
    4. Опишите переменные, необходимые для вычисления площади треугольника по его трём сторонам, и запишите оператор, обеспечивающий ввод необходимых исходных данных.
    5. Что является результатом выполнения оператора?
      а) write (а) (print(a))
      б) write (‘а’) (print(‘a’))
      в) write (‘а=’, а) (print(‘a=’, a))
    6. Какой тип имеет переменная f, если после выполнения оператора write (f) (print(f)) на экран было выведено следующее число?
      а) 125
      б) 1.25Е+2
    7. Каким образом можно вывести на экран вещественное число?
    8. Запишите операторы ввода двух чисел и вывода их в обратном порядке.
    9. Дан фрагмент программы:
          
          read (a);
          read (b);
          c:=a+b;
          write (a, b);
          write (с)
          
              
          
          a = int(input())
          b = int(input())
          c = a + b
          print (a, b)
          print (с)
          
              

      Упростите его, сократив число операторов ввода и вывода.

    10. Дан фрагмент программы:
          
          а:=10;
          b:=a+1;
          a:=b-a;
          write (а, b)
          
              
          
          а = 10
          b = a + 1
          a = b - a
          print (а, b)
          
              

      Какие числа будут выведены на экран компьютера?

    11. Напишите программу, которая вычисляет площадь и периметр прямоугольника по длинам двух его сторон.

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

    Используется для изменения значений переменных. В языке Паскаль эта команда
    обозначается так:

    <имя переменной>:=<выражение>

        При
    этом значение выражения из правой части команды присваивания заменяет текущее
    значение переменной из левой части.     Тип значение выражения должен совпадать с
    типом переменной. 
    Выражение может быть арифметическим, логическим или литерным. Важно, чтобы тип величины был согласован с видом выражения.
    Пример: 
    а:=2; b:=8;
    S:=а+b;
        После выполненных последовательно данных трех команд переменная S принимает
    значение равное 10.

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

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

    Для ввода исходных
    данных используются операторы Read и ReadLn.

    Имеют вид:

    Read
    (список переменных);

    Readln
    (список переменных);

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

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

    При вводе значений из буфера
    используется указатель считывания. Процедура Read ожидает ввод с клавиатуры значений переменных из списка.

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

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

    Процедура readln после
    ввода значений всех переменных списка очищает буфер ввода.

    Пример 1.

    Var a,b:integer;

    Begin

       Read(a,b);

    End.

    Пусть a=5, b=13

    a) 5_13 Enter

    b) 5 Enter

        13 Enter

    Если использовать оператор Readln(a,b), то можно использовать те же самые способы ввода – а и б.

    Пример 2.

    Var a, b, c:integer;

    Begin

       Read(a,b);

    Read(c);

    End.

    Пусть a=5, b=1, c=1,
    тогда ввод можно осуществить следующим образом:

    a) 5_13_1 Enter

    b) 5_13 Enter

         1 Enter

    c) 5 Enter

        13 Enter

        1 Enter

    Если в программе записать

    Readln (a,b);

    Read(c);

    то ввод осуществляется следующим
    образом:

    a) 5_13 Enter

         1 Enter

    b) 5 Enter

        13 Enter

        1 Enter

    Пример 3.

    Var a, b:char;

    Begin

       Readln(a,b);

    End.

    Пусть  a=’+’, b=’8’,
    то ввод осуществляется следующим образом:

    а) +8 Enter

    readln(a);

    readln(b);

    + Enter

    8 Enter

    Оператор readln; используется для приостановки
    работы программы, он ожидает нажатия клавиши Enter.

    Для вывода данных
    используются процедуры Write и WriteLn.

    Оператор вывода имеет
    вид:

    Write
    (список выражений);

    Writeln
    (список выражений);

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

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

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

     Наверх

    Ввод данных:

    Процедура ввода данных с клавиатуры – 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. Условный оператор IF-ELSE.
    • Pascal. Оператор цикла for.
    • Работа с точками и графическими примитивами Паскаль
    • Строки в Паскале
    • Записи в Паскале

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

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

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

    Структура оператора вывода:

    Write (список переменных или текст);

    writeln (список переменных
    или текст);

    Оператор writeln (список
    переменных или текст);
    после вывода
    автоматически переводит курсор на
    следующую строку.

    При выводе какого-либо текста или
    сообщения его нужно располагать в
    одинарных апострофах. Например,

    writeln (‘информатика’);

    write (‘a=’);

    Оператор writeln ,
    записанная без параметров, вызывает
    перевод строки (вставка пустой строки).

    В операторах вывода writeln();
    иwrite();имеется
    возможность записи выражения, определяющего
    ширину поля вывода:

    write (x:p); writeln(y:p);,

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

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

    write (x:p:q); writeln(y:p:q);,

    где x, y– выражения вещественного типа,

    p– ширина поля вывода
    всего числа,

    qширина поля
    вывода дробной части числа, при этом0≤q≤24.

    Если q=0, то ни
    дробная часть, ни десятичная точка на
    экран не выводятся.

    Если q>24, то число
    выводится в формате с плавающей точкой.

    Если для вещественного выражения не
    указан формат вывода, то по умолчанию
    число выводится в формате с плавающей
    точкой, т.е. в поле шириной 18 символов
    выводится десятичное представление
    числа:

    1. если x≥0.0, то используется
      формат

    #.# # # # # # # # # # # E*# #

    1. если x<0.0, то
      формат имеет вид

     — #.# # # # # # # # # # E*#
    #

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

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

    Переменная и выражение должны быть
    совместимы по типу.

    Структура:

    <идентификатор>:=<выражение>;.

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

    Графически
    оператор присваивания изображается в
    виде прямоугольника:

    Пример:Вычислить гипотенузу
    треугольника, если катеты известны:a=3,b=4.

    Блок-схема

    Программа

    program
    Pr1;

    uses
    crt;

    const
    A=3;

    B=4;

    var
    C: real;

    begin

    clrscr;{очистка
    экрана}

    c:=sqrt(sqr(A)+sqr(B));

    write(‘Гипотенуза
    равна’,C:6:0);

    end.

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

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

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