Есть две интересные задачи на создание алгоритмов.
1. Стандартный алгоритм перемены двух переменных Х и У местами состоит из
а) Z=X
b) X=Y
C) Y=Z
Грубо говоря он меняет местами значения Y и X с помощью вспомогательной переменной Z. Пример:
X=1 Y=2
a)Z=X (Z=1)
b)X=Y (X=2)
c)Y=Z (Y=1)
результат: X=2 Y=1
Первая задача состоит в том, чтобы составить алгоритм перемены значений двух переменных БЕЗ использования вспомогательных переменных.
2. Имеется функция MAX(), которая получает 3 числа и возвращает значение наибольшего из них. Пример:
MAX(1,2,3) = 3 MAX(5,8,8) = 8
Требуется составить алгоритм, который найдет из трех чисел a,b,c МИНИМАЛЬНОЕ, используя только вспомогательные переменные, математические операции и функцию MAX() и не сравнивая числа друг с другом (перевожу для программеров - "If(...) ... Else ..." и подобные вещи использовать нельзя).
Вопросы по поводу принципов составления алгоритмов мона задавать в личку.
З.Ы. Алгоритм функции MAX(a,b,c):
1) if (a>b) maximum=a
1.1) else maximum=b
2) if (c>MAX) maximum=c
3) return maximum
Алгоритм сравнивает a и b и присваивает значение большего из них
переменной maximum, затем проверяет, если с больше значения этой переменной, то присваивает ей значение с, если же нет, то оставляет ее без изменений.
Для примера возьмем числа 1, 2 и 3 :
1) 2 больше 1, значит maximum=2
2) 3 больше maximum, значит maximum=3