Условный оператор. Разветвляющиеся алгоритмы

  • doc
  • 29.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 78. Практическая работа по теме Условный оператор.doc

Практическая работа №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