06 Управляющие конструкции.pptx
- Количество слайдов: 30
Pascal СТРУКТУРНЫЕ ОПЕРАТОРЫ УПРАВЛЕНИЯ
Назначение и виды Данные операторы включают в себя другие операторы и управляют последовательностью их выполнения. Виды: составной; условный; выбора цикла.
Составной оператор объединяет группу операций в единое целое, после чего они могут считаться одним оператором. Формат: begin <группа операций>; end;
Условный оператор позволяет выбирать одно из двух возможных действий в зависимости от условия. Условие – это свойство величин, которое может соблюдаться или не соблюдаться для их конкретных значений. Условие представляет собой логическое выражение, значение которого является «True» / «False» . Примеры: X<>Y S mod 3=0 D (логическая переменная);
Условный оператор Логическое выражение может быть сложным, включающим логические операции: NOT, OR, AND, XOR. Тогда говорят о составном условии. Примеры: (a >90) or (b >90) or (c >90) - 'Треугольник - тупоугольный' (a<90) and (b <90) and (c <90) - 'Треугольник - остроугольный'
Таблица истинности a b OR AND XOR True False True True False False При а=3 и b =true (a<10) and not (b) При с=5 и р= ’а’ (p<’ k’) or (c>5)
Условный оператор Формат полной формы if <условие> then <оператор1> else <оператор2>; Да S 1 условие Нет S 2
Условный оператор Пример: var a, b: real; begin writeln(’ введите 2 числа’); readln(a, b); if b = 0 then writeln(’ошибка ввода’) else writeln(’ Result : = ’, a/b); readln end.
Условный оператор var X, Y, Max: Integer; begin. . if X > Y then Max : = X else Max : = Y; . . end;
Условный оператор Формат неполной формы if <условие> then <оператор>; Да S 1 условие Нет
Условный оператор Пример: var a, Result : real; begin writeln(’ введите число’); readln(a); if a >= 0 then Result : = sqrt( a); … Readln end.
Правила оформления условного оператора 1. 2. 3. 4. Отдельные составные части сложного логического выражения заключаются в скобки. После слова then и перед словом else ставить «; » нельзя. После Then и Else должен быть один оператор, иначе операторы заключаются в операторный блок. В случае “вложенных” условных операторов компилятор всегда считает, что else относится к последней из конструкций if, в которой не было раздела else
Например, в конструкции Нет Да условие if <условие 1> then if <условие 2> then Да Нет <оператор1> условие else <оператор2>; S 1 S 2 else будет отнесено компилятором ко второй конструкции if
Если же необходимо отнести else к первому if Да if <условие 1> then begin if <условие 2> then <оператор1> end else <оператор2>; условие Нет Да Нет условие S 1 S 2
Оператор выбора позволяет выбирать одно из нескольких возможных действий (операторов). Формат: case <выражение> of <список значений 1>: <оператор 1>; . . . <список значений n>: <оператор n>; [else <оператор>] end;
Правила оформления оператора выбора выражение (переключатель) должно иметь порядковый тип после списка значений должен быть один оператор. Если в какой – либо ветви необходимо выполнить несколько операторов, то используется составной оператор.
Списки значений 1. могут содержать одно или несколько разделенных 2. 3. 4. 5. запятыми возможных значений константных выражений; а также диапазоны значений; константы и константные выражения должны быть совместимы по типу с объявленным выражением; не могут включать переменные и многие функции; не должны пересекаться; должны располагаться в возрастающем порядке (рекомендовано для получения оптимального кода).
Определить порядок целого числа N от 0 до 999 Var N: integer; … Randomize; N: =Random(1000); case N of 0. . 9: writeln('однозначное'); 10. . 99: writeln('двузначное'); 100. . 999: writeln('трехзначное') end;
Определить тип символа Var symbol: Char; … case symbol of ’ 0’. . ’ 9’: writeln('это цифра'); ’a’. . ’z’: writeln('стр. буква'); ’A’. . ’Z’: writeln('прописная буква') else writeln(‘Это др. символ’) end;
Циклы Цикл – это группа последовательных действий, завершающаяся переходом при выполнении некоторого условия на первую команду этой группы. Существуют два основных вида циклов: 1. Цикл с известным числом повторений. Пример такого цикла- вычисление суммы последовательности чисел: X=X 1+X 2+…+Xn= nk=1 Xk 2. Циклы с неизвестным количеством повторений. Например, в задаче обработки файла передача файла закончится, как только будет прочитан “конец файла”.
Структура цикла: 1. 2. 3. Начало: подготовка цикла. Проверка: определяет момент выхода из цикла. Тело цикла: содержит рабочую часть и продвижение (обновление параметра или величины, его заменяющей).
Цикл с предусловием Позволяет многократно выполнять одни и те же действия тела цикла в зависимости от некоторого условия, проверяемого каждый раз перед выполнением тела цикла. while <условие работы > do <тело цикло>; Да Нет Условие Тело
Цикл с предусловием <условие работы цикла> - это логическое выражение, в случае истинности которого выполняется тело цикла. <тело цикла> - это один оператор или совокупность операторов, объединенных в один составной оператор. В теле цикла обязательно должен изменятся параметр, от которого зависит условие цикла. Иначе произойдет зацикливание.
Const N=10; Var X, S: real; k: integer; Begin Writeln (‘Input N numbers with Enter: ’); k: =1; S: =0 // начальные установки (инициализация); while k<=N do Begin Readln(X); S: =S+abs(X); Inc(k) End; Writeln (‘Srednee = ’, S/N: 10: 4); Readln; End.
Цикл с постусловием Позволяет многократно выполнять одни и те же действия тела цикла в зависимости от некоторого условия, проверяемого каждый раз после выполнения тела цикла. repeat <тело цикла> until <условие окончания цикла>; тело Нет Да Условие
Const N=10; Var X, S: real; k: integer; Begin Writeln (‘Input N number with Enter: ’); k: =1; S: =0 // начальные установки Repeat Readln(X); S: =S+abs(X); Inc(k) Until k>N; Writeln (‘Srednee = ’, S/N: 10: 4); Readln; End.
Цикл с параметром Позволяет многократно выполнять одни и те же действия в теле цикла в зависимости от значения параметра (счетчика повторений), изменение которого определено в виде начального и конечного значения в заголовке тела цикла for <пар. цикла>: =<нач_знач> to <кон. знач> do <тело цикла>; for <пар. цикла>: =<нач_знач> downto <кон. знач> do < тело цикла >; i: =j 1, j 3 Серия
Цикл с парметром <параметр_цикла> - переменная любого порядкового типа <нач_знач> - начальное значение - выражение того же типа; <кон_знач> - конечное значение - выражение того же типа; <оператор> - произвольный оператор.
Const N=10; Var X, S: real; k: integer; Begin Writeln (‘Input your number with Enter: ’); S: =0; // начальные установки (инициализация) For k: =1 to N do Begin Readln(X); S: =S+abs(X); End; Writeln (‘Srednee = ’, S/N: 10: 4); Readln; End.
Пример для подсчета любых сумм первых N чисел - положительных и отрицательных: Sum : = 0; if N >= 0 then for i : = 1 to N do Sum : = Sum + i else for i : = -1 downto N do Sum : = Sum + i ;


