IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Модули((
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Женский

Репутация: -  0  +


Мне надо сделать модуль по программе:
Program pr6;
uses crt;
var a, b, eps, I2: real; N: longint;
procedure proc(eps, a, b: real; var I2: real; var N: longint);
var I1: real;
function Intg(a, b: real; N: longint): real;
var x, s, dx: real; i: longint;
function f1(x: real): real;
begin
f1:= (1 + sqrt(x))/sqr(x)
end;
begin
s:= f1(a); x:= a;
dx:= (b-a)/N;
for i:=1 to N do begin
x:= x + dx;
s:= s + f1(x)
end;
Intg:= dx*s
end;
begin
I1:= 0;
N:= 100;
repeat
I2:= Intg(a, b, N);
if abs(I1-I2) < eps then break
else begin
I1:= I2; N:= N + 100
end
until false
end;
begin clrscr;
write('Введите a, b, eps -> ');
readln(a, b, eps);
proc(eps, a, b, I2, N);
writeln(' Результаты : ');
writeln('I2 = ', I2:12:6);
writeln('Кол-во итераций = ', N:10);
readkey
end.

Делаю что-то типа:

Unit lab6_15
interface
var a, b, eps, I2:real;
N:longint;
procedure proc(eps, a, b:real; var I2:real; var N:longint);
function Intg(a, b:real; N:longint):real;
function f1(x:real):real;
implementation
procedure proc;
var I1:real;
function Intg ;
var x, s, dx: real; i:longint;
function f1;
begin
f1:=x*exp(x)*sin(x);
end;
end.


а он 12 ошибку выводит((( понять ничё не могу.

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Во-первых, добавь точку с запятой после названия модуля, а во-вторых, где у тебя само тело функции Intg? Потерялось... Добавь его, все будет работать...

Update
Бррр... Форматирование программы в таких случаях - очень полезная вещь:

Unit lab6_15;

interface

procedure proc(eps, a, b: real; var I2: real; var N: longint);

implementation

procedure proc(eps, a, b: real; var I2: real; var N: longint);
var I1: real;

function Intg(a, b: real; N: longint): real;
var x, s, dx: real; i: longint;

function f1(x: real): real;
begin
f1:= (1 + sqrt(x))/sqr(x)
end;

begin { intg }
s:= f1(a); x:= a;
dx:= (b-a)/N;
for i:=1 to N do begin
x:= x + dx;
s:= s + f1(x)
end;
Intg:= dx*s
end; { intg }

begin { proc }
I1:= 0;
N:= 100;
repeat
I2:= Intg(a, b, N);
if abs(I1-I2) < eps then break
else begin
I1:= I2; N:= N + 100
end
until false
end; { proc }

end.
Гораздо проще разобраться, что где, правда? В Interface-секции должно быть только описание процедуры самого верхнего уровня - Proc. Вложенные в нее (Intg, а уж тем более F1) не видны "снаружи", они ж вложенные, следовательно видимы только изнутри Proc...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Женский

Репутация: -  0  +


Спасибо, теперь я поняла в чём ошибка
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.09.2025 20:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name