![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
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 - 22.11.2005 0:21 -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Схема.
1 переменная (байт) - 4-ое число (от 0 до 255). 2 переменная: xxxxxxxx (1 байт, 8 бит, где x - i-тый бит). первые 2 бита (0,1) юзаешь под 1 число биты 2-4 под 2 число и 4- 7 под 3 число. (нумерация битов уц меня с 0). -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
![]()
Сообщение
#3
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Вот программа:
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 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Вч читать умеете ?
Цитата третьего числа - больше трёх бит! А вы видите -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 - 23.11.2005 21:11 -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
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 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
да чуть алгоритм я напутал но все равно несложно апрогу модифицируешь
так. 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 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
нет не то
![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
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 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Вирт читаем книгу по тестированию и понимаем что это не самый простой тест.. тиесты такого типа называютсчя тестами на граничные условия.. ты меня все равно не переспоришь ;)
кстати к чему пост ? уже выше разобрались что допущенна ошибка... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
virt |
![]() ![]()
Сообщение
#15
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
я книжек по тестированию не писал ,я просто 3 года в школе на олимпиадах составлял полные системы тестов для проверки своего решения. Простой тест это тот который пришел в голову с первого взгляда на решение. Само собой это граничный тест. Простые тесты в твоей терминологии на этой проге бы прошли.
я когда открыл тему твоего последнего еще не было. ![]() -------------------- |
Ipkis |
![]()
Сообщение
#16
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всем спасибо... Особенная благодарность
![]() 2altair 2hiv Я уже сам решил эту интересную задачку... Вот код... uses crt; -------------------- Возможно ты всего лишь человек,
но для кого-то ты весь мир.......... |
Altair |
![]()
Сообщение
#17
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
ха-ха-ха
![]() ![]() Вот что значит олимипиадная... глдавное результат и условия.. а я все мучался над тем как в 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";'
|
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 5:08 |