Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2014, 11:03   #1
Максимилианн
Новичок
Джуниор
 
Регистрация: 03.05.2014
Сообщений: 3
По умолчанию Паскаль. Вычислить сумму ряда. (помогите найти ошибку в программе)

Суммирование рядов.
Код:
Program q;
const n=1000; e=0.0001;
label met;
var x,y,s,xn,xk,dx,c:real;
k,i:integer;
begin 
write('xn='); readln(xn);
write('xk='); readln(xk);
write('dx='); readln(dx);
x:=xn;
while x<=xk do 
begin 
y:= (exp(x)+exp(-x))/2;
c:=x;
s:=1+(sqr(x)/2);
for i:=1 to n do 
begin 
c:=c*sqr(x)/i;
if abs(c)<e then goto met;
s:=s+c;
end;
met:writeln('x=',x,'  ', 'y=',y,'  ', 's=', s,'  ', 'i=',i);
x:=x+dx;
end; 
end.
Изображения
Тип файла: jpg Новый точечный рисунок.jpg (5.3 Кб, 123 просмотров)

Последний раз редактировалось Stilet; 03.05.2014 в 11:43.
Максимилианн вне форума Ответить с цитированием
Старый 03.05.2014, 11:28   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Вообще, лучше бы полностью переписать программу.


1. Не используйте оператор goto.

2. советую до цикла задать s = 1, а в цикле считать член ряда и прибавлять его к сумме.
3. Обойтись можно и одним циклом. Замените while на for, а второй уберите.

Последний раз редактировалось Вадим Мошев; 03.05.2014 в 11:35.
Вадим Мошев вне форума Ответить с цитированием
Старый 03.05.2014, 11:49   #3
Максимилианн
Новичок
Джуниор
 
Регистрация: 03.05.2014
Сообщений: 3
По умолчанию

на самом деле ничего не понимаю в паскале, кроме самых банальных операторов. и все это сделал по шаблону
Максимилианн вне форума Ответить с цитированием
Старый 03.05.2014, 12:17   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Я ошибся, второй цикл всё же нужен. ну ладно... а вы на кого учитесь? Может вам имеет смысл обратиться за платной помощью, чтобы вам решили эти задачи, а вы их могли только сдать?
Вадим Мошев вне форума Ответить с цитированием
Старый 03.05.2014, 12:30   #5
Максимилианн
Новичок
Джуниор
 
Регистрация: 03.05.2014
Сообщений: 3
По умолчанию

учусь на строителя. с этим заданием вроде-как должны суметь справиться, вот и пытаюсь.. думал если уж мозги совсем сплавятся буду покупать
Максимилианн вне форума Ответить с цитированием
Старый 03.05.2014, 12:39   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Если потребуется платная помощь, обращайтесь на адрес:
vadimFreelance {(собаka} yandex {точка>} ru
За одно укажите другие средства связи с вами (Skype/ICQ), если таковые имеются.
Вадим Мошев вне форума Ответить с цитированием
Старый 03.05.2014, 13:27   #7
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Я упорно не понимаю, каким боком там стоит 1-ка..
Однако..
Код:
ReadLn(x);

k := x;
s := 1;
for i := 2 to 2*n do begin
	k := k * x / i;
	s := s+k
end;
Второй я не понимаю..
Можно просто вычислить y = (e^2-e^(-2) )/ 2.. и всё..
Poma][a вне форума Ответить с цитированием
Старый 03.05.2014, 13:38   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сначала разберитесь что вообще в задании нужно сделать. Есть некий ряд, интервал для аргумента и приращение аргумента. Вычислить значение суммы ряда для всех значений аргумента на заданном интервале с заданным приращением? Для чего функция y(x)?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.05.2014, 15:10   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Для чего функция y(x)?
тоже думал об этом.
Не проверял, но подозреваю, что эта функция для проверки точности ряда - данный ряд как раз и вычисляет значение представленной функции.

Нужно вычислять ряд, нужно вычислить функцию и сравнить результаты.

Ещё раз повторю, чтобы акцентировать внимание - данное утверждение - это мои догадки, я их не проверял и поэтому ручаться за истинность не возьмусь!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.05.2014, 15:21   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Я уверен в том, что функция y(x) нужна для проверки результата. Ещё раз повторю, y(x) - оригинал, а s(x) разложение этой функции в ряд. При достаточно большом n различия между y(x) и s(x) должны быть "не заметны", то есть совпадать друг с другом до знака 4-5 после запятой, хотя здесь ещё аргумент играет роль, если я не ошибаюсь. При неизменном n и увеличивающимся x разница y(x) и s(x) возрастает.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить сумму ряда (Паскаль) Luci4er Помощь студентам 0 19.05.2013 13:48
вычислить по формуле (найти сумму ряда) aless23 Паскаль, Turbo Pascal, PascalABC.NET 1 03.11.2011 10:24
Турбо паскаль:программа находящая сумму ряда(необходимо найти ошибку в коде) Galchonok Помощь студентам 5 12.06.2010 15:10
Нужно посчитать сумму ряда. В программе ошибка. Пожалуйста помогите найти Рита Белова Помощь студентам 5 05.12.2009 13:07