![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Ipkis |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вводятся 4 числа:
1-е от 0 до 3 2-е от 4 до 10 3-е от 11 до 21 4-е от 0 до 255 используя только 2 переменных по байту Вывести их в обратном порядке... Сообщение отредактировано: Ipkis - -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
![]() ![]() |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Схема.
1 переменная (байт) - 4-ое число (от 0 до 255). 2 переменная: xxxxxxxx (1 байт, 8 бит, где x - i-тый бит). первые 2 бита (0,1) юзаешь под 1 число биты 2-4 под 2 число и 4- 7 под 3 число. (нумерация битов уц меня с 0). -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
![]()
Сообщение
#3
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Вот программа:
uses wincrt; p.s. спасибо за задачу, давно не работал с битовыми операциями, интересно... ![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ipkis |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(Altair @ 22.11.2005 3:25) Схема. 1 переменная (байт) - 4-ое число (от 0 до 255). 2 переменная: xxxxxxxx (1 байт, 8 бит, где x - i-тый бит). первые 2 бита (0,1) юзаешь под 1 число биты 2-4 под 2 число и 4- 7 под 3 число. (нумерация битов уц меня с 0). Спасиба за ответ... Но вот почему 4й бит у тебя и во 2м числе и в 3м?????? -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
Atos |
![]()
Сообщение
#5
|
![]() Прогрессор ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
To: Altair
A действительно, странно: диапазон первого числа ровно 2 бита, второго числа - ровно три бита, третьего числа - больше трёх бит! Как же ты умудряешься засовывать их все в 8 бит? ![]() |
hiv |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Да - тут лажа!
0..3 - 4 числа 4..10 - 7 чисел 11..21 - 11 чисел тогда имеем 4*7*11-1=307 вариантов, что больше 255! ![]() -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
virt |
![]()
Сообщение
#7
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот именно что там надо 9 бит уместить в 8.
-------------------- |
Altair |
![]()
Сообщение
#8
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Вч читать умеете ?
Цитата третьего числа - больше трёх бит! А вы видите -11 в программе ???? Вообще прогу-то запускали ? работатет ? Тогда ПЕРЕД ТЕМ КАК ОРАТЬ, надо глаза открыть и почитать ПРОГРАММУ!!!!!! Цитата опять компилятора под рукой нет, но такое ощущение, что при некоторых значениях декодирование будет неправильным} Всегда правильно! Ты что думаешь я не тестирую программы перед выкладыванием и нарушаю правила ? Цитата Да - тут лажа! лажа у вас в посте , уважаемый ;) что бы уместить 3 число, нужно диапазон на 11 сократить... тогда в 3 бита уместитмся. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ipkis |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(Altair @ 23.11.2005 23:07) Вч читать умеете ? А вы видите -11 в программе ???? Вообще прогу-то запускали ? работатет ? Тогда ПЕРЕД ТЕМ КАК ОРАТЬ, надо глаза открыть и почитать ПРОГРАММУ!!!!!! Всегда правильно! Ты что думаешь я не тестирую программы перед выкладыванием и нарушаю правила ? лажа у вас в посте , уважаемый ;) что бы уместить 3 число, нужно диапазон на 11 сократить... тогда в 2 бита уместитмся. По повду строчки readln©; a:=a or (c-11); Максимальное значение 3го числа - 21 Если сокращаем на 11 полуаем максимальное значение 10 10 в двоичной 1010 т.е 4 бита.... Сообщение отредактировано: Ipkis - -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
Ipkis |
![]()
Сообщение
#10
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Еще не большое дополнение....
по поводу строчки writeln('enter 2 chislo'); readln©; a:=a or (c shl 3); {2 add}\\ максимум 2го чмсла это 10 т.е 4 бита... наверное нужно сократить на 3... тогда получим максимум 7 а это уже 3 бита... -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
Altair |
![]()
Сообщение
#11
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
да чуть алгоритм я напутал но все равно несложно апрогу модифицируешь
так. 1 число 0-3 (2 бита) 2 число 4-10 -> 0-6 (3 бита) 3 число 11-21 -> 0-10 а что если записать в оставлиеся 3 бита ОСТАТОК от деления 3 числа (интервал от 0 до 10) НА 3 ? ![]() Остаток по любому будет НЕ больше 2... ? или я опять что то просмотрел ? тогда выходит что у нас вообще 1 бит лишний при такой архивации, и обратно все востановимо -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
![]()
Сообщение
#12
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
нет не то
![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
virt |
![]()
Сообщение
#13
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата enter 1 chislo 3 enter 2 chislo 10 enter 3 chislo 21 enter 4 chislo 255 ------------------- 218 255 ------------------- 255 13 3 3 самый простой тест. -------------------- |
Altair |
![]()
Сообщение
#14
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Вирт читаем книгу по тестированию и понимаем что это не самый простой тест.. тиесты такого типа называютсчя тестами на граничные условия.. ты меня все равно не переспоришь ;)
кстати к чему пост ? уже выше разобрались что допущенна ошибка... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
virt |
![]() ![]()
Сообщение
#15
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
я книжек по тестированию не писал ,я просто 3 года в школе на олимпиадах составлял полные системы тестов для проверки своего решения. Простой тест это тот который пришел в голову с первого взгляда на решение. Само собой это граничный тест. Простые тесты в твоей терминологии на этой проге бы прошли.
я когда открыл тему твоего последнего еще не было. ![]() -------------------- |
Ipkis |
![]()
Сообщение
#16
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всем спасибо... Особенная благодарность
![]() 2altair 2hiv Я уже сам решил эту интересную задачку... Вот код... uses crt; -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
Altair |
![]()
Сообщение
#17
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
ха-ха-ха
![]() ![]() Вот что значит олимипиадная... глдавное результат и условия.. а я все мучался над тем как в 8 бит впизнуть 9... а это вовсе и не надо! ![]() Ipkis, молодец! ![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
virt |
![]()
Сообщение
#18
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
все гениальное просто..
-------------------- |
Ipkis |
![]() ![]()
Сообщение
#19
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
УГУ... Все генитальное просто....
![]() А вообще была еще другая идея, но не совсем честная... Использовать служебные переменные... Ведь - я их не объявляю!!! -память для них уже выделена -они существуют независимо от того использую я их или нет... В начале думал использовать SetBkColor (из Graph) а потом вернуть значение через GetBkColor... но не подходит(появляются траблы)... но все-равно можно найти другую служебную переменную... Счас нет времени на поиски... но если есть идеи,то это только приветствуется.. ![]() -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
klem4 |
![]()
Сообщение
#20
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата(Ipkis @ 24.11.2005 23:23) служебные переменные... Цитата(Ipkis) В начале думал использовать SetBkColor (из Graph) Ну во первых SetBkColor - это всетаки процедура ... а во вторых идея конечно интересная, но имхо это может привести к дичайшим ошибкам и неразберихе ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 7.09.2025 13:29 |