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?


Германн   (2008-06-26 21:35:00) [1]


> Anatoly Podgoretsky ©   (26.06.08 21:31) [78]

Тогда сантехника.


Anatoly Podgoretsky   (2008-06-26 21:31:00) [2]

> Игорь Шевченко  (26.06.2008 20:53:16)  [76]

А нафига нам кузнец, не кузнец нам не нужен.


Игорь Шевченко   (2008-06-26 20:54:00) [3]

Slym ©   (26.06.08 14:19) [71]

А подруга-то не твоя нифига


Игорь Шевченко   (2008-06-26 20:53:00) [4]


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


подруга не может, ты не можешь...Кузнеца пробовал пригласить ?


Kaer   (2008-06-26 15:07:00) [5]


> Slym

Спасибо нашим поварам за то что вкусно варят нам!


Kaer   (2008-06-26 15:06:00) [6]

Оно работает! Оно работает!!!


Anatoly Podgoretsky   (2008-06-26 14:26:00) [7]

Это не мой мотороллер.


Slym   (2008-06-26 14:21:00) [8]

Kaer ©   (26.06.08 11:03) [52]
это для моей подруги

с тебя хотябы ее ню фотка :)


Slym   (2008-06-26 14:19:00) [9]

program Project1;

{$APPTYPE CONSOLE}

uses Windows;

var ar: array[1..4,0..4] of integer; //Таблица

function Rus(const Str:string):string;
begin
 SetLength(result,Length(Str));
 CharToOEM(PChar(Str),PChar(result));
end;

//Функция возвращающая максимум из входных параметров
function Maximum(const Items:array of integer):integer;
var i:integer;
begin
 if length(Items) = 0 then exit;
 result:=Low(Items);
 for i:=Low(Items) to High(Items) do
   if Items[result]<Items[i] then result:=i;
end;

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

procedure SupaPupaW;
var i,s,c,Gt:integer;
begin
 s:=4;Gt:=0;
 for i:=4 downto 1 do
 begin
   W(i,s,c);
   Gt:=Gt+ar[i,c];
   writeln(Rus('Отрасль '),i, '=',c*100);
   s:=s-c;
 end;
 writeln(Rus('Итого '),Gt);
end;

begin
writeln(Rus('Задача о вложении средств'));

//Присвоение массиву значений таблицы
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]:=10;//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;

SupaPupaW;
write(Rus('Для завершения нажмите '));
write('<Enter>...');
readln;
end.


clickmaker   (2008-06-26 12:42:00) [10]

ну то есть неправильно я выразился: не индекс, а "номер вложения"


Галинка   (2008-06-26 12:41:00) [11]

задача нормальная. Алгорит мутный.


clickmaker   (2008-06-26 12:41:00) [12]

> [66] Kaer ©   (26.06.08 12:37)


> первый парамерт отрасль, второй количестов вложений в неё(1=100,
> 2=200 и тд)

это что?


Kaer   (2008-06-26 12:37:00) [13]

индексы это номер отрасли, а не то скока в неё вложили


Kaer   (2008-06-26 12:37:00) [14]

мутная задача, да? :-)


clickmaker   (2008-06-26 12:34:00) [15]

> [64] Kaer ©   (26.06.08 12:25)

то есть? у тебя же индексы есть 1-4?


Kaer   (2008-06-26 12:25:00) [16]


> clickmaker

максимальную сумму прибыли я нахожу = 180, я не нахожу в какие отрасли при этом скоко было вложено


clickmaker   (2008-06-26 12:19:00) [17]

> вопщето для этого есть таблица, вот она

а, ну да, ну да...
и в чем проблема? Найти максимальную суммы прибыли по всем четырем, имея граничное условие "сумма индексов не больше 4" ?


Kaer   (2008-06-26 12:11:00) [18]


> clickmaker

вопщето для этого есть таблица, вот она

 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 и тд)


clickmaker   (2008-06-26 12:06:00) [19]

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


Kaer   (2008-06-26 12:03:00) [20]

если бы я знал как это выразить математически я бы не стал спрашивать алгоритм :)


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

Наверх

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