Язык паскаль ввод и вывод
Ввод-вывод данных в Pascal
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит «работающие по-умолчанию»; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран «Введи число: » и не переводим курсор на новую строку, а ждем ввода.
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Pascal. Операторы ввода-вывода
Ввод данных:
Процедура ввода данных с клавиатуры – Read (читать). Ее можно представить так:
В качестве списка ввода выступают имена переменных. Во время выполнения оператора ввода данных программа останавливается и ждет, пока они будут введены. Для завершения ввода необходимо нажать Enter. Если переменных несколько, то они могут вводиться через пробел, либо, введя одну переменную нужно нажать Enter, потом ввести вторую и т. д.
Для перевода каретки после выполнения оператора Read на новую строку, следует прибавить окончание ln:
Также можно не указывать список ввода:
Программа не перейдет к выполнению следующей части до тез пор, пока не выполниться пустой оператор.
Вывод данных:
Для вывода данных в Паскале имеется оператор Write. Для того, чтобы каретка переводилась на следующую строку, к нему прибавляется окончание ln и получается Writeln. В общем виде эти операторы имеют вид:
Элементами списка вывода являются величины различных типов, в том числе выражения и строки, отделенные друг от друга запятыми, например:
Здесь x и y – параметры, заключенные в круглые скобки. Возможно использование оператора вывода и без параметров:
Форматированный вывод:
Недостаточно просто вывести значение на экран, нужно также сделать это как можно корректнее. Допустим нам нужно в одном операторе Write вывести значения нескольких переменных (a=1, b=2, c=3). Пишем:
После выполнения, на экране действительно отобразятся значения данных переменных, но это понятно компьютеру, а пользователь увидит число 123. Необходимо придать вид выводимым данным, сделать это в Паскале можно двумя способами:
1) Вписать пробел вручную, например:
2) Воспользоваться возможностью форматированного вывода:
Двоеточие относиться к переменной, после которой оно следует, и говорит программе, что при выводе (переменной) нужно выделить место, заданное целым числом (в нашем случае это 2), т. е. под значения, хранящиеся в переменных b и c отводиться две клетки, сами они выведутся «прижатыми» к правому краю.
Процедура форматированного вывода может применяться и к другим типам данных, но особого внимания заслуживает вещественный тип. Как известно переменные вещественного типа имеют целую и дробную части, поэтому для них предусмотрена такая форма записи с использованием формата:
Результат выполнения: 32.101
Формат 5 означает, что всего под число 32.1012 выделено 5 клеток, а 2 – из этих пяти под дробную часть отводиться 2 клетки.
Язык программирования TurboPascal
Turbo Pascal. Ввод и вывод данных
Формат оператора:
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку при вводе данных.
При вводе данных с помощью оператора READ нужно иметь в виду следующие основные правила:
ЗАДАЧА. Ввод данных.
Введем в программу следующие исходные данные:
Обозначим символом пробел при вводе. При вводе числа будем разделять пробелом. Между числами допускается любое количество пробелов. Тогда экран монитора при вводе данных может выглядеть следующим образом:
Введите a, b, c:2
3
Введите x, y, z:44.447.5
76
Введите s1,s2,s3:A B C
Вывод данных
Здесь a1,a2,a3. an могут быть либо переменными, либо строкой символов, заключенной в апострофы. Все элементы перечисляются через запятую. Добавление к оператору WRITE символов LN обеспечивает автоматический переход курсора после вывода данных на новую строку.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку, поэтому последующий оператор вывода с параметрами будет выводить данные с новой строки. Оператор вывода без параметров часто используется для формирования пустых строк.
Бесформатный вывод. Форма представления выводимых данных зависит от типа данных:
При бесформатном выводе отводимое количество позиций равно размеру данных. При выводе символа отводится одна позиция, при выводе целого числа – число позиций равно числу значащих цифр плюс одна позиция под знак, если число отрицательное. Это необходимо учитывать при последовательном выводе данных, например чисел, чтобы значения разных переменных не сливались друг с другом.
ПРИМЕР. Рассмотрим фрагмент программы:
Два числа слились. Для того чтобы числа не сливались необходимо использовать разделяющие пробелы или разнесение информации по разным строкам.
Результат:
Результат:
Форматный вывод. Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
где: m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; n – целое число, определяющее количество цифр дробной части.
8 позиций |
Символом обозначен пробел.
Вывод вещественных чисел выполняется по следующим правилам:
В качестве примера рассмотрим печать вещественного числа в различных форматах.
Результат работы программы:
Печать вещественного числа
Печать в фиксированном формате
Печать в плавающем формате
Для вывода целых чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
k – целое число, указывающее общее количество позиций, отводимое под значение переменной.
В целых числах отсутствует дробная часть, поэтому нет необходимости указывать в формате число позиций дробной части.
Лекция 2. Ввод и вывод данных(Паскаль)
раздел указания используемых модулей;
Program заголовок программы;
USES подключаемые модули, библиотеки;
LABEL объявление глобальных меток;
CONST объявление глобальных констант
TYPE объявление глобальных типов;
VAR объявление глобальных переменных;
(FUNCTION) заголовок процедуры или функции;
label объявление локальных меток;
const объявление локальных констант;
type объявление локальных типов ;
var объявление локальных переменных;
основной блок процедуры или функции;
основной блок программы- раздел операторов;
А теперь немного обо всем.
Заголовок программы начинается с зарезервированного слова Program, после которого идет идентификатор программы. В Турбо Паскале эта строка не обязательна, но правила хорошего тона в программировании требуют задания некоторого имени программы, чтобы уже при первом знакомстве можно было получить хоть какую-нибудь информацию о ее назначении. Имя программы не должно совпадать с другими идентификаторами в самой программе.
Оператор USES играет важную роль в подключении к тексту программы системных модулей из библиотек.
Объявление констант, типов, переменных.
Раздел описания типов TYPE позволяет программисту определять новый тип в программе. В данном разделе могут быть использованы ранее определенные константы.
В разделе описания глобальных переменных VAR содержится список переменных, используемых в программе, и определяется их тип в виде:
Разделы Label, Const, type и Var могут располагаться в любом порядке и, произвольно чередуясь.
Основной блок программы состоит из последовательности операторов, причем работа программы начинается именно с первого оператора основного блока. Тело основного блока программы ограниченно операторными скобками BEGIN и END. Обратите особое внимание на наличие точки после оператора END.
Ввод и вывод данных
Ввод и вывод данных можно организовывать двумя способами:
— с терминального устройства(клавиатура и экран)
Для ввода и вывода данных используются стандартные процедуры ввода и вывода Read и Write, оперирующие стандартными последовательными файлами INPUT и OUTPUT.
Эти файлы разбиваются на строки переменной длины, отделяемые друг от друга признаком конца строки. Конец строки задается нажатием клавиши ENTER.
Чтобы ввести данные в процессе выполнения программы используются встроенные процедуры
READ ([имя файл.переменной], список переменных)
Read(A1,A2. AK); ReadLn(A1,A2. AK); ReadLn;
При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке ПАСКАЛЬ недопустимо.
Операторы ввода при чтении значений переменных целого и действительного типа пропускает пробелы, предшествующие числу. В то же время эти операторы не пропускают пробелов, предшествующих значениям символьных переменных, так как пробелы являются равноправными символами строк.
прерывают выполнение программы, наступает режим ожидания ввода значений;
присваивают полученные данные переменным из списка, соблюдая порядок следования.
При использовании этих процедур необходимо помнить о следующих особенностей их работы.
При введении нескольких данных разделять их некоторыми разделителями, например пробелами или клавишей Enter (но не запятой!).
Для вывода результатов работы программы на экран используются операторы:
В случае стандартного ввода-вывода имя файловой переменной указывать необязательно.
Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или булевскому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.
Вывод каждого значения в строку экрана происходит в соответствии с шириной поля вывода, определяемой конкретной реализацией языка.
WRITE(имя1[действие]:кол-во позиций для числа: кол-во после запятой);
Например, Writeln(1/3:0:4) на экран выведет результат 0.3333
Пример записи операторов вывода:
var rA, rB: Real; iP,iQ:Integer;
bR, bS: Boolean; chT, chV, chU, chW: Char;
WriteLn(chT, chV, chU, chW);
если write(‘текст’), то выводится текст, заключенный в апострофы;
если writeln(‘текст’), то выводится текст, заключенный в апострофы и переводится курсор на новую строку;
если write(числовое выражение), то выводится результат этого выражения; например write(2+3), то на экране появится 5;
если write(имя1), то выводится значение переменной с этим именем;
если write(имя1,имя2), то выводятся значения переменных с этими именами, но они идут подряд. Поэтому необходимо между идентификаторами вставить символ пробел- Write(a1,’ ‘,a2);
если write(‘текст’,имя1,’текст’, выражение), то на экран выводится текст, значение переменной с именем имя1, опять текст и результат выражения.
При работе с процедурами вывода также нужно быть внимательными, так если Вы неправильно расставите апострофы, то Ваши переменные могут выводиться как элементы текста.
Ввод и вывод данных с помощью файлов.
Разберем один из самых популярных способов работы с файлами.
Алгоритм работы ввода данных:
Установим взаимосвязь с существующим файлом с именем, например, Input.txt. Для этого мы воспользуемся стандартной переменной INPUT и процедурой ASSIGN, записав в теле программы после слова BEGIN такую команду:
где input – стандартная переменная Pascal, ‘input.txt’- имя файла, из которого будут считываться данные.
Откроем этот файл для чтения процедурой RESET, для этого после предыдущей процедуры запишем:
3. Теперь можно считывать данные, с помощью процедуры Read(a), если данные записаны в строчку или Readln(a), если данные записаны в файле в столбик.
Алгоритм работы вывода данных:
Установим взаимосвязь с будущим файлом с именем, например, Output.txt. Для этого мы воспользуемся стандартной переменной OUTPUT и процедурой ASSIGN, записав в теле программы такую команду:
где output – стандартная переменная Pascal, ‘output.txt’- имя файла, который будет создан и в него будут записаны данные.
Откроем этот файл для записи процедурой REWRITE, для этого после предыдущей процедуры запишем:
3. Теперь можно записывать данные, с помощью процедуры Write(a), если данные будем писать в строчку или Writeln(a), если данные вводим в столбик.
Операторы ввода вывода Паскаль
Как организован ввод-вывод данных с терминального устройства? Для начала (кто не знает), определим терминальное устройство. Терминальное устройство — это клавиатура, дисплей, т.е. то, с чем пользователь обычно работает. Какие существуют операторы ввода вывода Паскаль?
Ввод данных Паскаль:
Как ввести данные в Паскале? Очень легко и просто! Ввод исходных данных в Паскале осуществляется процедурой readln:
В этом примере процедура readln осуществляет чтение k значений исходных данных и присваивает эти значения переменным b1, b2,…, bk с переходом на новую строку (похожая процедура read отличается от readln отсутствием перехода на следующую строку). Когда мы вводим данные в Паскале, происходит своеобразное преобразование внешней формы во внутреннюю, которую определяет тип переменных.
Переменные, входящие в состав списка ввода, могут относиться к разным типам: целому, действительному, символьному. Однако чтение логических данных не допускается в Паскале. Исходные данные (т.е. их значения) отделяются друг от друга нажатием клавиши Enter и Tab, пробелами (при вводе данных недопустимо разделять числа запятыми).
Вывод данных Паскаль:
Теперь расскажем о выводе данных в Паскале. Чтобы вывести на экран результат работы вашей программы, обычно пользуются двумя процедурами:
write(b1,b2,…bk) — осуществляет вывод значений переменных b1, b2,…, bk в строку экрана.
writeln(b1,b2,…, bk) — производит как вывод данных на экран, так и переход к началу следующей строки.
Процедура writeln может использоваться без параметров, тогда просто производится пропуск исходной строки и переход к началу следующей. В списке вывода переменные могут иметь нескольких типов: целый, действительный, символьный или булевский. К элементам списка вывода относятся еще выражения и строки. Форма представления значений в поле вывода соответствует типу переменных и выражений:
Оператор вывода создает возможность задать ширину поля вывода для каждого элемента списка вывода, которые будут иметь вид: А:К, где А — строка или выражение, К — выражение либо целочисленная константа. Возникают две ситуации при этом:
Элемент списка вывода для величин действительного типа может иметь вид: А:К:М, где А — выражение действительного типа или переменная, К — ширина поля вывода (выражение или константа), М — число цифр дробной части выводимого значения(выражение или константа). В данной ситуации действительные значения будут выведены как десятичное число с фиксированной точкой. Представим пример записи операторов вывода:
var rM, rN: real;
iS, iT:integer;
bZ, bL: boolean;
chY, chD, chH, chX: char;
begin
writeLn(rM, rN:10:2);
writeLn(iS, iT:8);
writeLn(bZ, bL:8);
writeLn(chY, chD, chH, chX);