- •Программирование в системе Pascal abc
- •Введение
- •1. Система программирования pascal abc
- •1.1. Структура меню среды
- •1.2. Команды редактора Pascal abc
- •Команды удаления и вставки
- •1.3. Правила оформления программ
- •1.4. Компиляция и исправление синтаксических ошибок
- •1.5. Этапы подготовки и решения задач на компьютере
- •1.6. Словарь основных терминов
- •2. Начальные сведения о языке pascal abc
- •2.1. Алфавит языка
- •2.2. Константы
- •2.3. Идентификаторы и типы данных
- •2.4. Переменные и именованные константы
- •2.5. Структура простой программы и комментарий
- •3. Оператор присваивания и числовые данные
- •3.1. Арифметические выражения
- •Приоритеты операций в выражении
- •3.2. Оператор присваивания
- •3.3. Процедуры ввода-вывода
- •3.4. Стандартные функции Pascal abc
- •3.5. Целые типы в Pascal abc
- •3.6. Вещественные типы
- •Переменные комплексного типа
- •3.7. Примеры и задания к самостоятельному выполнению
- •4. Программирование разветвленных алгоритмов
- •4.1. Логические выражения
- •4.2. Условный оператор if
- •4.3. Составной и пустой операторы
- •4.4. Оператор безусловного перехода
- •4.5. Пример и задания с оператором if
- •4.6. Оператор выбора варианта case
- •4.7. Примеры и задания с оператором case
- •5. Программирование алгоритмов циклической структуры
- •5.1. Оператор счётного цикла
- •5.2. Примеры и задания для оператора цикла со счётчиком
- •Задания к самостоятельному выполнению
- •5.3. Оператор цикла с предусловием
- •5.4. Пример и задания для оператора цикла с предусловием
- •5.5. Оператор цикла с постусловием
- •5.6. Процедуры прерываний циклов
- •5.7. Примеры и задания для циклов с постусловием
- •Задания для самостоятельного выполнения
- •6. Структурированные типы данных
- •6.1. Массивы данных
- •Типизированные константы-массивы
- •6.2. Пример и задания для одномерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •6.3. Ограниченный тип (диапазон)
- •6.4. Пример и задания для двумерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •Задание 3
- •7. Структурное программирование
- •7.1. Структура сложной программы
- •7.2. Подпрограммы. Процедуры и функции
- •7.3. Структура подпрограммы-функции
- •7.4. Примеры и задания с подпрограммой-функцией
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •7.5. Структура подпрограммы-процедуры
- •7.6. Передача в подпрограмму массивов и строк
- •7.7. Рекурсия в программе
- •7.8. Вложенные подпрограммы
- •7.9. Процедуры exit и halt
- •7.10. Пример и задания с подпрограммой-процедурой
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •8. Обработка символьных данных
- •8.1. Символьный тип
- •8.2. Задания для символьных данных
- •9. Обработка строк текста
- •9.1. Строковый тип
- •9.2. Встроенные функции и процедуры для обработки строк
- •9.3. Пример и задания для обработки строк
- •Задания для самостоятельного выполнения
- •10. Файлы
- •10.1. Процедура связывания файлов
- •10.2. Процедуры и функции для работы с файлами
- •10.3. Типизированные файлы
- •10.4. Текстовые файлы
- •10.5. Процедуры ввода
- •10.6. Процедуры вывода
- •10.7. Примеры и задания для работы с файлами
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •11. Комбинированный тип – записи
- •11.1. Структура данных типа записи
- •11.2. Обработка полей записей
- •11.3. Задания с обработкой записей Задание 1
- •Задание 2
- •12. Процедурные типы
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Содержание
4. Программирование разветвленных алгоритмов
4.1. Логические выражения
Как известно, логическая константа может принимать только два значения: FALSE (ложь) и TRUE (истина). Переменные логического типа объявляются ключевым словом BOOLEAN в разделе описания переменных VAR и также могут принимать только два значения FALSE или TRUE (FALSE<TRUE).
Для данных логического типа значению FALSE соответствует в компьютере число 0, значению TRUE – число 1, которые записываются в ячейку памяти длиной 1 байт [6, 7].
Для значений TRUE и FALSE справедливы следующие функции:
ord (FALSE) = 0; ord (TRUE) = 1;
succ (FALSE) = TRUE;
pred (TRUE) = FALSE.
Простым логическим выражением называется выражение, содержащее только логические операнды (константы или переменные типа Boolean). В сложных логических выражениях кроме логических операндов используются бинарные и/или унарные логические операции, а также стандартные функции (табл. 2) и операции отношений: <, <=, >, >=, =, <> .
Операции отношения также относятся к операциям логического типа. Их можно использовать для проверки соотношений между переменными и константами типов real, integer, char, string. Например: a < b, x>=0, x=y и т.д.
К бинарным операциям относятся логические операции: AND (логическое "И"), OR (логическое "ИЛИ"), XOR ("исключающее ИЛИ"), а к унарным операция NOT (отрицание "НЕ").
В логических выражениях без скобок согласно приоритету логических операций (см. табл. 1) сначала выполняется операция NOT, затем AND, после неё OR и XOR , а в последнюю очередь операции отношений.
Логические операции используют понятия алгебры логики (булевой алгебры). Они применяются в задачах, когда нужно проверить какое-либо сложное условие.
Операция конъюнкции and (логическое умножение) в логическом выражении A and B дает результат true (истина), если A и B имеют значение true, иначе во всех остальных случаях – false (ложь).
Операция дизъюнкции or (логическое сложение) в логическом выражении A or B дает результат false, если A и B одновременно имеют значение false, во всех остальных случаях – true.
Операция инверсии not (логическое отрицание) в логическом выражении not A дает результат true, если A = false и, наоборот, при A = true выражение not A примет значение false.
Для переменных логического типа определена также операция присваивания.
Пример:
VAR С, D: REAL;
X, Y, A, B: BOOLEAN;
BEGIN
X :=A OR B;
Y := (C>0) AND (C<D); …
END.
Логический результат дает стандартная функция ODD(x) проверки на нечетность числа x, функции EOLN (f) проверки конца строки и EOF(f) определения конца файла f.
4.2. Условный оператор if
Условный оператор позволяет проверить некоторое условие и в зависимости от результата проверки этого условия выполнить то или иное действие, т.е. создать ветвление в программе.
Структура условного оператора в полной форме имеет следующий вид:
IF <условие> THEN <оператор1> ELSE <оператор2>;
(если) (то) (иначе)
где <условие> это выражение логического типа, которое может принимать только два значения: TRUE (истина) или FALSE (ложь).
Правило выполнения условного оператора. Вначале вычисляется значение <условия>, стоящего за IF. Если результат условия истинен (TRUE), то выполняется только <оператор1>, а <оператор2> пропускается и выполняется следующий оператор. В противном случае выполняется <оператор2>, а <оператор1> пропускается и выполняется следующий оператор в программе.
Структура условного оператора в сокращенной форме следующая:
IF <условие> THEN <оператор1>;
Здесь в случае ложности <условия>, стоящего за IF, пропускается <оператор1> и выполняется следующий за ним оператор программы.
В качестве <оператор1> или <оператор2> по синтаксису может выполняться только один оператор Паскаля. Для выполнения после THEN или после ELSE неcкольких операторов применяется составной оператор с операторными скобками ( BEGIN … END ) .
Несколько условных опеpатоpов могут быть вложены друг в друга. Ниже приведен пример вложения для трёх условных опеpатоpов:
IF <условие1> THEN
IF <условие2> THEN
IF <условие3> THEN <оператор3> ELSE <оператор4>
ELSE <оператор2>
ELSE <оператор1>;