![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
EXE |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
Задача
На площадь выводят N человек, приговоренных к смерти, каждому из которым присвоен уникальный номер от 1 до N. Их расставляют по кругу по часовой стрелке по порядку. Казнь производится следующим образом: отсчитывают M человек, начиная с человека, стоящего после только что казненного, и этого M-го человека уводят на казнь. В начале казни отчет ведется от человека с номером 1. Узнать, человека с каким номером казнят K-м? С клавиатуры вводятся числа: N, M, K 1<=N<=30000 1<=M<=30000 1<=K<=N Я тут написал вроде, но не уверен. Посмотрите и подправьте если чего не так: :low: var -------------------- Время есть сущность всех вещей.
|
EXE |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
Ну, чего никто ничего не говорит? Жду. А то в понедельник показать надо
-------------------- Время есть сущность всех вещей.
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
EXE
Подождать еще пару часов можешь? Заканчиваю отладку. Твоя версия работает неправильно... |
EXE |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
volvo
черт, я не тот исходник выложил. Только щас заметил. Ну ладно подожду твоей версии -------------------- Время есть сущность всех вещей.
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
EXE
:nono: Нет уж, выкладывай свою... А потом сравнишь с моей. |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
EXE
Ясно, исходника у тебя никакого нет... Разбираться в приведенной программе будешь сам. Код Const n = 11; m = 7; k = 3; Const liRange = SizeOf(LongInt) * 8; Type TBigReg = Array[1 .. (n div liRange) + Byte((n mod liRange) > 0)] Of LongInt; Procedure bit_info(bit: LongInt; Var block, offset: Byte); Begin block := Succ(Pred(bit) div 32); offset := Byte( ((bit mod 32) <> 0)) * 32 - (bit mod 32); end; Function is_bit_set(Var x: TBigReg; bit: LongInt): Boolean; Var bBlck, bOffs: Byte; Begin bit_info(bit, bBlck, bOffs); is_bit_set := (((x[bBlck] shr bOffs) and $1) = $1); End; Procedure xorBit(Var x: TBigReg; bit: LongInt); Var bBlck, bOffs: Byte; Begin bit_info(bit, bBlck, bOffs); x[bBlck] := x[bBlck] xor (LongInt($1) shl bOffs) End; Procedure reset_bit(Var x: TBigReg; bit: LongInt); Begin If is_bit_set(x, bit) Then xorBit(x, bit) End; Procedure set_bit(Var x: TBigReg; bit: LongInt); Begin If not is_bit_set(x, bit) Then xorBit(x, bit) End; Function down_next(Var people: TBigReg; k, every: LongInt): LongInt; Var curr_bit, count, i: LongInt; Function next_bit(x: LongInt): LongInt; Begin Inc(x); If x > n Then x := 1; next_bit := x End; Begin curr_bit := 0; For i := 1 To k Do Begin count := 0; While count < every Do Begin curr_bit := next_bit(curr_bit); inc( count, Byte(is_bit_set(people, curr_bit)) ) End; reset_bit(people, curr_bit) End; down_next := curr_bit; End; Var all: TBigReg; i: integer; begin For i := 1 To n Do set_bit(all, i); WriteLn('this was number: ', down_next(all, k, m)) end. |
EXE |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
Вообще-то я в форуме не круглосуточно сижу! <_<
Сообщение отредактировано: EXE - 18.12.2004 21:42 -------------------- Время есть сущность всех вещей.
|
K Y S K A |
![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 95 Пол: Женский Реальное имя: Оля Репутация: ![]() ![]() ![]() |
Я сейчас на первом курсе и мне тоже задали эту задачку, но как её исправить, чтобы он считывал n m и k??? поскажите, а тоя попробывала а он мне пишет что так нельзя помогите пожалуйста!!
![]() ![]() |
klem4 |
![]()
Сообщение
#9
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
![]() ![]() убераешь их из раздела CONST, добавляешь var n,m,k : integer; и вводишь в основном блоке программы ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
K Y S K A |
![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 95 Пол: Женский Реальное имя: Оля Репутация: ![]() ![]() ![]() |
А т ы попробуй и увидишь, что он пишет!!!!
|
klem4 |
![]()
Сообщение
#11
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Да .. придется перекроить прогу или использовать константы, потому что они используются в описании типов ... извиняюсь, не заметил сначала.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
K Y S K A, а ты скажи, что он тебе пишет, почему кто-то должен пробовать...
![]() klem4, и ЭТО говоришь ты, модератор раздела ??? !!! |
K Y S K A |
![]()
Сообщение
#13
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 95 Пол: Женский Реальное имя: Оля Репутация: ![]() ![]() ![]() |
" Cannot evalute this expresion" вот что он мне пишет, показывая на 10 строчку!
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
K Y S K A,
первые строки программы меняются вот так: Const А потом в основном блоке как хочешь так m, n, k и изменяй... Хочешь - с клавиатуры вводи, хочешь просто переприсваивай... ![]() |
klem4 |
![]()
Сообщение
#15
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
хм Volvo... а как интересно компилятор пойемт вот это :
TBigReg = если перед этой строчкой я сотру раздел констант в котором присутствует n=11 ? ![]() так что правда тут за мной ![]() аа ну вот и решилась проблема ... ![]() Сообщение отредактировано: klem4 - 25.11.2005 18:57 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
virt |
![]()
Сообщение
#16
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
onst -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 5:36 |