Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 05.03.2012, 11:38   #1 (permalink)
Ксения999
Новичок
 
Регистрация: 05.03.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Вычисление суммы функционального ряда

Помогите, кто может). надо написать прогу на Pascal
Миниатюры
au-eneaiea-noiiu-ooieoeeiiaeueiiai-dhyaea.gif  
Ксения999 вне форума   Ответить с цитированием

Старый 05.03.2012, 11:38
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Вот топики, которые должны вам во многом помочь

Нахождение конечной суммы ряда
Помогите пожалуйста! C# вычисление интеграла двумя любыми способами
Составить формулу для ряда
Вычисление замечательных пределов
Вычисление интеграла. Паскаль
Вычисление значения выражения. Язык С

Старый 05.03.2012, 17:15   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Ксения999 Посмотреть сообщение
Помогите, кто может). надо написать прогу на Pascal
Да я, пожалуй, управлюсь. Тут есть некая хитрость, связанная с обходом нулевых членов членов ряда, отсюда такое условие выхода из цикла Repeat-Until.
Код:
Const
 Eps=0.00001;
 Xbeg=0.1;
 Xfin=0.8;
 DX=0.05;
VAR
 N,i,k:Word;
 S,X,a,b:Real;

Function F(z:real):real;
begin
 F:=z*Sin(Pi/4)/(1-z*2*Cos(Pi/4)+z*z);
end;

BEGIN
 N:=Round((Xfin-Xbeg)/DX);
 WriteLn('   X        Result      Number of items     Accurate value');
 For i:=0 to N do
  begin
   X:=Xbeg+DX*i;
   a:=1;
   b:=Sin(Pi/4);
   S:=0;
   k:=0;
   Repeat
    Inc(k);
    a:=a*X;
    b:=Sin(Pi*k/4);
    S:=S+a*b;
   Until (Round(a*b*1000000)<>0) and (Abs(a*b)<Eps);
   WriteLn(X:6:3,S:12:6,k:12,F(X):24:6);
  end;
 Readln;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 05.03.2012, 17:49   #3 (permalink)
Ксения999
Новичок
 
Регистрация: 05.03.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое!

a:=a*X/Sin((k-1)*Pi/4)*Sin(k*Pi/4);- вот эту строчку подчеркивает и пишет:"Division by zero" Деление на ноль))
Ксения999 вне форума   Ответить с цитированием
Старый 05.03.2012, 20:10   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Ксения999 Посмотреть сообщение
Спасибо большое!

a:=a*X/Sin((k-1)*Pi/4)*Sin(k*Pi/4);- вот эту строчку подчеркивает и пишет:"Division by zero" Деление на ноль))
Правильно пишет - уже сам по дороге с работы домой сообразил, что так некорректно. Хотя мой Free Pascal (умный больно!) сожрал и не поперхнулся. Я внес необходимые исправления в листинг - так должно работать.
Vladimir_S вне форума   Ответить с цитированием
Старый 05.03.2012, 20:56   #5 (permalink)
Ксения999
Новичок
 
Регистрация: 05.03.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Until (Round(a*b*1000000)<>0) and (Abs(a*b)<Eps); - теперь этой строкой не доволен TP. Invalid floating point operation -Недопустимая операция с плавающей запятой)))
Ксения999 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 06.03.2012, 09:53   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Ксения999 Посмотреть сообщение
Until (Round(a*b*1000000)<>0) and (Abs(a*b)<Eps); - теперь этой строкой не доволен TP. Invalid floating point operation -Недопустимая операция с плавающей запятой)))
А вот тут пока даже представить себе не могу, что ему не нравится... В двух версиях Паскаля гонял (TP-7 и Free), листинг скопипастил непосредственно с форума - и никаких проблем.
Постарайтесь дать максимальную информацию об ошибке.
Vladimir_S вне форума   Ответить с цитированием
Старый 06.03.2012, 10:43   #7 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Подтверждаю, нормально компилируется и запускается, проверял на TP7, FreePascal, PascalABC.

Вот результаты отработки PascalABC:
Код:
   X        Result      Number of items     Accurate value
 0.100    0.081411           5                0.081410
 0.150    0.130886           7                0.130886
 0.200    0.186779           7                0.186779
 0.250    0.249350           9                0.249351
 0.300    0.318642          10                0.318643
 0.350    0.394388          11                0.394386
 0.400    0.475917          13                0.475914
 0.450    0.562083          15                0.562084
 0.500    0.651235          17                0.651239
 0.550    0.741231          19                0.741227
 0.600    0.829492          23                0.829496
 0.650    0.913287          27                0.913282
 0.700    0.989844          33                0.989850
 0.750    1.056761          39                1.056772
 0.800    1.112187          51                1.112177
AlexZir вне форума   Ответить с цитированием
Старый 07.03.2012, 21:14   #8 (permalink)
Ксения999
Новичок
 
Регистрация: 05.03.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот у меня версия TP 7.1, пишет ошибку. Скачала TP 7.0 все нормально воспринял)
Миниатюры
ianeaeue.gif  
Ксения999 вне форума   Ответить с цитированием
Старый 08.03.2012, 10:33   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Ксения999 Посмотреть сообщение
Вот у меня версия TP 7.1, пишет ошибку. Скачала TP 7.0 все нормально воспринял)
Ну значит 7.1 глючный попался - что тут еще скажешь?
С праздником, Ксюша!
Vladimir_S вне форума   Ответить с цитированием
Старый 10.03.2012, 21:01   #10 (permalink)
Ксения999
Новичок
 
Регистрация: 05.03.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое!!! Вот подскажите, как надо соображать, чтоб такую прогу написать и с чего начинать?))
Ксения999 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:30.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.