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?


Anatoly Podgoretsky   (2008-06-26 10:27:00) [41]

Вот завтра и наступило.


Kaer   (2008-06-26 09:43:00) [42]


> Игорь Шевченко

зачем тогда спрашивать в чем проблема, если все рано не хотите помочь?  это стеб что ли такой? :-(


Игорь Шевченко   (2008-06-25 21:40:00) [43]

Kaer ©   (25.06.08 18:16) [36]


> я вот тут описал [26]


да мне тоже не надо курсовую


Kaer   (2008-06-25 18:16:00) [44]


> Игорь Шевченко

я вот тут описал [26]


Германн   (2008-06-25 18:01:00) [45]


> Kaer ©   (25.06.08 17:46) [32]
>
>

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1214399860&n=3


Игорь Шевченко   (2008-06-25 17:59:00) [46]


> завтра нада чтобы программа к курсовой была готова


пиши, в чем проблема ?


> было бы очень здорово если бы вы написали код


Видишь ли, Леониду курсовую не надо сдавать


Anatoly Podgoretsky   (2008-06-25 17:58:00) [47]

> Kaer  (25.06.2008 17:46:32)  [32]

Ну пора сухари и носки готовить.


Kaer   (2008-06-25 17:46:00) [48]


> Leonid Troyanovsky

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


Leonid Troyanovsky   (2008-06-24 21:42:00) [49]


> Kaer ©   (24.06.08 17:59) [29]

> честно говоря, я не поял, пожалуста объесните мне

Дык, напряги мыслительную мышцу.
По крайней мере, попытайся.

--
Regards, LVT.


Галинка   (2008-06-24 18:11:00) [50]

я только хотела сказать, что если нужно вернуть несколько результатов, то самый простой способ, это передать функции параметр, в который этот результат должен быть сохранен.


Kaer   (2008-06-24 17:59:00) [51]


> Галинка


> Вам известна procedure val(string, int, int)

к сожалению не известна


> Leonid Troyanovsky

честно говоря, я не поял, пожалуста объесните мне


Галинка   (2008-06-24 17:16:00) [52]

это наверное надо алгоритм сначала правильный. Тогда он правильно в код перевется.


Leonid Troyanovsky   (2008-06-24 16:33:00) [53]


> Галинка   (24.06.08 14:28) [25]

> procedure Maximum(const Items:array of integer, IndOfMax:
>  integer, MaxItem: integer);

From [12]:

> function Maximum(const Items:array of integer; var ItemIndex):
> integer;
> ..
> ItemIndex := j;

Но, нас игнорируют (марш лилипутов).
--
Regards, LVT.


Kaer   (2008-06-24 16:25:00) [54]

щас постораюсь объеснить :-)
программа для расчета межотраслевого балланса, тоесть есть 4 гипотетические отрасли, между которыме нужно распеределить 400 у.е., в каждую можно вложить 100, 200, 300, 400 или 0(тоесть вообще не вкладывать), но сумма этих вложений не должан превыщать 400.
вот эта таблица

> //Присвоение массиву значений таблицы  ar[1,0]:=0;   ar[2,
> 0]:=0;   ar[3,0]:=0;   ar[4,0]:=0;  ar[1,1]:=40;  ar[2,1]:
> =50;  ar[3,1]:=30;  ar[4,1]:=60;  ar[1,2]:=50;  ar[2,2]:
> =70;  ar[3,2]:=55;  ar[4,2]:=75;  ar[1,3]:=65;  ar[2,3]:
> =85;  ar[3,3]:=70;  ar[4,3]:=95;  ar[1,4]:=75;  ar[2,4]:
> =95;  ar[3,4]:=95;  ar[4,4]:=110;

первый параметр это номер отрасли, второй колличство вложений(1=100, 2=200, и тд). а после равно это прибыль этой отрасли(первый параметр!) после вложения в неё средаст(второй параметр).
Например если в первую отрасль вложить 100 то прибыль будет 40 едениц, а если 400 то прибыль будет всего 65. (как видите она увеличится всего в 1.8 раза, и не окупается, значит имеет смысл вложить в неё 100, а осталные 300 распределить между другими 3 отраслями.

вот тут

> writeln;  for i:=4 downto 1 do  begin    write(Rus('Отрасль
> '));    write(i);    writeln(' = 100');  end;


я вывожу что оптимальный баланс будет если между отраслями распределить по 100, но это потому что я знаю ответ :-). Вот как раз как добиться того чтобы прога сама это додумывалась вот что мне нужно.


Галинка   (2008-06-24 14:28:00) [55]

т.е. твой прототип может быть таким

procedure Maximum(const Items:array of integer, IndOfMax: integer, MaxItem: integer);


Галинка   (2008-06-24 14:25:00) [56]

а передавать еще один параметр в функцию, в который и писать индекс (на сколько я поняла именно индекс максимального нужен) додуматься сложно?

Вам известна procedure val(string, int, int)? Так там так и поступают. Все параметры передаются функции: из какой переменной конвертить, в какую результат записать, и код ошибки вернуть, если таковая случилась.


Slym   (2008-06-24 14:23:00) [57]

Kaer ©   (24.06.08 13:57) [22]
спасибо канешно, но к сожалению это не решает моей проблемы :-(

дак тебе алгоритм нужен? я то ошибки в коде правил :)


Kaer   (2008-06-24 13:57:00) [58]


> Slym ©

спасибо канешно, но к сожалению это не решает моей проблемы :-(


Slym   (2008-06-24 13:27:00) [59]

Kaer ©   (24.06.08 13:11) [20]
а мы не ищем легких путей :-)

8( представил путь при увеличении размерности входных данных...


Kaer   (2008-06-24 13:11:00) [60]


> Slym ©

а мы не ищем легких путей :-)


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

Наверх

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