![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 23.12.2010
Сообщений: 3
|
![]()
Помогите пожалуйста составить программу оптимального плана замены оборудования на предприятии.
Рассчитать стратегию замены оборудования на период n-лет, так чтобы общая прибыль была максимальной. Решение о замене принимается в начале каждого года. Оборудование может быть любым. Последний раз редактировалось DampuL; 23.12.2010 в 11:37. Причина: неправильное написание |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...по каким критериям "оптимальность" и какого оборудования ?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 19.03.2010
Сообщений: 409
|
![]()
Какой язык программирования? и сколько готовы заплатить? я думаю бесплатно вам вряд ли кто сделает.
И задачу бы уточнить.
Есть вопросы, пишите в ЛС.
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 23.12.2010
Сообщений: 3
|
![]()
на делфи или паскале, можно и в VBA
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 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. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оптимальный поиск и сравнение строк | 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 |