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

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

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

> Моделирование СМО
nany
сообщение 22.01.2007 21:14
Сообщение #1


Новичок
*

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

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


Клиенты поступают в магазин через интервал t, t -> W. Далее в течение времени tо они (клиенты) готовят заказ: tо -> G. Клиентов обслуживает 4 продавца, обслуживание 3-х фазное:
- подготовительное время (tn), tn -> R;
- время подбора товаров по заявке (tp) (зависит от размера заказа);
- время выдачи заказа (tb), tb -> P.
Размер заказа m является дискретной случайной величиной, заданной таблично; tp=m*t1, t1 -> U.
( W - распределение Вейбула, G- гамма - распределение, R - равномерное распределение, P - показательное распределение, U - U-распределение.)

Может кто нибудь подсказать хотя бы в каком направлении идти. Как правильно нужно создать алгоритм данной задачи?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
volvo
сообщение 22.01.2007 21:17
Сообщение #2


Гость






Здесь: моделирование работы банка
похожее задание по моделированию решалось на С++, алгоритм подойдет для любого языка.

Нужна помощь в портировании на Паскаль - обращайся... smile.gif
 К началу страницы 
+ Ответить 
nany
сообщение 22.01.2007 21:51
Сообщение #3


Новичок
*

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

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


А как в паскале написать календарь событий состоит: код события и время когда оно произойдет и чтобы он был постоянно разным в зависимости от открытия магазина

Добавлено:
Извини а как можно формировать очередь при 3 продавцах
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 22.01.2007 22:24
Сообщение #4


Гость






Цитата
как можно формировать очередь при 3 продавцах
Точно так же, как и в банке при трех кассирах... Очередь клиентов-то одна, а вот направляется тот, чья очередь подошла, к свободному (одному из трех) продавцу...
 К началу страницы 
+ Ответить 
nany
сообщение 23.01.2007 13:17
Сообщение #5


Новичок
*

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

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


А как в паскале написать календарь событий состоит: код события и время когда оно произойдет и чтобы он был постоянно разным в зависимости от открытия магазина

for i:=0 To n do //код события (количество клиентов, кот. пришли в магазин )
Begin
X[i]:=random;
MX:=MX+X[i];
End;

А как сюда добавить время открытия магазина и время закрытия. Пример:
и как вещественные числа преобразовать во время?
n X[i]
1 9:30
2 15:30
3 21:50
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.01.2007 13:40
Сообщение #6


Гость






Ты программу, ссылку на которую я тебе дал, смотрела? Зачем тебе привязываться ко времени? Открывается магазин в 9:30 - прекрасно! Внутри магазина это время = 0 минут работы... 9:31 - отработали 1 минуту... Не надо все привязывать к какой-то глобальной системе отсчета, работай в своей, а КОГДА ПОНАДОБИТСЯ - ты по внутреннему времени магазина всегда сможешь определить текущее время в ЧЧ:ММ...
 К началу страницы 
+ Ответить 
nany
сообщение 23.01.2007 13:46
Сообщение #7


Новичок
*

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

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


просто у меня по заданию дальше идет открытие магазина и закрытие его, а по ссылке я вроде бы там все поняла.Вот я и не знаю как эти числа преобразовать, как требует преподаватель
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
nany
сообщение 29.01.2007 19:04
Сообщение #8


Новичок
*

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

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


Помнишь ты мне давал ссылку на задачу моделирование банка, не мог бы ты мне помочь перевести ее на Паскаль, а то я этот С не очень хорошо понимаю, заранее спасибо))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.01.2007 19:40
Сообщение #9


Гость






Ну, вот так, например:


Добавлено через 25 сек.
Вроде, работает...


Прикрепленные файлы
Прикрепленный файл  bank.pas ( 5.77 килобайт ) Кол-во скачиваний: 229
 К началу страницы 
+ Ответить 
nany
сообщение 30.01.2007 13:41
Сообщение #10


Новичок
*

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

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


Спасибо тебе большое за помощь))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
nany
сообщение 1.02.2007 22:59
Сообщение #11


Новичок
*

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

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


Извини, пожалуйста.
У меня почему то сортировка не работает в этом кусочке:
var
a:array[1..n] of double;
k:integer;
i:integer;
changed:boolean;
buf:double;

begin
randomize();
for i:=1 to n do
a[i] := random;

repeat
changed:=FALSE;
for k:=1 to n do
if a[k] > a[k+1] then
begin
buf := a[k];
a[k] := a[k+1];
a[k+1] := buf;
changed := TRUE;
end;
until not changed;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.02.2007 23:18
Сообщение #12


Гость






Во-первых, как именно это связано с "Моделированием"? Во-вторых, почему без тегов? А в третьих - у тебя выход за пределы массива:
for k:=1 to n do
if a[k] > a[k+1] then ... { <--- Здесь !!! Если K = n ... }
Сколько раз говорить, отлаживайте программы с ключом {$R+}, помогает находить ошибки...
 К началу страницы 
+ Ответить 
nany
сообщение 2.02.2007 8:17
Сообщение #13


Новичок
*

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

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


for k:=1 to n-1 do
if a[k] > a[k+1] then


Цитата
Сколько раз говорить, отлаживайте программы с ключом {$R+}, помогает находить ошибки...

- это как делать или где это можно посмотреть
У меня почему то 2 раза повторяет:
вот массив
2,1389853709164
1,25032955248215
а вот то что он отсортировал:
1,25032955248215
2,1389853709164
1,25032955248215
2,1389853709164
мне сортировка нужна для поиска медианы
// ой извини я нашла это моя была ошибка

Сообщение отредактировано: nany - 2.02.2007 9:54
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
nany
сообщение 3.02.2007 15:27
Сообщение #14


Новичок
*

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

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


подскажите пожалуйста как можно придумать, если идут числа
2
7
1
3
мы их осортировали и получили:
1
2
3
7
И у нас есть ячейка, в котрую нужно записать место как они стояли в списке:
Элемент Место
2 2
7 4
1 1
3 3
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.02.2007 15:33
Сообщение #15


Гость






Не сортировать сами элементы, а воспользоваться сортировкой по индексам... Посмотри на форуме, я где-до делал такое, если не найдешь - покажу, как...

Смысл в том, что заводится еще один целочисленный массив того же размера, что и исходный, изначально в него заносятся по порядку числа 1 .. N, а при сравнении и обмене элементов (в процессе сортировки) сами элементы остаются на своих местах, а все операции производятся именно ЧЕРЕЗ доп. массив...
 К началу страницы 
+ Ответить 
nany
сообщение 3.02.2007 16:45
Сообщение #16


Новичок
*

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

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


я не могу найти по поиску
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.02.2007 18:17
Сообщение #17


Гость






Ты про это:

const
n = 4;
a: array[1 .. n] of integer = (2, 7, 1, 3);

var
T_index, index: array[1 .. n] of integer;

buf: integer;
i, k: integer;
changed: boolean;

begin
for i := 1 to n do begin
index[i] := i; T_index[i] := i;
end;

repeat
changed := False;
for k := 1 to n - 1 do

if a[index[k]] > a[index[k+1]] then begin
buf := index[k]; index[k] := index[k+1]; index[k+1] := buf;
changed := True;
end;

until not changed;

{ А теперь индексируем сами индексы... }
repeat
changed := False;
for k := 1 to n - 1 do

if index[T_index[k]] > index[T_index[k+1]] then begin
buf := T_index[k]; T_index[k] := T_index[k+1]; T_index[k+1] := buf;
changed := True;
end;

until not changed;

for i := 1 to n do writeln(a[i]:6, ' #', T_index[i]);

end.


?
 К началу страницы 
+ Ответить 
nany
сообщение 3.02.2007 20:35
Сообщение #18


Новичок
*

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

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


Да я про это, спасибо тебе большое -smile.gif))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
nany
сообщение 6.02.2007 13:50
Сообщение #19


Новичок
*

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

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


Извини, а как числа в массиве возводить в степень, power или нет?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 6.02.2007 14:10
Сообщение #20


Гость






Ты точнее можешь выражаться? Какие числа, в каком массиве, какая степень? Надо ВЕСЬ массив возводить в эту степень, или только четные элементы? А может вообще только первый и последний? Я не телепат, в конце-то концов... Приводи исходные данные, и ЧТО ты хочешь получить...
 К началу страницы 
+ Ответить 

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

 



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