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

Найти cos, используя разложение в ряд

25.06.2020, 12:00. Показов 720. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выполнить вычисления, записав в ответе k знаков после запятой (взять n членов
ряда) с использованием соответствующего разложения: найти cos1, используя разложение в ряд:
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.06.2020, 12:00
Ответы с готовыми решениями:

Алгоритмы многократной точности
Выполнить вычисления,записав в ответе k знаков после запятой (взять n членов ряда) с использованием соответствующего разложения,найти...

Алгоритмы многократной точности
Помогите пожалуйста подправить эту задачу. В ней нужно добавить правильный подсчет суммы. K-ое количество знаков после запятой в этой...

Оптимизация многократной проверки (if)
Есть код на Python3. Принимаются числа только от 1 до 5 (включительно). ... choice = int(input(" > ")) if choice is...

4
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.06.2020, 12:15
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var x,t,s:real;
    n,i:integer;
begin
write('n=');
readln(n);
x:=1;
t:=1;
s:=t;
for i:=1 to n do
 begin
  t:=-t*x*x/(2*i-1)/(2*i);
  s:=s+t;
 end;
writeln('S=',s:0:4);
writeln('cos(x)=',cos(x):0:4);
end.
1
0 / 0 / 0
Регистрация: 25.06.2020
Сообщений: 26
25.06.2020, 15:13  [ТС]
Puporev, здесь еще нужно ввести количество знаков после запятой в результате: могу ввести и 100 и 345 и более.

Нужна "длинная" арифметика
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.06.2020, 15:20
Цитата Сообщение от cyberpopa Посмотреть сообщение
найти cos1, используя разложение в ряд:
Где здесь про длинную арифметику?
0
Модератор
10435 / 5723 / 3405
Регистрация: 17.08.2012
Сообщений: 17,422
26.06.2020, 05:05
cyberpopa, на будущее: пожалуйста, пишите задание полностью, А то как-то неприятно получается: стараешься Вам помочь, а тут на тебе, как ногой под дых: вдруг выясняется, что твои старания и на фиг не нужны, а время на помощь потрачено зря.

Переделал для Вас свою программу из этой темы: Выполнить вычисления, записав в ответе k знаков после запятой (взять n членов ряда).

С Вашим рядом с точностью дела обстоят значительно лучше, поскольку ошибка вычислений будет примерно 1/(2n)!, a (2n)! увеличением n растёт очень быстро, и результат будет неточным только при слишком малом n. Замечание: в программе частное пишется прямо в делимое, в данном случае это вполне возможно. Программа для FPC:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var
  cos1, a: array of shortint; //массивы для результата и члена ряда
  i, j, t, d, //счётчики, остаток
  k, n, //количество разрядов, количество слагаемых
  z: integer; //знак слагаемого
begin
  write('k = ');
  readln(k);
  write('n = ');
  readln(n);
  SetLength(cos1, k + 1); //устанавливаем длину массивов
  cos1[0] := 1; //помещаем длинную 1 (первое слагаемое) в массив cos1, 1 в старший разряд
  SetLength(a, k + 1); //устанавливаем длину массивов
  a[0] := 1; //помещаем длинную 1 (первое слагаемое) в массив a, 1 в старший разряд
  for j := 1 to k do cos1[j] := 0; //и 0 в остальные
  z := +1; //знак первого слагаемого - плюс
  //#### цикл по слагаемым
  for j := 1 to n do
    begin
      //вычисляем слагаемое a(j): делим a(j-1) на 2j(2j-1)
      //%%%% цикл деления a/(2n(2n-1))
      for t := 2 * j - 1 to 2 * j do //делим сначала на 2 * j - 1, потом на 2 * j
        begin
          d := 0; //нулевой остаток
          for i := 0 to k do //цикл деления на t
            begin
              d := d * 10 + a[i]; //приписываем к остатку очередной разряд
              a[i] := d div t; //записываем частное прямо в делимое
              d := d mod t //находим остаток от деления
            end
        end;
      //%%%% конец цикла деления a/(2n(2n-1))
      //прибавляем очередное слагаемое к результату
      z := -z; //вычисляем знак слагаемого номер j
      //++++ цикл сложения cos1 и слагаемого номер j
      for i := k downto 0 do
        begin
          cos1[i] += z * a[i]; //складываем разряды
          if not (cos1[i] in [0..9]) then //если разряд не в диапазоне [0..9]
            begin
              cos1[i] -= 10 * z; //корректируем разряд
              cos1[i - 1] += z //распространяем перенос или заём
            end
        end
      //++++ конец цикла сложения cos1 и слагаемого номер j
    end;
  //#### конец цикла по слагаемым
  //печатаем результат
  write(cos1[0], '.');
  for i := 1 to k do write(cos1[i]);
  readln
end.
По сути, получилось то же самое, что и у Puporev'а, только с применением длинной арифметики. И, благодаря различным моим ухищрениям, программа поучилась сравнительно короткой. Теперь видите разницу между длинной и обычной арифметикой?

Разбирайтесь.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2020, 05:05
Помогаю со студенческими работами здесь

Определение накопителей с однократной и многократной записью?
Определение накопителей однократной CD-WORM/CD-R и многократной записью CD-R

Десериализация XML файла с многократной вложенностью
Здравствуйте. Столкнулся с проблемой при десериализации XML файла. Облазил кучу форумов и документации, подскажите хоть направление...

Десериализация XML файла с многократной вложенностью
Здравствуйте. Возникла следующая проблема. Есть XML файл с ограниченным количеством типовых блоков. Например в файле ниже может...

Тормоза после многократной передачи данных на сервис
Добрый день! Имеется клиент-сервисное приложение EntityFramework + WCF + WPF. Так вот.. при многократной отсылке запросов на выборку...

Приложение падает при многократной загрузке фото/видео
Привет. сделал 2 класса которое выводит на монитор видео(с помощью mplayer) и "фотошоу"(на nswindow), работают...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
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 Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
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. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru