- •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;
6. Разветвляющиеся алгоритмы
Если рассмотренный ранее алгоритм линейной структуры является алгоритмом последовательного выполнения приведенных в программе операторов, то в алгоритме разветвлённой структуры предусматривается наличие нескольких ветвей вычислительного процесса, выбираемых в зависимости от результата проверки какого-либо одного условия или их совокупности.
Простейшие условия на языке программирования Паскаль составляются из математических сравнений по величине двух переменных целого или (и) вещественного типа с помощью операций отношений, имеющих вид: <(меньше); <= (меньше или равно); = (равно); <>(не равно); >= (больше или равно) и >(больше). Такие условия, состоящие из отношений неравенств, являются логическими и называются в программировании логическими выражениями. Результатом любого из приведенных сравнений является логическая константа TRUE (истина) или FALSE (ложь), относящаяся к типу данных BOOLEAN и называемого булевским (по имени английского математика Джорджа Буля, создателя особой области математики – математической логики). Так, например, логическое выражение 5>3 является истинным (TRUE), а выражения 5=3 и 5<3 являются ложными (FALSE). Для практического усвоения изложенных сведений по простейшим логическим выражениям можно воспользоваться простейшей Паскаль-программой вида:
Program Prostoe_LV;
Uses Crt; Var A, B : Real;
BEGIN
Write('Bведитедвачисла: '); ReadLn(A, B); ClrScr;
Write (A:3:1,'> ', B:3:1,' -', A > B, ’ ‘);
WriteLn(A:3:1,'< ', B:3:1,' -', A < B);
Write (A:3:1,'= ', B:3:1,' -', A = B, ’ ‘);
WriteLn(A:3:1,'<>', B:3:1,' -',A<>B);
Write (A:3:1,'>=', B:3:1,' -',A>=B, ’ ‘);
WriteLn(A:3:1,'<=', B:3:1,' -',A<=B);
READLNEND.
При вводе по её запросу двух любых числовых данных (например, 25.5 и 50.5) эта программа выдаёт распечатку:
25.5 >50.5 – FALSE 25.5 < 50.5 – TRUE
25.5 = 50.5 – FALSE 25.5<>50.5 – TRUE
25.5>=50.5 – FALSE 25.5<=50.5 – TRUE ,
очевидная справедливость, которой легко проверяется.
Из приведенных простейших логических и арифметических выражений могут быть составлены различные их совокупности (составные логические выражения) с помощью операций логического сложения OR (операции ИЛИ, дизъюнкции), логическогоумноженияAND (операцииИ, конъюнкции) и логического отрицанияNOT (операции НЕ, инверсии). Их результаты над логическими переменнымиА и В представлены в таблице:
A |
B |
NOT A |
NOT B |
A OR B |
A AND B |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
Так, например, результат операции (С>10) OR (D<3) будет истинным приС=12 и D=2 (т.к. TRUE OR TRUE=TRUE), при С=12 и D=5 (т.к. TRUE OR FALSE=TRUE) и при С=8 и D=2 (т.к. FALSE OR TRUE=TRUE), но будет ложным при С=8 и D=5 (так как FALSEOR FALSE=FALSE).Результат операции (С>10) AND (D<3) будет истинным приС=12 и D=2, но будет ложным при С=12 и D=5, при С=8 и D=5 и при С=8 и D=2.
При программном выполнении сложных составных логических выражений учитывается приоритет выполнения содержащихся в нём логических, арифметических и других операций. Он (приоритет) обычно изображается в четырёх строках: