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

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

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

> множетва, прог-а
Oleg55
сообщение 11.11.2006 22:35
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: Oleg

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


в классе 26 учеников, чьи имена A..Z. На экзамене 15 билетов 1..15. Когда в кабинет входит 10 ученик, то билеты, отвеченные предыдущими учениками кладут обратно. Промодулировать ход екзамена

как ввести множества я понимаю, но вот как дальше....помогите


Прикрепленные файлы
Прикрепленный файл  EKZAMEN.PAS ( 459 байт ) Кол-во скачиваний: 179
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 11.11.2006 23:19
Сообщение #2


Гость






Вот так:
var
stud: char;
quest: set of byte;
current: byte;

begin
quest := [1 .. 15];
for stud := 'A' to 'Z' do begin

if ord(stud) - ord('A') + 1 = 12 then begin
writeln('Возвращаем билеты...');
quest := [1 .. 15];
end;

write('Студент: ', stud, ' входит в кабинет...');

repeat
current := random(15) + 1;
until current in quest;

writeln(' ... и берет билет №', current);
exclude(quest, current);

end;
end.
Все билеты вернулись при входе 12-го ученика, если сделать это при входе 10-го, то на 15 билетов будет 17 человек, и двоим не хватит (а программа зациклится).

Или ты имел в виду "при входе каждого десятого"? Тогда вот так:

.
..
if (ord(stud) - ord('A') + 1) mod 10 = 0 then begin
writeln('Возвращаем билеты...');
quest := [1 .. 15];
end;
...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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