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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2013, 20:53   #1
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию Максимальное значение функции

Добрый вечер. Прошу Вашей помощи.
Мне необходимо написать функцию или процедуру в делфи по нахождению максимального значения функции. В паскале мне удалось найти код на Вашем сайте. Но как бы я не пытался перевести его в делфи ничего не удавалось. Сложность состоит в том, что я имею некоторую функцию и ее производную и интервал от a до b.
Производная равна: 3-exp(x)
Интервал: от 0 до 1
Ввод интервала происходит через поля Edit.
Я пытался написать функцию, но сложность в том, что в шапке я должен указать тип, а это проблема так как функция не подходит под тип real или integer или еще какой-либо, например:
Function maxfun(x:real):real..
Пытался через процедуру..тоже не выходит..
Если можете помочь, то я Вас очень прошу помочь..
Вот код в паскале:
Код:
program maximum;
uses crt;
var x,max:real;
y:array[1..11] of real;
i,j:integer;
begin
clrscr;
x:=1;
i:=1;
while x<=3.2 do
begin
y[i]:= x-sqr(cos(x))+3*sin(sqr(x))/ln(sqr(x)+1);
writeln (x:4:2,' ',y[i]:4:2);
x:=x+0.2;
i:=i+1;
end;
max:=y[1];
for j:=1 to i do
if y[j]> max then max:=y[j];
writeln('maximum y = ',max:4:2);
readln;
end.
Орлов Никита вне форума Ответить с цитированием
Старый 20.04.2013, 22:00   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

как-то так будет на делфи в консолях..
Код:
program maximum;
{$APPTYPE CONSOLE}

interface

uses SysUtils,Windows,Classes;

var x,max:real;
y:array[1..11] of real;
i,j:integer;

begin
x:=1;
i:=1;
while x<=3.2 do
begin
y[i]:= x-sqr(cos(x))+3*sin(sqr(x))/ln(sqr(x)+1);
writeln (x:4:2,' ',y[i]:4:2);
x:=x+0.2;
i:=i+1;
end;
max:=y[1];
for j:=1 to i do
if y[j]> max then max:=y[j];
writeln('maximum y = ',max:4:2);
readln;
end;

end.
Писал прямо здесь по памяти...
Человек_Борща вне форума Ответить с цитированием
Старый 20.04.2013, 22:17   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Орлов Никита Посмотреть сообщение
Я пытался написать функцию, но сложность в том, что в шапке я должен указать тип, а это проблема так как функция не подходит под тип real или integer или еще какой-либо, например:
Function maxfun(x:real):real..
Пытался через процедуру..тоже не выходит..
А почему Вы решили, что real не подходит?
s-andriano вне форума Ответить с цитированием
Старый 20.04.2013, 22:37   #4
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
А почему Вы решили, что real не подходит?
Чтобы не быть многословным. В программе я прописываю следующее
Код:
...
Function f(x:real):real;
Begin
f:=3*x-exp(x);
end;

Function df(x:real):real;
Begin
df:=3-exp(x);
end;
Процедуры для функции и ее производной соответственно. Именно поэтому у меня не получается взять тип real
Орлов Никита вне форума Ответить с цитированием
Старый 20.04.2013, 22:45   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Орлов Никита Посмотреть сообщение
Именно поэтому у меня не получается взять тип real
Почему "поэтому" не получается?
s-andriano вне форума Ответить с цитированием
Старый 21.04.2013, 10:02   #6
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
Смущение

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Почему "поэтому" не получается?
Ну а как функцию озаглавить? Разве можно, скажем, написать:
Код:
Function MaxElemFun(f:real):real
А дальше в программе сделать обращение к этой функции, функция, содержащая производную именуется "df":
Код:
...xm:=xm-(3*x-exp(x))/MaxElemFun(df)
Можно так сделать?
У меня почему-то не получалось, хотя вполне вероятно, я в другом ошибался, а это верно было.....
Орлов Никита вне форума Ответить с цитированием
Старый 21.04.2013, 10:29   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Передать функцию как параметр к другой функции?
Код:
type TMyFunction = function (Value: integer): integer;

function f(Value: integer): integer;
begin
  Result:=Value*Value;
end;

function pp(ff: TMyFunction): integer;
var i: integer;
begin
  Result:=0;
  for i:=1 to 5 do Result:=Result+ff(i);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:=IntToStr(pp(f));
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.04.2013, 11:55   #8
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
Смущение

Цитата:
Сообщение от Аватар Посмотреть сообщение
Передать функцию как параметр к другой функции?
Код:
type TMyFunction = function (Value: integer): integer;

function f(Value: integer): integer;
begin
  Result:=Value*Value;
end;

function pp(ff: TMyFunction): integer;
var i: integer;
begin
  Result:=0;
  for i:=1 to 5 do Result:=Result+ff(i);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:=IntToStr(pp(f));
end;
Обалдеть..спасибо огромное..а то я уже голову сломал как это сделать..
Орлов Никита вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив целых чисел. Найти максимальное и минимальное значение. Вывести максимальное на 1-ое место, минимальное на последнее. Punk_Killer Паскаль, Turbo Pascal, PascalABC.NET 1 01.04.2013 09:38
Максимальное значение счетчика Tailrag Microsoft Office Excel 0 25.01.2012 11:39
эксель. найти максимальное и минимальное значение функции alex(21) Помощь студентам 2 07.03.2010 12:22
Определить максимальное/минимальное значение функции y=f(x) astrozombie Помощь студентам 2 16.02.2009 13:52
Максимальное значение по дате ZUZA Microsoft Office Excel 5 05.07.2008 19:30