Информатика и ИКТ
9 класс

       

§ 4.5. Программирование разветвляющихся алгоритмов

Ключевые слова:

  • условный оператор
  • сокращённая форма условного оператора
  • составной оператор
  • вложенные ветвления

4.5.1. Условный оператор

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор. Его общий вид:

if <условие> then <оператор_1> else <оператор_2>

Для записи неполных ветвлений используется сокращённая форма условного оператора:

if <условие> then <оператор>

Слова if — then — else переводятся с английского на русский язык как если — то — иначе, что полностью соответствует записи ветвления на алгоритмическом языке.

Перед else знак «;» не ставится.

В качестве условий используются логические выражения:

  • простые — записанные с помощью операций отношения;
  • сложные — записанные с помощью логических операций.

Пример. Запишем на языке Паскаль рассмотренный в п. 3.4.2 (пример 8) алгоритм определения принадлежности точки х отрезку [а; Ь].

Пример. Воспользуемся сокращённой формой оператора ветвления для записи на языке Паскаль рассмотренного в п. 3.4.2 (пример 9) алгоритма присваивания переменной у значения наибольшей из трёх величин а, b и с.

Дополните эту программу так, чтобы её выполнение приводило к присваиванию переменной у значения большей из четырёх величин а,Ь,с и d.

4.5.2. Составной оператор

В условном операторе и после then, и после else можно использовать только один оператор. Если при некотором условии требуется выполнить определённую последовательность операторов, то их объединяют в один составной оператор.

Конструкция вида

begin <последовательность операторов> end

называется составным оператором.

Пример. Алгоритм решения квадратного уравнения вам хорошо известен. Запишем соответствующую программу на языке Паскаль.

4.5.3. Многообразие способов записи ветвлений

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

При использовании таких сложных конструкций (их ещё называют вложенными ветвлениями) следует иметь в виду, что else всегда относится к ближайшему оператору if.

Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 3.4.2 (пример 10) алгоритма решения линейного уравнения.

Как правило, для решения одной и той же задачи можно предложить несколько алгоритмов. Убедимся в этом, записав программу решения линейного уравнения, не прибегая к вложенным ветвлениям.

Возможно, второй вариант программы покажется вам более наглядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.

Используйте вложенные ветвления для записи программы, определяющей принадлежность точки х отрезку [а; Ь].

Самое главное

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор:

if <условие> then <оператор_1> else <оператор_2>

Для записи неполных ветвлений используется сокращённый условный оператор:

if <условие> then <оператор>

Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:

begin <последовательность операторов> end.

Вопросы и задания

  1. Как на языке Паскаль записывается полное и неполное ветвление?
  2. Является ли условным оператором последовательность символов?
      а) if х<у then х:=0 else read (у)
      б) if х>=у then х:=0; у:=0 else write (z)
      в) if х<у <z then a:=a+l
  3. Что такое составной оператор? Для чего он используется в условном операторе?
  4. Используя составной оператор, упростите следующий фрагмент программы:
      if a>b then с:=1;
      if a>b then d:=2;
      if a<=b then c:=3;
      if a<=b then d:=4
  5. Дано трёхзначное число. Напишите программу, которая определяет:
      а) есть ли среди цифр заданного целого трёхзначного числа одинаковые;


      б) является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.

  6. Даны две точки в плоской прямоугольной системе координат. Напишите программу, определяющую, которая из точек находится ближе к началу координат.

  7. Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний).

  8. Имеются данные о количестве полных лет трёх призёров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призёра.
  9. Напишите программу, определяющую, лежит ли точка А(ха, уа):
      а) на прямой у = kx + 1, над ней или под ней;

      б) на окружности х2 + у2 = r2, над ней или под ней. Примеры входных данных и соответствующих им выходных данных разработайте самостоятельно.
  10. Напишите программу, которая производит обмен значений переменных х и y, если х больше y.

  11. Дан условный оператор:

    Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3?

  12. Напишите программу, вычисляющую значение функции:

  13. Составьте программу для решения задачи № 20 к § 3.4 (определение дня недели).
  14. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введённым координатам двух полей (k, l) и (m, n) определяет, являются ли эти поля полями одного цвета.

  15. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а — случайное число, меньшее 100). Ответ пользователя проверяется и комментируется.

Рейтинг@Mail.ru