- •Федеральное агенство по образованию российской федерации
- •1. Основные категории и понятия информатики
- •Предмет информатики как науки
- •1.2. Информация: структура, форма, измерение
- •2. Техническое и программное обеспечение пэвм
- •2.1. Структура аппаратных средств пэвм
- •2.2. Программное обеспечение пэвм
- •3. Основы алгоритмизации
- •Этапы разработки программ
- •3.2.Формы представления алгоритмов
- •Действие 1
- •Действие 2
- •Классификация и примеры алгоритмических структур
- •3.2.1. Алгоритм линейной структуры.
- •3.2.2. Алгоритм разветвляющейся структуры.
- •Да нет да да Рис 3.11
- •3.2.3. Алгоритмы циклической структуры.
- •4.2. Структура программы на языке Паскаль
- •4.3. Скалярные стандартные типы данных
- •4.4. Скалярные, пользовательские типы данных
- •5. Структурные типы данных
- •Массивы
- •5.3. Записи
- •5.4. Записи с вариантами
- •Множества
- •5.6.Файлы
- •6. Операции над данными скалярных типов. Выражения
- •7. Операторы языка Паскаль
- •7.1. Простые операторы
- •7.2. Структурные операторы
- •Оператор 2
- •8. Примеры программ на языке Паскаль
- •8.1. Пример 1. Арифметические выражения. Оператор присваивания
- •Пример 2. Условные операторы
- •Ввод чисел х, а
- •8.3. Пример 3. Программа обработки одномерного массива
- •8.4. Пример 4. Программа обработки двумерного массива
- •True False True False False
- •8.5. Пример 5. Программа обработки символьных строк
- •8.6. Пример 6. Программа обработки двумерного массива с вводом элементов матрицы из текстового файла
- •9.Разработка программ сложной структуры
- •9.1. Процедуры и функции
- •9.2. Область действия идентификаторов при использовании процедур и функций. Локальные и глобальные переменные
- •9.3. Передача данных в подпрограмму с помощью параметров. Формальные и фактические параметры
- •9.4. Использование процедур и функций
- •True False Рис. 9.4
- •9.5. Массивы – параметры процедур и функций
- •True False True False Рис. 9.7
- •True False True False True False Рис 9.9
- •9.6. Рекурсивные процедуры и функции
- •True False Рис. 9.10 True False
- •True False Рис. 9.12
- •9.7. Модули
- •10. Динамические структуры данных
- •Основные определения
- •10.2. Объявление и создание динамических структур данных. Указатели
- •Операции над указателями
- •Программа создания и обработки линейного списка
- •Приложение. Контрольные вопросы
- •Литература
6. Операции над данными скалярных типов. Выражения
Выражение – это синтаксическая единица языка программирования, определяющая способ вычисления некоторого значения. Выражение является формулой, состоящей из операндов и знаков операций.
Операнды – это данные, которые участвуют в вычислении; в качестве операндов могут быть константы, переменные и функции со списками параметров в круглых скобках.
Операции делятся на унарные и бинарные операции. Унарные операции имеют только один операнд, который записывается после знака операции. Бинарные операции имеют два операнда, знак операции записывается между операндами.
Последовательность выполнения операций в выражении определяется тремя факторами:
приоритетом операций;
порядком расположения операции;
использованием скобок.
Выражение, тип значения которого является арифметическим, называется арифметическим выражением. Выражение, тип значения которого является булевским, называется логическим выражением. Выражение, значение которого является символом или символьной строкой, называется символьным выражением.
По характеру выполняемых действий операции над данными скалярных типов можно разбить на следующие группы:
арифметические операции:
унарные: +,-;
бинарные: +,-,*,/,div,mod;
операции отношения:
= , <>, <=,>=,>,<;
логические операции:
not, and, or, xor;
поразрядные операции:
not, and, or, xor, shl, shr.
Унарные, арифметические операции представлены в табл. 6.1.
Табл. 6.1. Унарные операции
Операция |
Действие |
Тип операндов |
Тип результата |
+ |
Сохранение знака |
Целый вещественный |
Целый вещественный |
- |
Изменение знака |
Целый вещественный |
Целый вещественный |
Бинарные, арифметические операции представлены в табл. 6.2.
Табл. 6.2. Бинарные операции
Операция |
Действие |
Тип операндов |
Тип результата |
+ |
Сложение |
Целый вещественный |
Целый вещественный |
- |
Вычитание |
Целый вещественный |
Целый вещественный |
* |
Умножение |
Целый вещественный |
Целый вещественный |
/ |
Деление |
вещественный |
Вещественный |
Div |
Деление нацело |
Целый |
Целый |
Mod |
Остаток от деления |
Целый |
Целый |
Операции отношения представлены в таблице 6.3.
Табл. 6.3 . Операции отношения
Операция |
Сравнение на |
Тип операндов |
Тип результата |
= |
Равно |
Совместимый скалярный тип |
Булевский |
<> |
Не равно |
Совместимый скалярный тип |
Булевский |
< |
Меньше |
Совместимый скалярный тип |
Булевский |
> |
Больше |
Совместимый скалярный тип |
Булевский |
<= |
Меньше или равно |
Совместимый скалярный тип |
Булевский |
>= |
Больше или равно |
Совместимый скалярный тип |
Булевский |
Логические операции выполняются по правилам булевой алгебры, представленным в таблице 6.4.
Табл. 6.4. Таблица истинности логических операций
Операнды |
Операции | ||||
A |
B |
Not A |
A and B |
A or B |
A xor B |
False |
False |
True |
False |
False |
False |
False |
True |
True |
False |
True |
True |
True |
False |
False |
False |
True |
True |
True |
True |
False |
True |
True |
False |
Логические операции and (конъюнкция), or (дизъюнкция), xor (исключающее ИЛИ) являются бинарными; операнды A и B булевского типа, и результат – булевского типа. Логическая операция not является унарной; ее операнд и результат имеют булевский тип.
Стандартные, математические функции приведены в табл. 6.5. Математические функции можно использовать только с аргументами целого и вещественного типа.
Табл. 6.5. Арифметические функции
функция |
назначение |
Тип результата |
Abs(X) |
Абсолютная величина числа |
Совпадает с типом аргумента |
Arctan(X) |
Арктангенс |
Вещественный |
Cos(X) |
Косинус |
Вещественный |
Exp(X) |
ex |
Вещественный |
Frac(X) |
Дробная часть числа |
Вещественный |
Int(X) |
Целая часть числа |
Вещественный |
Ln(X) |
Натуральный логарифм |
Вещественный |
Pi |
Значение π |
Вещественный |
Sin(X) |
Синус |
Вещественный |
Sqr(X) |
Квадрат числа Х |
Совпадает с типом аргумента |
Sqrt(X) |
Вещественный |
Набор стандартных математических функций ограничен в библиотеке языка Паскаль, поэтому остальные функции определяются из следующих математических соотношений:
tg(X)=sin(X)/cos(X);
ctg(X)=1/tg(X);
loga(X)=ln(X)/ln(A)
Ax=exp(X*ln(A)), X-вещественное число, A>0;
arcsin(X)=arctan(X/sqrt(1-sqr(X)));
arccos(X)=arctan(sqrt(1-sqr(X))/X).
Поразрядные (битовые) операции выполняются над кодами целых чисел; к ним относятся битовые логические операции и операции сдвига, приведенные в табл.6.6.
Табл. 6.6. Поразрядные операции
Операция |
Действие |
Тип операндов |
Тип результата |
Not |
Битовое отрицание |
Целый |
Целый |
And |
Битовая конъюнкция |
Целый |
Целый |
Or |
Битовая дизъюнкция |
Целый |
Целый |
Xor |
Битовое исключающее ИЛИ |
Целый |
Целый |
Shl |
Битовый сдвиг влево |
Целый |
Целый |
Shr |
Битовый сдвиг вправо |
Целый |
Целый |
Пример.
Операнд/ Результат |
Десятичное значение |
Двоичное значение |
A |
11 |
00001011 |
B |
2 |
00000010 |
Not A |
244 |
11110100 |
A and B |
2 |
00000010 |
A or B |
11 |
00001011 |
A xor B |
9 |
00001001 |
A shr B |
44 |
00101100 |
A shl B |
2 |
00000010 |
Приоритеты операции над данными скалярных типов приведены в табл. 6.7.
Табл. 6.7. Приоритеты операций
приоритет |
Тип операций |
Знаки операции |
1 |
Вычисления в круглых скобках |
( ) |
2 |
Вычисление значения функции |
<имя_функции>(<список_аргументов>) |
3 |
Унарные операции |
Not, +,- |
4 |
Операции типа умножения |
*, /, div,mod,and,shl,shr |
5 |
Операции типа сложения |
+, -, or, xor |
6 |
Операции отношения |
=,<>, >=, <=,>, < |
Одноприоритетные операции выполняются в порядке следования слева направо.