Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Задача 47. Использование вспомогательных алгоритмов. Поиск минимального из двух значений
Условие задачи. Даны вещественные числа a, b, c. Вычислить F = min (a, b)/(2* min (a /2, c / b)) + min (a, b, c)/ min (a + b,2* c). Для вычисления F требуется нахождение минимума из двух значений и минимума из трех значений, причем несколько раз для разных наборов значений. Теоретически данное вычисление можно реализовать через ряд последовательных и вложенных условных структур, где выбор наименьшего из трех производится рядом вложенных попарных сравнений, однако такой алгоритм будет очень сильно ветвящимся, громоздким и относительно сложным для программной реализации. При этом алгоритм определения минимума из трех аргументов можно свести к вложенному обращению к алгоритму определения минимума из двух аргументов: min(a, b, c) = min(min(a,b),c), так как если сначала найти минимум из первых двух чисел, а затем сравнить его с третьим и определить наименьшее из них, то это и будет наименьшее из трех чисел. В результате требуется 5 раз найти минимальное из различных пар чисел. Правило выбора меньшего значения из двух чисел a и b можно сформулировать следующим образом: если a < b, то возвращаем значение a, если a > b, то возвращаем значение b, если a = b, то возвращаем значение, равное a (и, следовательно, также равное b). Поскольку при равенстве чисел a и b все равно, какое именно из значений возвращать, то правило выбора можно переформулировать: если a < b, то возвращаем значение a, иначе (если a ≥ b) возвращаем значение b. Оформим данное правило в виде отдельного поименованного алгоритма, получающего на входе из внешнего (обращающегося к нему) алгоритма значения чисел a и b, и возвращающего при своем завершении наименьшее из полученных значений в вызывавший алгоритм. Для большей определенности, в процессе выполнения наименьшее значение будет сохраняться в отдельной переменной min. В качестве «имени» алгоритма 47.1 поиска наименьшего значения из двух чисел будем использовать «min2». Запишем алгоритм с использованием введенных обозначений: Структурированная запись алгоритма 47.1 1. Получить от вызывающего алгоритма значения переменных a и b. 2. Если a < b, то min = a, иначе min = b. 3. Передать вызывающему алгоритму значение переменной min. Схема алгоритма 47.1
Для того, чтобы с помощью этого алгоритма найти минимум для разных пар данных, воспользуемся алгоритмической конструкцией «обращение к ранее определенному поименованному алгоритму», при этом будем при каждом обращении передавать на вход алгоритма соответствующие значения. Алгоритмы, возвращающие некоторое конкретное значение непосредственно в точку обращения к ним, часто называют алгоритмами функций. Данные, передаваемые из вызывающего алгоритма к ранее определенному называют аргументами (или параметрами) алгоритма, возвращаемые (для алгоритмов функций) – результатом работы алгоритма. Для определенности будем считать, что порядок перечисления аргументов при определении поименованного алгоритма и при обращении к нему совпадает: первое значение при обращении будет соответствовать первому значению при определении алгоритма.
Для дальнейшего сокращения записи обращений к алгоритму функции (и приближении к математической форме записи, а также к форме, принятой во многих языках программирования), будем обозначать такое обращение как имя_алгоритма(передаваемый_аргумент1, передаваемый_аргумент2, …). При этом использование такого обращения в выражении означает использование в данном выражении значения, возвращаемого алгоритмом-функцией. Например, var1 = alg1(arg1, arg2) будет означать «присвоить переменной var1 результат, возвращаемый алгоритмом alg1, если ему в качестве первого аргумента было передано значение переменной arg1, а в качестве второго – значение переменной arg2. С использованием данных обозначений запишем алгоритм решения исходно поставленной задачи:
|
|||||
Последнее изменение этой страницы: 2021-04-12; просмотров: 147; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.2.78 (0.006 с.) |