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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 2 390

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Есть условие задачки.
Очередь в столовую 100 человек формируется случайным образом:
студенты 0 - 40
преподаватели 41 - 60
служащие 61 - 90
случайные люди 91 - 100
Определить и напечатать, кто чаще всего посещает столовую (по категориям).

У меня такой вопрос:
Как проще написать, через массив случайных чисел? Или через стэк?

Slavdey8 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Slavdey8 (статус: Посетитель)
Вопрос отправлен: 3 февраля 2009, 20:00
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Ученый

Здравствуйте, Slavdey8! Если честно не совсем понял услови задачи....но предложу вам код, не судите строго если это немного не то что вам нужно....

const
K=100;
SIZE=4;
var
 max:integer;
rez: array[1..4] of integer;
a,b,c,d,i:integer;
begin
a:=0;
b:=0;
c:=0;
d:=0;
  for I := 0 to k do
  begin
  if  (i<41) then inc(a);
  if (i>40) and (i<61) then inc(b);
 if (i>60) and (i<91) then inc(c);
 if (i>90)and (i<k) then inc(d);
  end;
  rez[1]:=a;
  rez[2]:=b;
  rez[3]:=c;
  rez[4]:=d;
  // поиск максимального элемента
  max:=1;
for i:=2 to SIZE do
if rez[i]> rez[max]then max:=i;
//max это будет номер группы которая посещала столовую чаще всех

З.Ы. Удачи:)

Ответ отправил: Ученый (статус: 8-ой класс)
Время отправки: 3 февраля 2009, 21:16
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Мережников Андрей

Здравствуйте, Slavdey8!
Посмотрите пример в приложении

Приложение:
  1. var x,i:integer;
  2. qstud,qprep,qslug,qrand:integer;
  3. begin
  4. qstud:=0;
  5. qprep:=0;
  6. qslug:=0;
  7. qrand:=0;
  8. randomize;
  9. for i:=1 to 100
  10. do begin
  11. x:=random(100);
  12. if (x<=40)
  13.  
  14. if (x>=41)and(x<=60)
  15.  
  16. if (x>=61)and(x<=90)
  17.  
  18. if (x>=91)
  19.  
  20. end;
  21.  


Ответ отправил: Мережников Андрей (статус: Абитуриент)
Время отправки: 3 февраля 2009, 21:24


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

Всего сообщений: 4; последнее сообщение — 4 февраля 2009, 13:34; участников в обсуждении: 4.
Ruslan

Ruslan (статус: 1-ый класс), 3 февраля 2009, 20:41 [#1]:

что это за числа - 0 - 40 - не понял условие задачи!
Dron

Dron (статус: Студент), 3 февраля 2009, 21:25 [#2]:

То, что написал Учёный - в уме делается :) Найти длину интервалов и выбрать максимальный? Сомневаюсь. Скорее всего, смысл вот в чём. Генерим 100 раз случайное число от до 100. Если попало в интервал 0..40 - +1 студент, если в 41..60 - +1 преподаватель. Ну и потом берём максимальное. Фактически, в предложенное коде в цикле только заменить i на случайное число.
С уважением.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 3 февраля 2009, 21:26 [#3]:

пока печатал ответ, Ученый меня опередил с отправкой ответа :-)
Ученый

Ученый (статус: 8-ой класс), 4 февраля 2009, 13:34 [#4]:

Мережников Андрей, я не нарочно :)

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

Версия движка: 2.6+ (26.01.2011)
Текущее время: 24 февраля 2020, 11:42
Выполнено за 0.03 сек.
Рейтинг@Mail.ru