- •Автономная некоммерческая организация высшего профессионального образования «Брянский институт управления и бизнеса»
- •Методические пособие по изучению алгометрического языка pascal
- •Оглавление
- •Введение
- •Глава 1 основные понятия .
- •Алфавит языка.
- •Основные определения языка.
- •Составные части программы.
- •Вопросы для самоконтроля
- •Глава 2 стандартные типы данных
- •Данные целого типа.
- •Вычисление об"ема шара
- •Данные действительного типа.
- •Данные логического типа.
- •Данные символьного типа.
- •`Теплоход``маяк``` или `д``артаньян`
- •Описание констант и переменных.
- •Var_имя переменной: тип;
- •Вопросы для самоконтроля
- •Глава 3 выражения.
- •3.1. Стандартные функции.
- •3.2. Арифметические выражения.
- •3.3. Логические выражения.
- •Вопросы для camokohtpoля
- •Глава 4 основы программирования простых задач.
- •4.1. Оператор присваивания.
- •4.2. Понятие о составном и пустом операторах. Назначение символа точки с запятой.
- •Простейший ввод данных.
- •5 Позиций
- •8 Позиций
- •Примеры программирования простых задач.
- •Вопросы для самоконтроля
- •5.1. Условный оператор.
- •Оператор выбора.
- •Оператор перехода.
- •Go to метка
- •Lавеl метка;
- •Label метка 1, метка 2,…, метка n;
- •5.4.Примеры программирования вычислительных процессов с разветвлениями.
- •Глава 6 организация циклических прцессов.
- •Оператор цикла с предварительным условием.
- •Оператор цикла с последующим условием.
- •Операторы циклической части программы
- •Оператор цикла с параметром.
- •Вложенные циклы.
- •Глава 7 основы ввода и вывода.
- •7.1. Оператор ввода.
- •7.2. Оператор вывода
- •Программирование циклических вычислительных процессов.
- •Вопросы для самоконтроля
- •Глава 8 Переменные типы.
- •Перечислимый тип данных.
- •Var а: (зима, весна, лето, осень);
- •Ограниченный тип данных.
- •Вопросы для самоконтроля
- •Глава 9 Сложный тип данных – массивы.
- •Понятие массива.
- •Var_имя массива: array [t1] of_t2;
- •Тип массива.
- •Упакованные массивы.
- •Понятие многомерных массивов.
- •Глава 10 Сложный тип данных – множества.
- •10.1. Множества в языке Паскаль.
- •Var _имя множества: set_of_ базовый тип;
- •Примеры программирования задач с использованием множества
- •Вопросы для самоконтроля
- •Глава 11 Сложный тип данных – записи.
- •Понятие записи.
- •Оператор присоединения.
- •Вопросы для самоконтроля
- •Глава 12 Подпрограммы.
- •Общие сведения.
- •Процедуры и функции.
- •Вопросы для самоконтроля
- •Глава 13 Файлы
- •13.1. Понятие файла.
- •13.2. Чтение файла.
- •13.3. Запись файла.
- •13.4 Чтение и запись файла
- •Вопросы для самоконтроля
3.3. Логические выражения.
Логические выражения строятся из логических данных, логических операций и операций отношений. В операциях отношения могут участвовать арифметические и логические выражения, а также символьные минные. Результатом логического выражения является значение TRUE или FALSE.
В логическом выражении принят следующий приоритет операций:
NOT;
* (умножение), / (деление), DIV, MOD, AND; .4) + (плюс), - (минус), OR;
1) < (меньше), <= (меньше или равно), = (равно), <> (не равно ), >= (больше или равно), > (больше).
Операции, указанные в одной строке, имеют одинаковый приоритет.
В логическом выражении допускается использование только круглых скобок. При наличии скобок сначала выполняются действия в скобках (в первую очередь в самых внутренних), а затем вне скобок. В круглые скобки обязательно заключаются части выражения, стоящие слева и справа от логических операций AND и OR.
Пример 3.1. Определить результат логического выражения
(A>3) AND (B = A + 6) OR NOT (C = 4)
при А = 2, В = 8, С = 5.
Порядок выполнения операций:
а) операция сравнения А>3 в первых скобках. Результат операции - FALSE, так как 2 < 3;
б) действия во вторых скобках в соответствии с приоритетом -- сначала вычисляется значение А + 6, а затем сравнивается значение В со значением А + 6. Результат операции — TRUE, так как 8 = 8;
в) операция сравнения С = 4 в третьих скобках. Результат операции - FALSE, так как 5 ≠ 4;
г) операция NOT(C = 4), равная NOT FALSE. Результат операции - TRUE;
д) операция AND над первыми и вторыми скобками (FALSE AND TRUE). Результат операции - FALSE;
е) операция OR над выражениями слева и справа от нее (FALSE OR TRUE). Результат операции - TRUE.
Таким образом, окончательный результат логического выражения – TRUE.
Замечание. Обратим внимание на то, что в языке ПАСКАЛЬ нет операции возведения в степень. При необходимости ее использования применяют стандартные функции. Например, ах заменяют выражением EXP(X*LN(A)),
EXP и LN — стандартные функции (экспонента и логарифм натуральный).
Вопросы для camokohtpoля
Что понимается под стандартными функциями?
Приведите примеры стандартных функций над арифметическими данным.
Какие вы знаете стандартные функции над символьными данными?
Каковы правила записи арифметических выражений?
Укажите порядок выполнения действий в арифметическом выражении.
В чем отличие логического выражения от арифметического?
Каков порядок выполнения операций в логическом выражении?
Глава 4 основы программирования простых задач.
4.1. Оператор присваивания.
Операторы языка ПАСКАЛЬ можно разделить на простые и сложные. Простые операторы не содержат внутри себя других операторов. Сложные (структурные) операторы представляют собой конструкции, содержащие простые операторы. К простым операторам в языке ПАСКАЛЬ относятся операторы присваивания, перехода, пустой оператор, операторы ввода и вывода; к сложным — составной и условный операторы, риторы цикла, оператор выбора (варианта), оператор присоединения в записях.
Рассмотрим перечисленные операторы, но не в указанной классификации, а в последовательности
изложения программирования от простых задач до сложных.
Оператор присваивания — основной оператор любого языка программирования. Общая форма записи оператора:
V : = A
Здесь V—имя переменной; «: =» — знак присваивания; А — выражение. Данный оператор вычисляет значение выражения А, стоящего справа от знака операции присваивания :=, и присваивает полученное значение переменной V, стоящей слева.
Следует обратить внимание на разницу между знаком операции присваивания «:=» и обычным знаком равенства «=». Это различие заключается не только в форме, но и в содержании. Например, в обычной математической записи выражение Х = Х + 2 является неверным. Однако запись оператора присваивания X: = X + 2 правильна и означает следующее: к текущему значению переменной X (пусть до выполнения оператора оно было равно 5) прибавляется число 2, и после выполнения данного оператора значение переменной X будет равно числу 7.
В частных случаях выражение в правой части оператора присваивания может принимать значение константы, имени переменной или Имени функции. Например:
Т:= 527.475;
М:=ТЕМП;
Y:= SQRT(X);
Оператор присваивания применим не только к арифметическим, но и к логическим и символьным данным. Например, если переменные L, M и N описаны как логические, то можно записать
L: =M AND N
Следовательно если M – TRUE, а N – FALSE, то логическая переменная L получит значение FALSE.
При использовании оператора присваивания, необходимо следить, чтобы переменная в левой части и выражение в правой части оператора были одного и того же типа
VAR
D: REAL
То оператор
D: =’7’;
ошибочен, так как в правой части оператора записана константа символьного типа. При трансляции этого оператора будет зафиксирована ошибка, и программа выполняться с такой ошибкой не будет.
Неверен также отрезок фрагмента программы
VAR A, B, C, D: REAL;
…
A: = (B<C) AND (D>C);
…
так как выражение в правой части оператора логического типа, а переменная А – действительного типа.
Из этого общего правила существует одно исключение. Разрешается при целочисленном выражении использовать переменную действительного типа в левой части оператора присваивания. В этом случае значение вычисленного выражения будет преобразовано в действительный тип. Пусть, например,
A и B – переменные целого типа, причем A=6. а B=5. Пусть переменная С описана как переменная действительного типа. Тогда в результате выполнения оператора
C: = A*B
значение выражения целого типа A*B, равное 30, будет преобразовано в действительный тип.
Примеры оператора присваивания
Y : = A+ROUND(B/3)*2;
SUM : = SUM+X;
C5 : = 2*K-SIN(PI/4-X);
