Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Пятничная задачка - 5 байт...

688  
Murr патриот11.10.19 11:10
Murr
11.10.19 11:10 

Пятничная задачка - 5 байт...


Днями отчаялся объяснить одному ВБ-прогеру некоторые довольно несложные моменты в прожении.

Безуспешно. Т.е. еще раз подтвердил для себя, что использование ВБ калечит прогера и он не способен делать ничего сложного...

Но нет худа без добра - в процессе накопал немого материала для тяпничной задачки.


Дано: 5 байт.

Диапазоны значений (по байтам): [0-??][0-99][0-99][0-99][0-99]

Требуется - указать цифры под "??" и обосновать оные...


#1 
NightWatch коренной житель11.10.19 14:40
NightWatch
NEW 11.10.19 14:40 
в ответ Murr 11.10.19 11:10

15

#2 
Murr патриот11.10.19 14:48
Murr
NEW 11.10.19 14:48 
в ответ NightWatch 11.10.19 14:40

Не-а... смущ

#3 
Программист коренной житель11.10.19 14:58
NEW 11.10.19 14:58 
в ответ Murr 11.10.19 11:10

если signed 21

или если речь идет об unsigned 42

#4 
AlexNek патриот11.10.19 15:06
AlexNek
NEW 11.10.19 15:06 
в ответ Murr 11.10.19 11:10

По имплементации судить тяжело,тем более что байт не ограничен 00..99, вероятно ВБ не любят инт и тостринг не знают.

Хотели небось числа передавать 00000..99999

#5 
Murr патриот11.10.19 15:07
Murr
NEW 11.10.19 15:07 
в ответ Программист 11.10.19 14:58, Последний раз изменено 11.10.19 15:15 (Murr)

+1.


В следующий раз, плс, дай что-то вида ?2 или 4? - народу же подумкать будет чуток... Задачка, понимаешь?

#6 
Murr патриот11.10.19 15:12
Murr
NEW 11.10.19 15:12 
в ответ AlexNek 11.10.19 15:06

По имплементации судить тяжело

-----

По имплементации действительно судить тяжело. Ну на то она и пятничная задачка - чутка мозгу напрячь...

Особенно, если не понятно что за данные пересылаются.

Однако непонимание ВБ-прогера было связано с тем, что он прописал для тестирования 43-43-43-43-43, после чего не смог понять причину аритхметик оверфлов на сборке Интегер...

так и не осознал, бедолага, что 43 * 100.000.000 => оверфлов...

#7 
AlexNek патриот11.10.19 15:49
AlexNek
NEW 11.10.19 15:49 
в ответ Murr 11.10.19 15:12
чутка мозгу напрячь..

так непонятно с какой стороны напрягать, откуда вдруг 100.000.000 взялось?

И чем тебе так 42 понравилось только из-за этого ‭4 294 967 295‬?

#8 
NightWatch коренной житель11.10.19 16:07
NightWatch
NEW 11.10.19 16:07 
в ответ Murr 11.10.19 15:12

А 42-99-99-99-99, типа, работать будет?

#9 
Murr патриот11.10.19 16:35
Murr
NEW 11.10.19 16:35 
в ответ AlexNek 11.10.19 15:49

так непонятно с какой стороны напрягать

------

Так это и хорошо что непонятно - для того и задачка чтобы напрягать ВЕСЬ моговой объем...


откуда вдруг 100.000.000 взялось?

-----

Там у ВБ-прогера была длинная формула - множим, складываем, еще множим и еще складываем...

Пока Интегер не соберется...


И чем тебе так 42 понравилось только из-за этого ‭4 294 967 295‬?

------

А что-то еще должно быть?

#10 
Murr патриот11.10.19 16:40
Murr
NEW 11.10.19 16:40 
в ответ NightWatch 11.10.19 16:07
типа, работать будет?

-----

Неа...

Максимально, как Алех написал, - 42-94-96-72-95.

Чисто на программистской интуиции надо догадываться что там в 5 байт так перепаковано UInt32...


П.С. В протокол на предмет того что там пересылается Я тоже не смотрел...


#11 
Murr патриот11.10.19 16:43
Murr
NEW 11.10.19 16:43 
в ответ AlexNek 11.10.19 15:49

ткуда вдруг 100.000.000 взялось?

-----

Упсс... опечатался - 100.000.000.000 - правильно вроде...

#12 
NightWatch коренной житель11.10.19 16:46
NightWatch
NEW 11.10.19 16:46 
в ответ Murr 11.10.19 16:40

Ну, как бы отдельно значения укладываются в указанные диапазоны для байтов. Ну, да ладно.

Допустим, я бы задал этот вопрос, и ответ 00..15 - правильный. Как бы ты объяснил этот диапазон?

#13 
NightWatch коренной житель11.10.19 16:48
NightWatch
NEW 11.10.19 16:48 
в ответ Murr 11.10.19 16:43
100.000.000.000 - правильно вроде...

безум

#14 
Murr патриот11.10.19 19:33
Murr
NEW 11.10.19 19:33 
в ответ NightWatch 11.10.19 16:46

Как бы ты объяснил этот диапазон?

-------

Одна порция информации в первом байте.

Одну - использовали - вычитаем из 5.

Остается - 4 - в 4-х следующих байтах - UInt32... :)

#15 
Murr патриот11.10.19 19:42
Murr
NEW 11.10.19 19:42 
в ответ NightWatch 11.10.19 16:48

Это у меня стресс...

3 дня обьяснял человеку КАК можно доехать из Дублина домой, чтобы было комфортно.

Заставил НАПИСАТЬ пошаговый вариант поездки - время, где и что делаем.

Посчитано было так, что нигде не надо было сидеть на дожде больше 10 минут.


Сейчас человек сидит на станции которая не упоминалась в поездке и будет сидеть там 4 часа.

При этом там нет ни одного места, кроме холодной станции, где можно пересидеть это время.


Вот через пару часов приедет - буду виноват в посиделках...

#16 
NightWatch коренной житель11.10.19 19:43
NightWatch
NEW 11.10.19 19:43 
в ответ Murr 11.10.19 19:33

Подождем, пока "программистская интуиция" подтянется.

#17 
AlexNek патриот11.10.19 19:59
AlexNek
NEW 11.10.19 19:59 
в ответ Murr 11.10.19 16:43
Упсс... опечатался - 100.000.000.000 - правильно вроде...

Это я неправильно нули подсчитал смущ

42 94 96 7 2 95‬
 1 00.00 0.0 00

Да, сложны пути ВБ-шников, когда то был на проекте весь пронизанный синглтонами, потому, что классно. Из любого места можно вызвать что угодно.

#18 
Программист коренной житель12.10.19 10:27
NEW 12.10.19 10:27 
в ответ Murr 11.10.19 15:12
Однако непонимание ВБ-прогера было связано с тем, что он прописал для тестирования 43-43-43-43-43, после чего не смог понять причину аритхметик оверфлов на сборке Интегер...

В VB вроде можно явно указывать типы данных.


Меня это бесит в коллегах, которые все данные пакуют в строки, а потом, если нужно, парсят к нужному типу. И при этом еще аргументируют, что так дескать меньше вероятность ошибкишок

#19 
Murr патриот13.10.19 05:04
Murr
NEW 13.10.19 05:04 
в ответ Программист 12.10.19 10:27

вроде можно-----

Можно. Можно даже кастить в процессе.

Но это не помогает поместить 33-битное значение в 32-битную переменную.

И основная проблема что данный момент практически невозможно обьяснить ВБ-шнику - там куча автоматического кастирования и деталями типов никто не заморачивается.

Мне даже обьясняли, что DIM есть эквивалент var. А эквивалента VAR - нету...

#20