IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Очередь, Задача с тремя конвейерами
БелАчкА
сообщение 29.10.2007 20:01
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Задача такая:

Имеются три конвейера. Конвейеры работают независимо друг от друга. Изначально на первом конвейере располагаются детали N типов, а второй и третий – пусты. Время обработки детали каждого типа с каждого конвейера задается матрицей Time[1..N, 1..3]. После обработки детали с конвейера k она поступает на конвейер k+1. Деталь после третьего конвейера считается изготовленной. Требуется по начальному расположению деталей на первом конвейере определить время, через которое все детали будут изготовлены.

Помогите, пожалуйста, понять хотя бы алгоритм решения: вообще не могу разобраться wacko.gif , где здесь используется очередь и как, собственно, высчитывается само время обработки.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 4.11.2007 11:30
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


blink.gif Что-то вы перемудрили мне кажется ...

проверил на 2-х примерах, предложенных тут lapp'ом, результат совпадает с результатом его программы


const
n = 4;

type
TWorkTimes = array [1..n, 1..3] of Integer;

function Max(const a, b: Integer): Integer;
begin
if a > b then Max := a else Max := b;
end;

function MaxTime(const wt: TWorkTimes; const i, j, k: Integer): Integer;
var
a, b, c: Integer;
begin
if i = 0 then a := 0 else a := wt[i, 1];
if j = 0 then b := 0 else b := wt[j, 2];
if k = 0 then c := 0 else c := wt[k, 3];
MaxTime := Max(Max(a, b), c);
end;

procedure NextTact(var i, j, k: Integer);
begin
k := j;
j := i;
if (i < n) and (i <> 0) then inc(i)
else i := 0;
end;

function GetTotalTime(wt: TWorkTimes; i, j, k: integer): LongInt;
var
time: LongInt;
begin
if (i = 0) and (j = 0) and (k = 0) then
GetTotalTime := 0
else begin
time := MaxTime(wt, i, j, k);
NextTact(i, j, k);
GetTotalTime := time + GetTotalTime(wt, i, j, k);
end;
end;

var

WT: TWorkTimes = (
(1, 2, 3),
(2, 1, 1),
(5, 2, 1),
(2, 1, 5)
);

begin
writeln(GetTotalTime(WT, 1, 0, 0));
end.


Сообщение отредактировано: klem4 - 4.11.2007 11:39


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.11.2007 5:45
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(klem4 @ 4.11.2007 11:30) *

blink.gif Что-то вы перемудрили мне кажется ...
Может, и так.. но тогда ты явно недомудрил.. smile.gif
klem4, скажи: какую задачу ты вообще решал?.. Что ты считаешь? Где входной поток деталей? Твоя программа телепатически угадывает его? smile.gif

И еще одно: обрати внимание, что в решении требуется присутствие очередей (fifo, насколько я понимаю).

А вообще, использовать тут рекурсию - наверное, неплохая идея.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.11.2007 12:12
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


klem4, еще раз прошу тебя ответить на вопрос (извиняюсь за цитирование самого себя):
Цитата(Lapp @ 5.11.2007 5:45) *

Где входной поток деталей?

В файле данных, который используется в моей программе - это последняя строка. Где эти данные в твоей проге?
Извини, я просто не понимаю..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
БелАчкА   Очередь   29.10.2007 20:01
Lapp   не могу разобраться :wacko: , где здесь используе...   30.10.2007 14:04
БелАчкА   Что такое "очередь", ее структура и тд.....   30.10.2007 15:45
compiler   когда-то делал подобную задачу для двух конвееров....   30.10.2007 15:56
Lapp   как находить время: неужели просто последовательно...   30.10.2007 23:43
БелАчкА   Нужно моделировать процесс. То есть, например, К...   31.10.2007 17:07
Lapp   :mega_chok: А вот этого не надо! держи себя ...   1.11.2007 14:31
БелАчкА   Lapp, большое спасибо! :) Вопросы, конечно же...   1.11.2007 17:49
Гость   Вопросы, конечно же, есть... [code=pas]begin fo...   1.11.2007 22:32
Lapp   БелАчкА, чтобы лучше разобраться, просто представь...   2.11.2007 2:18
БелАчкА   Ну что же Вы так? :huh: Конвейеры могли бы и подо...   2.11.2007 15:03
Lapp   Ну что же Вы так? :huh: Конвейеры могли бы и подо...   3.11.2007 15:09
БелАчкА   Про d поняла, про Т1 нет... Вот место, где впервы...   3.11.2007 16:00
Lapp   Вот место, где [b]впервые встречается Т1: for i:...   4.11.2007 3:11
klem4   :blink: Что-то вы перемудрили мне кажется ... п...   4.11.2007 11:30
Lapp   :blink: Что-то вы перемудрили мне кажется ...Мож...   5.11.2007 5:45
Lapp   klem4, еще раз прошу тебя ответить на вопрос (изви...   5.11.2007 12:12
klem4   Сколько времени пройдет до того момента, как пос...   5.11.2007 11:09
klem4   а это у меня не предусмотрено, то есть всегда пото...   5.11.2007 13:57
Lapp   всегда поток такой: 1, 2, 3, 4, ..., NЯсно. Но у...   5.11.2007 14:07
БелАчкА   Все, я окончательно растерялась... не знаю, куда с...   7.11.2007 1:17
Lapp   Пробовала сравнивать переменную, объявив ее, но н...   7.11.2007 1:41
Lapp   БелАчкА, как дела? Все понятно уже?   8.11.2007 3:48


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 19:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"