Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
axbor
0 / 0 / 0
Регистрация: 06.01.2019
Сообщений: 15
1

Составить программу, вычисляющую сумму

13.01.2019, 10:45. Просмотров 924. Ответов 5
Метки нет (Все метки)

Дано натуральное число н(<100).Составить программу, вычисляющую сумму

C:=sqr(н)/(1*2) + sqr(н)/(2*3*4)+ sqr(н)/(3*4*5*6)+… +sqr(н)/(н*(н+1)*…*2*н)
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2019, 10:45
Ответы с готовыми решениями:

Составить программу вычисляющую куб максимального элемента в массиве
Привет, у меня тут дилемма . Изучаю паскаль в 9 классе. Дали задание - &quot;Составить программу...

Составить программу, вычисляющую все углы равнобедерной трапеции
составить программу вычисляющую все углы равнобедерной трапеции, все стороны трапеции ведётся...

Составить программу, вычисляющую наименьшее общее кратное четырех чисел
Составить программу, вычисляющую наименьшее общее кратное четырех заданных с клавиатуры чисел...

Написать программу, вычисляющую сумму тех элементов матрицы А размером 10х10
Написать программу, вычисляющую сумму тех элементов матрицы А размером 10х10, номера строк и...

Разработать программу, вычисляющую сумму значений заданной функции F(x,y) в пяти различных точках
Разработать программу, вычисляющую сумму значений заданной функции F(x,y) в пяти различных точках....

5
Cyborg Drone
Модератор
5742 / 3356 / 2507
Регистрация: 17.08.2012
Сообщений: 10,779
18.01.2019, 23:58 2
В формуле ошибка.
0
axbor
0 / 0 / 0
Регистрация: 06.01.2019
Сообщений: 15
19.01.2019, 14:14  [ТС] 3
незнаю задание вроде таким был
0
Cyborg Drone
Модератор
5742 / 3356 / 2507
Регистрация: 17.08.2012
Сообщений: 10,779
20.01.2019, 01:17 4
А, кажется, догадался. Имеется ввиду

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
C=\frac{\sqrt{1}}{1\cdot 2}+\frac{\sqrt{2}}{2\cdot 3\cdot 4}+\frac{\sqrt{3}}{3\cdot 4\cdot 5\cdot 6}+...+\frac{\sqrt{n}}{n\cdot (n+1)\cdot ...\cdot 2\cdot n}<br />

Если так, то пустяковая задачка.

Только вот не ясно. Верно ли я понял, что "sqr" - это корень квадратный?

Не по теме:

Что значит - "не знаю"? Вам же решение нужно, значит, Вы и должны знать задание.

0
axbor
0 / 0 / 0
Регистрация: 06.01.2019
Сообщений: 15
20.01.2019, 15:54  [ТС] 5
sqr: Это квадрат
0
Cyborg Drone
Модератор
5742 / 3356 / 2507
Регистрация: 17.08.2012
Сообщений: 10,779
21.01.2019, 05:53 6
Лучший ответ Сообщение было отмечено axbor как решение

Решение

Ага, то есть, вот так:

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
C=\frac{1^2}{1\cdot 2}+\frac{2^2}{2\cdot 3\cdot 4}+\frac{3^2}{3\cdot 4\cdot 5\cdot 6}+...+\frac{n^2}{n\cdot (n+1)\cdot ...\cdot 2\cdot n}=\sum_{k=1}^{n}\frac{k^2}{\left( \prod_{t=k}^{2k}t\right)}=\sum_{k=1}^{n}a_k<br />

Это уже интереснее. Получается, что каждое слагаемое можно сократить на k2.

Найдём рекуррентное соотношение для членов ряда:

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a_1=\frac{1}{2};\ \ a_k=\frac{k^2}{\left( \prod_{t=k}^{2k}t\right)}=\frac{1}{\left( 2\prod_{t=k+1}^{2k-1}t\right)};\ \ a_{k-1}=\frac{1}{\left( 2\prod_{t=k}^{2k-3}t\right)};<br />

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\frac{a_k}{a_{k-1}}=\frac{2\prod_{t=k}^{2k-3}t}{2\prod_{t=k+1}^{2k-1}t}=\frac{k}{(2k-1)(2k-2)}=\frac{k}{4(k-0.5)(k-1)};\ \ \Rightarrow \ \ a_k=\frac{ka_{k-1}}{4(k-0.5)(k-1)}<br />

Первый член известен, последующий член выражен через предыдущий, рекуррентное соотношение найдено.

Пишем программу.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  k, n: integer;
  a, c: real;
 
begin
  repeat {ввод n с проверкой}
    write('n > 0;  n = ');
    readln(n)
  until n > 0;
  a := 0.5; {первый член ряда}
  c := a; {складываем первый член ряда с суммой}
  for k := 2 to n do {находим и добавляем к сумме остальные члены ряда}
    begin
      a := k * a / 4 / (k - 0.5) / (k - 1); {находим очередной член ряда}
      c := c + a {Добавляем его к сумме}
    end;
  write('c = ', c:0:15) {печатаем результат}
end.
На всякий случай, не оптимальное решение (без рекуррентного соотношения), это если Вы не сможете объяснить, как мною было получено рекуррентное соотношение:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  k, t, n: integer;
  a, c: real;
 
begin
  repeat {ввод n с проверкой}
    write('n > 0;  n = ');
    readln(n)
  until n > 0;
  c := 0; {сумма пока равна 0}
  for k := 1 to n do {находим и добавляем к сумме члены ряда}
    begin
      a := k * k; {k^2}
      for t := k to 2 * k do a := a / t; {k^2/(k*(k+1)*...*2k)}
      c := c + a
    end;
  write('c = ', c:0:15) {печатаем результат}
end.
Для сравнения:
При n=100000 первая программа выдаёт результат мгновенно, а эта - думает секунд 20.
Если n=1000000, то первая программа выдаёт результат почти мгновенно, а эта... Я покурил, кофейку попил, а результата так и не дождался.

Короче, если поймёте, как мне удалось ускорить вычисления, наивысший балл Вам будет обеспечен.
1
21.01.2019, 05:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2019, 05:53

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

Составить программу, которая вычисляет сумму элементов двумерного массива
Составить программу, которая вычисляет сумму тех элементов двумерного массива, номера строк и...

Составить программу нахождения произведения и сумму элементов одномерного массива
Составить программу нахождения произведения и сумму элементов одномерного массива


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru