Проверте пожалуйста задачу в паскале!!! |
Здравствуйте, гость ( Вход | Регистрация )
Проверте пожалуйста задачу в паскале!!! |
smile51 |
16.11.2009, 0:32
Сообщение
#1
|
Новичок Группа: Продвинутые Сообщений: 5 Регистрация: 7.11.2009 Город: Мурманск Учебное заведение: МГТУ г. Мурманск |
Проверьте пожалуйста задачу которую я решил в паскале, так как я изучаю паскаль очень мало времени и самостоятельно!!!
Задача: Составьте программу для вычисления суммы ряда S=1/2²+3/4²+5/6²+7/8²+9/10²+... с точностью до члена ряда, не превышающего по абсолютной величине 0.001. Решение: Var s,h,d:real; i:integer; begin d:=0.001; s:=0; i:=0; repeat i:=i+1; h:=((2*i)-)1/sqr(2*i); s:=s+h; until h<d; writeln('Сумма ряда: ',s:10:10); writeln('Количество членов ряда: ',i); readln; end. Ответ выдаваемый программой: Сумма ряда: 2.1272298361 Количество членов ряда: 91 P.S. Знаю пока тока один циклический оператор, так что если можно будет её решить короче и быстрее прошу написать как ещё можно её решить, если вам будет не трудно!! Заранее огромное спасибо!!! |
Евгений М. |
16.11.2009, 2:08
Сообщение
#2
|
Студент Группа: Продвинутые Сообщений: 199 Регистрация: 6.11.2009 Город: Уфа Вы: студент |
|
Виктор |
18.11.2009, 6:52
Сообщение
#3
|
Школьник Группа: Продвинутые Сообщений: 11 Регистрация: 9.11.2009 Из: Казань Город: Казань Учебное заведение: КГТУ(КАИ) |
h:=(2*i-1)/sqr(2*i) Хочу учесть, когда говорится "абсолютная величина" - это имеется ввиду модуль числа. Здесь это конечно не нужно, но если в членах ряда будут отрицательные числа, они и так будут меньше 0.001 и цикл прерывается в вовремя. объясните,пожалуйста откуда взялся минус? |
Julia |
18.11.2009, 9:27
Сообщение
#4
|
Ассистент Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель |
Какой минус?
Формула из вашего решения, только правильно расставлены скобки. |
Виктор |
18.11.2009, 10:17
Сообщение
#5
|
Школьник Группа: Продвинутые Сообщений: 11 Регистрация: 9.11.2009 Из: Казань Город: Казань Учебное заведение: КГТУ(КАИ) |
это решение не моё, h:=(2*i-1) вот этот минус?
|
граф Монте-Кристо |
18.11.2009, 11:06
Сообщение
#6
|
Доцент Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое |
В числителе стоит арифметическая прогрессия с первым членом,равным 1 и разностью, равной 2. Следовательно, i-тый член последовательности будет таким:
a[i]=a[1]+(i-1)*d=1+(i-1)*2=2*i-1, что и стоит в программе. |
Виктор |
20.11.2009, 9:52
Сообщение
#7
|
Школьник Группа: Продвинутые Сообщений: 11 Регистрация: 9.11.2009 Из: Казань Город: Казань Учебное заведение: КГТУ(КАИ) |
а если сделать шаг не 1 а 2 то и не надо будет умножать i на 2
|
smile51 |
22.11.2009, 16:39
Сообщение
#8
|
Новичок Группа: Продвинутые Сообщений: 5 Регистрация: 7.11.2009 Город: Мурманск Учебное заведение: МГТУ г. Мурманск |
Ты имеешь ввиду сделать i:=i+2? тогда h:=i-1/sqr(i) и ответ выдаваемый программой будет:
Сумма ряда: 2.5356700972 Количество членов ряда: 182 ТАК КАКОЙ ЖЕ ПРАВЕЛЬНЫЙ???? |
Текстовая версия | Сейчас: 2.5.2024, 10:19 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru