Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.11.2012
Сообщений: 38
1

Программа по поиску корней выдает ошибку

24.02.2015, 18:47. Показов 423. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Написал программу по поиску корней методом касательных. Программа выдает ошибку при работе на определенных функциях. На большинстве входных данных работает отлично. Похоже проблема в процедуре, но найти ошибку не получается((Заранее благодарен за ответы.

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
Program z(input,output);
const e=0.00001;a1=-0.5; b1=-0.1; a2=-1.82;b2=-1.81;a3=-4.1;b3=-4;
type
    func = function(x:real):real;
{$F+}
function f2(x:real):real;
    begin
        f2:=-1/x;
    end;
{$F-}   
{$F+}
function f3(x:real):real;
    begin
        f3:=-2*(x+1)/3;
    end;
{$F-}   
 
{$F+}
function pf2(x:real):real;
    begin
        pf2:=1/sqr(x);
    end;
{$F-}   
{$F+}
function pf3(x:real):real;
    begin
        pf3:=-2/3;
    end;
{$F-}   
Procedure root(f,g:func;a,b,eps,x:real; pf,pg:func; var fail:text);
var en,fun,fun1:real;
begin
fun:=f(x)-g(x);
fun1:=pf(x)-pg(x);
writeln(fail,x:10:14);
if(abs(eps)>e) then begin {Пока не достигнута точность}
                           x:=x-fun/fun1; {выполнить шаг метода}
                           eps:=abs(x-b); {Новая точность}
                           b:=x; {Значение границы для следующего шага}
                           root(f,g,a,b,eps,x,pf,pg,fail);
                   end
end;
 
var a,b,eps:real;fail:text;
begin
assign(fail,'f:\root_fail.pas');
rewrite(fail);
eps:=abs(a2-b2); {Текущая точность подаваемая на вход процедуре}
writeln(fail);
root(f2,f3,a2,b2,eps,a2,pf2,pf3,fail,x23);
write(fail,'Корень пересечения y2 и y3: ',x23);
close(fail);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2015, 18:47
Ответы с готовыми решениями:

При наличие корней в системе уравнений выдает ошибку
После выполнения программы (она решает систему линейных уравнений) для случая наличия корней...

Программа которая выдает платформу компьютера выдает ошибку
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так?
#include <iostream> #include <iomanip> #include <cmath> using namespace std; long Fact(short...

Программа выдает ошибку
Здравствуйте! Заранее прошу прощения, если пишу не туда. Переносим программу на другой компьютер,...

1
171 / 57 / 45
Регистрация: 21.06.2012
Сообщений: 263
25.02.2015, 05:46 2
ошибка, это какой-нибудь run-time error?

выполните программу пошагово для тех функций, на которых появляется ошибка, и смотрите чему равны переменные

или переполнение стека? У вас там рекурсия...
0
25.02.2015, 05:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2015, 05:46
Помогаю со студенческими работами здесь

Программа выдает ошибку
Друг дал прогу не могу разобрать в чем ошибка, звтро сдавать ему Dim myfile myfile = RfRufile...

Программа выдает ошибку
Писала программу. Мне надо было сделать проверку на h>0 u n>0 + я еще делала проверку на текст....

Программа выдает ошибку
Программа шифрования и дешифрования RSA. Должна быть))-набирала по примеру. Выдало ошибку, как...

Программа выдает ошибку
Задание Необходимо зашифровать и расшифровать слово ЗАБАВА с помощью матрицы-ключа unit Unit1; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru