0 / 0 / 0
Регистрация: 17.04.2015
Сообщений: 22
1

Ошибка 'External: SIGFPE.' в программе вычисления интеграла

18.04.2015, 14:00. Показов 614. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Этот кусок - подпрограмма вычисления интеграла от функции f3:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 var i: integer; d, integr, f3: extended;
     begin
     writeln('vvedite a');
 readln(a);
 writeln('vvedite b');
 readln(b);
 writeln('vvedite n');
 readln(n);
 d:=(b-a)/n;
 integr:=0;
 for i:=1 to n do begin
  findf3(a+d*(i-1));
  integr:=integr+f3*d;
  end;
writeln('integral=',integr); end;
Сама функция ищется с помощью следующей подпрограммы:

Pascal
1
2
3
4
5
6
7
function findf3(x:extended): extended;
var  f3: extended;
   begin
     f3:=x*sin(2*x+5)/7+1 ;
 
 
end;
Вроде бы нет никаких недочётов, деления на ноль тоже не возникает. Помогите найти эту ошибку.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2015, 14:00
Ответы с готовыми решениями:

Ошибка External: SIGFPE
Выскакивает ошибка External: SIGFPE на 35 строке. alfa:=arctan(exp(1/3*ln(beta))); ...

Ошибка в программе вычисление интеграла методом прямоугольников
Доброго времени суток! Помогите пожалуйста найти ошибку в программе. Она работает, но не...

Ошибка в программе вычисления выражения
Program lab2; Var w,y,x1,c,k,b:real; Begin writeln('vvedite znachenie y'); readln(y); If...

Проект вызвал класс исключений "External:SIGFPE"
program Lab3Ex4; var m,h,s,t:real; begin writeln('Введите скорость Масяни'); ...

5
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
18.04.2015, 14:13 2
Pascal
1
2
3
4
function findf3(x:extended): extended;
begin
    findf3 := x * sin(2 * x + 5) / 7 + 1;
end;
Добавлено через 5 минут
Pascal
1
2
findf3(a+d*(i-1));
integr:=integr+f3*d;
заменить на
Pascal
1
integr := integr + findf3(a + d * (i - 1)) * d;
или
Pascal
1
2
f3 := findf3(a + d * (i - 1));
integr := integr + f3 * d;
0
0 / 0 / 0
Регистрация: 17.04.2015
Сообщений: 22
18.04.2015, 14:22  [ТС] 3
Ошибка исчезла, но теперь интеграл везде равен нулю Я не понимаю, что не так.
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
18.04.2015, 14:25 4
gamejad, вы весь код программы покажите, чтоль...
0
0 / 0 / 0
Регистрация: 17.04.2015
Сообщений: 22
18.04.2015, 14:31  [ТС] 5
Суть задания вот в чём: нужно написать программу, которая по заданному икс с помощью 4х подпрограмм ищет значения функций f1, f2, f3, f4 от этого икс, а также интеграл от a до b по заданному числу разбиений n от функции f3. Потом вывести значения f1, f2, f3, f4 и интеграла. Всё это происходит в бесконечном цикле.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
program zadanie34;
 
function findf1(x:extended): extended;
var  f1: extended;
    begin
      f1:=2*x+5 ;
      writeln('f1(',x,')=',f1);
 
end;
 var x, f3, a, b: extended; n:longint;
  function findf2(x:extended): extended;
var  f2: extended;
    begin
      f2:=x*x-3*x-7 ;
      writeln('f2(',x,')=',f2);
 
end;
function findf3(x:extended): extended;
var  f3: extended;
   begin
     f3:=x*sin(2*x+5)/7+1 ;
 
 
end;
 function findf4(x:extended): extended;
var  f4: extended;
   begin
     f4:=sqrt(x);
     writeln('f4(',x,')=',f4);
 
end;
 function integral(a, b: extended; n:longint): extended;
   var i: integer; d, integr, f3: extended;
     begin
     writeln('vvedite a');
 readln(a);
 writeln('vvedite b');
 readln(b);
 writeln('vvedite n');
 readln(n);
 d:=(b-a)/n;
 integr:=0;
 for i:=1 to n do begin
 f3:=findf3(a + d * (i - 1));
integr := integr + f3 * d;
  end;
writeln('integral=',integr); end;
 
begin
  integral(a,b,n);
  while true do begin
    writeln('vvedite x'); readln(x);
 
    findf1(x);
    findf2(x);
     findf3(x);
     writeln('f3(',x,')=',f3);
    findf4(x);
 
    readln;
  end;
  end.
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
18.04.2015, 16:19 6

Не по теме:

я честно пытался понять... но это выше моих сил)


gamejad, так. зацикленный цикл (почему он, кстати, зацикленным должен быть-то?). в нём рассчитываются fi-тые, а потом на основе f3 считается интеграл?

Добавлено через 10 минут
вот как я понял что именно вы хотели изобразить))
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
program zadanie34;
 
function FindF(const x: Extended): Extended;
var
    Result: Extended;
    function f1(): Extended;
    begin
        f1 := 2 * x + 5;
    end;
    function f2(): Extended;
    begin
        f2 := Sqr(x) - 3 * x - 7;
    end;
    function f3(): Extended;
    begin
        f3 := x * Sin(f1()) / 7 + 1;
    end;
    function f4(): Extended;
    begin
        f4 := Sqrt(x);
    end;
begin
    Write('f1(', x:0:1, ')=', f1():0:1, #9);
    Write('f2(', x:0:1, ')=', f2():0:1, #9);
    Result := f3();
    Write('f3(', x:0:1, ')=', Result:0:1, #9);
    Write('f4(', x:0:1, ')=', f4():0:1);
    WriteLn;
    FindF := Result;
end;
 
procedure Integral();
var
    i, n: LongWord;
    a, b, d, Result: Extended;
begin
    Write('a='); ReadLn(a);
    Write('b='); ReadLn(b);
    Write('n='); ReadLn(n);
    d := (b - a) / n;
    Result := 0;
    for i := 1 to n do
        Result := Result + FindF(a + d * (i - 1)) * d;
    WriteLn('integral(f3)=', Result:0:3);
end;
 
begin
    Integral();
    readln;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2015, 16:19
Помогаю со студенческими работами здесь

Ошибка в программе вычисления суммы ряда
Задание. Найти сумму ряда. Суммирование кончается, если модуль слагаемого меньше eps>0(входное...

Ошибка в программе вычисления значений функции
I. Составить программу вычисления значений функции F(x) на отрезке с шагом h. Результат...

ошибка SIGFPE
помогите найти ошибку в коде(делал на lazarus) программа должна по методу холецкого решать...

Ошибка SIGFPE (деление на ноль)
доброго времени суток! при запуске программы после компиляции возникает вышеуказанная ошибка под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru