0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 84
1

Сделать рекурсию

15.04.2018, 11:27. Показов 1066. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сделать рекурсию.

Имеется двумерное рекуррентное соотношение:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\begin{cases}x_{n+1}= x_n+y_n\\\\ y_{n+1}=y_n-x_n \end{cases}<br />

Начальные условия: x1 = 1, у1 = 1.

Напишите программу для нахождения элементов последовательностей по номеру.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
x,y,a:integer;
procedure AVR(z:integer);
var a,b:integer;
 begin
 while z>1 do
  begin
   a:=x;
   x:=x+y;
   y:=y-a;
   z:=z-1;
  end;
  writeln('X = "',x,'" ','Y = "',y,'"');
 end;
 
begin
x:=1;
y:=1;
write('Какой номер? --> ');
readln(a);
AVR(a);
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2018, 11:27
Ответы с готовыми решениями:

Из Repeat сделать рекурсию
Здравствуйте, дано код на PascalABC.NET, в нет есть цикл repeat - until, нужно переделать программу...

Дана программа. Нужно сделать рекурсию
Дана программа. Нужно сделать рекурсию при помощи процедуры. var s,k:string; i:integer; begin ...

Задача на рекурсию
Разработать рекурсивную функцию для обработки одномерного массива, которая находит количество...

Сделать рекурсию
Помогите исправить код. procedure Find(k: integer); var L,R,i,j: integer; w,x: integer;...

5
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.04.2018, 11:48 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var x,y:integer;
function F2(n:integer):integer;forward;
function F1(n:integer):integer;
begin
if n=1 then F1:=1
else F1:=F1(n-1)+F2(n-1);
end;
function F2(n:integer):integer;
begin
if n=1 then F2:=1
else F2:=F2(n-1)+F1(n-1);
end;
var n,i:integer;
begin
write('n=');
readln(n);
for i:=1 to n do
writeln(i:2,' F(',i,')=',F1(i));
end.
0
0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 84
15.04.2018, 15:23  [ТС] 3
Товарищ Puporev, вы уверены в правильности своего кода?

Просто если запустить программу дать Н значение 2 то получиться, что Х =2 и У=2, а ведь если высчитать эти значения руками получиться Х=2 У=0.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32986 / 21294 / 8178
Регистрация: 22.10.2011
Сообщений: 36,580
Записей в блоге: 8
15.04.2018, 15:31 4
в 11 строке надо поменять знак с "+" на "-":
Pascal
11
else F2:=F2(n-1)-F1(n-1);
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.04.2018, 16:43 5
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от OmegaProgrammer Посмотреть сообщение
Товарищ Puporev, вы уверены в правильности своего кода?
Конечно нет, Вам же тоже чего-то поделать нужно.
0
0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 84
17.04.2018, 16:33  [ТС] 6
Всем спасибо за участие, рекурсию я составил.
0
17.04.2018, 16:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2018, 16:33
Помогаю со студенческими работами здесь

Упражнение на рекурсию
Возвести число в квадрат, пользуясь соотношением...

Задача на рекурсию
const n=...; type vector = array of real; Описать рекурсивную функцию max (x) для определения...

Цикл на рекурсию
помогите приминить рекурсию в ф-ии. function IsValid(r: Queens; step: integer) : boolean; var...

Задание на рекурсию
Парни, помогите пожалуста....задача на рекурсию!!!! завтра надо уже показать ее... я не как не могу...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru