ДАЮ 60 БАЛЛОВ Студент Василий живет в общежитии. Отделение банка, в котором он производит оплату
за проживание, имеет всего две кассы, поэтому почти всегда длинная очередь к ним. Первая касса открывается в 8.00, вторая – в 8.05. Последний клиент будет принят в 20.00. Очередь единая, и очередной клиент обслуживается, как только освобождается одна из касс. На обслуживание одного клиента уходит ровно 10 минут. Василий приходит ровно в 8.00 и видит, сколько человек стоит перед ним. Требуется определить, сколько времени ему придется простоять в очереди, и вообще обслужат ли его сегодня. Помогите пожалуйста очень срочно Сделать в паскале и построить блок-схемуОтветы на вопрос
program raf105;
var
people,time,o1,o2:integer;
begin
write('Сколько человек увидел василий: ');
readln(people);
while people<>0 do
begin
time+= 1;
if people>0 then
begin
if o1=10 then
begin
people-=1;
o1:=0;
end;
o1+=1;
end;
if (people>0) and (time>=5) then
begin
if o2=10 then
begin
people-=1;
o2:=0;
end;
o2+=1;
end;
end;
time-=1;
if time<=720 then
writeln('Василию придётся простоять в очереди ',time div 60,' ч. ',time mod 60,' мин.')
else
writeln('Василия не обслужат сегодня');
end.
Конечно, я могу помочь вам решить эту задачу на языке Pascal и создать блок-схему. Давайте начнем с кода на Pascal:
pascalprogram BankQueue; var currentTime, queueLength, remainingTime, clientsServiced: integer; begin currentTime := 800; // Время прихода Василия (8:00 утра) queueLength := 0; // Начальная длина очереди clientsServiced := 0; // Количество обслуженных клиентов // Считываем количество человек в очереди writeln('Введите количество человек в очереди: '); readln(queueLength); // Пока Василий не обслужен и не закрыты кассы while (currentTime <= 2000) and (clientsServiced < queueLength) do begin // Проверяем, доступна ли одна из касс if (currentTime mod 100 = 0) or (currentTime mod 100 = 500) then begin // Обслуживаем клиента clientsServiced := clientsServiced + 1; currentTime := currentTime + 10; end else begin // Если кассы заняты, ждем 1 минуту currentTime := currentTime + 1; end; end; // Проверяем, обслужат ли Василия if clientsServiced >= queueLength then begin writeln('Василий будет обслужен.'); remainingTime := 2000 - currentTime; writeln('Время ожидания: ', remainingTime, ' минут.'); end else begin writeln('Василий не будет обслужен сегодня.'); end; readln; end.
Этот код сначала считывает количество человек в очереди, а затем симулирует обслуживание клиентов в течение дня. Он также проверяет, обслужат ли Василия, и если да, то выводит время ожидания.
Теперь создадим блок-схему. Пожалуйста, обратитесь к программе или инструментам для создания блок-схем, таким как draw.io или Lucidchart, и используйте псевдокод выше, чтобы создать соответствующую блок-схему.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
