- •Алгоритмизация и программирование на языке паскаль
- •Рекомендуется Учебно-методическим объединением вузов рф по образованию в области автоматики, электроники, микроэлектроники и радиотехники для межвузовского использования
- •Оглавление
- •2. Алгоритмы
- •Структурограммы
- •Псевдокод
- •3. Структурное программирование
- •3.1. Принципы структурного программирования
- •4.1 Свойства языков программирования, характеризующие качество программ
- •5. Язык паскаль
- •5.1. Алфавит языка Паскаль
- •5.2. Способы описания синтаксиса
- •Синтаксические диаграммы
- •Металингвистические формулы Бэкуса Науэра
- •5.3. Идентификаторы
- •6. Данные
- •6.1. Тип данных
- •6.2. Типы данных языка Паскаль
- •6.3. Константы
- •6.4. Переменные
- •7. Числовые типы и арифметические выражения
- •7.1. Целые типы тp
- •7.2. Вещественные типы тр
- •7.3. Арифметические операции, определенные над числовыми типами
- •Некоторые стандартные функции Паскаля:
- •8. Оператор присваивания
- •9. Символьный тип
- •10. Логический тип
- •10.1.Логические операции
- •11. Простые типы, определяемые пользователем
- •11.1. Интервальный тип (тип диапазон)
- •11.2. Перечисляемый тип
- •12. Стандартный ввод
- •12.1. Ввод числовых данных
- •12.2. Ввод символьных данных
- •12.3. Процедура readLn
- •13. Стандартный вывод
- •13.1. Форматный вывод
- •13.2. Вывод значений типа real
- •13.3. Пример программы на Паскале
- •14. Оператор безусловного перехода
- •15. Пустой оператор
- •16. Структурированные операторы
- •16.1. Составной оператор
- •16.2. Выбирающий оператор
- •16.3. Оператор цикла
- •17. Стиль записи программы
- •17.1. Комментарии
- •18. Отладка программ
- •18.1. Виды ошибок и способы их устранения
- •18.2. Ручная проверка
- •18.3. Машинное тестирование
- •18.4. Проверка правильности данных
- •18.5. Исправление ошибок
- •19. Регулярный тип (массив)
- •19.1. Одномерные массивы
- •19.2. Упакованные массивы
- •19.3. Многомерные массивы
- •19.4. Еще один способ получения многомерных массивов
- •19.5. Строковый тип в стандартном Паскале
- •19.6. Строковый тип в тр
- •20. Подпрограммы
- •20.1. Область действия описаний
- •20.2. Параметры подпрограмм
- •20.3. Процедуры
- •20.4. Обращение к процедурам (вызов процедур)
- •20.5. Функции
- •20.6. Обращение к функциям (вызов функций)
- •20.7. Побочный эффект функций
- •20.8. Рекурсивные подпрограммы
- •20.9. Взаимно рекурсивные подпрограммы
- •21. Комбинированный тип (запись)
- •21.1. Оператор присоединения
- •21.2. Записи с вариантами
- •23. Типизованные константы в тp
- •24. Множество
- •24.1. Машинное представление множества
- •24.2. Операции над множествами
- •25. Файлы
- •25.1. Файлы в Паскале
- •25.2. Текстовые файлы
- •25.3. Типизованные файлы
- •25.4. Нетипизованные файлы
- •25.5. Прямой доступ к нетекстовым файлам тр
- •26. Динамические переменные
- •26.1. Ссылочный тип данных
- •26.2. Подпрограммы динамического распределения памяти
- •26.3. Операции над указателями
- •26.4. Работа с динамическими переменными
- •26.5. Создание структур большого размера
- •Длинные строки в тр
- •26.7. Динамические структуры данных
- •27.1. Приведение типов выражений
- •27.2. Приведение типов переменных
- •27. 3. Обработка одномерных массивов разных размеров с фиксированным базовым типом
- •27.4. Нетипизованные параметры подпрограмм
- •28. Процедурные и функциональные типы
- •29. Модули в tp
- •29.1. Основные модули tp
- •29.2. Создание собственных модулей
6.4. Переменные
Переменные объекты, способные изменять свои значения.
Описание переменных:
Идентификатор имя переменной. Каждая переменная в Паскале имеет тип, определяемый при описании, в соответствии с которым этой переменной выделяется определенный объём памяти. Секцией в разделе описания переменных называется список перечисленных через запятую переменных с указанием их общего типа.
Например:
var i, j : integer;
f : real;
В приведенном описании две секции. В первой определены две переменные i иjцелого типа, во второйвещественная переменнаяf.
7. Числовые типы и арифметические выражения
7.1. Целые типы тp
1) shortintкороткое целое[128; 127], занимает 1 байт;
2) byte целое без знака[0; 255], занимает 1 байт;
3) integer целое[32768; 32767], занимает 2 байта;
4) word целое, без знака[0; 65535], занимает 2 байта;
5) longint целое[2147483648; 2147483647], занимает 4 байта;
В стандартном Паскале есть только один целый тип integer. Для константы 32767 существует предопределенный идентификатор MAXINT.
Все целые типы являются упорядоченными типами.
7.2. Вещественные типы тр
Вещественное число, не равное нулю, можно представить в виде r=, гдеа мантисса, удовлетворяющая условию 1а<10приr0, аn порядок(nZ). Значения вещественных типов хранятся в памяти в виде мантиссы и порядка.
Имя типа |
Название |
Объем памяти |
Цифр в мантиссе |
Порядок (n Z) |
single |
вещественный одинарной точности |
4 |
78 |
n[39; 38] |
real |
вещественный |
6 |
1112 |
n[39; 38] |
double |
вещественный двойной точности |
8 |
1516 |
n[324; 308] |
extended |
вещественный расширенный |
10 |
1920 |
n[4932; 4932] |
comp |
сложный |
8 |
1920 |
n[0; 18] |
Вещественный тип, ввиду приближённого представления чисел, не является в Паскале упорядоченным.
Операция сравнения на равенство данных вещественного типа считается некорректной, равенство r1=r2 будем заменять неравенством r1r2<, гдеточность.
В стандартном Паскале определен один вещественный тип real. В ТР типыsingle,doubleиextended, comp можно использовать только при наличии сопроцессора.
7.3. Арифметические операции, определенные над числовыми типами
Название операции |
Знак операции |
Запись на Паскале |
Типы операндов |
Тип результата |
унарный плюс |
+ |
+а |
целый |
целый |
|
|
|
вещественный |
вещественный |
унарный минус |
|
а |
целый |
целый |
|
|
|
вещественный |
вещественный |
|
|
|
оба целые |
целый |
сложение |
+ |
a+b |
хотя бы один |
|
|
|
|
вещественный |
вещественный |
вычитание |
|
ab |
как при сложении |
как при сложении |
умножение |
* |
a*b |
как при сложении |
как при сложении |
Название операции |
Знак операции |
Запись на Паскале |
Типы операндов |
Тип результата |
деление |
/ |
a/b |
любые числовые |
вещественный |
целочислен-ное деление |
div |
a div b |
целые |
целые |
нахождение остатка от деления |
mod
|
a mod b |
целые |
целые |
Правило выполнения операции div и mod:
a div b=sign(a*b)*[a/b] ([х] целая часть х);
a modb=a (a div b)*b.
Например, 15 div 7= 2;15mod7= 1.
Выражение определяет правила вычисления значения, оно представляет собой последовательность, состоящую из констант, переменных, вызовов функций, соединенных знаками операций и, возможно, круглыми скобками. При вычислении значений выражений вначале выполняются операции более высокого приоритета. Операции одинакового приоритета выполняются слева направо по порядку. Для изменения естественного порядка действий используются круглые скобки.
Выражения, типы которых числовые, будем называть арифметическими.
На Паскале выражения записываются в строку. Например, выражение
на Паскале имеет вид (a+b)/(a-b).В выражениях не допускаются подряд два знака операций. Например, недопустима запись a*b; правильное выражение a*(b).
Приоритеты операций в арифметических выражениях(в порядке убывания):
Унарные (+ и ).
Умножение, деление, деление нацело, нахождение остатка от деления.
Сложение, вычитание.