• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Вычисление суммы функционального ряда

Ксения999

Ученик
Регистрация
5 Мар 2012
Сообщения
5
Реакции
0
Баллы
0
Вычисление суммы функционального ряда

Помогите, кто может). надо написать прогу на Pascal
 

Вложения

  • Вычисление суммы функционального ряда.GIF
    Вычисление суммы функционального ряда.GIF
    11 KB · Просмотры: 788
Помогите, кто может). надо написать прогу на 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.
 
Спасибо большое!

a:=a*X/Sin((k-1)*Pi/4)*Sin(k*Pi/4);- вот эту строчку подчеркивает и пишет:"Division by zero" Деление на ноль))
 
Спасибо большое!

a:=a*X/Sin((k-1)*Pi/4)*Sin(k*Pi/4);- вот эту строчку подчеркивает и пишет:"Division by zero" Деление на ноль))
Правильно пишет - уже сам по дороге с работы домой сообразил, что так некорректно. Хотя мой Free Pascal (умный больно!) сожрал и не поперхнулся. Я внес необходимые исправления в листинг - так должно работать.
 
Until (Round(a*b*1000000)<>0) and (Abs(a*b)<Eps); - теперь этой строкой не доволен TP. Invalid floating point operation -Недопустимая операция с плавающей запятой)))
 
Until (Round(a*b*1000000)<>0) and (Abs(a*b)<Eps); - теперь этой строкой не доволен TP. Invalid floating point operation -Недопустимая операция с плавающей запятой)))
А вот тут пока даже представить себе не могу, что ему не нравится... В двух версиях Паскаля гонял (TP-7 и Free), листинг скопипастил непосредственно с форума - и никаких проблем.
Постарайтесь дать максимальную информацию об ошибке.
 
Подтверждаю, нормально компилируется и запускается, проверял на 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
 
Вот у меня версия TP 7.1, пишет ошибку. Скачала TP 7.0 все нормально воспринял)
 

Вложения

  • Паскаль.GIF
    Паскаль.GIF
    12.9 KB · Просмотры: 318
Спасибо большое!!! Вот подскажите, как надо соображать, чтоб такую прогу написать и с чего начинать?))
 
Спасибо большое!!! Вот подскажите, как надо соображать, чтоб такую прогу написать и с чего начинать?))
Ох, ну и вопрос! Право, не знаю, что и сказать. Просто всегда любил математику, ну и плюс многолетний опыт программирования - как-то оно само в башке возникает :tehnari_ru_325:.
 
Назад
Сверху