- •Программирование на языке Паскаль в среде Turbo Pascal версии 6 и 7
- •Глава 7. Составные типы данных 29
- •Глава 8. Подпрограммы и функции 46
- •Глава 9. Файлы 50
- •Глава 10. Динамические переменные (списки) 58
- •Тип и функциональные возможности языка
- •Структура программы на Паскале
- •Алфавит языка
- •Правила написания имен
- •Структура блока описаний
- •Глава 2. Простые типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Интервальный тип пользователя
- •Перечисляемый тип пользователя
- •Глава 3. Встроенные функции Понятие и классификация типов функций
- •Математические функции
- •Функции преобразования типов
- •Глава 4. Выражения Понятие и классификация типов выражений
- •Арифметические операции
- •Логические операции
- •Отношения
- •Битовые операции
- •Глава 5. Выполняемые операторы языка (для программ линейной структуры) Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простейшие операторы ввода с клавиатуры
- •Простейшие операторы вывода на экран дисплея
- •Глава 6. Выполняемые управляющие операторы языка Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных Классификация составных типов
- •Массивы Основные определения
- •Вывод массива
- •Примеры программ работы с массивами
- •Сортировки массива
- •Алгоритмы основных методов сортировок
- •Строки Строковые переменные
- •Стандартные (встроенные) процедуры работы со строками
- •Стандартные (встроенные) функции работы со строками
- •Структуры
- •Глава 8. Подпрограммы и функции Понятие подпрограмм в языке Паскаль.
- •Процедуры.
- •Описание и вызов функций
- •Параметры процедур и функций
- •Глава 9. Файлы Классификация внешних данных
- •Стандартные процедуры работы с файлами
- •Процедуры
- •Функции
- •Особенности работы с текстовыми файлами
- •Пример работы с текстовыми файлами.
- •Двоичные файлы (в машинных кодах) Типизированные файлы
- •Процедуры при работе с типизированными файлами
- •Функции при работе с типизированными файлами
- •Пример работы с типизированными файлами.
- •Файлы без типов
- •Процедуры, используемые при работе с нетипизированными файлами
- •Функции, используемые при работе с нетипизированными файлами.
- •Глава 10. Динамические переменные (списки) Понятие динамических переменных
- •Списочные данные
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Глава 11.Стандартный модуль работы с текстовым экраном Crt
- •2) Координаты экрана
- •3) Управление графическим режимом
- •4) Управление экраном и окном
- •5) Управление цветом
- •6) Вывод точек
- •7) Вывод линий
- •8) Вывод и закраска контуров
- •9) Окружности, эллипсы, дуги
- •10) Вывод текста
- •11) Последовательность работ при использовании графического режима
- •11) Пример программы приложения
Интервальный тип пользователя
Интервальный тип задает границы допустимых значений для переменной и обеспечивает контроль выхода значения за установленные границы с прерыванием программы. Эти границы записываются в виде двух констант (символьного или числового типа, но не вещественного), причем первая константа должна быть меньше второй.
Примеры задания:
TYPE
hour = 0..23;
kurs = 1..6;
letter= a..z;
VAR
NumberK : kurs;
LunchTime,Supper,Dinner: hour; slovo:array[1..20] of letter;
Часто интервальный тип задают границами в виде констант: CONST
MinDay =1; { минимальное значение дня }
MaxDay =365; { максимальное значение дня }
TYPE
day = MinDay..MaxDay; { тип 'day' задает возможные значения }
VAR
BirthDay : day; { переменная может содержать только целые числа в диапазоне от 1 до 365 }
Перечисляемый тип пользователя
Перечисляемый тип позволяет задать все возможные значения, которые может принимать переменная. Эти значения должны быть перечислены через запятую и заключены в круглые скобки. Для хранения в памяти ЭВМ под переменную перечисляемого типа выделяется 1 байт, т.е. в списке не может быть более 255 значений (констант). В качестве значений могут быть выступать любые имена, написанные по правилам Паскаля, и не встречающиеся в качестве имен переменных, типов, и в двух списках одновременно.
Примеры:
TYPE
language = (C,Pascal,Fort,Basic,Fortran,Ada,Modula);
gas = (N,O2,CO2,N20,CH4);
VAR
TextType : language;
Emission,Pollutant : gas;
RadioIsotop : (St_90,I_133,B_137,U_235,U_238,Pu_242);
В последней строке заведена переменная перечисляемого типа без определения имени типа.
Для переменных такого типа возможны операции присваивания значений, но только из списка заданных значений:
Emission:= O2;
Pollutant:= N2O;
TextType:=Basic;
при этом недопустимы операторы:
Pollutant:=1;
RadioIsotop:=CH4;
Разрешены операции сравнений на "равно", "больше", "меньше" и т.д. в соответствии с порядковыми номерами заданных значений в списке перечислений. Так, при выполненных операторах присваивания, написанных выше, Pollutant > Emission, так как N2O идет в списке после O2, а результатом операции сравнения:
TextType = Basic
будет значение TRUE (истина).
Выражения и константы перечисляемого типа можно использовать в операторах переключателях "case" (примеры см. в разделе описаний операторов).
Важно помнить, что для переменных перечисляемого типа не предусмотрены стандартные операторы ввода и вывода, т.е. нельзя написать:
Read(Emission) или Write(CO2).
При работе с данными этого типа часто используются стандартные функции Паскаля Pred(), Succ() и Ord(), которые будут описаны ниже.
Лекция 8
Глава 3. Встроенные функции Понятие и классификация типов функций
Наряду с простыми операндами (константами, переменными, элементами составных данных) язык Паскаль позволяет использовать в выражениях заранее созданные процедуры-функции. При этом внутреннее устройство функции в выражении не отображается, а используется только обращение к ней в виде имени функции и значений аргументов. Поскольку результатом вычисления функции является данное определенного типа, обращение к функции может использоваться в выражении точно также и на тех же правах, как и простые данные.
Все функции обычно классифицируют по трем аспектам.
Во-первых функции делятся на встроенные и функции пользователя. Первые уже разработаны, включены в стандартные библиотеки, поставляемые вместе с языком программирования (транслятором) и могут использоваться любым программистом. Функции пользователя - это такие, устройство которых (текст программы) программист должен включить в общий текст программы (или должен подключить к программе свою библиотеку, в которой содержится эта функция в уже оттранслированной форме).
Во-вторых функции делятся по назначению: например для реализации стандартных математических функций, или для обработки строк, или для работами с файлами и т.д.
Наконец последним аспектом классификации является тип получаемого результата: целочисленное значение, или вещественное число двойной точности или адрес ячейки памяти и т.д.
Ниже будут рассмотрены основные функции, использование которых возможно без всяких подключений (точнее, которые подключаются к программе автоматически).