Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Парамерт функции


Страницы:   1 2 3 4

Kaer ©   (2008-06-20 22:36:00) 

Имеется 2 вот такие функции

function Maximum(const Items:array of integer):integer;
var j:integer;
begin
if length(Items) = 0 then exit;
result:=Low(Items);
for j:=Low(Items) to High(Items) do
 if result<Items[j] then result:=Items[j];
end;

function W(index,count: integer): integer;
begin
 if index=0 then exit;
 case count of
 0:  w:=Maximum([ar[index,count]+w(index-1,count)]);
 1:  w:=Maximum([ar[index,count]+w(index-1,count-1),ar[index,count-1]+w(index-1,count)]);
 2:  w:=Maximum([ar[index,count]+w(index-1,count-2),ar[index,count-1]+w(index-1,count-1),ar[index,count-2]+w(index-1,count)]);
 3:  w:=Maximum([ar[index,count]+w(index-1,count-3),ar[index,count-1]+w(index-1,count-2),ar[index,count-2]+w(index-1,count-1),ar[index,count-3]+w(index-1,count)]);
 4:  w:=Maximum([ar[index,count]+w(index-1,count-4),ar[index,count-1]+w(index-1,count-3),ar[index,count-2]+w(index-1,count-2),ar[index,count-3]+w(index-1,count-1),ar[index,count-4]+w(index-1,count)]);
 end;
end;

В функции Максимум находится большее число, мне так и надо, но вот как сделать так чтобы я мог определить не только значение этого числа, а еще сам параметр который его определяет?
например строка
 2:  w:=Maximum([ar[index,count]+w(index-1,count-2), ar[index,count-1]+w(index-1,count-1),ar[index,count-2]+w(index-1,count)]);
допустим жирным выделино максимально значение, как узнать что это не допустим 150, а значения index и count?


Kaer   (2008-06-26 12:02:00) [21]

q4(100) мне надо отлавить вот это значение, всего таких значений будет 4(q1,q2,q3,q4)


Dennis I. Komarov   (2008-06-26 11:58:00) [22]

> [57] Kaer ©   (26.06.08 11:51)

Да не нужен мне твой баланс со своей теорией.
Вырази то что хочешь математически


Kaer   (2008-06-26 11:51:00) [23]

боюсь если вы не знаете теории меж отраслевого баланса это будет трудно. Но я не боюсь трудностей :-)
Так, это функция расчета(меня в ней все устраивает:-))

function W(index,count: integer): integer;
var
i:integer;
Items:array of integer;
begin
if index=0 then exit;
SetLength(Items,count+1);
for i:=Low(Items) to High(Items) do
  Items[i]:=ar[index,count-i]+W(index-1,i);
result:=Maximum(Items);
end;

это функция нахождения максимума(в ней меня тоже все устраивает:-))

function Maximum(const Items:array of integer):integer;
var j:integer;
begin
if length(Items) = 0 then exit;
result:=Low(Items);
for j:=Low(Items) to High(Items) do
 if result<Items[j] then result:=Items[j];
end;

они делает вот что
W4(400) = max(q4(400) + W3(0); q4(300) + W3(100); q4(200) + W3(200); q4(100) + W3(300); q4(0) + W3(400)) = max(110 + 0; 95 + 50; 75 + 90; 60 + 120; 0 + 145) = 180.
W4(400) - в 4 отрасли вкладывается 400 уе. функция просчитывает оптимальное соотношение.
Жирыным виделено место, где максимальное число и которое вернется функцией макс - 180. Как видите отрасли 4 (q4) нужно вложить 100. а остальное распределить между 3 другими отраслями(w3(300)). Я не знаю как отследить то что именно в 4 отрсль вложется 100. а остальное уйдет дальшев другие отрасля.
Я не могу ивидель алгоритма как это можно осуществить. Может нужно написать новую функцию, или изменить старые?


Dennis I. Komarov   (2008-06-26 11:35:00) [24]

> [55] Kaer ©   (26.06.08 11:34)

из конечно. Вот теперь опиши так же свою


Kaer   (2008-06-26 11:34:00) [25]


> Dennis I. Komarov


> Функция возращающая значение большего и двух целых чисел:

двух целых чисел или из двух?


Dennis I. Komarov   (2008-06-26 11:05:00) [26]

> [52] Kaer ©   (26.06.08 11:03)

:) Сполз под стул :))))))))))))


Dennis I. Komarov   (2008-06-26 11:03:00) [27]

> а почему больного?

Прочитай сначала ветку :) Здорового я ничего не нашел. Ну да ладно...

Приведу пример:

Функция возращающая значение большего и двух целых чисел:

function Max(a, b: Integer): Integer;
begin
 if a > b then Result:=a else Result:=b;
end;


Kaer   (2008-06-26 11:03:00) [28]

помоему меня тут не правильно поняли, я делаю это не для себя, это для моей подруги, просто она попросила о помощи в написании программы так как сама не может, я не стал бы брасться за это но ей больше не к кому обратиться. Если прогрумму лучше чем есть сделать не получится то, я конечно посоветуюсь с подругой, но думаю придется накатать туда какого нибудь бредового кода, чтобы позапутаней и надеятся что препод действительно ничего не знает, а не только делает вид


Kaer   (2008-06-26 10:55:00) [29]


> Dennis I. Komarov

а почему больного? и вобщето я себе очень хочу помоч


Dennis I. Komarov   (2008-06-26 10:52:00) [30]

> [49] Kaer ©   (26.06.08 10:44)

Твой код - это плод только твоегобольного воображения.

Если ты не хочешь помочь себе, то никто этого уже не сможет...


Kaer   (2008-06-26 10:44:00) [31]


program Project1;

{$APPTYPE CONSOLE}

uses
 SysUtils;

var
 i,j: integer;
 ar: array[1..4,0..4] of integer;

function Rus(mes: string):string;
var
 t: integer;
begin
 for t:=1 to length(mes) do
 case mes[t] of
   'A'..'ï' : mes[t] := Chr(Ord(mes[t]) - 64);
   'ð'..'ÿ' : mes[t] := Chr(Ord(mes[t]) - 16);
 end;
 Rus := mes;
end;

function Maximum(const Items:array of integer; ItemIndex: integer):integer;
var j:integer;
begin
if length(Items) = 0 then exit;
result:=Low(Items);
for j:=Low(Items) to High(Items) do
 if result


Dennis I. Komarov   (2008-06-26 10:41:00) [32]

> [46] Kaer ©   (26.06.08 10:40)

Функция не знает ни о отрослях, и тем более о деньгах... Попробуй еще раз


Dennis I. Komarov   (2008-06-26 10:40:00) [33]

> [44] Kaer ©   (26.06.08 10:38)

Видишь у него голубые штаны? Должен присесть три раза и слелать "КЮ"


Kaer   (2008-06-26 10:40:00) [34]

код мой, мне нужен алгоритм который бы определял сколько нужно вложить денег в отрасль


Dennis I. Komarov   (2008-06-26 10:38:00) [35]

Для начала попробуй описать, что ты хочешь от функции получить

ЗЫ
  Код чей?


Kaer   (2008-06-26 10:38:00) [36]


> ССЗБ

а?


Dennis I. Komarov   (2008-06-26 10:37:00) [37]

> [38] Kaer ©   (26.06.08 09:43)


ССЗБ


Kaer   (2008-06-26 10:37:00) [38]

вот ближе к вечеру тему думаю можно закрыть


Kaer   (2008-06-26 10:36:00) [39]


> Anatoly Podgoretsky

у меня есть еще целый день, я же сказал чтобы она была готова, а не что она будет сдаваться :-)


Anatoly Podgoretsky   (2008-06-26 10:28:00) [40]

Вопрос более не актуален, теперь надо идти на форум prizyv.ru


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо