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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 11:14   #1
DampuL
Новичок
Джуниор
 
Регистрация: 23.12.2010
Сообщений: 3
По умолчанию оптимальный план замены оборудования

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

Последний раз редактировалось DampuL; 23.12.2010 в 11:37. Причина: неправильное написание
DampuL вне форума Ответить с цитированием
Старый 23.12.2010, 11:28   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...по каким критериям "оптимальность" и какого оборудования ?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.12.2010, 11:31   #3
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Какой язык программирования? и сколько готовы заплатить? я думаю бесплатно вам вряд ли кто сделает.
И задачу бы уточнить.
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 23.12.2010, 13:04   #4
DampuL
Новичок
Джуниор
 
Регистрация: 23.12.2010
Сообщений: 3
По умолчанию

на делфи или паскале, можно и в VBA
DampuL вне форума Ответить с цитированием
Старый 23.12.2010, 16:04   #5
DampuL
Новичок
Джуниор
 
Регистрация: 23.12.2010
Сообщений: 3
По умолчанию

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

uses

Crt;

const

(* ACTIONS CONSTANT *)

SELL = 0;

SAVE = 1;

(* TYPES SIZE CONSTANT *)

MAX_VECTOR_SIZE = 64;

type

TOutMatrixCell = record

action : byte;

value : real;

end;

TOutMatrix = record

rows : word;

cols : word;

items : array[1..MAX_VECTOR_SIZE - 1, 0..MAX_VECTOR_SIZE - 1] of TOutMatrixCell;

end;

TPlanCell = record

year : word;

action : byte;

end;

IVector = record

size : word;

items : array[1..MAX_VECTOR_SIZE - 1] of byte;

end;

DVector = record

size : word;

items : array[0..MAX_VECTOR_SIZE - 1] of real;

end;

var

vectorR : DVector;

vectorU : DVector;

outMatrix : TOutMatrix;

optimalPlan : IVector;

startTime : word;

count : word;

{----------------------------------------------------------------------------}

procedure ReadData(path : string);

var

inFile : Text;

i : word;

elem : real;

s : string;

begin

Assign(inFile, path);

Reset(inFile);

Writeln('Условие:');

repeat

Readln(inFile, s);

Writeln(s);

until (s = '');

Writeln('Начальные данные:');

Write('R(x) : ');

i := 0;

while not Eoln(inFile) do

be

Read(inFile, elem);

Write(elem:3:1, ' ');

vectorR.items[i] := elem;

Inc(i);

end;

vectorR.size := i;

Readln(inFile);

Writeln;

Write('U(x) : ');

i := 0;

while not Eof(inFile) do

begin

Read(inFile, elem);

Write(elem:3:1, ' ');

vectorU.items[i] := elem;

Inc(i);

end;

vectorU.size := i;

Close(inFile);

Writeln;

Write('начальный возраст оборудования = ');

Readln(startTime);

Write('расчетный период = ');

Readln(count);

Writeln;

end;

{----------------------------------------------------------------------------}

procedure WriteData;

var

i : word;

q : array[0..1] of string;

begin

Writeln('Решение:');

q[0] := 'заменить';

q[1] := 'сохранить';

for i := 1 to optimalPlan.size do

Writeln(i, ' year -> ', q[optimalPlan.items[i]]);

end;

{----------------------------------------------------------------------------}

function S(t : word) : real;

begin

S := 2;

end;

{----------------------------------------------------------------------------}

function P(t : word) : real;

begin

P := 15;

end;

{----------------------------------------------------------------------------}

function U(t : word) : real;

begin

U := vectorU.items[t];

end;

{----------------------------------------------------------------------------}

function R(t : word) : real;

begin

R := vectorR.items[t];

end;

{----------------------------------------------------------------------------}

function F(t : word; order: word; var action : byte) : real;

var

a : real;

b : real;

begin

if (order = 1)

then

begin

a := R(t) - U(t);

b := S(t) - P(t) + R(0) - U(0);

if (b >= a)

then

begin

F := b;

action := SELL;

end

else

begin

F := a;

action := SAVE;

end;

exit;

end;

a := R(T) - U(T) + outMatrix.items[order - 1, t + 1].value;

b := S(T) - P(T) + R(0) - U(0) + outMatrix.items[order - 1, 1].value;

if (b >= a)

then

begin

F := b;

action := SELL;

end

else

begin

F := a;

action := SAVE;

end;

end;

{----------------------------------------------------------------------------}

procedure BuildOutMatrix;

var

i : word;

j : word;

action : byte;

begin

outMatrix.rows := vectorR.size - 1;

outMatrix.cols := vectorR.size;

for i := 1 to outMatrix.rows do

for j := 0 to outMatrix.cols do

begin

outMatrix.items[i, j].value := F(j, i, action);

outMatrix.items[i, j].action := action;

end;

end;

{----------------------------------------------------------------------------}

procedure GetOptimalPlan(startTime : word; count : byte);

var

i : word;

currTime : word;

begin

currTime := startTime;

optimalPlan.size := count;

for i := count downto 1 do

begin

optimalPlan.items[count - i + 1] := outMatrix.items[i, currTime].action;

if (outMatrix.items[i, currTime].action = SELL)

then

currTime := 1

else

Inc(currTime);

end;

end;

{----------------------------------------------------------------------------}

begin

ClrScr;

ReadData('data.txt');

BuildOutMatrix;

GetOptimalPlan(startTime, count);

WriteData;

Readln;

end.
DampuL вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимальный поиск и сравнение строк Utkin Общие вопросы по программированию, компьютерный форум 19 30.06.2010 14:54
нужно найти оптимальный путь Marina87 Фриланс 16 29.04.2010 16:01
Как узнать уровень заряда батареи, план электропитания, сменить плаН? TwiX Общие вопросы Delphi 5 03.10.2009 13:48
найти оптимальный план производства Baxxter Microsoft Office Excel 12 25.09.2008 23:45