Просмотр содержимого документа
««Оператор ветвления» »
Операторы ветвления
8 класс
Основные теоретические сведения
Примеры решения задач
Основные теоретические сведения
Общий вид оператора ветвления
Простые условия
Составной оператор
Составные условия
else команда2 ;" width="640"
Общий вид оператора ветвления
Условный оператор или оператор ветвления , это конструкция ветвления, записанная на конкретном языке программирования. В языке Паскаль конструкция ветвления записывается следующим образом:
Ifthen
команда1
else
команда2 ;
=, . Сравнивать можно константы, переменные, арифметические выражения." width="640"
Простые условия
Логическое выражение или условие может принимать одно из двух значений: истина или ложь.
Простое условие строится с использованием знаков сравнения: , =, =, .
Сравнивать можно константы, переменные, арифметические выражения.
Составной оператор
Условный оператор в Паскале позволяет выполнять только одну команду , в зависимости от истинности логического выражения.
Если по условию задачи таких команд должно быть несколько, то их нужно «взять в операторные скобки». Роль таких скобок играет конструкция begin end . Слово begin играет роль открытой скобки, а слово end – закрытой.
Конструкцию begin end вместе с командами, расположенными между ними называют составной оператор .
Составные условия
С логическими величинами можно выполнять логические операции:
not( нет ) , and( и ) , or( или ) , xor( исключающее или ) .
not( нет ) ,
and( и ) ,
or( или ) ,
xor( исключающее или ) .
Таблица истинности
Логическая переменная
A
B
Результат операции
True
False
not A
True
A and B
True
False
True
False
True
False
True
A or B
False
False
A xor B
True
False
True
False
False
True
True
False
True
True
False
False
Примеры решения задач
Сравнение чисел
Рисование фигур в зависимости от условия
Проверка цифр трехзначного числа
Вычисление значения функции
Определение принадлежности точки заданной области
Сравнение чисел
Задано число x . Написать программу, которая определить, является ли число x положительным или нет. Выдать на экран соответствующее сообщение.
0. Для решения воспользуемся условным оператором. Вывод результата. Ввод исходных данных Результат будет зависеть от того, истинным или ложным является значение логического выражения x 0. Для решения воспользуемся условным оператором. Вывод результата. Описание переменных: Переменная x – integer (или real , для данной задачи это не имеет значения) ." width="640"
Этапы выполнения задания
Определение исходных данных: переменная x (введенное число).
Определение результатов: сообщение, зависящее от значения x .
Алгоритм решения задачи.
Ввод исходных данных Результат будет зависеть от того, истинным или ложным является значение логического выражения x 0. Для решения воспользуемся условным оператором. Вывод результата.
Ввод исходных данных
Результат будет зависеть от того, истинным или ложным является значение логического выражения x 0. Для решения воспользуемся условным оператором.
Вывод результата.
Описание переменных:
Переменная x – integer (или real , для данной задачи это не имеет значения) .
0 then Write( 'Число положительное' ) else Write( 'Число не положительное' ); end ." width="640"
Программа:
var x: integer ;
begin
Writeln( 'введите значение x=' );
Readln(x);
if x 0 then
Write( 'Число положительное' )
else
Write( 'Число не положительное' );
end .
Тестирование
Запустите программу и введите значения
х=2
Проверьте, результат должен быть следующим:
число положительное
Вопросы
Можно ли после слова else написать команду Write (‘ Число отрицательное ’)? Почему?
Можно ли заменить логическое выражение в условном операторе так, чтобы сообщения ’ Число положительное ’ и ’ Число не положительное ’ пришлось поменять местами? Как это сделать?
* Какие изменения нужно внести в программу, чтобы рассматривались три случая: ’Число положительное’, ’Число отрицательное’, ’Число равно нулю’.
Рисование фигур в зависимости от условия
Задано число x . Написать программу, которая нарисует на экране зеленый прямоугольник, если число четное, а если нечетное, то красный круг.
Этапы выполнения задания
Определение исходных данных: переменная x (введенное число).
Определение результатов: рисунок, зависящий от значения x .
Алгоритм решения задачи.
Ввод исходных данных Результат будет зависеть от того, истинным или ложным является значение логического выражения x mod 2=0. Для решения воспользуемся условным оператором. Вывод результата.
Ввод исходных данных
Результат будет зависеть от того, истинным или ложным является значение логического выражения x mod 2=0. Для решения воспользуемся условным оператором.
Вывод результата.
Описание переменных:
Переменная x – integer .
Переменная x – integer .
Программа:
uses graphABC;
var x: integer ;
begin
write( 'введи значение x=' );
readln(x);
writeln(x);
if x mod 2 = 0 then
begin
setBrushColor(clGreen);
rectangle( 150 , 150 , 450 , 350 );
end
else
begin
setBrushColor(clRed);
circle( 400 , 300 , 100 );
end ;
end .
Тестирование
Запустите программу и введите значения
x= 2 x= 3
Проверка цифр трехзначного числа
Написать программу которая проверит является ли введенное число трехзначным, и, если да, то выведет четные цифры числа .
Исходные данные и результаты
Исходные данные
переменная а - трехзначное число .
переменная а - трехзначное число .
Результат
переменные a 1, a 2, a 3 , в том случае если они четные или сообщение, что четных цифр нет .
переменные a 1, a 2, a 3 , в том случае если они четные или сообщение, что четных цифр нет .
Алгоритм решения задачи
Ввод исходного числа.
Проверка является ли число трехзначным. Трехзначное число больше 99 и меньше 1000.
Если число трехзначное, то выделяем цифры числа и проверяем каждую из них на четность.
Для выделения первой цифры (переменная a 1) трехзначного числа необходимо найти целую часть от деления числа на 100. Для выделения второй цифры (переменная a 2) трехзначного числа необходимо найти остаток от деления числа на 100 и от него найти целую часть при делении на 10. Для определения последней цифры (переменная a 3) трехзначного числа необходимо найти остаток от деления числа на 10. Для проверки цифры на четность нужно проверить, равен ли нулю остаток от деления цифры на 2.
Для выделения первой цифры (переменная a 1) трехзначного числа необходимо найти целую часть от деления числа на 100.
Для выделения второй цифры (переменная a 2) трехзначного числа необходимо найти остаток от деления числа на 100 и от него найти целую часть при делении на 10.
Для определения последней цифры (переменная a 3) трехзначного числа необходимо найти остаток от деления числа на 10.
Для проверки цифры на четность нужно проверить, равен ли нулю остаток от деления цифры на 2.
Вывод результата.
Описание переменных
Переменные a, a 1 , a 2 , a 3 имеют тип integer.
99 ) and (athen Begin a1:=a div 100 ; a2:=a mod 100 div 10 ; a3:=a mod 10 ; if a1 mod 2 = 0 then Writeln( 'цифра ' ,a1, ' четная' ); if a2 mod 2 = 0 then Writeln( 'цифра ' ,a2, ' четная' ); if a3 mod 2 = 0 then Writeln( 'цифра ' ,a3, ' четная' ); If (a1 mod 2 = 1 ) and (a2 mod 2 = 1 ) and (a3 mod 2 = 1 ) then Writeln( 'в числе нет четных цифр' ); End Else Writeln( 'число не является трехзначным' ); End ." width="640"
Программа
Var a,a1,a2,a3: integer ;
Begin
Write( 'введите значение a=' );
Readln(a);
If (a 99 ) and (athen
Begin
a1:=a div 100 ;
a2:=a mod 100 div 10 ;
a3:=a mod 10 ;
if a1 mod 2 = 0 then
Writeln( 'цифра ' ,a1, ' четная' );
if a2 mod 2 = 0 then
Writeln( 'цифра ' ,a2, ' четная' );
if a3 mod 2 = 0 then
Writeln( 'цифра ' ,a3, ' четная' );
If (a1 mod 2 = 1 ) and (a2 mod 2 = 1 ) and (a3 mod 2 = 1 ) then
Writeln( 'в числе нет четных цифр' );
End
Else
Writeln( 'число не является трехзначным' );
End .
Тестирование
Проверьте работу программы для следую щи х значений
Ввод a
246
Вывод
103
ц и фра 2 четная
ц и фра 4 четная
ц и фра 6 четная
537
ц и фра 0 четная
25
в числе нет четных цифр
число не является трехзначным
Вопросы
Какие случаи расположения цифр в трех значном числе не были рассмотрены ? Предложите свои тесты на эти случаи.
Как по-другому можно вычислить значение второй цифры трехзначного числа?
Вычисление значения функции
Вычислить значение функции для заданного x .
Исходные данные и результаты
Исходные данные
переменная x - значение переменной.
переменная x - значение переменной.
Результат
переменная f - значение функции.
переменная f - значение функции.
Алгоритм решения задачи
Алгоритм решения задачи.
Ввод исходных данных Проверка значения x и вычисление значения функции, в зависимости от значения аргумента Вывод результата.
Ввод исходных данных
Проверка значения x и вычисление значения функции, в зависимости от значения аргумента
Вывод результата.
Описание переменных:
Все переменные, определенные для решения задачи, имеют тип real .
Все переменные, определенные для решения задачи, имеют тип real .
Программа
Var x, f: real ;
Begin
Write( 'введите значение x=);
Readln(x);
If xthen
f:=- 2
else
if xthen
f:=x*x*x
else
f:=x+ 2 ;
Writeln( 'f=' ,f: 7 : 3 );
End .
Тестирование
Запустите программу , введите значения и проверьте результаты
x
-5
f
0.2
-2.000
0.008
3.27
5.27
Вопросы
Добавьте в таблицу свои значения x. Предусмотрите все возможные случаи вычисления значения функции. Сколько строк нужно добавить в таблицу?
* Для заданной функции и фрагмента программы, вычисляющей значение этой функции, вставьте пропущенное
If x
y:=x
else
if x
… :=2*x+7
else
y:=2*x-5;
* Запишите функцию , значение которой вычисляется с помощью предложенного фрагмента программы.
If xthen
y:=-x
else
if xthen
y:= 0
else
y:=x*x;
Определение принадлежности точки заданной области
Определить принадлежит ли точка А ( x , у ) данной области. Ответом должно служить слово "да" или "нет".
Исходные данные и результаты
Исходные данные
переменные x и y - координаты точки.
переменные x и y - координаты точки.
Результат
слово "да" или "нет", в зависимости от принадлежности точки закрашенной области .
слово "да" или "нет", в зависимости от принадлежности точки закрашенной области .
Этапы выполнения задания.
Ввод исходных данных
Область образована тремя прямыми: y = x , y = -x , y = a . Точка принадлежит области, если одновременно выполняются три условия: y ≥ x , y ≥ -x , y ≤ a . Для того, что бы определить, какой из знаков поставить, достаточно взять произвольную точку, принадлежащую области и посмотреть как будут выполняться условия для этой точки. Например, при a = 5, точка с координатами (1,3) принадлежит области, и выполняются следующие условия 3 ≥ 1 , 3 ≥ -1 , 3 ≤ 5 .
Область образована тремя прямыми: y = x , y = -x , y = a .
Точка принадлежит области, если одновременно выполняются три условия: y ≥ x , y ≥ -x , y ≤ a .
Для того, что бы определить, какой из знаков поставить, достаточно взять произвольную точку, принадлежащую области и посмотреть как будут выполняться условия для этой точки.
Например, при a = 5, точка с координатами (1,3) принадлежит области, и выполняются следующие условия 3 ≥ 1 , 3 ≥ -1 , 3 ≤ 5 .
Вывод результата. .
=x) and (y=-x) and (ythen Writeln( 'да' ) else Writeln( 'нет' ); End ." width="640"
Программа
Var x, y, a: real ;
Begin
Write( 'введите значения координаты x=' );
Readln(x);
Write( 'введите значения координаты y=' );
Readln(y);
Write( 'введите значения a=' );
Readln(a);
If (y=x) and (y=-x) and (ythen
Writeln( 'да' )
else
Writeln( 'нет' );
End .
Тестирование
Запустите программу и проверьте результаты
x
y
1
3
-3
a
-2
результат
5
1
-2
да
5
5
нет
нет
Вопросы
Добавьте в таблицу свои значения. Предусмотрите различные возможные случаи расположения точки относительно области.
Проверьте точки, лежащие на границе области. Какой ответ выдает программа? Какие изменения нужно внести в программу, если считать, что точки, лежащие на границе, не принадлежат области?
Как изменится условие принадлежности точки области, если областью считать все плоскость, за исключением рассмотренного «треугольника».