Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 8

Вычислить непрерывную дробь

07.02.2015, 18:40. Показов 2849. Ответов 2

Студворк — интернет-сервис помощи студентам
Составить программу для вычисления с точностью eps=10-5:
Название: Screenshot_1.jpg
Просмотров: 63

Размер: 7.3 Кб
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.02.2015, 18:40
Ответы с готовыми решениями:

Вычислить цепную дробь...
Для данного вещественного х и натурального N вычислить цепную дробь: х/(1 + х/(2 + х/(3 + x/(.../(N + х))...).

Умножить дробь на дробь и получить ответ в виде несократимой дроби
Даны две дроби A/B и C/D (где А, В, С, D — натуральные числа). Умножить дробь на дробь и получить ответ в виде несократимой дроби.

Вычислить непрерывную дробь с заданной точностью
Составить программу для вычисления с точностью eps=10^-5: \sqrt{2} \approx 1+\frac{1}{2+\frac{1}{2+\frac{1}{2+...}}}

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,904
Записей в блоге: 12
08.02.2015, 16:02
Лучший ответ Сообщение было отмечено ananas1996 как решение

Решение

Как-то вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
const eps = 10E-5;
 
function fraction(n : integer) : double;
begin
  if 1 - n / Succ(n) < eps then fraction := 0
  else fraction := n + Succ(n) / fraction(Succ(n));
end;
 
begin
  writeln(1 + fraction(1):10:6);
  writeln(exp(1):10:6);
end.
, хотя тут точность будет гораздо выше, чем 10-5
1
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
09.02.2015, 06:26
Значение e = 2.718281828459…

Разложение числа e в бесконечную непрерывную дробь имеет вид:

e = [2; 1,2,1, 1,4,1, 1,6,1 , … , 1,2k,1, …].

Что можно представить формулой:

https://www.cyberforum.ru/cgi-bin/latex.cgi?e=2+\frac{1}{1+\frac{1}{2+\frac{1}{1+\frac{1}{1+\frac{1}{4+...}}}}}

Таким образом, первые десять членов последовательности приближений для e таковы:

2, 3, 8/3, 11/4, 19/7, 87/32, 106/39, 193/71, 1264/465, 1457/536, …


Заданная точность получается уже при вычислении 193/71, что соответствует решению непрерывной дроби:

e = [2; 1,2,1, 1,4,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
23
24
25
26
27
28
29
30
31
32
33
34
const
  eps = 10e-5;
 
function findE(Drobey : Integer) : Real;
 
  function Droby(N : Integer) : Real;
  begin
    Dec(Drobey);
    if Drobey = 0 then
      Droby := 0
    else
      Droby := N / (N + Droby(N + 1));
  end;
  
begin
  findE := 2 + Droby(2);
end;
 
var
  i : Integer;
  fE, D : Real;
begin
  i := 0;
  repeat
    Inc(i);
    fE := findE(i);
    WriteLn('Найдено приближенное значение e = ', fE:0:10);
    D := Abs(E - fE);
    WriteLn('Ошибка составляет: ', D:0:10);
  until D < eps;
  WriteLn('меньше допустимого eps = ', eps:0:10);
  WriteLn('Расчёт окончен.');
  WriteLn('Ответ: ', fE:0:10);
end.

Вот результат работы программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Найдено приближeнное значение e = 2.0000000000
Ошибка составляет: 0.7182818285
Найдено приближeнное значение e = 3.0000000000
Ошибка составляет: 0.2817181715
Найдено приближeнное значение e = 2.6666666667
Ошибка составляет: 0.0516151618
Найдено приближeнное значение e = 2.7272727273
Ошибка составляет: 0.0089908988
Найдено приближeнное значение e = 2.7169811321
Ошибка составляет: 0.0013006964
Найдено приближeнное значение e = 2.7184466019
Ошибка составляет: 0.0001647735
Найдено приближeнное значение e = 2.7182633318
Ошибка составляет: 0.0000184967
меньше допустимого eps = 0.0001000000
Расчёт окончен.
Ответ: 2.7182633318
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2015, 06:26
Помогаю со студенческими работами здесь

Вычислить цепную дробь
Для данного вещественного X и натурального N вычислить цепную дробь: x/(1+x/2(+x/(3+x/(.../(N+x))...);

Вычислить дробь
Нужно сделать консольную программу в которой вводятся числитель и знаменатель дроби. Выводится: знак, целая часть, сокращенные числитель и...

Цепная дробь, вычислить
Вычислить с точностью до шести знаков бесконечную дробь 1+\frac{2}{1+\frac{2}{1+\frac{2}{1+...}}} Получается , что в теле программы...

Вычислить цепную дробь по формуле
Здравствуйте, пожалуйста, помогите составить программы, которые считали бы данные выражения. Соответственно, 1ое просто вывод ответа, а...

Как написать класс «несократимая дробь» (т.е. дроби 2/4, 4/8 и т.п. есть дробь 1/2)?
Я только начанаю знакомство с C++. В классе реализовать следующие методы: конструкторы (по умолчанию, с параметрами, копирования), ввод с...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru