| 
| 
 | Вопрос # 4 069/ вопрос решён / | 
 |  Приветствую, уважаемые эксперты!Суть задачи такая... В некотором магазине имеется 3 кассы, каждую единицу времени заходит покупатель и встает в кассу, в которой всех меньше народу. В кассе его обслуживают от 1 до 5 ед. времени, после чего он удаляется из кассы... Вопрос: сколько останется покупателей во всех кассах через 600 ед. времени?
 
 При написании возникла проблема как удалять покупателей... Свой пример задачи см. в приложении... (Принимается критика ^__^)
 
 З.Ы. Хотел создать для удаления двумерный массив, в котором хранились бы "последних" 5 покупателей, но мне кажется это уже издевательство... Программа для 1 курса техникума =/
 Приложение:Переключить в обычный режим program Cash_Project; {$APPTYPE CONSOLE} uses  SysUtils; const  EndTime = 600; var    begin  Randomize;  for i := 1 to EndTime do begin     for k := 1 to 3 do      if DelVisTime[k] = i then        Cash[k] := Cash[k] - 1;     n := 1;     if Cash[1] > Cash[2] then begin      if Cash[2] > Cash[3] then begin        DelVisTime[3] := DelVisTime[3] + Random(4) + 1;        Inc(Cash[3]);      end else begin        DelVisTime[2] := DelVisTime[2] + Random(4) + 1;        Inc(Cash[2]);      end;    end else begin      if Cash[1] > Cash[3] then begin        DelVisTime[3] := DelVisTime[3] + Random(4) + 1;        Inc(Cash[3]);      end else begin        DelVisTime[1] := DelVisTime[1] + Random(4) + 1;        Inc(Cash[1]);      end;    end;   end;   Visitor := Cash[1] + Cash[2] + Cash[3];  {  Writeln('Kolichestvo posetitelei v kasse #1: ', Visitor[1]);  Writeln('Kolichestvo posetitelei v kasse #2: ', Visitor[2]);  Writeln('Kolichestvo posetitelei v kasse #3: ', Visitor[3]);}  Writeln('Obschee kolichestvo pokupatelei v ocheredyah: ', Visitor);   Readln;end. 
|  |   Вопрос задал: serox (статус: Посетитель)Вопрос отправлен: 20 апреля 2010, 21:38
 Состояние вопроса: решён, ответов: 1.
 |  Ответ #1. Отвечает эксперт: IlluminatI Здравствуйте, serox!Код не читал (не хочу разбираться ;)), поэтому точно сказать где у тебя ошибка не смогу =)
 В приложении код с комментариями, думаю разберешься :)
 Приложение:Переключить в обычный режим program Project2; {$APPTYPE CONSOLE} uses  SysUtils; const   var       var  I: integer; begin  for i:=1 to NTime do   if Visitors[i] = OutTime then    Visitors[i] := 0; end; begin Randomize; Visitor := 0; for i:=1 to 3 do  begin   SetLength(Cass[i], 0);   Len[i]:=0;  end; for i:=1 to NTime do  Visitors[i] := 0;   for i:=1 to NTime do  begin     min:=Len[1];   Index := 1;   for j:=2 to 3 do    if Len[i] < min then     begin      Index := j;      min := Len[j];      Inc(Len[Index]);   SetLength(Cass[Index], Len[Index]);      end;  k:=0; for i:=1 to NTime do  writeln('Po istechenii ' + IntToStr(NTime) + ' ed. vremeni ostalos - ' + IntToStr(k) + '
pokupateley.'); readln;end. 
|  | Ответ отправил: IlluminatI (статус: 2-ой класс)Время отправки: 20 апреля 2010, 22:34
 
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 20 апреля 2010, 22:36; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 20 апреля 2010, 22:18 [#1]:О, да, помню-помню. Предмет называется СМО (системы массового обслуживания). Писал когда-то проги (лабы) по визуальному моделированию таких систем. Себе и окружающим.  Но это было так давно... Ээээээээх, молодость. 
 З.Ы. Код не читал: ложусь спать.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | IlluminatI (статус: 2-ой класс), 20 апреля 2010, 22:36 [#2]:Замени только строчку 
 Visitors[Visitor] := (I + random(5));на 
 Visitors[Visitor] := (I + random(4) + 1);Просмотрел малость   |  27 мая 2013, 12:12: Статус вопроса изменён на решённый (изменил модератор DNK): Молчание - знак согласия Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |