Функции для величин порядкового типа
Введение
В методических указаниях описываются базовые понятия языка программирования TURDO PASCAL.
PASCAL (Паскаль) лучше других языков подходит для обучения программированию. Он был разработан в 1968-1971гг. Н. Виртом в Цюрихском институте информатики (Швейцария). Первоначальная цель разработки языка PASCAL - необходимость инструмента для обучения программированию.
С момента создания языка различные фирмы создали большое количество компиляторов. Компилятор – программа, обеспечивающая перевод программ с языка высокого уровня(приближенного к человеку) на язык более низкого уровня (близкий к ЭВМ), или машинно-зависимый язык. Одной из наиболее удачных версий стала разработка фирмы Borland, в которой были объединены редактор текстов и высокоэффективный компилятор. Созданная среда стала называться TURDO PASCAL, а язык получил название TURDO PASCAL. Язык обладает расширенными возможностями по сравнению со стандартным языком PASCAL.
Среда программирования PASCAL позволяет создавать тексты программ, компилировать их, находить и исправлять ошибки, компоновать программу из отдельных модулей, отлаживать и выполнять программу.
Методические указания представляют собой вводный курс в язык программирования TURBO PASCAL.
Базовые элементы и структура языка PASCAL.
Алфавит и словарь языка.
Символы языка – элементарные знаки, используемые для составления текстов. Они составляют алфавит языка. Программа на PASCAL формируется с помощью конечного набора знаков, образующих алфавит языка, и состоит из букв, десятичных цифр и специальных символов.
В качестве букв используются прописные и строчные буквы латинского алфавита, знак подчеркивания. Также при написании программ используются специальные символы + - * / = < > [ ] { } ( ) @ . , : ; # $ ^
Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями и несущие определенный смысл в программе. Разделителем может служить пробел, символ конца строки, комментарий. Слова подразделяются на зарезервированные, стандартные идентификаторы и идентификаторы пользователя.
Зарезервированное или служебное слово – это слово, которое в языке программирования имеет определенное смысловое значение.
Идентификатором является последовательность букв, цифр и знаков подчёркивания, которая начинается с буквы или символа подчёркивания и не содержит пробелов. Идентификатор может иметь любую длину, но значимыми являются только первые 63 символа.
Стандартные идентификаторы (имена) служат для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и функций.
Идентификаторы пользователя (имена) применяются для обозначения меток, констант, переменных, процедур и функций, определенных самим программистом.
При написании идентификатора можно использовать прописные и строчные буквы латинского алфавита, знак подчеркивания.
Структура программы.
Программа, написанная на языке PASCAL, имеет следующие разделы
1. заголовок программы.
PROGRAM_ имя программы;
Имя программы не должно содержать пробелов, должно начинаться с буквы и состоять только из латинских букв, цифр и символа _ (подчеркивание).
2. программный блок.
2.1. список имен подключаемых библиотечных модулей – экрана (CRT), графики (GRAPH).
USES_имя1[,имя2, …];
2.2. раздел описания меток – имена меток перечисляются через запятую после зарезервированного слова. В программе после метки ставится двоеточие. Метка позволяет выполнить переход на оператор, следующий за ней, из любого места программы с помощью оператора перехода GOTO.
LABEL_имя1[,имя2,…];
2.3. раздел описания констант. Выражения присваивания значений константам отделяются друг от друга точкой с запятой.
CONST_идентификатор1=значение1[; идентификатор2= значение2;…];
2.4. раздел описания типов данных. За служебным словом TYPE следуют одно или несколько определений типов, разделенных точкой с запятой. Тип данных может быть описан и непосредственно в разделе описания переменных.
TYPE_имя типа = значение типа;
2.5. раздел описания переменных. Имена переменных перечисляются через запятую и далее, через двоеточие, следует их тип и точка с запятой, после которой аналогично описываются другие переменные.
VAR_идентификатор1, идентификатор2,…:тип переменных;
2.6. раздел описания подпрограмм (процедур) и функций. В этом разделе размещаются тела подпрограмм, роль которых в Паскале выполняют процедуры и функции.
PROCEDURE_имя(формальные параметры : тип);
BEGIN
Тело процедуры
END;
FUNCTION_имя(формальные параметры : тип):тип результата;
BEGIN
Тело функции
END;
3. раздел операторов, т.е. сама программа. Операторы выполняются в том порядке, в котором они записаны, в соответствии с синтаксисом и правилами пунктуации языка PASCAL. Слова BEGIN и END являются аналогами открывающейся и закрывающейся скобок в обычных арифметических выражениях. В конце программы после оператора END ставится точка.
BEGIN
Операторы программы через ;
END.
Комментарийзаписывается в программе в любом месте, где разрешен пробел, в фигурных скобках {комментарий} или скобках со звездочкой (*комментарий*). В тексте комментария не должны находиться знаки его ограничения { и (*. Ограничители комментария удобно использовать в процессе отладки программы, временно исключая выполнение какой-либо части программы.
Любой раздел, кроме раздела операторов, может отсутствовать. Разделы описаний (кроме USES, который всегда расположен после заголовка программы) могут встречаться в программе любое количество раз, но все описания объектов программы (переменных, функций, меток, констант, процедур) должны быть сделаны до того, как эти объекты будут использованы.
Пример 1: Программа расчета объема шара.
PROGRAM share; заголовок программы}
USES crt; {подключение модулей}
CONST p=3.14; {описание констант}
VAR rad: integer; v: real;{описание переменных}
BEGIN {раздел операторов}
clrscr; {очистка экрана}
rad:=4; {задание значения радиуса шара}
v:=3*p*rad*rad*rad/4; {вычисление объема шара}
write (‘ объем шара - ’,v); end.{вывод результата}
Простые типы данных.
В PASCAL можно выделить следующие группы типов данных: простые, структурированные, указатели, процедурные типы, объекты. Среди типов данных, используемых в языке, есть стандартные и определяемые программистом. К стандартным типам, не требующим предварительного определения, относятся целые типы, вещественные типы, логические типы, символьный тип, тип-строка, текстовый файл, указатель.
Целый и вещественный тип. В PASCAL имеется пять стандартных типов целых данных (см табл. 1) и пять типов вещественных данных (см табл.2). Они различаются диапазоном, наличием знака и размером занимаемой памяти.
Значение вещественного типа может быть представлено в двух видах: числом с фиксированной точкой и плавающей точкой. Число с фиксированной точкой изображается десятичным числом с дробной частью, которая отделяется от целой части точкой. Например: 15.5, 12.00, -321.897, 0.33.
Таблица 1. Целые типы данных
Тип | Название | Диапазон значений | Память байт | Формат |
Byte Shortint Integer Word Longint | Байт Короткое цел. Целое Слово Длин. целое | 0..255 -128..127 -32768..32767 0…65535 -2147483648.. | Без знака Знаковый Знаковый Без знака Знаковый |
Таблица 2. Вещественные типы данных.
Тип | Название | Диапазон значений | Память байт | Число значащих цифр |
Real Single Double Extended Comp | Вещественный Одинарн. точности Двойной точности Расширенный Большое целое | 2.9*10-39-1.7*1038 1.5*10-45-3.4*1038 5*10-324-1.7*10308 3.4*10-4932 - 1.1*104932 -9.2*1018-9.2*1018 | 11-12 7-8 15-16 19-20 19-20 |
Число с плавающей точкой имеет вид mEp, где m - мантисса, p – порядок числа. В качестве m могут быть целые и действительные числа с фиксированной точкой, в качестве p – только целые числа. Мантисса и порядок могут содержать знаки +, -.
Математическая запись | Запись с плавающей точкой |
0,000002 | 2E-6 |
0,34*104 | 0.34E+4; |
-20,5*1012 | -20.5E12; |
12*10-5 | 12E-5 |
Вывод данных вещественного типа возможен с форматом и без него. Если при выводе данных вещественного типа не указан формат, то число выводится с плавающей точкой. При этом на изображение числа 17 позиций, в целой части мантиссы присутствует хотя бы одна значащая цифра.
Математическая запись | Вывод без указания формата |
2.0000000000E+00 | |
0,5 | 5.0000000000E-01 |
0,0064 | 6.4000000000E-03 |
236,2 | 2.3620000000E+02 |
Изменить стандартную форму вывода можно, используя формат в операторе write:
write(a:m:n), где a – выводимое данное вещественного типа, m – общее поле выводимого числа (включая знак числа, целую часть, точку и дробную часть), n – поле дробной части. В качестве m и n могут использоваться целые константы, переменные, выражения. При задании формата вывода необходимо учитывать, что точка и знак – (минус) в случае отрицательного значения переменной занимают по одной позиции в записи переменной.
Например: используя формат вывода write(a:8:5) для вывода числа 7.567895135 получим на экране монитора 7.56789.
Логический (булевский) тип (boolean) представлен двумя значениями True (истина) и False (ложь) и используется в логических выражениях и выражениях отношения. Занимает этот тип 8 бит.
Символьный тип (Char) – это тип данных, элементами которого являются буквы, цифры, знаки препинания и специальные символы. Каждому символу алфавита соответствует числовой код от 0 до 255, который занимает в памяти 1байт. Система кодирования символов в PASCAL– ASCII.
Перечисляемый тип. Этот тип не является стандартным и задаётся перечислением значений. Эти значения образуют упорядоченное множество.
Например, если в программе записан оператор:
Type day=(sat, sun, mon, tue, wed, thu, fri);
Тогда тип day будет включать в себя значения sat, sun, mon, tue, wed, thu, fri.
Как перечисляемые типы данных можно рассматривать и стандартные типы: integer, boolean, char. Имена значений, перечисленные в описании типа, являются константами этого типа.
Ограниченный тип. Ограниченный тип данных представляет интервал значений порядкового типа. В описании типа задают наибольшее и наименьшее значения, разделенные двумя точками, входящие в интервал.
Например, Type chislo=1..25; Ch=’a’..’z’;
Константы.
Константами называются элементы данных, значения которых установлены в описательной части программы и в процессе выполнения программы не изменяются. Для определения значений констант служит зарезервированное слово CONST:
CONST_идентификатор=значение константы;
Например, CONST а=-0.5; s=3; symbol= ’k’;
Стандартные функции.
Функция возвращает в программу значение (результат своей работы. Обращение к функции осуществляется по имени с указанием в скобках аргумента или списка аргументов через запятые.
Арифметические и тригонометрические функцииможно использовать только с аргументами целого и вещественного типа (см табл. 3).
Таблица 3. Стандартные функции.
Функция | Назначение | Тип результата |
ABS(X) | абсолютное значение аргумента | совпадает с типом аргумента |
SQR(X) | квадрат аргумента | совпадает с типом аргумента |
SQRT(X) | квадратный корень из аргумента | вещественный |
COS(X) | косинус аргумента | вещественный |
SIN(X) | синус аргумента | вещественный |
ARСTAN(X) | арктангенс угла | вещественный |
EXP(X) | еХ | вещественный |
LN(X) | натуральный логарифм | вещественный |
Int(x) | целая часть числа | вещественный |
Frac(x) | дробная часть числа | вещественный |
PI | возвращает значение числа p | вещественный |
RANDOM(N) | генерирует значение случайного числа в диапазоне от 0 до N | целочисленный |
RANDOM | генерирует значение случайного числа в диапазоне от 0 до 0,99 | вещественный |
Функции преобразования типов. Эти функции предназначены для преобразования типов величин, например, символа в целое число, вещественного числа в целое и т.д. Такими функциями являются, например, функции ord(х), которая возвращает порядковый номер аргумента и, таким образом, преобразует величину порядкового типа в величину целого типа, функция round(х), которая округляет вещественное число до ближайшего целого, trunc(х) - выдает целую часть вещественного числа, отбрасывая дробную.
Функции для величин порядкового типа
Odd(х) - проверяет аргумент на нечетность. Аргумент функции величина типа Longint, результат Тruе, если аргумент нечетный, False - если четный.
Рred(х) - определяет предыдущее значение величины х.
Succ(х) - определяет последующее значение величины х.