- •Министерство общего и профессионального образования Российской Федерации Уральский государственный технический университет Основы программирования на языке Паскаль
- •Структура программы на паскале
- •Типы данных
- •Правила программирования арифметических операций
- •Арифметические функции
- •Операции отношения (сравнения)
- •Логические операции
- •Приоритет операций
- •Операторы турбо-паскаля ввод и вывод данных
- •Составной оператор
- •Условный оператор
- •Оператор выбора
- •Операторы повторений (циклов) счетный цикл
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Использование массивов
- •Процедуры и функции
- •Описание и использование функций
- •Описание и использование процедур
- •Взаимодействие подпрограмм
- •Стандартные модули
- •Использование модуля crt
- •Практический пример. Программа "меню"
- •Использование модуля graph
- •Установка цветов
- •Изображение точек и линий
- •Практический пример. Построение графика функции
- •Работа с текстом
- •Практический пример. Построение спирали
- •Программирование с использованием нестандандартных типов данных перечисляемый тип
- •Множества
- •Основы программирования на языке Паскаль
Типы данных
Сейчас мы будем вести разговор о разделе описаний. В нем должны быть описаны ВСЕ нестандартные идентификаторы констант, переменных, функций и процедур, использующихся в программе. Стандартные идентификаторы (в нашем примере - writeln) не описывают. Это требование на первый взгляд делает язык менее свободным (в Бейсике переменные явным образом часто не описывают), однако гарантирует нас от опечаток при вводе текста программы и некоторых других ошибок.
ОПИСАТЬ ИДЕНТИФИКАТОР - это значит указать тип обозначаемой им переменной, константы и т. п. Тип - очень важное понятие, поскольку он определяет способ хранения данных в памяти ЭВМ, диапазон их возможных значений и допустимые над ними операции.
Паскаль позволяет нам оперировать с большим количеством различных типов данных и даже придумывать свои, но для начала мы рассмотрим только семь.
Тип CHAR - используется для описания одиночных символов, например: 'a', 'F' ,'1' и т. п. Для хранения данных этого типа используется по 1 байту.
Тип STRING - используется для описания строк символов, например, 'Программа на Паскале'. Максимальная длина строки - 255 символов.
Целые числа (в математическом смысле) в Паскале описываются несколькими способами, объединяемыми понятием ЦЕЛЫЕ типы. Мы рассмотрим два из них. Тип INTEGER - это числа в диапазоне от - 32768 до + 32767. Для их хранения используется по 2 байта. Если при решении задачи нет необходимости в использовании отрицательных чисел, то можно воспользоваться типом данных WORD. Их диапазон от нуля до 65535. В Паскале имеются и некоторые другие типы для описания целых чисел. Обычно целыми числами при программировании мы пользуемся при организации всевозможных счетчиков, при работе с неделимыми объектами, такими как, например, количество букв в слове, слов в предложении и т. п.
При решении задач расчетного характера необходимо воспользоваться данными, относящимися к так называемым ВЕЩЕСТВЕННЫМ типам. Всего их пять. Они отличаются точностью и диапазоном. Например, тип REAL - охватывает действительные числа приблизительно от 1.Е-39 до 1.Е+38 с точностью до 12 значащих цифр. Для хранения данных этого типа используется по 6 байт. Данные типа DOUBLE представляются с точностью до 15-16 значащих цифр, а их диапазон приблизительно от 1.Е-324 до 1.Е+308. Для их хранения используются по 8 байт.
Необходимо помнить, что данные вещественных типов при вычислениях автоматически округляются до последней значащей цифры, т.е. не являются в общем случае абсолютно точными.
Последний из типов данных, который понадобится нам в ближайшее время - BOOLEAN, т.е. логические данные. Они могут иметь только одно из двух значений: FALSE - ложь (нет) и TRUE - истина (да).
Тип КОНСТАНТ определяется способом записи их значений. Например:
Const
c1=17 ; {integer}
c2=3.14 ; {real}
c3='A' ; {char}
c4='3.14' ; {string}
c5=false ; {boolean}
Тип ПЕРЕМЕННЫХ описывается в специальной части раздела описаний, начинающейся с зарезервированного слова VAR. Формат описания:
VAR <идентификатор>[,<идентификатор>...] : <тип>;
Например:
Var
sigma : real ;
a,b,c,d : char ;
Text1 : string ; {строка длиной до 255 символов}
Text2 : string [15] ; {строка длиной до 15 символов}
flag : boolean;
Рассмотрим пример программы, которая вводит два числа с клавиатуры и выводит на экран частное от деления первого числа на второе.
Program No2;
Var
n1, n2: integer ; {вводимые числа}
x: real; {результат}
BEGIN
write('n1='); {сообщение о необходимости ввода n1}
readln(n1); {ввод n1}
write('n2='); {сообщение о необходимости ввода n2}
readln(n2); {ввод n2}
x:=n1/n2; {вычисление результата}
writeln('n1/n2=',x); {вывод результата}
END.
В нашей программе WRITE - стандартная процедура Паскаля вывода данных на экран. Заметим, что после вывода данных курсор на новую строку не перемещается, что и отличает эту процедуру от WRITELN, после выполнения которой курсор переводится в первую позицию новой строки экрана. Обозначение ":=" читается "присвоить" и выполняет те же функции, что и знак "=" в Бейсике. Знак "=" в Паскале допускается только в разделе описаний при определении констант и в логических выражениях, речь о которых еще впереди.
