Другие языки программирования и технологии
Нужна помощь в составлении программы
1) Ряд фибоначчи, показать номер числа не превосходящего 300. 2) cosx=1-x^2/2!+x^4/4!-x^6/6!+..(-1)^m x^2m/(2m)! з.ы. Паскаль*
1) Ну и задачку тебе задали!
Реккурентная формула для чисел Фибоначчи достаточно проста:
F(1) = 1, F(2) = 2, для n>2 F(n) = F(n-1) + F(n-2)
Нереккурентная формула для чисел Фибоначчи выглядит так:
F(n) = [((1+V5)/2)^n - ((1-V5)/2)^n] / V5
Здесь V5 - это квадратный корень из 5. Числа х1 = (1+V5)/2 и х2 = (1-V5)/2 являются корнями x^2-x-1=0
А тебе нужно из этой жуткой формулы выразить n через F(n), то есть написать обратную функцию.
Проще массив набить: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, всё, следующий член равен 377.
А потом проверять, какому элементу массива равно введенное число, и выводить номер элемента.
const F = [1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]
var k, n, j: integer
BEGIN
k := 1;
while k > 0 do
begin
writeln ('Введите Число Фибоначчи от 1 до 233 или 0 для окончания работы программы');
readln (k);
if k = 0 then n := 0 else
for j := 1 to 12 do if F[j] := k then n := j;
writeln (n);
end;
END.
2) Еще лучше, тут заморочки с факториалами, придется отдельную функцию писать
var x, cosx, element: real
var m, k: integer
function Fact (n: integer) : integer
var i: integer
Fact := 1;
for i := 1 to n do Fact := Fact * i;
end;
BEGIN
writeln ('Введите количество элементов в ряду: ');
readln (m);
writeln ('Введите x в радианах: ');
readln (x);
cosx := 1
for k := 1 to m do
begin
element := exp (2*k*ln(x)) / Fact(2*k);
if k mod 2 = 1 then element := element*(-1);
cosx = cosx + element;
end;
END.
Где-то так.
Реккурентная формула для чисел Фибоначчи достаточно проста:
F(1) = 1, F(2) = 2, для n>2 F(n) = F(n-1) + F(n-2)
Нереккурентная формула для чисел Фибоначчи выглядит так:
F(n) = [((1+V5)/2)^n - ((1-V5)/2)^n] / V5
Здесь V5 - это квадратный корень из 5. Числа х1 = (1+V5)/2 и х2 = (1-V5)/2 являются корнями x^2-x-1=0
А тебе нужно из этой жуткой формулы выразить n через F(n), то есть написать обратную функцию.
Проще массив набить: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, всё, следующий член равен 377.
А потом проверять, какому элементу массива равно введенное число, и выводить номер элемента.
const F = [1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]
var k, n, j: integer
BEGIN
k := 1;
while k > 0 do
begin
writeln ('Введите Число Фибоначчи от 1 до 233 или 0 для окончания работы программы');
readln (k);
if k = 0 then n := 0 else
for j := 1 to 12 do if F[j] := k then n := j;
writeln (n);
end;
END.
2) Еще лучше, тут заморочки с факториалами, придется отдельную функцию писать
var x, cosx, element: real
var m, k: integer
function Fact (n: integer) : integer
var i: integer
Fact := 1;
for i := 1 to n do Fact := Fact * i;
end;
BEGIN
writeln ('Введите количество элементов в ряду: ');
readln (m);
writeln ('Введите x в радианах: ');
readln (x);
cosx := 1
for k := 1 to m do
begin
element := exp (2*k*ln(x)) / Fact(2*k);
if k mod 2 = 1 then element := element*(-1);
cosx = cosx + element;
end;
END.
Где-то так.
Похожие вопросы
- Помощь в составление программы
- Нужна помощь кто знает программу Corel Draw
- Не могу найти, где ошибка в проге и нужна помощь в составлении блоксхемы. Program zadacha1; uses crt; var i,t, j: b
- Нужна помощь в настройке программы, в математике я ноль :)
- Ребята нужна помощь в поиски программы!
- оч срочно нужна помощь!!!!надо написать программу на си для задачи
- Нужна помощь! Необходимо создать программу на С++, которая решает квадратное уравнение. Выдает ошибку после }
- Нужна помощь в редактировании программы на языке delphi, а именно часов.
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- Нужна помощь программиста, программа по работе с FTP. Подробности в пояснении.