IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Вычисление суммы ряда с заданной точностью
Single
сообщение 3.12.2007 11:45
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Anton

Репутация: -  0  +


Помогите пожалуйста решить задачу на вычесление суммы ряда с заданной точностью по таким вот формулам
cos(i)*sin(i)+i*x/(i*(2*i))+abs(i+x*ln(e))

Сама точность 5*exp(-6*ln(10))

Наклепал вот такую задачу, но она неверная, помогите исправить пожалуйста недочёты в ней

program lab4;
uses crt;
const e=2.71;
label t1;
var
a,x,s,ecp:real;
n,i:integer;
begin
clrscr;
ecp:=5*exp(-6*ln(10));
writeln('tocnost=',ecp:1:6,'');
a:=x;
x:=0.71;
n:=6;
s:=x;
i:=0;
t1: for i:=1 to n do
begin
a:=cos(i)*sin(i)+i*x/(i*(2*i))+abs(i+x*ln(e));
s:=s+a;
i:=i+1;
writeln('chusla progresii=',a:6:2,'');
end;
if a<ecp then goto t1;
writeln('kolichestvo chlenov=',i);
writeln('suma chleniv=',s:6:3,'');
readkey;
end.



Результат нужно выдать в таком порядке
• Точность =
• Член 1=
• Член 2=
Сумма чисел прогресии =

Сообщение отредактировано: Lapp - 3.12.2007 13:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 3.12.2007 13:47
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Single, пользуйся тегами пожалуйста.

1. А чему должно быть равно x по условию? у тебя оно по умолчанию равно нулю..
2. Когда вычисляешь точность лучше пользоваться не for (тем более с goto), a while'ом:
while (abs(a)>ecp) and (i<=6) do


Попробуй пока так..

Сообщение отредактировано: Айра - 3.12.2007 13:48
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.12.2007 13:58
Сообщение #3


Гость






Цитата
ecp:=5*exp(-6*ln(10));
Это обязательно? Может проще задать тоже константой:
Const ecp = 5E-6;
?

Кстати, зачем ты вычисляешь ln(e) все время? Он же равен 1-це. Ты бы формулу исходную привел, а не переработанную тобой... (теги [ sup ] и [ /sup ] без пробелов для написания показателей степени)
 К началу страницы 
+ Ответить 
Single
сообщение 3.12.2007 21:41
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Anton

Репутация: -  0  +


По условию задачи нужно делать с помощью меток.
х=0,71

Точность задана так 5*10-6
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 3.12.2007 22:35
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Цитата
По условию задачи нужно делать с помощью меток.

blink.gif Сразу вспомнились слова нашего декана: "Основное свойство оператора перехода: квалификация программиста обратно пропорциональна количеству операторов перехода, которые он использует в своих программах".. ну да ладно, давай разбираться. smile.gif

1. точность, как сказал volvo, лучше задать в виде
Const ecp = 5E-6;

2. за х сорри.. смутило a:=х (можно просто a:=0.0), а дальше была немного невнимательна.. wink.gif
3.
for i:=1 to n do
begin
...
i:=i+1; // <- изменение параметра цикла for "вручную" крайне нежелательно,
// а у меня вообще не проходит компиляцию..
...
end;


Для чего тебе это изменение? ..нужно, чтоб значение i менялось по какому-то правилу (например только нечетные) или что?

Сообщение отредактировано: Айра - 3.12.2007 22:38
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rian
сообщение 4.12.2007 0:16
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 394
Пол: Мужской

Репутация: -  9  +


Цитата(Айра @ 3.12.2007 21:35) *

Для чего тебе это изменение? ..нужно, чтоб значение i менялось по какому-то правилу (например только нечетные) или что?


По тому, что там написано, он использует эту переменную для подсчёта проходов цикла (если правильно догадался) ,а => количества элементов в ряду. Но количество проходов всегда постоянно и зависит только от n?-оно равно n.

А точность это, по сути, величина дробной части? или нет.


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Single
сообщение 4.12.2007 0:38
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Anton

Репутация: -  0  +


Насколько я понял, препод сказал, что член может быть только один т.к точность у меня очень маленькая. А вот как это всё правильно изобразить, что то немогу понять... А ещё n показывает, кол-во членов, хотел обмануть препода но невышло. Вот как то от этого нужно избавится sad.gif

Сообщение отредактировано: Single - 4.12.2007 0:47
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rian
сообщение 4.12.2007 19:52
Сообщение #8


Знаток
****

Группа: Пользователи
Сообщений: 394
Пол: Мужской

Репутация: -  9  +


Народ, а всё таки, как считать точность, если она с первого элемента больше заданной?
Этот ряд не есть сходящимся. Когда мы считали Pi, то число приближалось к нужному с каждым проходом и дробная часть росла 14-141-1415-14159 и т.д. , а тут сразу(2.51748224420 blink.gif )


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.12.2007 20:11
Сообщение #9


Гость






Цитата
Этот ряд не есть сходящимся.
Да ты можешь написать нормально, ряд-то какой? Формулу приведи, тебя же просили, как можно тебе помочь, если ты там что-то намудрил, а ПОТОМ выкладываешь результат своих раздумий? Ты выложи УСЛОВИЕ (в нормальном виде, а не в Паскалевской записи)
 К началу страницы 
+ Ответить 
Rian
сообщение 4.12.2007 21:40
Сообщение #10


Знаток
****

Группа: Пользователи
Сообщений: 394
Пол: Мужской

Репутация: -  9  +


Цитата(volvo @ 4.12.2007 19:11) *

Да ты можешь написать нормально, ряд-то какой? Формулу приведи, тебя же просили, как можно тебе помочь, если ты там что-то намудрил, а ПОТОМ выкладываешь результат своих раздумий? Ты выложи УСЛОВИЕ (в нормальном виде, а не в Паскалевской записи)


volvo, сорри, а к кому относилась разгромная статья?
Мой вариант проги:

program lab4;
uses crt;
const e=2.71;
var
a,x,s,ecp:real;
i:integer;
begin
clrscr;
ecp:=5e-6;
a:=0;
x:=0.71;
s:=x;
i:=1;
while (abs(a-trunc(a) )>ecp)and(i<=5)or(a=0) do
begin
a:=cos(i)*sin(i)+i*x/(i*(2*i))+abs(i+x*ln(e));{формула}
s:=s+a;{сумма ряда}
i:=i+1;{количество элементов ряда-изначально один}
writeln('chusla progresii=',a:6:12,'');
end;
writeln('tocnost=',ecp:1:6,'');
writeln('kolichestvo chlenov=',i);
writeln('suma chleniv=',s:6:3,'');
readkey;
end.


В принципе да, в ряду получается только один член
Может с другими значениями и точностью что-получше будет?


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 4.12.2007 21:59
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Опять ошибочка вышла wink.gif
Удалила текст сообщения..

Сообщение отредактировано: Айра - 4.12.2007 22:01
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.12.2007 22:20
Сообщение #12


Гость






$#%... YYY.gif

Объясни мне,
Цитата
Мой вариант проги:
считающей ЧТО??? Что вы выдумываете-то постоянно, не зная задания? Что это, например: ln(e)? Это что, НАДО СЧИТАТЬ? С каких пор? Устроили непонятно что... Синус в градусах или в радианах задан? Тебе известно? По условию - нет. Считает он... Ну, и что, посчитал?

Я бы все-таки дождался вменяемой реакции автора (а не просто отписки, что он сделал в прошлый раз), прежде чем вообще что-то постить...
 К началу страницы 
+ Ответить 
Karakum
сообщение 14.12.2007 21:53
Сообщение #13





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Помогите пожалуйста с задачей.(не стал создавать новую тему потому-что задача на эту же тему,если что сорри).
Прикрепленное изображение
Заранее благодарен.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Single
сообщение 14.12.2007 22:05
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Anton

Репутация: -  0  +


Всем спасибо, задачу уже дотумкал сам smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.06.2025 19:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"