Решите Номер 3 Пожалуйста , СРОЧНО плиз ХЕЛП

0 голосов
30 просмотров

Решите Номер 3 Пожалуйста , СРОЧНО плиз ХЕЛП


image

Информатика (26 баллов) | 30 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
function F(n:integer):integer:=(n>100?n-10:F(F(n+4)));
begin
  Print(F(90))  // как пример
end.

Но вся вычислительная проблема в том, что данная функция имеет тенденцию к зацикливанию, что через некоторое время вызывает переполнение программного стека и аварийное завершение программы.
Вот пример того, как это происходит:
F(90)=F(F(94))
F(94)=F(F(98))
F(98)=F(F(102)); F(102)=92; F(98)=F(92);
F(92)=F(F(96));
F(96)=F(F(100)); F(100)=90; F(96)=F(90) и мы вернулись к началу.

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

(142k баллов)
0

а можешь написать саму как бы всю програму чтоб в паскале я написал

0

А что программу? Добавьте begin Writeln(F(F(90))) end. И запускайте в PascalABC.NET 3.1

0

И убедитесь, что выполнение слетит по переполнению стека.

0

Нет...не так... begin Writeln(F(90)) end.

0

У Вас же задание было написать функцию, а не программу.

0

не получается , напиши полностью эту функцию плиз

0

Функция и так была написана полностью. Сейчас поправил, написал полную программу с вызовом функции.