Что означает оператор writeln вывод текста на экран монитора
Для ввода данных в языке Турбо Паскаль предусмотрены стандартные операторы (процедуры) – READ и READLN , которые предназначены для чтения данных, как с клавиатуры, так и из файла. В данном разделе рассматривается ввод данных только с клавиатуры. Добавление к оператору READ символов LN обеспечивает автоматический переход курсора после ввода данных на новую строку.
Формат оператора:
Здесь a1,a2,a3. an – переменные, которым последовательно присваиваются значения. Если в тексте программы встречается оператор READ , компьютер приостанавливает работу и ожидает ввода значений переменных с клавиатуры. Когда все значения переменных, перечисленных в операторе ввода, введены, процесс выполнения программы продолжается.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку при вводе данных.
При вводе данных с помощью оператора READ нужно иметь в виду следующие основные правила:
- логические данные в Турбо Паскале вводить не разрешается;
- при вводе числовых данных, числа разделяются пробелом или символом окончания ввода (клавиша ENTER). Ввод всегда заканчивается нажатием клавиши ввода – ENTER;
- пробелы перед числом и между числами игнорируются, поэтому их можно ставить в любом количестве;
- если переменная описана как Integer , ее значение вводится как целое число, т.е. не допускается использование точки после числа;
- если переменная описана как вещественная ( Real ), а ее значение является целым числом, то можно вводить число как целое (т.е. без точки) и как вещественное число – с точкой. Преобразование целого числа к вещественному числу будет выполнено автоматически;
- ввод символьных данных имеет особенности. Поскольку пробел является символом, как и любой другой символ языка Турбо Паскаль, то символьные данные необходимо вводить сплошной строкой;
- одной символьной переменной можно присвоить значение только одного символа;
- нажатие клавиши ENTER воспринимается как символ, поэтому для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку READLN , чтобы их ввод осуществлялся с новой строки.
ЗАДАЧА. Ввод данных.
Введем в программу следующие исходные данные:
Обозначим символом пробел при вводе. При вводе числа будем разделять пробелом. Между числами допускается любое количество пробелов. Тогда экран монитора при вводе данных может выглядеть следующим образом:
Введите a, b, c: 2 3
Введите x, y, z:44.4 47.5 76
Введите s1,s2,s3:A B C
Вывод данных
Для вывода данных из памяти компьютера на экран монитора предназначен оператор Write .
Здесь a1,a2,a3. an могут быть либо переменными, либо строкой символов, заключенной в апострофы. Все элементы перечисляются через запятую. Добавление к оператору WRITE символов LN обеспечивает автоматический переход курсора после вывода данных на новую строку.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку, поэтому последующий оператор вывода с параметрами будет выводить данные с новой строки. Оператор вывода без параметров часто используется для формирования пустых строк.
Параметрами оператора WRITE могут быть данные целого, вещественного, логического, символьного, а также типа string .
Расположение данных на экране монитора может быть задано параметрами оператора WRITE , тогда вывод называется выводом с форматами данных. Если в операторе WRITE форматы не используются, вывод называется бесформатным выводом или стандартной формой вывода.
Бесформатный вывод. Форма представления выводимых данных зависит от типа данных:
- значения логического типа выводятся в виде логических значений TRUE и FALSE ;
- значения символьных переменных выводятся в виде соответствующих символов;
- символьная константа выводится в том виде, как она записана, но без апострофов;
- значения величин целого типа выводятся как целые числа;
- значения величин вещественного типа выводятся в формате с плавающей точкой.
При бесформатном выводе отводимое количество позиций равно размеру данных. При выводе символа отводится одна позиция, при выводе целого числа – число позиций равно числу значащих цифр плюс одна позиция под знак, если число отрицательное. Это необходимо учитывать при последовательном выводе данных, например чисел, чтобы значения разных переменных не сливались друг с другом.
ПРИМЕР. Рассмотрим фрагмент программы:
Оператором write(n,m); на экран монитора выводятся целые числа: n=1234 и m=7890 . Поскольку используется вывод без форматов данных, результат будет иметь вид:
Два числа слились. Для того чтобы числа не сливались необходимо использовать разделяющие пробелы или разнесение информации по разным строкам.
Результат:
Результат:
Форматный вывод. Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
где: m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; n – целое число, определяющее количество цифр дробной части.
Выводимая информация выравнивается по левому краю. При этом подавляется печать ведущих нулей, т.е. если для вывода числа было выделено четыре позиции, то на экран монитора будет выведено, например, 6 , а не 0006 .
Пример. Выведем значение переменной A , равное 401.3 оператором write(A:8:2) . На экран монитора будет выведено:
401,30 |
8 позиций |
Символом обозначен пробел.
Вывод вещественных чисел выполняется по следующим правилам:
- Если число имеет меньшую длину, чем m , то оно будет дополнено слева пробелами.
- Если число имеет большую длину, чем m , то параметр m игнорируется и число будет выведено полностью.
- Если дробная часть больше, чем параметр n , то число округляется. Округление не изменяет самого значения переменной, меняется только представление числа на мониторе.
- Если параметр n не указан, то ни дробная часть числа, ни десятичная точка не выводятся. Вывод осуществляется в формате с плавающей запятой.
В качестве примера рассмотрим печать вещественного числа в различных форматах.
Результат работы программы:
Печать вещественного числа
Печать в фиксированном формате
Печать в плавающем формате
Для вывода целых чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
k – целое число, указывающее общее количество позиций, отводимое под значение переменной.
В целых числах отсутствует дробная часть, поэтому нет необходимости указывать в формате число позиций дробной части.
Если необходимо после вывода перейти на другую строку, то используется оператор writeln () .
Результат:
Рассмотрим примеры задач с использованием вывода Writeln в Pascal:
Write('Сумма 5 + 6 = ',5+6);
Результат: Сумма 5 + 6 = 11
Результат: Привет
Результат: AB
Результат:
A
B
begin var n:integer; read(n); n: = n * n; print('n = ',n);
2 способ (форматный вывод):
begin var a:=1.2; var b:=4; var c:=a+b; WritelnFormat ('f (, ) = ', a, b, c); end.
var x := ReadInteger('Enter x:'); var y := ReadInteger('Enter y:'); var res := x + y; Print($'Sum of and is ');
Задача 1. Написать программу, которая выводит на экран ваши ФИО, каждое слово – с новой строки.[Название файла: L1task1.pas ]
Оператор присваивания и оператор Readln в Pascal
Оператор присваивания
Важно: Идентификаторы состоят из буквы, за которой могут следовать буквы, цифры или символ подчеркиванияЧтобы задать переменной какое-либо значение используется оператор присваивания. Оператор присваивания в Паскале обозначается как := , выполняет правую часть выражения и присваивает результат переменной, расположенной в левой части выражения:
Пример:
a:=2; writeln('квадрат ',a,'=',a*a);
begin var n:integer; // объявление переменной n:=1; // присваивание
2 method (канонический):
begin var n:=1; // объявление переменной и присваивание значения => инициализация
Ввод данных
Пример использования readln в Pascal:
Writeln('Введите число'); readln(a); writeln('квадрат ',a,'=',a*a);
то же самое, что и read:
Пример использования read в Pascal:
Writeln('Введите число'); read(a); writeln('квадрат ',a,'=',a*a);
Если запрашиваются две переменные, то можно перечислять их через запятую:
Writeln('Введите два числа'); read(a,b); writeln('сумма чисел = ',a+b);
Пример: Запросить для ввода два целых числа и вывести на экран их сумму.begin var n:integer; // n - целочисленная переменная read(n); // ввод значения и сохранение его в переменной n
begin var n:real; // n - переменная вещественного типа read(n);// ввод значения и сохранение его в переменной n
// n - целочисленная переменная и мы вводим значение и сохранением его в переменной n var n:=ReadInteger(); // х - переменная вещественного типа и мы вводим значение и сохранением его в переменной х var x:=ReadReal();
3 способ (кортежное присваивание):
var n1, n2: integer; // объявление двух переменных (n1, n2) := (1, 2); // 1 присваивается переменной n1, 2 присваивается переменной n2
// n1 и n2 - целочисленные переменные и мы вводим для них два значения var(n1, n2) := readInteger2;
var x := ReadInteger('Введите x:'); var y := ReadInteger('Введите y:'); var res := x + y;
двумя способами, но работает — третий"
Алан Джей Перлис
Операторы вывода write и writeln в Pascal
В Pascal существуют два оператора вывода - это write() и writeln() . Их отличие заключается в том, что оператор writeln после вывода на экран информации переводит курсор на новую строку, в то время как write оставляет курсор на той же строке.
Рассмотрим на примере: необходимо вывести три переменные A = 5, B = 7, C = 3 друг за другом в одну строку. В этом случае следует использовать оператор write. Код будет выглядеть следующим образом: или же таким: Результат вывода на экран будет следующим: 573
Если необходимо вывести эти же переменные в столбик, следует воспользоваться оператором writeln( ). Код будет выглядеть так: Результат вывода на экран будет следующим:
Хочу заметить, что в этом случае запись writeln(A,B,C) не принесет нужного эффекта, а именно, вывод будет осуществлен в строчку, а не в столбец.
С отличием операторов разобрались. Теперь поговорим о том, как правильно записывать в скобках у операторов write/writeln то, что мы хотим вывести на экран.
- Если мы хотим вывести переменную или несколько переменных, то достаточно просто записать их через запятую в скобках оператора вывода. Например:
- Бывает, что необходимо округлить число (типа real) при выводе. Например, у нас есть переменная А = 34,756942 и необходимо вывести это число с двумя знаками после запятой. Делается это следующим образом: сначала пишем необходимый нам оператор вывода (write/writeln), внутри скобок записываем имя переменной, затем ставим двоеточие и после него цифрой указываем сколько разрядов будет выводится в целой части, затем ставим еще одно двоеточие, после которого цифрой указываем количество выводимых на экран разрядов дробной части числа. Для нашего примера пишем следующий код: write(A:2:2); . На экран выведется Если для вывода целой части числа указать меньшее количество разрядов, то компилятор проигнорирует это. Например, если написать write(A:1:2); , результат все равно будет Если же наоборот, для вывода целой части числа указать большее количество разрядов, то перед числом выведутся пробелы, в количестве недостоющих разрядов. Например, если написать write(A:4:2); , результат будет Думаю, принцип понятен.
- Если мы хотим вывести на экран какой-либо текст, то его следует взять в апострофы (одинарные кавычки). Вот так: Здесь тоже ничего сложного. Едем дальше.
- В этом пункте хотелось бы отметить, что в скобки оператора вывода можно записывать какие-либо выражения. Допустим, если взять пример из первого урока про периметр прямоугольника, то там мы сначала посчитали периметр, затем присвоили его значение переменной P, и только потом вывели ее на экран. Хотя можно было записать: и обойтись без переменной P. Но это уже личное дело каждого, кто-то делает первым способом, кто-то вторым.
Все, что могло быть интересного в операторе вывода, я вам рассказал. Если возникли какие-то вопросы, не стесняйтесь задавать их, контакты для связи со мной находятся здесь. Если вопросов нет, то вперед к следующему уроку))
Решим задачу, прокомментировав каждое свое действие в фигурных скобках. Напомним, что комментарий не воспринимается компьютером, а нам он нужен для того, чтобы лучше понять как работает программа.
Задача. Напишите программу, которая бы очищала экран и вычисляла произведение двух чисел, вводимых пользователем.
Чтобы лучше понять действие программы, наберите ее на компьютере и проверьте ее действие. Ответьте на вопросы:
-
почему программу назвали Proizv2?
Задание. Измените программу так, чтобы она запрашивала у пользователя еще одну переменную и выводила результат произведения трех чисел.
Мы уже использовали операторы Write и WriteLn, но нам необходимо подробнее остановиться на правилах применения этих операторов.
Общий вид:
Write (список выражений)
WriteLn (список выражений)
Например, при выполнении процедуры WriteLn(‘Найденное число ‘,а), будет напечатана строчка, заключенная в апострофы, а затем выведено значение переменной а.
Оператор WriteLn можно применить и без параметров. В этом случае напечатается строка, состоящая из пробелов, и курсор будет переведен на другую строку. Это иногда нам нужно для лучшего восприятия ввода данных.
Вспомним, что основное назначение ЭВМ - сэкономить человеческий труд. Поэтому необходимо обеспечить возможность, однажды написав программу, многократно ее использовать, вводя каждый раз другие данные. Такая гибкость в языке обеспечивается операторами Read и ReadLn. Этими операторами вводится информация с клавиатуры.
Общий вид:
Read(переменная, переменная. )
ReadLn(переменная, переменная. )
При выполнении процедуры Read ожидается ввод перечисленных в скобках значений. Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди.
Например, если вводятся значения 53 и Х, то при выполнении оператора Read(a,b) переменной а будет присвоено число 53, а переменной Х - буква Х. Причем, отметим, чтобы не было аварийной ситуации, нужно правильно определить тип данных в разделе Var; в нашем случае а:integer, а b:char.
Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу <Enter> результат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.
Примечание. Когда Вы ставите задержку экрана, обратите внимание на предыдущий ввод. Если данные запрашивались процедурой Read задержки не будет.
Решим задачу, в которой рассмотрим все возможные употребления этих процедур.
Задача. Найти среднее значение трех чисел.
Примечание. Чтобы найти среднее значение нескольких чисел, нужно сложить эти числа и сумму разделить на количество этих чисел.
Теперь компьютер должен считать введенные символы и занести их в переменную First, это произойдет при выполнении следующего оператора ReadLn(First). Затем с помощью оператора Write запрашиваем значения еще двух чисел и считываем их в переменные Second и Third. Затем вычисляем их сумму и присваиваем полученное число переменной Sum. Чтобы найти среднее, нужно теперь полученное число разделить на 3 и сохранить результат в какой-либо переменной.
Совсем не обязательно описывать еще одну переменную для сохранения результата. Можно, как в нашей программе, значение переменной Sum разделить на 3 и результат опять присвоить той же переменной Sum. Теперь можно вывести результат вычислений на экран с помощью процедуры Write. И, наконец, последняя процедура ReadLn задержит наш вывод на экране до нажатия на клавишу.
Нажмите клавиши <Ctrl>+<F9>. Введите значения переменных 5, 7 и 12, на экране увидите следующее:
Среднее значение 5, 7 и 12 равно 8.00
Просмотрите внимательно эту строчку и сравните со строчкой вывода результата в нашей программе. Протестируйте программу еще несколько раз для других значений переменных.
Выберите с учителем задачи для решения из следующего перечня:
-
Ввести два числа a и b. С помощью оператора присваивания обменять их значения:
а) с использованием промежуточной переменной (x:=a; a:=b; b:=x);
b) без использования промежуточной переменной (a:=a-b; b:=a+b; a:=b-a).
Читайте также: