Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2011, 22:10   #1
Константинн
Пользователь
 
Регистрация: 26.02.2011
Сообщений: 14
Вопрос СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ МОДУЛЕЙ

Задание:
Согласно индивидуальному заданию разработать модуль, содержащий подпрограмму, которая численно решает определенный интеграл.
Методом прямоугольников.
Условие:
Функция для интегрирования ---1/sqrt(9+x^2)ж
Интервал [a,b]----[0,2]
Число разбиений -----100
*********************************** **********************
Модуль
*********************************** **********************
unit Integ;
interface
function Myf(x:real):real;
function IntegMyf(a,b:real;n:integer):real;
implementation
function Myf(x:real):real;
begin
Myf:=1/sqrt(9+x*x);
end;
function IntegMyf(a,b:real;n:integer):real;
var S,dx,x:real;
begin
dx:=(a+b)/n;
x:=a;S:=0;
while (x<=b) do
begin
S:=S+dx*Myf(x);
x:=x+dx;
end;
IntegMyf:=S;
end;
end.
*********************************** **********************
Гл.программа
*********************************** **********************
uses Integ;
type Tfunc=function(x:real):real;
function Integral(a,b:real;n:integer;var f:Tfunc):real;
begin
writeln('Rezultat=',Integral(0,2,10 0,Myf));
END.
*********************************** **********************
Ты блин умник который удалил тему ,если тебе не чем заняться иди в кс
пуляй!!!!!!!!!!Нет бы помочь ......
*********************************** **********************
Ошибка invalid variable reference

Последний раз редактировалось Константинн; 26.02.2011 в 22:13.
Константинн вне форума Ответить с цитированием
Старый 26.02.2011, 22:36   #2
Саня
Пользователь
 
Регистрация: 08.01.2007
Сообщений: 30
По умолчанию

И что требуется?.. В каком модуле не описана переменная?..
Я не волшебник, я только учусь!
Саня вне форума Ответить с цитированием
Старый 26.02.2011, 22:40   #3
Константинн
Пользователь
 
Регистрация: 26.02.2011
Сообщений: 14
По умолчанию

Сделать так чтобы всё работало т.е В Главной программе использовался мой собственный модуль)))))
Думаю надо тока под править так то вроде всё правильно)))
Константинн вне форума Ответить с цитированием
Старый 26.02.2011, 22:46   #4
Саня
Пользователь
 
Регистрация: 08.01.2007
Сообщений: 30
По умолчанию

Я так понимаю код здесь не весь:
Цитата:
Гл.программа
*********************************** **********************
uses Integ;
type Tfunc=function(x:real):real;
function Integral(a,b:real;n:integer;var f:Tfunc):real;
begin
writeln('Rezultat=',Integral(0,2,10 0,Myf));
END.
*********************************** **********************
Описание Integral вижу, а вот реализация где?

Модули вообще есть? Выкладывай...
Я не волшебник, я только учусь!

Последний раз редактировалось Саня; 26.02.2011 в 22:54. Причина: Дополнение
Саня вне форума Ответить с цитированием
Старый 26.02.2011, 23:07   #5
Константинн
Пользователь
 
Регистрация: 26.02.2011
Сообщений: 14
По умолчанию

Нам сказали что вот типа такого что то надо )))
я не знаю как подправить
модуль я вроде написал ))))
вот условие из лабы

Постановка задачи
Согласно индивидуальному заданию разработать модуль, содержащий подпрограмму, которая реализует численный метод, например нахождение интеграла для любой подинтегральной функции или решения уравнения любого вида. Подпрограмма, реализующая численный метод, должна получать имя функции как фактический параметр. Разработанную процедуру протестировать на двух различных функциях вида y=f(x), выбранных студентом самостоятельно.
Константинн вне форума Ответить с цитированием
Старый 26.02.2011, 23:53   #6
Саня
Пользователь
 
Регистрация: 08.01.2007
Сообщений: 30
По умолчанию

Думаю в задании от тебя хотели вот этого:


Код:
program main;

uses
  Unit1 in 'Unit1.pas';
  // Та функция, которую отправляем как параметр
  function MyFunction(x: real): real;
  begin
    Myf := 1/sqrt(9+x*x);
  end;
begin
  writeln('Resultat=', Integral(0,2,100,MyFunction));
  readln;
end.
*********************************** ************
Код:
unit Unit1;

interface

type
  TFunc = function(x: real): real;  
  function Integral(a,b: real; n: integer; Func: TFunc):real;

implementation

function Integral(a,b: real; n: integer; Func: TFunc):real;
var
  S,dx,x: real;
begin
  dx := (a+b)/n;
  x := a;
  S := 0;
  while (x<=b) do
  begin
    S := S+dx*Func(x);
    x := x+dx;
  end;
  Integral := S;
end;

end.

Ты бы выспался! А то задания плохо понимаешь!
Я не волшебник, я только учусь!
Саня вне форума Ответить с цитированием
Старый 27.02.2011, 02:18   #7
Константинн
Пользователь
 
Регистрация: 26.02.2011
Сообщений: 14
По умолчанию

Спасибо тебе )))
Я просто действительно не понял задания)))
Честное слово очень помог)))
Благодарю!
Теперь остальные задания из этой лабы хоть сделаю)))
Константинн вне форума Ответить с цитированием
Старый 27.02.2011, 02:56   #8
Константинн
Пользователь
 
Регистрация: 26.02.2011
Сообщений: 14
По умолчанию

Только добавил {$F+} и {$F-}
program main;

uses
Unit1 in 'Unit1.pas';
// Та функция, которую отправляем как параметр
{$F+}
function MyFunction(x: real): real;
begin
Myf := 1/sqrt(9+x*x);
end;
{$F-}
begin
writeln('Resultat=', Integral(0,2,100,MyFunction));
readln;
end.


Спасибо)))
Константинн вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание пользовательских функций Lain. Помощь студентам 0 23.12.2010 23:23
Создание пользовательских модулей. Динамическая память p-alex Помощь студентам 3 20.01.2010 17:14
Создание пользовательских меню Наталья Ивановна Microsoft Office Excel 2 26.05.2009 19:27
Создание и подключение модулей Claster Общие вопросы Delphi 4 28.02.2009 12:14