
- •Министерство общего и профессионального образования Российской Федерации Уральский государственный технический университет Основы программирования на языке Паскаль
- •Структура программы на паскале
- •Типы данных
- •Правила программирования арифметических операций
- •Арифметические функции
- •Операции отношения (сравнения)
- •Логические операции
- •Приоритет операций
- •Операторы турбо-паскаля ввод и вывод данных
- •Составной оператор
- •Условный оператор
- •Оператор выбора
- •Операторы повторений (циклов) счетный цикл
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Использование массивов
- •Процедуры и функции
- •Описание и использование функций
- •Описание и использование процедур
- •Взаимодействие подпрограмм
- •Стандартные модули
- •Использование модуля crt
- •Практический пример. Программа "меню"
- •Использование модуля graph
- •Установка цветов
- •Изображение точек и линий
- •Практический пример. Построение графика функции
- •Работа с текстом
- •Практический пример. Построение спирали
- •Программирование с использованием нестандандартных типов данных перечисляемый тип
- •Множества
- •Основы программирования на языке Паскаль
Правила программирования арифметических операций
В этом разделе мы будем говорить об операциях над данными целых и вещественных типов. В Паскале допустимы операции сложения, вычитания, умножения и деления. Знака для обозначения операции возведения в степень не предусмотрено. Вместо знака равенства необходимо использовать символы присвоения.
Мы уже говорили, что для каждого типа данных допустимы вполне определенные действия. Программируя на Бейсике мы использовали в арифметических выражениях целые и действительные числа и переменные не задумываясь над их различиями. В Паскале не так.
Прежде всего отметим, что арифметические выражения могут быть двух типов: целые и вещественные. Тип выражения определяется типом переменной, стоящей в его левой части. Во-вторых, необходимо запомнить, что Паскаль допускает без каких-либо оговорок использование переменных целых типов в выражениях вещественного типа, НО НЕ НАОБОРОТ! Рассмотрим фрагмент программы:
VAR
x : integer;
y : real;
.................
BEGIN
y : =x+2; допустимо
x : =2.0; ошибочно
x : =y/x; ошибочно
.................
END.
Конечно, необходимость использования переменных и констант вещественных типов в выражениях целых типов возникает довольно часто. В этих случаях необходимо осуществлять ПРЕОБРАЗОВАНИЯ ТИПОВ. Для этого в Паскале существуют специальные функции.
Функция ROUND округляет вещественную величину до целой. Функция TRUNC усекает вещественную величину до целой. Например,
round(5./2.)=3, а trunc(5./2.)=2
Привычное нам обозначение операции деления "/" допускается только в выражениях вещественных типов. Для операции деления над целыми числами используются обозначения DIV и MOD. Операция DIV осуществляет целочисленное деление, при этом дробная часть отбрасывается. Рассмотрим пример. Пусть в некоторой программе имеется описание
VAR N: integer; X: real;
Поскольку переменная N описана как целая, то с точки зрения Паскаля запись
N:=1/2 ;
будет ошибочной, поскольку числа 1 и 2 - целые (они не содержат десятичной точки). В то же время допустимо
N:=1 div 2 ;
что дает ноль. Допустима и такая запись
X:= 1 div 2;
Операция MOD позволяет определить остаток целочисленного деления. Например: 5 mod 2 = 1, а 18 mod 3 = 0.
Арифметические функции
Здесь ограничимся лишь перечислением наиболее необходимых арифметических функций.
Abs(x) - абсолютная величина х;
ArcTan(x) - арктангенс х;
Cos(x) - косинус х;
Exp(x) - экспонента;
Frac(x) - дробная часть х;
Int(x) - целая часть х;
Ln(x) - натуральный логарифм х;
Pi - число пи;
Sin(x) - синус х;
Sqr(x) - квадрат х;
Sqrt(x) - корень квадратный х.
Во всех случаях аргумент х должен быть вещественным. Вещественным является и результат.
Операции отношения (сравнения)
Над данными типов REAL, INTEGER, CHAR, STRING определены следующие операции отношения:
= равно;
<> не равно;
< меньше;
> больше;
<= меньше или равно;
>= больше или равно.
В этом списке операции расположены в порядке убывания приоритета. В операциях сравнения должны участвовать данные одинаковых типов. Лишь только данные типов REAL и INTEGER можно сравнивать друг с другом. Результат операции сравнения всегда имеет тип BOOLEAN, т.е. имеет значение TRUE или FALSE.
Символы сравниваются путем сравнения их кодов. При этом Вы можете руководствоваться следующей схемой. Самыми "младшими" являются специальные символы. Далее следуют изображения цифр, прописные латинские буквы, строчные латинские буквы, прописные русские и строчные русские буквы. Поэтому, например,
‘d' > 'c'.
Строки сравниваются так. Первый символ первой строки сравнивается с первым символом второй строки, второй символ первой строки - со вторым символом второй и т. д. Если одна строка короче другой, недостающие символы заменяются нулем. Отношение первой несовпадающей пары принимается за отношение двух строк. Например,
'asc' < 'asd', но 'asdf' > 'asd'.