Основы алгоритмизации и программирования
Простые и составные условия
Оператор ветвления
Составной оператор
Вечерний Лицей
9 класс
Задача
- Написать программу, которая определит является ли введенное число x положительным или нет
Определение исходных данных
Определение исходных данных: переменная x (введенное число)
0 " width="640"
Составление алгоритма решения задачи
Вводить нужно исходные данные, то есть переменную x
Как записать условие того, что число положительное и в какой части программы это вставить?
Выводить нужно результат
x 0
0; Здесь должны быть изменения Что выдаст такая программа? " width="640"
Написание программы
Рассмотрим программу
var x,a:real;
begin
writeln('введи значение x=');
readln(x);
a:=2*x/(sqr(x)+4);
writeln('a=',a);
end .
a:=x 0;
Здесь должны быть изменения
Что выдаст такая программа?
Написание программы
Определение типов переменных
- переменную x можно описать как real
- переменная a должна иметь тип boolean
Тестирование программы
- Запустите свою программу и проверьте правильность работы для значений x = 3 и x = -1
x
3
a
-1
a = True
a = False
3; a := 2+2*2=8; True False " width="640"
Тип данных boolean
Логическая величина, которая может принимать два значения:
TRUE
FALSE
Наример:
Пусть переменная a описана как boolean :
True
False
(больше) = (больше либо равно) (не равно) Например : a b 5+x = 3 sqrt(x) " width="640"
Простые и составные условия
Простое условие – это два выражения, связанные одним из знаков отношений:
= (равно)
(больше)
= (больше либо равно)
(не равно)
Например : a b 5+x = 3 sqrt(x)
Обратная задача
Условный оператор if
Ветвление в Паскале реализуется с помощью условного оператора if , который позволяет выбрать для выполнения один из предлагаемых вариантов вычислений или не выбрать ни одного
Неполная команда ветвления
if p then s ;
Полная команда ветвления
if p then s1 else s2 ;
Изменение программы
Проверка других условий
- Пусть нужно проверить другое условие и выдать сообщение в зависимости от условия. Для этого можно изменить работающую программу
- Продемонстрируем это на примере
- Вводятся два числа, x и y . Проверить можно ли делить число x на число y .
- Вводятся два числа, x и y . Проверить можно ли делить число x на число y .
Делить на 0 нельзя!
Этапы решения задачи
В разобранной задаче
В новой задаче
Определение исходных данных
переменная x
переменные x и y
Определение результатов
Сообщения «Число положительное» или «Число не положительное»
Сообщения «Делить можно» или «делить нельзя»
Составление алгоритма решения задачи
- Ввод исходных данных Проверка условия. Вывод результата.
- Ввод исходных данных
- Проверка условия.
- Вывод результата.
Изменяются сообщения и условие в команде ветвления
Изменения программы
- Сохранить программу под другим именем
- Заменить имена переменных в описании
- Изменить исходные данные
- Изменить условие в команде ветвления
- Изменить сообщения в результате
0 then Writeln( 'Число положительное') else Writeln( 'Число не положительное'); End . x, y: integer; значения x и y'); (x, y); y = 0 ('Делить нельзя'); ('Делить можно'); " width="640"
Изменения программы
Var x: integer;
Begin
Write( 'введите значение x=' );
Readln(x);
if x0 then
Writeln( 'Число положительное')
else
Writeln( 'Число не положительное');
End .
x, y: integer;
значения x и y');
(x, y);
y = 0
('Делить нельзя');
('Делить можно');
Задача
Задано положительное число x . Определить, является это число двузначным или нет. Выдать на экран соответствующее сообщение
0 then Writeln( 'Число двузначное' ) else Writeln( 'Число не двузначное' ); End . 9 then Что выдаст такая программа? 17 " width="640"
Написание программы
Здесь должны быть изменения
Var x: integer ;
Begin
Write( 'введите значение x=' );
Readln(x);
if x 0 then
Writeln( 'Число двузначное' )
else
Writeln( 'Число не двузначное' );
End .
9 then
Что выдаст такая программа?
17
Написание программы
17
9 ) and (x then Writeln( 'Число двузначное' ) else Writeln( 'Число не двузначное' ); 17 " width="640"
Запись составного условия
if (x 9 ) and (x then
Writeln( 'Число двузначное' )
else
Writeln( 'Число не двузначное' );
17
Простые и составные условия
Составные условия – это условия, составленные из нескольких выражений сравнения (простых условий), соединенных логическими операциями:
or and not
В составных условиях выражения сравнения заключаются в круглые скобки
Например :
(x+y = 5) and (2*x*sin(x)
(x or not (y
17
Таблица истинности составных условий
А, Б – некоторые условия
А
Б
True
True
А or Б
True
False
А and Б
True
False
False
True
True
True
not А
False
False
True
False
False
False
False
False
True
True
Составной оператор
- Если по одной из ветвей после служебных слов then и(ли) else требуется выполнение более одного оператора, их ограничивают операторными скобками begin … end и рассматривают как составной оператор
Задача
Задано число x . Если число четное, то нарисовать на экране зеленый прямоугольник, а если нечетное, то красный круг
Задача
Подключаем графику
Воспользуемся программой, определяющей четность числа
uses GraphABC;
var x: integer ;
begin
Write( 'введите значение x=' );
Readln(x);
if x mod 2 = 0 then
Writeln( 'Число четное' )
else
Writeln( 'Число нечетное' );
end .
rectangle(150, 150, 450, 350)
Рисуем прямоугольник
circle(400, 300, 100);
Рисуем круг
Задача
uses graphABC;
var x: integer ;
begin
write( 'введите значение x = ' );
readln(x);
writeln(x);
if x mod 2 = 0 then
SetBrushColor(clGreen);
Rectangle( 150 , 150 , 450 , 350 );
else
SetBrushColor(clRed);
Circle( 300 , 200 , 100 );
end .
Задача
Задача
- В операторе if после слов then и else может стоять ТОЛЬКО ОДНА команда.
- Если необходимо выполнение нескольких, то их берут в операторные скобки begin end ;
- Получаем составной оператор
Задача
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( 300 , 200 , 100 );
end ;
end .
Тестирование задачи
Запустите программу и введите значения x = 2
Проверьте, результат должен быть следующим:
Запустите программу и введите значения x = 5
Проверьте, результат должен быть следующим:
Задача
Написать программу для решения задачи (Заполните пропуски).
Заданы два различных числа. Меньшее из них заменить их средним арифметическим этих чисел, а большее их удвоенным произведением
Var x,_____: integer ;
Задача
Begin
Write( 'введите значение x = ' );
Readln(x);
Write( 'введите значение __ = ' );
Readln(____);
s := (x+y) div 2 ;
p := 2 *x*y;
if ______ then
begin
x := s;
y := ___
end
else
begin
_________ ;
_________ ;
end ;
writeln( ‘x = ' , ___________________);
End .
Задачи
- Задано положительное число x . Определить, является это число двузначным или нет. Выдать на экран соответствующее сообщение.
- Написать программу для решения задачи. Задано число x . Если число четное, то нарисовать на экране зеленый прямоугольник, а если нечетное, то красный круг.
- Определить принадлежит ли точка А(x, у) данной области. Ответом должно служить слово "да" или "нет" .
Задачи
- Задано число x . Определить, является ли число x кратным 3 или нет. Выдать на экран соответствующее сообщение.
- Заданы два положительных числа x и y . Определить, верно ли, что x делится на y , без остатка или нет. Выдать на экран соответствующее сообщение.
- Заданы два положительных числа x и y . Определить, верно ли, что они оба являются двузначными числами. Выдать на экран соответствующее сообщение.
Задачи
- Дано целое положительное число а . Сгенерировать случайное число x из промежутка [‑a; a) . Определить, является ли число x отрицательным числом кратным 5 или нет. Выдать на экран соответствующее сообщение.
- Заданы два числа x, y . Нарисовать в центре графического окна эллипс c горизонтальным и вертикальным размерами, равными x и y . Если x 300 , или y 220 , то выдать сообщение о том, что эллипс нарисовать нельзя.
- Дано натуральное число. Проверить, является ли оно пятизначным, у которого первая цифра равна последней, а сумма второй и четвертой является четным числом.
Задачи
- Сон Существует две фазы сна: быстрый и медленный сон. Фазы чередуются. Сначала наступает медленный сон и длится tМ минут. Фаза быстрого сна длится tB минут. Человек, разбуженный в фазу быстрого сна, чувствует себя намного бодрее, чем человек, разбуженный в фазу медленного сна. Определить состояние человека, если он лег спать в h1 часов m1 минут и был разбужен в h2 часов m2 минут.
- Две окружности Две окружности на плоскости заданы координатами центров и радиусами. Проверить, лежит ли вторая окружность целиком внутри первой и наоборот.
Задачи
- Цифра четыре Дано целое трехзначное число. Удалить из него цифру 4 , если она есть. Остальные цифры сдвинуть влево.
- Кирпич Написать программу, определяющую, пройдет ли кирпич сквозь круглое отверстие.
- Подобие треугольников Даны координаты вершин двух треугольников. Определить, являются ли треугольники подобными и если являются, определить коэффициент подобия.
Задачи
- Счастливый билет В 20 веке в СССР билеты на все виды транспорта имели четырехзначный номер. Билет считался «счастливым», если суммы двух левых и двух правых цифр числа были равны. Проверить, является ли билет счастливым.
- Задача жестянщика Можно ли из круглой заготовки вырезать две прямоугольные пластины? Необходимые размеры ввести.