Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

asd / корзина / задания / Лабораторная работа _ 2

.doc
Скачиваний:
16
Добавлен:
09.03.2016
Размер:
1.38 Mб
Скачать

Лабораторная работа № 2

Программирование

разветвляющихся вычислительных процессов.

Цель работы:

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

Краткая теория:

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

Фрагмент разветвляющегося алгоритма приведен на рис. 1.

Рис. 1. Фрагмент разветвляющегося алгоритма.

Под условие здесь понимается некоторое логическое выражение, которое после вычисления может принять одно из двух значений: «истина» (TRUE) или «ложь» (FALSE).

Функционирование алгоритма сводится к следующему. Если результат проверки условия положительный «Да», т.е. логическое выражение принимает значение «истина», то выполняется «Действие 1». В противном случае («Нет»), т.е. логическое выражение равно «ложь», выполняется «Действие 2». Каждая из ветвей алгоритма («Действия 1» или «Действие 2») может в свою очередь содержать несколько выполняемых операций.

Оператор, позволяющий реализовать разветвление алгоритма, в большинстве языков программирования называется оператором выбора IF. Полная форма (шаблон) оператора выбора имеет следующую структуру:

If <логическое выражение> then <оператор 1> else <оператор 2>;

Если значение логического выражения равно TRUE, то выполняется <оператор 1>. В противном случае - <оператор 2>.

Частным случаем разветвленной структуры алгоритма является конструкция «обход» (рис. 2.), т.е. тогда, когда одна ветвь не содержит никаких действий.

Рис. 2. Частный случай разветвления.

В этом случае используется сокращенная форма оператора выбора («короткий» IF):

If <логическое выражение> then <оператор 1>;

Пример.

Вычислить значение функции U по одной из формул в зависимости от заданных условий. Исходные данные принимают произвольные значения и задаются по вводу. Результат вычислений выводится на печать или экран монитора.

Следует заметить, что при значениях х<-0.5 и х >3.5 функция U не определена. Кроме того, деление на у при у = 0 на интервале I, вычисление ln(y) при у 0 на интервале II и извлечение квадратного корня при х2 ‑2*у <0 на интервале III невозможны.

Вариант блок-схемы алгоритма решения задачи приведен на рис. 3.

Рис. 3. Один из вариантов блок-схемы алгоритма решения задачи.

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

Контрольные вопросы.

1. Какой алгоритм называется разветвляющимся?

2. Какова конструкция:

  • полного оператора IF,

  • «короткого» оператора IF.

Содержание задания.

Cоставить блок-схему алгоритма и программу вычисления значения функции U, зависящей от нескольких аргументов, значения которых выбираются произвольно и задаются по вводу.

Варианты заданий.

  1. U = max(a, b), где

  1. U = min(a, b), где

  1. U = max(a, b), где

  1. U = min(a, b), где

  1. U = max(a, b), где

  1. U = max(a, b), где

  1. U = max(a, b), где

  1. U = max(a, b), где

  1. U = min(a, b), где

  1. U = max(a, b), где

  1. U = min(a, b), где

  1. U = min(a, b), где

  1. U = max(a, min(b, c)), где

  1. U = min(max(a, b), c), где

  1. U = max(min(a, b), c), где

  1. U = min(max(a, b), c), где

  1. U = max(min(a, b); min(b, c)), где

  1. где

  1. где

  1. где