![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Buka |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Женский Репутация: ![]() ![]() ![]() |
Мне надо сделать модуль по программе:
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 - 5.06.2009 17:11 |
![]() ![]() |
volvo |
![]()
Сообщение
#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... |
Buka |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Женский Репутация: ![]() ![]() ![]() |
Спасибо, теперь я поняла в чём ошибка
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 7:13 |