Практическая работа №2
Тема: Условный оператор. Разветвляющиеся алгоритмы
Цель: закрепление навыков по использованию полного и неполного условного оператора и созданию логических выражений.
Вид работы: фронтальная.
Время выполнения: 2 часа.
Теоретический материал:
Условный оператор может использоваться в полной и краткой формах.
Полная форма имеет следующий вид:
if условие then оператор1 else оператор2;
Здесь оператор1 и оператор2 – простые или составные операторы. Составной оператор – это оператор, состоящий из двух и более операторов, он заключается в операторные скобки Begin End. Условие – любое логическое выражение. Перед else знак ”;” никогда не ставится. Если логическое выражение истинно, выполняется оператор1, если ложно, выполняется оператор2. В качестве оператора1, оператора2 могут быть также условные операторы. Краткая форма условного оператора:
if условие then оператор;
Ветка else отсутствует.
Общий вид оператора безусловного перехода: GOTO n; где n – метка. Оператор перехода передаёт управление некоторой точке программы.
Задания:
1) Напишите программу для определения чётно ли вводимое число.
2) Разработать алгоритм расчета выражения
3) Разработать алгоритм, который бы по введенному числу из диапазона [1..7] выводил на экран название соответствующего дня недели.
4) С клавиатуры вводятся три произвольных числа. Составьте программу, которая проверяет, могут ли эти числа составить длины сторон треугольника.
5) Разработать алгоритм вычисления выражения вида:
Ход работы:
Для каждой задачи в тетрадь оформите блок-схему и листинг программы
1. Первая задача решается в три этапа. Сначала вводится с клавиатуры произвольное число, затем определяется чётность, выводится сообщение “чётное” или “нечётное”. Определение чётности можно осуществить двумя способами: 1) возвести -1 в степень n, т.е (-1)n, где n – введённое с клавиатуры число, если это выражение будет положительным, то число n – чётное, если отрицательным, то n – нечётное; 2) вычислить остаток от деления на 2, если остаток равен 1, то число n – нечётное; если остаток равен 0, то n – чётное. Первый способ решения подразумевает использование дополнительных операций по возведению в степень, поэтому алгоритм будет составлен для второго способа. В алгоритме будут использоваться следующие блоки: ввод числа (параллелограмм), ветвление (ромб) и вывод сообщения (параллелограмм). В программе для решения этой задачи описывается одна переменная целого типа – n. В основном блоке необходимо организовать вывод на экран сообщения о вводе некоторого числа (оператор write или writeln), затем с помощью процедуры read(n) или readln(n) осуществить ввод значения. Для проверки чётности используется полный условный оператор (if-then-else). Условие запишется следующим образом: n mod 2=0, где mod – операция получения остатка при делении числа n на 2. Полностью условный оператор будет выглядеть так:
if n mod 2=0 then writeln(‘чётное’) else writeln(‘нечётное’);
На основе вышеизложенного материала строится блок-схема и пишется программа.
2. Вторая задача решается с учётом
ОДЗ: знаменатель не должен быть равен нулю, т.е. .
С клавиатуры вводится некоторое значение x, затем проверяется знаменатель и в зависимости от того
равен он нулю или нет, выдаётся сообщение ‘знаменатель равен нулю’ или вычисляется
значение R. Блок-схема будет носить
разветвлённый характер. В программе сначала реализуется ввод значения x, затем условный оператор:
if then writeln(‘знаменатель равен нулю’)
else begin ; writeln(r: 6: 2); end;
К ветке else относятся два оператора, поэтому они объединяются операторными скобками begin end. Оператором writeln(r: 6: 2) производится форматный вывод вещественного числа r.
3. Для решения третей задачи удобнее всего использовать оператор выбора (case), т.к. необходимо произвести вывод сообщения в зависимости от 7 значений. Применение условного оператора привело бы к усложнению программы (см. рис. 1).
Рисунок 1 – Блок-схема задачи
По данной блок-схеме можно составить программу с использованием операторов ввода (для номера дня), выбора и вывода на экран названия дня недели. Можно добавить в оператор case ещё ветку else, которая является необязательно, для того, чтобы выдавать сообщение о неправильном введённом номере.
4. С геометрической точки зрения, три числа, например a, b и c, могут являться сторонами треугольника, если сумма двух любых сторон меньше третьей или площадь треугольника, составленного этими тремя сторонами, больше нуля. Рассмотрим первый случай. Составляется условие с применением операции логического умножения – and:
if (a+b<c) and (b+c<a) and (a+c<b) then writeln(‘ стороны треугольника’);
Выражение будет возвращать значение true, тогда и только тогда, когда истинными будут все операнды составляющие выражение. Другими словами каждая сторона по отдельности должна быть меньше суммы двух других сторон.
5. Значение x вводится с клавиатуры и, в зависимости от того меньше оно нуля или нет, y присваивается косинус или синус от x. Запишется это с применением условного оператора следующим образом:
if (x>=0) then y:=sin(x) else y:=cos(x);
Затем значение y выводится на экран с использованием форматного вывода (указание количества позиций на всё число и после точки).
Контрольные вопросы и задания:
1) В каких случаях используется условный оператор?
2) Охарактеризуйте логические операции.
3) Определите приоритет каждой логической операции.
Составьте таблицу истинности для выражения A and B xor not C.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.