- •Тема 2.2. Основные понятия языка программирования высокого уровня Free Pascal
- •Системы программирования
- •Интегрированная среда разработки FreePascal
- •Введение в язык Паскаль Характеристика языка программирования Паскаль
- •Основные понятия технологии программирования
- •Алфавит языка Паскаль
- •Структура программы на Паскале
- •Типы данных
- •Стандартные типы данных
- •Структуры данных
- •Строковый тип
- •Структурированные переменные
- •Представление основных структур программирования на языке Паскаль Операции и выражения
- •Арифметические операции и выражения
- •Логические операции
- •Оператор присваивания
- •Составной оператор
- •Условный оператор
- •Процедура write
- •Процедура ввода
- •Оператор выбора
- •Операторы повторений
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Метки и операторы перехода
- •Работа с массивами
- •Операции над строками
- •Функция Length
- •Функция Upcase
- •Функция Сopy
- •Функция Pos
- •Процедуры Insert и Delete
- •Процедура Str
- •Процедура val
- •Практические примеры работы со строковыми данными
- •Оператор присоединения with
- •Процедуры и функции Паскаля
- •Формальные и фактические параметры
- •Типизированные константы
- •Interface
- •Implementation
- •Interface
- •Interface
- •Implementation
- •Файловый тип данных Типизированные файлы
- •Текстовые файлы
Процедура write
Операторы вывода допускают использование указания о ширине поля, отводимого под значение выводимой величины, в явном виде. Ширина поля вывода определяется типом устройства, использующимся в данной ЭВМ. Форма представления выводимых переменных определяется типом переменных: значения величин целого типа выводятся в обычной форме; значения величин действительного типа – в виде нормализованного числа действительного типа с порядком: значения логического типа – в виде логических значений TRUE и FALSE; значения символьных переменных – в виде соответствующих символов.
Общий вид записи операторов при выводе значений целого типа:
write(b:m); writeln(b:m); ,
где b – имя выводимой переменной; m – константа или выражение целого типа, отводимое под значение.
Например:
write(dd:6,ir:8);
Значения переменных dd и ir размещаются в одной строке и занимают соответственно шесть и восемь позиций. Каждое значение размещается в отведенном поле и занимает крайние правые позиции. При этом незаполненные позиции остаются свободными, образуя пробелы. Если значение переменной не размещается в отведенном поле, то увеличивается число позиций.
При выводе значений действительного типа с фиксированной точкой указывается ширина поля, отводимая под все значение и под дробную часть числа. Общий вид записи операторов выглядит следующим образом:
write(b:m:n);writeln(b:m:n);
где m – поле, отводимое под запись значения; n – часть поля, отводимого под дробную часть числа.
Например:
write(a:8:3);
В данном случае под значение а выделяется восемь позиций, три из которых отводится под дробную часть числа.
Если при выводе действительных значений не указывается количество позиций, отведенных под дробную часть числа, то результат получается в нормализованном виде с десятичным порядком.
Можно задавать количество пробелов. Для этого необходимо записать оператор вывода в виде
write(‘ ‘:q); ,
где q – константа целого типа, указывающая число пробелов.
Пример размещения информации при выводе:
program task;
const
pi = 3.141592;
t = 401;
w = true;
sim = ‘D’;
begin
writeln(‘pi=‘,pi:8:6);
writeln(t:6,’ ‘:6,w:4,’ ‘:6,sim:1)
end.
Информация выводится в две строки в виде:
pi=3.141592
401______true______D
_ обозначение пробела.
Процедура ввода
Для ввода данных в языке Паскаль предусмотрены стандартные встроенные программы (процедуры) – READ и READLN. Оператор ввода служит для ввода данных в процессе выполнения программы. Процедура READ используется в виде:
а) read (a1, a2, a3, ..., an) – каждое вводимое значение присваивается последовательно переменным a1, a2, a3, ..., an;
б) readln (a1, a2, a3, ..., an) – каждое вводимое значение присваивается последовательно переменным a1, a2, a3, ..., an, после чего происходит переход на новую строку (следующий оператор ввода будет вводить данные с новой строки);
в) readln – переход на новую строку при вводе данных.
Логические данные в Паскале вводить не разрешается.
При вводе числовые данные должны разделяться пробелом или символом окончания ввода (клавиша <Enter>).
Пример ввода:
var a, b, c : real;
k, t : integer;
. . .
read (a, b, c);
readln;
read (k, t);
После набора на экране дисплея всей программы и запуска ее на выполнение происходит останов машины при встрече read(a, b, c). На клавиатуре ЭВМ необходимо набрать три действительных числа, затем с новой строки (выполняется оператор readln) – два целых числа соответственно оператору read(k, t). Например,
0.5 6.23 –7.1
3 48
При этом переменные получат следующие значения: a = 0.5, b = 6.23, c = –7.1, k = 3, t = 48, и выполнение программы продолжится.
Числа можно отделять друг от друга не только пробелами, но и символом окончания ввода (клавиша <Enter>), то есть каждое число вводится с новой строки.
Ввод символьных данных имеет особенности. Поскольку пробел, как и любой символ языка Паскаль, относится к символьным данным, символьные данные вводятся сплошной строкой в соответствии с оператором ввода. Напомним, что одной переменной можно присвоить значение только одного символа.
Пусть имеется фрагмент программы
var a, b, c : char;
. . .
read( a, b, c);
Данные вводятся в виде: SNR. Переменные a, b, c получат следующие значения:
a = ‘S’, b = ‘N’, c = ‘R’.
Для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку readln, чтобы ввод осуществлялся всегда с новой строки.
С вводом данных связана стандартная функция EOLN. Она принимает значение true, если достигнут конец строки; в противном случае – значение false.
