- •3. Система программитрования турбо паскаль
- •3.1 Окно среды разработчика
- •3.2. Элементы диалоговой среды
- •3.3. Команды редактора
- •3.4. Модули
- •4. Общие сведения о языке паскаль
- •4.1 Алфавит языка
- •4.2. Типы данных в TurboPascal 7.0
- •4.3. Операции и выражения в языке Паскаль
- •4.4 Стандартные функции в языке Паскаль
- •5. Линейные алгоритмы
- •5.1. Структура программы на языке Паскаль
- •5.2. Конструкция «следование»
- •6. Разветвляющиеся алгоритмы
- •And, * (умножение), / (деление), div, mod;
- •6.1. Операторы условных переходов
- •Var a, b, c : Real; lv : Boolean;
- •Var a, b, c : Real; lv : Boolean;
- •Var X, y : Real;
- •6.2. Оператор безусловного перехода
- •Var n, p, X : Real;
- •20: WriteLn('Факториал числа ' , n:4:2,' равен ' ,p:4:2);
- •7. Циклические алгоритмы
- •7.1. Цикл с предусловием While
- •X, xn, xk, dx, y, s, p: real;
- •7.2. Цикл с постусловием repeat
- •X1, x0, X, eps: real;
- •7.3. Цикл с параметром for
- •I: integer; c: char;
- •7.4. Принудительное завершение цикла
- •X, xn, xk, dx: real;
- •8. Символьный тип
- •8.1. Особенности символьного типа
- •8.2. Объявление символьной переменной
- •8.3. Операции с символами
- •Строковые переменные
- •9.1. Определение и типы строк
- •9.2. Упакованный строковый тип
- •9.3. Строковый тип
- •9.5. Примеры работы со строками
- •9.6. Индивидуальные задания по работе со строками и символами
- •10. Массивы
- •10.1. Организация данных в массиве
- •10.2. Объявление массивов
- •10.3. Ввод и вывод значений элементов массива
- •10.4. Подсчет количества элементов по заданному условию
- •10.5. Поиск минимального элемента массива
- •10.6. Вычисление произведения ненулевых элементов массива
- •10.7. Сортировка элементов массива
- •10.8. Заполнение массива случайными числами
- •10. 9. Индивидуальные задания по работе с массивам
- •11. Процедуры и функции
- •11.1. Понятие подпрограммы
- •11.2. Описание процедуры
- •11.3. Описание функции
- •11.4. Области действия имен
- •11.5. Индивидуальные задания по разработке процедур и функций
- •Var k,l; real;
NOT;
And, * (умножение), / (деление), div, mod;
OR, + (сложение), – (вычитание);
< , <= , = , <> , >= , >.
Операции, указанные в одной строке, обладают одинаковым приоритетом. В рассматриваемом составном логическом выражении допускается использование скобок, но только круглого вида. При их наличии сначала выполняются действия в скобках, начиная с самых внутренних, а затем вне скобок. В круглые скобки обязательно заключаются части выражения, стоящие слева и справа от логических операций AND и OR.
Рассмотрим в качестве примера порядок выполнения операций с целью выявления результата составного логического выражения, например, вида:
(A>3) AND (B=A+6) OR NOT (C=4)
приА=2, В=8 и С=5. Он (порядок) будет состоять из 6-ти действий:
а) Первой выполнится операция сравнения А>3 в первых скобках. Результатом этой операции является FALSE, так как 2 меньше, а не больше 3-х;
б) Второй выполнится операция арифметического сложения А+6 во вторых скобках и её результат после этого сравнится со значением В. Итоговым результатом этих двух операций А+6 и В=А+6 является TRUE, так как А+6=8, В=8 и поэтому 8=8;
в) Третьей выполнится операция сравнения С=4 в последних скобках. Её результатом является FALSE, так как 5≠4;
г) Четвёртой выполнится логическая операция NOT (C=4), равная NOT FALSE. Её результатом является TRUE;
д) Пятой выполнится операция логического умножения AND полученных результатов в первой и второй скобках, т.е. операция FALSE AND TRUE, результатом которой является FALSE;
е) Последней (шестой) выполнится операция логического сложения OR над выражениями слева и справа от неё, т.е. операция FALSE OR TRUE с результатом TRUE, который и является окончательным для исходного выражения.
При желании убедиться в справедливости результатов всех рассмотренных 6-ти действий можно воспользоваться приведенными ниже программой и распечаткой её выполнения при прежних значениях переменныхА=2, В=8 и С=5.
Program Slojnoe_LV;
Uses Crt; Var A, B, C : Real; LV1, LV2, LV3, LV4, LV : Boolean;
BEGIN
Write('Bведитечисла A, B и C '); ReadLn(A,B,C);
ClrScr;
WriteLn('При A=',A:3:1,' B=',B:3:1,' и C=',C:3:1);
LV1:=A>3; LV2:=(B=A+6); LV3:=(C=4); LV4:=NOT LV3;
Write('(A>3)-',LV1,' (B=A+6)-',LV2);
WriteLn('(C=4)-',LV3,' NOT(C=4)-',LV4);
LV:=LV1 AND LV2 OR NOT LV3;
WriteLn('LV:=(A>3) AND (B=A+6) OR NOT (C=4)-',LV);
WriteLn('LV:=',LV1,' AND ',LV2,' OR ',LV4,' -',lV);
READLN END.
П ри A=2.0, B=8.0 и C=5.0
(A>3) – FALSE; (B=A+6) – TRUE; (C=4) – FALSE; NOT(C=4) – TRUE.
LV:=(A>3) AND (B=A+6) OR NOT (C=4) – TRUE.
LV:=FALSE AND TRUE OR TRUE – TRUE.
Логические данные и операции над ними имеют важное значение, так как позволяют внести в процесс вычислений элементы человеческой логики.
В подлежащих далее рассмотрению программах разветвлённой структуры помимо элементов логики и ранее рассмотренных операторов присваивания, ввода и вывода данных используются операторы условного перехода, безусловного перехода и оператор выбора.