Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 12.02.2021
Сообщений: 45

Не могу найти ошибку!

24.02.2021, 09:19. Показов 2882. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: Алгоритм вычисления функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n, при n<=1,
F(n) = 3 + F(n / 3), когда n > 1 и делится на 3,
F(n) = n + F(n + 3) , когда n > 1 и не делится на 3.
Назовите минимальное значение n, для которого F(n) > 100.

Моя программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var n,i:integer;
function F( n: integer ): integer;
var a: array[1..100] of integer;
begin
  a[1] := 1;
  for i:=2 to n do
    if i mod 3 = 0 then
      a[i] := 3 + a[i div 3]
    else
      a[i] := i + a[i+3];
  F := a[n];
end;
begin
  while F(n)<=100 do
  n:=n+1;
  writeln(n);
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.02.2021, 09:19
Ответы с готовыми решениями:

Не могу найти ошибку
Перевел программу из Бэйсика для построения графиков, косинусы вроде чертит, а синусы ни в какую, переменная m не меняется просто. ...

Не могу найти ошибку
Здравствуйте. Я не могу понять, почему моя программа проходит мои тесты, но не проходит проверку на сайте. Выдают такую ошибку: ...

Не могу найти ошибку
Если a ≥ 10 , то вычислить и напечатать значение функции z=ln(x), если x&gt;1и z=exp(x), если x&lt;-1. Если a&lt;10, g= sin(x) +x*x*x . ...

8
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.02.2021, 09:42
Здесь ошибки не тлько у Вас но и в условии задачи, нужно не F(n+3), a F(n-3).
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
function F( n: integer ): integer;
begin
if n<=1 then F:=n
else
 if n mod 3=0 then F:=3+F(n div 3)
 else f:=n+F(n-3)
end;
var n:integer;
begin
n:=1;
while F(n)<=100 do n:=n+1;
writeln(n); 
end.
Для проверки можете написать
Pascal
1
2
for n:=1 to 25 do
write(F(n):4);
0
0 / 0 / 0
Регистрация: 12.02.2021
Сообщений: 45
24.02.2021, 10:07  [ТС]
Автор (Поляков) этого задания утверждает, что опечатки в задании нет. Пробовал так же писать программу, выдает ответ: Ошибка: Слишком много вложенных вызовов подпрограмм (Program1.pas, строка 6). Поэтому перешел на динамическое программирование. Верный ответ - 81. Но как его получить????
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.02.2021, 10:45
Цитата Сообщение от Иванин Посмотреть сообщение
опечатки в задании нет.
Есть. Например при n=3 функция е может найти значение при n=6, а только при n<n-2.

Добавлено через 1 минуту
Можете приложить скрин этого примера из книги Полякова?
0
0 / 0 / 0
Регистрация: 12.02.2021
Сообщений: 45
24.02.2021, 10:56  [ТС]
на сайте Полякова (http://kpolyakov.spb.ru/school/ege.htm) в задании №16 задача №77.
Миниатюры
Не могу найти ошибку!  
0
0 / 0 / 0
Регистрация: 12.02.2021
Сообщений: 45
24.02.2021, 10:57  [ТС]
там целый блок таких задач!
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
24.02.2021, 11:04
я тоже согласен с Puporev, что в задании ошибка.

вот это
Цитата Сообщение от Иванин Посмотреть сообщение
Задание: Алгоритм вычисления функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n, при n<=1,
F(n) = 3 + F(n / 3), когда n > 1 и делится на 3,
F(n) = n + F(n + 3) , когда n > 1 и не делится на 3.
явно даёт расходящуюся функцию (значение F при N не кратно 3 вычислить невозможно, сумма уходит в бесконечность).

ну, например, найдите, чему равно F(n) при n=2

F(2) = 2 + F(2+3) = 2 + F(5) = 2 + 5 + F(8) = 2+5+8+F(11) = 2+5+8+11+F(14) = 2+5+8+11+14+F(17) = дальше уже понятно или продолжить вычисление?
0
0 / 0 / 0
Регистрация: 12.02.2021
Сообщений: 45
24.02.2021, 11:21  [ТС]
в принципе понятно, т.е. с помощью программы это сделать нельзя! Спасибо!

Добавлено через 14 минут
А как там получилось 81?
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
24.02.2021, 11:25
Цитата Сообщение от Иванин Посмотреть сообщение
в принципе понятно, т.е. с помощью программы это сделать нельзя! Спасибо!
нельзя решить задачу, которая имеет ошибочное условие.
Ты посмотри задания, которые разобраны в этом твоём ege16.doc на первых 23 листах. Там всё правильно и логично.
И тут какой-то ИДИОТ придумал задания, которые не имеют решения.
Пиши на форум (или в телеграм канал) - общайся с авторами этих "чудес".


Цитата Сообщение от Иванин Посмотреть сообщение
Верный ответ - 81
простите, а с чего это вдруг 81 - это верный ответ?

F(81) = 3 + F(27) = 3 + 3 + F(9) = 3 + 3 + 3 + F(3)=3 + 3 + 3 + 3 + F(1)=3 + 3 + 3 + 3 + 1 = 13
таким образом
F(81)=13

Не пытайся найти логику там, где её нет. Это ошибочные задания и решить их нельзя.
Ни программно, ни логически, ни математически, никак.

я же тебе говорю, F(2) равно бесконечности. Поэтому, формально, при n=2 функция F(2) больше 100 (хотя, конечно, сравнивать 100 и бесконечность - так себе занятие!!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2021, 11:25
Помогаю со студенческими работами здесь

Не могу найти ошибку в программе
Не могу найти ошибку program TAB1; var i:integer; A:array of real; B:array of real; begin i:=0; while i&lt;=4 do B:=A;

Не могу найти ошибку в коде
После запуска программа требует ввода данных с клавиатуры, хотя все данные должны считываться из текстовых файлов. Где ошибка - для меня...

Не могу найти ошибку в коде
PROGRAM LAB3a; { СЕЛЕКТИВНАЯ ОБРАБОТКА МАССИВОВ } USES CRT; CONST A=16; B=12; TYPE MAS=ARRAY OF INTEGER; VAR O, M :...

Не могу найти ошибку в программе
Не могу найти ошибку в программе, только начали изучать паскаль. program zadanie; uses crt; var x,v,a,f,d:integer;...

не могу найти ошибку в задаче
Вот условие и задача..не могу разобраться почему не хочет записывать 4 строки,записывает в файл только одну и пишет программа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru