8 класс ИНФОРМАТИКА
Ветвления. Составные условия (запись логических выражений на изучаемом языке программирования). Нахождение минимума и максимума из двух, трёх и четырёх чисел
ВАША ЗАДАЧА НА СЕГОДНЯ:
- Просмотреть презентацию.
- Написать в тетради опорный конспект по прочитанному материалу.
Решим следующую задачу. Даны два числа а и в . Написать программу для нахождения их частного.
Program chasnoe;
var a, b: integer;
c: real;
begin
Read (a, b);
c:=a/b;
write(c);
end.
Программа работает для всевозможных а и в , кроме тех случаев, когда в равно нулю. При в равном нулю возникает ошибка. На нуль делить нельзя, но хотелось бы, чтобы программа сама обработала подобный случай и попросила пользователя ввести другие данные.
Решение задачи
Program chasnoe2 ;
var a, b: integer; с:real;
begin
read (a, b);
If b=0 then {проверяем в на равенство нулю}
write (‘Введите не 0.’) {выводим сообщение, если в равно 0}
Else
c:=a/b;
write(c); {делим, если в не равно 0 }
end.
Условный оператор
В приведенной программе условный оператор if позволил предусмотреть два варианта работы: при b=0 и b≠0 , т.е. позволил организовать ветвление .
Условный оператор
Ветвление – это такая форма организации действий, при которой в зависимости от выполнения (истинности) и невыполнения (ложности) условия выполняется одна либо другая последовательность действий.
Схема условного оператора
If then
else
Схема условного оператора
Оператор If ( если ) анализирует некоторое условие.
Если условие верно (истино) then ( то ) выполняется оператор_1 else ( иначе ) если условие неверно (ложно) – выполняется оператор_2 .
Оператор_1 и оператор_2 называются ветвями программы
Блок-схема условного оператора
Да
Нет
условие
Оператор_1
Оператор_2
Полная и сокращенная формы условного оператора
Рассмотренная выше форма условного оператора if..then..else называется полной. Она позволяет выполнять программу по одной из двух ветвей. Такую алгоритмическую конструкцию называют ветвлением (по аналогии с развилкой ветвей дерева). В языке программирования Pascal существует также cокращенная форма условного оператора, которая применяется в тех случаях, когда какое-либо действие (группу действий) нужно выполнить только при выполнении заданного условия .
then оператор ; Оператор выполняется если условие верно Нет Да условие Оператор " width="640"
Сокращенная форма условного оператора
If условие then оператор ;
Оператор выполняется если условие верно
Нет
Да
условие
Оператор
Пример1 . Дано целое число. Написать программу, которая заменяет его на 0, если число отрицательное, и выводит его без изменений в противном
Решение задачи
Program zamena;
var a: integer;
begin
read(a); {Вводится с клавиатуры переменная а }
If athen
a:=0;
writeln(a);
end .
Блок-схема алгоритма, реализованного в примере 1
Нет
Да
a
a:=0
Простые условия
Условие – это выражение, стоящее в операторе if .. then .. else после слова if. В зависимости от результатов проверки этого условия (его истинности либо ложности) выполняется та либо иная ветвь программы.
В блок-схемах оператор if обозначают ромбом, называемым блоком проверки условия.
Пример 2 . Составить программу, которая запрашивает ответ пользователя на вопрос «Сколько будет 3Х5?», сравнивает введенное значение с числом 15 и выводит соответствующее сообщение: «Верно» либо «Неверно».
Решение задачи
Program prowerka;
var a: integer;
begin
writeln (‘Сколько будет 3х5?’ );
readln (a); {Ответ вводится с клавиатуры и записывается в переменную а }
If a=15 then writeln (‘Верно’)
else writeln (‘Неверно’ );
{ В операторе if сравнивается значение переменной а с числом 15.
Если а=15, то выводится сообщение ‘Верно’, в противном случае – ‘Неверно’}
end .
Блок-схема алгоритма, реализованного в примере 2
begin
read (a)
else (нет)
then (да)
If a=15
Верно
Неверно
end.
Простое условие
Простое условие - это математическое сравнение двух выражений по величине (сравнение двух величин). Операции сравнения на языке программирования можно записать при помощи следующих знаков:
Больше = Больше либо равно Не равно " width="640"
Операции сравнения
Знак
Операция сравнения
=
Равно
Меньше
Меньше либо равно
Больше
=
Больше либо равно
Не равно
6 a+3*c=20 a+c=100 5*c80 ab a0 aВ качестве оператора_1 и оператора_2 может быть любая из уже известных вам команд. ! Важно помнить: нельзя ставить знак «;» перед словом else " width="640"
Примеры простых условий:
ab
a
b6
a+3*c=20
a+c=100
5*c80
ab
a0
a
В качестве оператора_1 и оператора_2 может быть любая из уже известных вам команд.
! Важно помнить: нельзя ставить знак «;» перед словом else
Составные условия
При решении различных задач иногда возникает необходимость проверять выполнение двух (как например, 0составными . Для записи составных условий на языке программирования используют следующие логические операции:
- and – логическое «и»;
- or – логическое «или»;
- not – логическое отрицание.
0) and (a10) or (y! Простые условия обязательно заключаются в круглые скобки, так как логические операции имеют приоритет перед операциями сравнения. " width="640"
Примеры записи составных условий:
(a0) and (a10) or (y
! Простые условия обязательно
заключаются в круглые скобки,
так как логические операции имеют
приоритет перед операциями сравнения.
Правила выполнения логических операций
- Составное условие, состоящее из двух простых условий, соединенных операцией and, верно (истинно) только тогда, когда верны оба простых условия.
- Составное условие, состоящее из двух простых условий, соединенных операцией or , верно тогда, когда верно хотя бы одно из простых условий.
- Составное условие not верно только тогда, когда простое условие ложно.
5) and (23) - неверно (ложно) (10) - верно (истинно) (69) and (75) – неверно (ложно) (32) or (3(32) or (20) - верно (12) or (1not (5 6) - верно not (6 5) - неверно " width="640"
Примеры использования логических операций:
( 25) and (23) - неверно (ложно)
(10) - верно (истинно)
(69) and (75) – неверно (ложно)
(32) or (3
(32) or (20) - верно
(12) or (1
not (5 6) - верно
not (6 5) - неверно
=10) and (athen write ('число двузначное') else write('число не двузначное'); {если (a=10)и(a'число двузначное', иначе - 'число не двузначное'} end . " width="640"
Пример 3 . Определить, является ли введенное число двузначным.
Program c2;
var a:integer;
begin
write ('Введите целое число: ');
readln (a); {исходное число}
if (a=10) and (athen write ('число двузначное')
else write('число не двузначное');
{если (a=10)и(a
'число двузначное', иначе - 'число не двузначное'}
end .
Результат выполнения программы при вводе числа 45:
Введите целое число: 45
число двузначное
Результат выполнения программы при вводе числа 125:
Введите целое число: 125
число не двузначное
Алгоритм решения этой задачи в виде блок-схемы выглядит так
begin
Ввод а
нет
then
a mod 2=0
a = a div 2
Вывод а
end.
Пример 4. Необходимо ввести некоторое целое число и, если оно четное, уменьшить его в 2 раза.
program c2_2;
var a:integer;
begin
write('Введите целое число: ');
readln(a);
if (a mod 2=0) then
a:=a div 2;
write(a);
end.
Результат выполнения программы при вводе числа 16:
Введите целое число: 16
8
Результат выполнения программы при вводе числа 13:
Введите целое число: 13
13
Составной оператор
При составлении программ на языке программирования часто бывает так, что в случае выполнения либо невыполнения некоторого условия в операторе if необходимо осуществить несколько действий. В этом случае последовательность действий (несколько операторов подряд) объединяют в одну группу , заключенную между словами begin и end .
0 then Begin x:=x*2; write (x); end ; Такая группа ( begin x:=x*2; write (x); end ) называется составным оператором и рассматривается как единое целое, а зарезервированные слова begin и end открывающей и закрывающей операторными скобками . " width="640"
Пример:
If x0 then
Begin
x:=x*2;
write (x);
end ;
Такая группа ( begin x:=x*2; write (x); end ) называется составным оператором и рассматривается как единое целое, а зарезервированные слова begin и end открывающей и закрывающей операторными скобками .
Общий вид составного оператора может выглядеть следующим образом:
begin
Оператор1;
Оператор2;
……………
end;
Пример 5. Пусть дано некоторое целое число. Составить программу, которая выводит на экран монитора сообщение о том, какое это число: положительное либо отрицательное. И если это число положительное, уменьшает его в 2 раза, в противном случае возводит его в квадрат.
0 then begin r:=a/2; {число уменьшается в 2 раза} writeln( ‘Положительное. r=' , r); end else begin r:=sqr(a); {число возводится в квадрат} writeln( ‘Отрицательное. r=' , r); end; end. " width="640"
Программа, реализующая данный алгоритм, имеет вид:
program chislo;
var a:integer; r:real;
begin
write( ‘Введите целое число не равное нулю:' );
readln(a);
if a 0 then
begin
r:=a/2; {число уменьшается в 2 раза}
writeln( ‘Положительное. r=' , r);
end
else
begin
r:=sqr(a); {число возводится в квадрат}
writeln( ‘Отрицательное. r=' , r);
end;
end.
ПЕРЕЙДИТЕ ПО ССЫЛКЕ И ПОСМОТРИТЕ ВИДЕО:
https:// youtu.be/m34gXJcdeE0