Скачать презентацию Логический тип данных и разветвления в программах Скачать презентацию Логический тип данных и разветвления в программах

05_Логический тип данных.ppt

  • Количество слайдов: 39

Логический тип данных и разветвления в программах Логический тип данных и разветвления в программах

Разветвления в программах Разветвляющаяся программа – это программа, которая реализует разветвляющийся алгоритм Разветвления в программах Разветвляющаяся программа – это программа, которая реализует разветвляющийся алгоритм

Алгоритм Алгори тм — набор нструкций, описывающих порядок действий исполнителя достижения результата решения задачи Алгоритм Алгори тм — набор нструкций, описывающих порядок действий исполнителя достижения результата решения задачи за конечное число действий.

Схемы алгоритмов Схемы алгоритмов

Условные обозначения для схем алгоритмов Начало и конец алгоритма Обработка информации, например, расчет по Условные обозначения для схем алгоритмов Начало и конец алгоритма Обработка информации, например, расчет по формуле Проверка условия и принятие решения. После этого блока возможны различные пути продолжения выполнения алгоритма Предопределенный процесс, обращение к процедуре. Вывод или ввод информации например,

Программирование разветвлений Программирование разветвлений

Логический тип данных Тип Boolean используется для данных, которые могут принимать только два значения: Логический тип данных Тип Boolean используется для данных, которые могут принимать только два значения: истина и ложь. В языке Object Pascal этим значениям соответствуют константы True и False.

Логический тип данных Данные такого типа обычно появляются как результат операций сравнения. Например, 2<3 Логический тип данных Данные такого типа обычно появляются как результат операций сравнения. Например, 2<3 = True, sin(x)>0 может быть и True и False, в зависимости от значения переменной х.

Операции сравнения Название операции сравнения Меньше или равно Больше или равно Равно Не равно Операции сравнения Название операции сравнения Меньше или равно Больше или равно Равно Не равно Запись на языке Pascal < <= > >= = <>

Бинарные операции над логическими данными Логические операции Первый операнд Второй операнд True False True Бинарные операции над логическими данными Логические операции Первый операнд Второй операнд True False True False True False False and (и) or (или) xor (несовпадение)

Унарная операция для логических данных Для данных типа Boolean определена одна унарная операция – Унарная операция для логических данных Для данных типа Boolean определена одна унарная операция – «нет» . В языке Object Pascal имя этой операции not. Эта операция меняет значение логической переменной на противоположное. Например, not(2>3) = True not(sin(pi/2) >0) = False.

Логические выражения • Выражения, в которых используются операнды логического типа и операции над ними, Логические выражения • Выражения, в которых используются операнды логического типа и операции над ними, называются логическими. • Результатом вычисления такого выражения может быть True или False. • Частями логического выражения могут быть арифметические выражения, участвующие в операциях сравнения

Старшинство операций Операции Приоритет not Первый (самый высокий) *, /, div, mod, and, shl, Старшинство операций Операции Приоритет not Первый (самый высокий) *, /, div, mod, and, shl, shr +, –, or, xor Второй =, <>, <, >, <=, >=, in Четвертый низкий) Третий (самый

Пример логического выражения ((h>x) and (w>y)) or ((w>x) and (h>y)) or ((h>x) and (w>z)) Пример логического выражения ((h>x) and (w>y)) or ((w>x) and (h>y)) or ((h>x) and (w>z)) or ((h>z) and (w>x)) or ((h>y) and (w>z)) or ((h>z) and (w>y))

Инструкция (оператор) if…then…else Инструкция (оператор) if…then…else

Пример Procedure Kv. Ur(); Var a, b, c : real; Begin get. Koef. Kv. Пример Procedure Kv. Ur(); Var a, b, c : real; Begin get. Koef. Kv. Ur(a, b, c); If a<>0 Then kv. Ur(a, b, c) Else lin. Ur(b, c); End;

Составной оператор Если после слов then или else следует выполнить несколько операторов, то их Составной оператор Если после слов then или else следует выполнить несколько операторов, то их следует объединить в один составной оператор, используя операторные скобки begin и end. Begin … … End;

Сокращенный оператор if Сокращенный оператор if

Вложенные операторы if Вложенные операторы if

Цепочка операторов if Цепочка операторов if

Тест Найти значения переменных “х” и “у” после выполнения приведенного фрагмента программы, при различных Тест Найти значения переменных “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях “a” и “b”. x: =0; y: =0; if a>b then x: =1; y: =2; ? ? x ? ? y ? ?

Тест Найти значения переменных “х” и “у” после выполнения приведенного фрагмента программы, при различных Тест Найти значения переменных “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях “a” и “b”. x: =0; y: =0; if a>b then x: =1; y: =2; a>b a<=b x ? ? y ? ?

Тест Найти значения переменных “х” и “у” после выполнения приведенного фрагмента программы, при различных Тест Найти значения переменных “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях “a” и “b”. x: =0; y: =0; if a>b then x: =1; y: =2; a>b a<=b x 1 0 y 2 2

Тест Найти значения “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях Тест Найти значения “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях “a” x и “b”. x: =0; y: =0; if a<>b then x: =1 else x: =2; y: =3; y ? ? ?

Тест Найти значения “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях Тест Найти значения “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях “a” x и “b”. x: =0; y: =0; if a<>b then x: =1 else x: =2; y: =3; y a=b a<>b ? ?

Тест Найти значения “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях Тест Найти значения “х” и “у” после выполнения приведенного фрагмента программы, при различных значениях “a” и “b”. x x: =0; y: =0; if a<>b then x: =1; y: =2; else x: =2; y: =3; y a=b a<>b ? ?

Оператор варианта case позволяет эффективно реализовать множественные разветвления в тех случаях, когда выбор определяется Оператор варианта case позволяет эффективно реализовать множественные разветвления в тех случаях, когда выбор определяется значениями переменной перечислимого типа (integer, char, boolean)

Множественное разветвление Множественное разветвление

Синтаксис оператора case Синтаксис оператора case

Порядок выполнения инструкции case • Сначала вычисляется значение выраженияселектора. • Далее, полученное значение последовательно Порядок выполнения инструкции case • Сначала вычисляется значение выраженияселектора. • Далее, полученное значение последовательно сравнивается со значениями констант в списках. • Если значение селектора совпадает с одной из констант списка, то выполняется оператор, идущий после этого списка и на этом выполнение инструкции заканчивается. • Если значение селектора не найдено ни в одном из списков, то выполняется оператор после слова else.

Пример использования case procedure test. Key(var symbol: char; text: String); begin case symbol of Пример использования case procedure test. Key(var symbol: char; text: String); begin case symbol of '0'. . '9', #8, #13 : //Эти символы допустимы ; '-': // Минус допустим только в начале if length(text)<>0 then symbol: =#0; else {case symbol} symbol: =#0; end {case symbol}; end;

Обработка события (Key. Press) при вводе символа Обработка события (Key. Press) при вводе символа

Тест var i: integer; … x: =1; case i of 1: x: =10*i; 2: Тест var i: integer; … x: =1; case i of 1: x: =10*i; 2: x: =25*i; else x: =100; end; i x

Тест var i: integer; … x: =1; case i of 1: x: =10*i; 2: Тест var i: integer; … x: =1; case i of 1: x: =10*i; 2: x: =25*i; else x: =100; end; i x 1 2 > 2 < 1

Тест var i: integer; … x: =1; case i of 1: x: =10*i; 2: Тест var i: integer; … x: =1; case i of 1: x: =10*i; 2: x: =25*i; else x: =100; end; i x 1 1 0 2 5 0 > 1 2 0 0 < 1