Enter | Дата: Понедельник, 2012-10-22, 10:02 AM | Сообщение # 1 |
Бакалавр
Группа: Проверенные
Сообщений: 174
Репутация: 4
Замечания: 0%
Статус: Offline
| Дано x = 5, а y = 3. function F(x, y) { if (y > 2) then { x := x * F(x, y -1); } else { x := 7 * x * x - 1; } return x; } Подскажите, на что умножается икс в 3-ей строчке программы?
Микроблоггер
метан+пропик, 1 курс
|
|
| |
Somatica | Дата: Понедельник, 2012-10-22, 3:20 PM | Сообщение # 2 |
Академик
Группа: Проверенные
Сообщений: 1268
Репутация: 114
Замечания: 0%
Статус: Offline
Город: Москва
| На результат выполнения функции F при значениях x=5 и y=2. Рекурсия же.
МГТУ им. Н. Э. Баумана, ИУ8, КБ
Консультант по вопросам поступления в МГТУ им. Н.Э. Баумана✔
|
|
| |
Enter | Дата: Понедельник, 2012-10-22, 11:51 PM | Сообщение # 3 |
Бакалавр
Группа: Проверенные
Сообщений: 174
Репутация: 4
Замечания: 0%
Статус: Offline
| При таком маленьком куске программы можно определить, что получится на выходе? Как? спасибо
Микроблоггер
метан+пропик, 1 курс
|
|
| |
Somatica | Дата: Вторник, 2012-10-23, 0:55 AM | Сообщение # 4 |
Академик
Группа: Проверенные
Сообщений: 1268
Репутация: 114
Замечания: 0%
Статус: Offline
Город: Москва
| Элементарно.
1. х=5, y=3, 3>2 => "ветка" then
function F(x, y) { if (y > 2) then { x := x * F(x, y -1); // x:=5*F(5, 3 -1) ...
2. х=5, y=3-1, 2=2 => "ветка" else
function F(x, y) { if (y > 2) then { x := x * F(x, y -1); } else { x := 7 * x * x - 1; // x:=7*5*5-1=174 } return x; }
Получили х=174. Возвращаемся в первый "кусок": x:=5*174=870
Мозги-то надо тренировать...
МГТУ им. Н. Э. Баумана, ИУ8, КБ
Консультант по вопросам поступления в МГТУ им. Н.Э. Баумана✔
|
|
| |