Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
11 / 11 / 9
Регистрация: 06.03.2011
Сообщений: 67
1

Создать модуль использовать процедурный тип.

07.03.2011, 22:37. Просмотров 689. Ответов 3
Метки нет (Все метки)

Постановка задачи:
Согласно индивидуальному заданию разработать модуль, содержащий подпрограмму, которая реализует численный метод, например нахождение интеграла для любой подинтегральной функции или решения уравнения любого вида. Подпрограмма, реализующая численный метод, должна получать имя функции как фактический параметр. Разработанную процедуру протестировать на двух различных функциях вида y=f(x), выбранных студентом самостоятельно.
************************************************************ *********************
Задание:
Нахождение экстремумов функций.
************************************************************ *********************
Моя функция по варианту---- Вид функции y=f(x).
y=2x^2-x^4.

Вид экстремума,который должен получиться.
Минимум в точке 0,0.

Диапазон изменения аргумента [a, b].
[-2; 0,8].

«Грубое» значение шага h.
0,15. {Не знаю как его использовать в моей наброске не использовалось}.

Точность вычисления экстремума.
eps=10^(-4).
************************************************************ ********************
Способы реализации предложенные на выбор.
************************************************************ ********************

************************************************************ ********************
Мои попытки.
************************************************************ ********************
Модуль

Код
unit unit3;
interface
const
t=0.618;
c=0.2e-6;
eps=1e-4;
type
   TFunc=function(x:real):real;
   function MaxMin(a,b:real;Func:TFunc):real;
implementation
Function MaxMin(a,b:real;Func:Tfunc):real;
var X,x1,x2,Bufa,Bufb:real;
begin
repeat
begin
  x1:=a+(1-t)*(b-a);
   x2:=a+t*(b-a);
 if(Func(x1)>Func(x2))
 then
 begin
  a:=x1;
   b:=b;
 end
else
 begin
  a:=a;
   b:=x2;
 end;
  end;
 until (abs(a+b)<=eps);
MaxMin:=abs(a+b);
end;
end.
Главная программа.

Код
program main;
uses Unit3,crt;
{$F+}
function MyFunction(x:real):real;
  begin
Myfunction:=2*sqr(x)-sqr(x)*sqr(x);
end;
{$F-}
begin
clrscr;
  writeln('Resultat=',MaxMin(-2,0.8,MyFunction):4:3);
  readln;
  end.
************************************************************ *********************
Ошибки считает Для всех функиций значение ноль помогите исправить.
*
*
*
*
*
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2011, 22:37
Ответы с готовыми решениями:

Процедурный тип
Прямые, заданные выражениями (L1, L2, L3) линейных функций пересекаются. Найти точки их пересечения...

Процедурный тип
помогите пожалуйста переделать программу...нужно чтобы все процедуры и функции работали с помощью...

Процедурный тип
Методом перебора с шагом 0.05 определить минимумы функций f(x)= e^x - x^3 на отрезке и g(x)= x^3 -...

Табулирование функций.Процедурный тип
С помощью одной процедуры протабулировать сумму, разность, произведение пар функций на отрезке с...

__________________
3
Модератор
63322 / 47038 / 32423
Регистрация: 18.05.2008
Сообщений: 114,021
08.03.2011, 07:21 2
Цитата Сообщение от Константинн Посмотреть сообщение
Для всех функиций значение ноль
А для каких еще, кроме этой?
Цитата Сообщение от Константинн Посмотреть сообщение
y=2x^2-x^4
1
11 / 11 / 9
Регистрация: 06.03.2011
Сообщений: 67
08.03.2011, 22:41  [ТС] 3
Вот в главной программе подставляю любую другую функцию и параметры для неё.
Считает для всех 0.00.

В модуле метод №2 который в первом сообщении описан.

Функции.


Добавлено через 4 часа 5 минут
?
помогите
?

Добавлено через 3 часа 56 минут
?((((
0
Модератор
63322 / 47038 / 32423
Регистрация: 18.05.2008
Сообщений: 114,021
09.03.2011, 08:07 4
Константинн, Посмотрите эту тему, пост номер 5. Там как раз ваша функция.
И вообще, если вы нарисуете ее график на интервале -2..0.8, а лучше до 2.0, то увидите что эта функция имеет экстремум не минимум, а максимум, равный 0,87 в точках -1 и 0.8.
Да и алгоритм вычисления у вас какой-то кривой....
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2011, 08:07

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Процедурный тип.Табулирование функции.
Доброго времени суток!!!Никак не могу найти ошибку в следующей задаче: Протабулировать функции...

Корень n-ной степени, процедурный тип.
МОДУЛИ Запрограммировать решение задания “Процедурный тип”. Процедурный тип и относящиеся к нему...

Вычисление площади фигуры - используется ли процедурный тип в программе?
добрый день! изучаю процедурный тип и нашёл программу которую вы написали в одной из тем. Эта...

Процедурный тип: В одном цикле вычислить массив площадей фигур
Задан массив из 10 элементов, содержащих фигуры разных размеров (круг, квадрат, равносторонний...


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

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

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