Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
zeligena
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 18
#1

Модули и метод простой итерации - ошибка при компиляции - Turbo Pascal

15.02.2011, 21:08. Просмотров 814. Ответов 2
Метки нет (Все метки)

Здравствуйте.
В программе по теме модульного программирования выходит ошибка при компиляции второго модуля "error3: unknown indentifier". не знаю, как исправить.
помогите пожалуйста
(задание - методом простой итерации с помощью процедурного типа уточнить корни уравнений ln(x)-x+1.8 и exp(x)-x*x*x. В первом модуле описать процедурный тип и относящуюся к нему подпрограмму, а во втором - основную подпрограмму)
Заранее благодарна

модули
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
unit mod1;
interface
implementation
  type
    fun=function(m:real):real;
    {$F+}
    function uravnenie1(x:real):real;
      begin uravnenie1:=ln(x)-x+1.8; end;
    function uravnenie2(x:real):real;
      begin Uravnenie2:=exp(x)-x*x*x; end;
    {$f-}
end.
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
unit mod2;
interface
uses mod1;
type fun=function(m:real):real;
   function uravnenie1(x:real):real;
   function uravnenie2(x:real):real;
   function iterazia(f:fun; a,b:real):real;
   const eps=0.0001;
  var x,y,z:real;
implementation
  begin
    y:=f(a); [B]{в этой строке выходит ошибка}[/B]
    repeat
      x:=(a+b)/2;
      z:=f(b);
      if y*z<0 then b:=x
               else begin
                      a:=x;
                      y:=z;
                    end;
    until (b-a)<=eps;
    x:=(a+b)/2;
    Iterazia:=x;
  end.
основная программа
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program modul;
uses mod1,mod2;
 var a,b,iks:real;
 begin
   Writeln ('введите интервал для первого уравнения ln(x)-x+1.8');
   readln(a,b);
   writeln('корень уравнения ln(x)-x+1.8 =');
   Iks:=iterazia(uravnenie1,a,b);
   writeln(Iks:7:5);
   Writeln ('введите интервал для второго уравнения exp(x)-x*x*x');
   readln(a,b);
   writeln('корень уравнения exp(x)-x*x*x =');
   Iks:=iterazia(uravnenie2,a,b)
   writeln(Iks:7:2);
   writeln('для выхода нажмите ENTER');
   readln;
 end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2011, 21:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Модули и метод простой итерации - ошибка при компиляции (Turbo Pascal):

Вычислить корни уравнения, используя метод простой итерации, метод Ньютона - Turbo Pascal
2 1) Вычислить корни уравнения 2*(e^x)-5*x-2 с точностью 0.000001, используя метод простой итерации 2) Решить это же уравнение методом...

Метод простой итерации - Turbo Pascal
В общем проблема следующая, нужно написать задачу на решение системы методом простой итерации. Был бы очень признателен, если бы помогли....

Метод простой итерации, решение системы. - Turbo Pascal
Люди добры, есть две системы, записанные в матричном виде. Нужно решить методом простой итерации.

Метод простой итерации - Pascal
Ребят помогите составить программу на языке Паскаль. Нужно сначала проверить функцию сходящаяся она или расходящаяся! Потом уже рассчитать...

Задача на метод простой итерации - Pascal
решить методом простой итерации с точностью E=0.001 систему уравнений 2.56*x1-4.9*x2-18.3*x3=21.1 21.3*x1-2.8*x2-5.3*x3=31.8 ...

Метод простой итерации - найти ошибки в коде - Pascal
Program zadacha1; type matriza= array of real; Var b,prob,x,x1: array of real; i,j:real; e:real; n:integer; Procedure...

2
Puporev
Модератор
52814 / 40625 / 13878
Регистрация: 18.05.2008
Сообщений: 94,212
16.02.2011, 09:46 #2
zeligena, Если тип описан в первом модуле, его больше нигде описывать не нужно, ни в других модулях, ни в основной программе.

Добавлено через 16 минут
Еще есть неточности...
{F+}{F-} не обязательно...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
unit mod1;
interface
type fun=function(m:real):real;
function uravnenie1(x:real):real;
function uravnenie2(x:real):real;
implementation
function uravnenie1(x:real):real;
begin
uravnenie1:=ln(x)-x+1.8;
end;
function uravnenie2(x:real):real;
begin
Uravnenie2:=exp(x)-x*x*x;
end;
end.
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
unit mod2;
interface
uses mod1;
function iterazia(f:fun;a,b:real):real;
const eps=0.0001;
var x,y,z:real;
implementation
function iterazia(f:fun;a,b:real):real;
begin
y:=f(a);
repeat
x:=(a+b)/2;
z:=f(b);
if y*z<0 then b:=x
else
 begin
  a:=x;
  y:=z;
 end;
until (b-a)<=eps;
x:=(a+b)/2;
Iterazia:=x;
end;
end.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program modul;
uses crt,mod1,mod2;
var a,b,iks:real;
begin
clrscr;
Writeln ('введите интервал для первого уравнения ln(x)-x+1.8');
readln(a,b);
writeln('корень уравнения ln(x)-x+1.8 =');
Iks:=iterazia(uravnenie1,a,b);
writeln(Iks:7:5);
Writeln ('введите интервал для второго уравнения exp(x)-x*x*x');
readln(a,b);
writeln('корень уравнения exp(x)-x*x*x =');
Iks:=iterazia(uravnenie2,a,b);
writeln(Iks:7:2);
writeln('для выхода нажмите ENTER');
readln;
end.
1
zeligena
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 18
16.02.2011, 16:47  [ТС] #3
Большое спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2011, 16:47
Привет! Вот еще темы с ответами:

Метод итерации и метод Ньютона (метод касательных) - Turbo Pascal
Помогите решить методом итерации и методом Ньютона выражение привиденное ниже: e(в степени Х) - e(в степени (-x)) - 2 = 0

Нахождение корня методом простой итерации - Pascal
Доброе время суток всем. Помогите разобраться пожалуйста! Мне нужно получить значение переменной B, решив нелинейное уравнение...

Решения СЛАУ методом простой итерации - Turbo Pascal
Код решения СЛАУ методом простой итерации. Program Metod_Prostoy_Iteracii ; Uses crt; const n=3; e=0.001; Type matrix= array of...

Решить нелинейное уравнение методом простой итерации - Turbo Pascal
Помогите, пожалуйста, решить уравнение и записать его код в паскале. Очень нужно x^3+cos(8*x)=0 Три точности: E_1=0.00001,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.