Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 069

/ вопрос решён /

Приветствую, уважаемые эксперты!
Суть задачи такая... В некотором магазине имеется 3 кассы, каждую единицу времени заходит покупатель и встает в кассу, в которой всех меньше народу. В кассе его обслуживают от 1 до 5 ед. времени, после чего он удаляется из кассы... Вопрос: сколько останется покупателей во всех кассах через 600 ед. времени?

При написании возникла проблема как удалять покупателей... Свой пример задачи см. в приложении... (Принимается критика ^__^)

З.Ы. Хотел создать для удаления двумерный массив, в котором хранились бы "последних" 5 покупателей, но мне кажется это уже издевательство... Программа для 1 курса техникума =/

Приложение:
  1. program Cash_Project;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. const
  9. EndTime = 600;
  10.  
  11. var
  12.  
  13.  
  14.  
  15.  
  16. begin
  17. Randomize;
  18. for i := 1 to EndTime do begin
  19.  
  20. for k := 1 to 3 do
  21. if DelVisTime[k] = i then
  22. Cash[k] := Cash[k] - 1;
  23.  
  24. n := 1;
  25.  
  26. if Cash[1] > Cash[2] then begin
  27. if Cash[2] > Cash[3] then begin
  28. DelVisTime[3] := DelVisTime[3] + Random(4) + 1;
  29. Inc(Cash[3]);
  30. end else begin
  31. DelVisTime[2] := DelVisTime[2] + Random(4) + 1;
  32. Inc(Cash[2]);
  33. end;
  34. end else begin
  35. if Cash[1] > Cash[3] then begin
  36. DelVisTime[3] := DelVisTime[3] + Random(4) + 1;
  37. Inc(Cash[3]);
  38. end else begin
  39. DelVisTime[1] := DelVisTime[1] + Random(4) + 1;
  40. Inc(Cash[1]);
  41. end;
  42. end;
  43.  
  44. end;
  45.  
  46. Visitor := Cash[1] + Cash[2] + Cash[3];
  47. {
  48. Writeln('Kolichestvo posetitelei v kasse #1: ', Visitor[1]);
  49. Writeln('Kolichestvo posetitelei v kasse #2: ', Visitor[2]);
  50. Writeln('Kolichestvo posetitelei v kasse #3: ', Visitor[3]);}
  51. Writeln('Obschee kolichestvo pokupatelei v ocheredyah: ', Visitor);
  52.  
  53. Readln;
  54. end.
  55.  


serox Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: serox (статус: Посетитель)
Вопрос отправлен: 20 апреля 2010, 21:38
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: IlluminatI

Здравствуйте, serox!
Код не читал (не хочу разбираться ;)), поэтому точно сказать где у тебя ошибка не смогу =)
В приложении код с комментариями, думаю разберешься :)

Приложение:
  1. program Project2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. const
  9.  
  10.  
  11.  
  12. var
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. var
  20. I: integer;
  21. begin
  22. for i:=1 to NTime do
  23. if Visitors[i] = OutTime then
  24. Visitors[i] := 0;
  25. end;
  26.  
  27. begin
  28. Randomize;
  29. Visitor := 0;
  30. for i:=1 to 3 do
  31. begin
  32. SetLength(Cass[i], 0);
  33. Len[i]:=0;
  34. end;
  35. for i:=1 to NTime do
  36. Visitors[i] := 0;
  37.  
  38.  
  39. for i:=1 to NTime do
  40. begin
  41.  
  42.  
  43. min:=Len[1];
  44. Index := 1;
  45. for j:=2 to 3 do
  46. if Len[i] < min then
  47. begin
  48. Index := j;
  49. min := Len[j];
  50.  
  51.  
  52.  
  53. Inc(Len[Index]);
  54. SetLength(Cass[Index], Len[Index]);
  55.  
  56.  
  57.  
  58.  
  59. end;
  60.  
  61. k:=0;
  62. for i:=1 to NTime do
  63.  
  64. writeln('Po istechenii ' + IntToStr(NTime) + ' ed. vremeni ostalos - ' + IntToStr(k) + ' pokupateley.');
  65. readln;
  66. end.
  67.  


Ответ отправил: IlluminatI (статус: 2-ой класс)
Время отправки: 20 апреля 2010, 22:34


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 20 апреля 2010, 22:36; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 20 апреля 2010, 22:18 [#1]:

О, да, помню-помню. Предмет называется СМО (системы массового обслуживания). Писал когда-то проги (лабы) по визуальному моделированию таких систем. Себе и окружающим. :) Но это было так давно... Ээээээээх, молодость.

З.Ы. Код не читал: ложусь спать.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
IlluminatI

IlluminatI (статус: 2-ой класс), 20 апреля 2010, 22:36 [#2]:

Замени только строчку
Visitors[Visitor] := (I + random(5));
на
Visitors[Visitor] := (I + random(4) + 1);
Просмотрел малость :)

27 мая 2013, 12:12: Статус вопроса изменён на решённый (изменил модератор DNK): Молчание - знак согласия

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:35
Выполнено за 0.02 сек.