![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
всем доброго вечера, у меня следующая проблема, не кодил на делфе уже года 2, если не больше, а тут очень срочная нужна написать небольшую функцию. Логическое написание простое, это я сделал на другом языке, но надо именно на делфи. Помогите пожалуйста, кто может )
Задание такое: Код HTML:
Совсем забыл делфи, очень прошу помощи. Надо очень срочно( |
|
#2
|
||||
|
||||
|
Задача мне понравилась. Берусь за написание) Тринеровки никогда не лишние
![]() |
|
#3
|
|||
|
|||
|
Да тут дельфи нипричем, т.к. в основном сплошная арифметика. На любом языке это будет примерно одинаково.
|
|
#4
|
||||
|
||||
|
Примерно так:
Код:
type
TDistrib = (PROP,FIRST,LAST);
TSumCollect = array of single;
function Distrib(aType:TDistrib;Sum:Single;aCollection:TSumCollect):TSumCollect;
var
i:integer;
AllSumm:single;
begin
SetLength(Result,Length(aCollection));
FillChar(Result,SizeOf(Single)*Length(Result),#0);
case aType of
FIRST:
begin
i:=Low(aCollection);
While (Sum>0) and (i<High(aCollection)) do
if Sum>aCollection[i] then
begin
Result[i]:=aCollection[i];
Sum:=Sum-aCollection[i];
inc(i)
end
else
begin
Result[i]:=Sum;
Sum:=0;
end;
end;
LAST:
begin
i:=High(aCollection);
While (Sum>0) and (i>Low(aCollection)) do
if Sum>aCollection[i] then
begin
Result[i]:=aCollection[i];
Sum:=Sum-aCollection[i];
dec(i)
end
else
begin
Result[i]:=Sum;
Sum:=0;
end;
end;
PROP:
begin
AllSumm:=0;
for i:=Low(aCollection) to High(aCollection) do
AllSumm:=aCollection[i]+AllSumm;
for i:=Low(aCollection) to High(aCollection) do
Result[i]:=Sum*(aCollection[i]/AllSumm);
end;
end; {of case}
end;В работе не проверял, вроде компилится Не уверен я в выделенных сравнениях, "плавающие" так не сравниваются. Но т.к. уже час ночи а завтра на работу - дорабатывайте сами ![]() |
|
#5
|
|||
|
|||
|
первый код получил, щас буду разбираться в связкам, так сказать что с чем кушать)
Барс, жду еще твоего кода) Если еще желающие будут написать свой код, буду только рад, лучше сам разберусь и надеюсь вспомню основы делфи ) |
|
#6
|
||||
|
||||
|
http://depositfiles.com/files/pjm1yqrod
Вот польностью готовая программа. Только вод в режиме «ПРОП» она хоть и щетает остачю от делений и добовляет к последнему елементу но всё равно в итоге одной копейки не хватает так как остача слишком мала. Если не сможешь сам испраить попросищь я доведу до ума. В программе использовались компоненты пакета Alpha skins |
|
#7
|
|||
|
|||
|
Спасибо больщушее, щас посмотрю. Думаю с остатком уже разберусь, поскольку это больше логическое доведение системы до "ума"
![]() |