Автор Тема: Задачка: декодер морзе.  (Прочитано 43257 раз)

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #15 : Сентябрь 23, 2012, 02:55:56 pm »
valexey_u, издеваетесь что ли?
Да это не данные, а малина. Какие тут могут быть проблемы, какой, нах, Oberon.
Вот что выдает программка из 50 строк брутто (второй файл):
Пауза
тире тире Пауза
тире тире тире Пауза
тире точка точка Пауза
точка точка тире Пауза
точка тире точка точка Пауза
точка Пауза
тире тире Пауза
тире тире тире Пауза
точка тире точка Пауза
точка точка точка Пауза
точка
И что, типа есть проблемы с распознаванием этой туфты?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #16 : Сентябрь 23, 2012, 03:00:30 pm »
Хе, неожиданное открытие :)
Я всегда считал, что код Морзе префиксный - и паузы между буквами не нужны :)

А ты легко префиксный код в уме в реалтайме, на слух, без пауз между буквами, расшифруешь? :-) Морзе таки делался для людей а не для машин ( кодер - человек, декодер тоже).

Кстати, что там у префиксных кодов с декодингом потока после искажений (прилетело то, чего не было) и потерь (в реальной жизни это есть всегда это вам не архив разархивировать :-) ).
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #17 : Сентябрь 23, 2012, 03:05:19 pm »
valexey_u, издеваетесь что ли?
Да это не данные, а малина. Какие тут могут быть проблемы, какой, нах, Oberon.
Вот что выдает программка из 50 строк брутто (второй файл):
Пауза
тире тире Пауза
тире тире тире Пауза
тире точка точка Пауза
точка точка тире Пауза
точка тире точка точка Пауза
точка Пауза
тире тире Пауза
тире тире тире Пауза
точка тире точка Пауза
точка точка точка Пауза
точка
И что, типа есть проблемы с распознаванием этой туфты?

Какая программа?

Вообще, поясню - я хочу для начала простую программу на обероне которая может декодировать (не до уровня точек и тире, а до уровня слов) эту самую малину. Это будет отправная точка. Затем задача будет усложняться, проследим эволюцию исходника.
Y = λf.(λx.f (x x)) (λx.f (x x))

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #18 : Сентябрь 23, 2012, 03:13:02 pm »
Какая программа?
Ну, набросал на C#. Даже стыдно показывать.

Я так и не понял, какие проблемы с Обероном. Или просто лень замучала.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #19 : Сентябрь 23, 2012, 03:16:22 pm »
Какая программа?
Ну, набросал на C#. Даже стыдно показывать.

Я так и не понял, какие проблемы с Обероном. Или просто лень замучала.

Ну, ок. Если тебе хочется чего-то более сложного, то вот тебе еще один файлик.

А какие проблемы с Обероном мы не увидим пока не будет решения на Обероне :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #20 : Сентябрь 23, 2012, 03:28:32 pm »
Какая программа?
Ну, набросал на C#. Даже стыдно показывать.

Я так и не понял, какие проблемы с Обероном. Или просто лень замучала.

Ну, ок. Если тебе хочется чего-то более сложного, то вот тебе еще один файлик.

А какие проблемы с Обероном мы не увидим пока не будет решения на Обероне :-)
Да, разбор этого случая вообще говоря не обязателен в базовом решении (на Обероне, да). Но если кому-то программировать слишком скучно ту самую "малину", то можно заморочиться этим вот.
Y = λf.(λx.f (x x)) (λx.f (x x))

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #21 : Сентябрь 23, 2012, 03:43:36 pm »
Ну, ок. Если тебе хочется чего-то более сложного, то вот тебе еще один файлик.
В чем сложность-то, что есть разделители слов?
Разделитель слов
точка точка тире Разделитель слов
тире тире Пауза
точка тире точка Разделитель слов
точка тире тире точка Пауза
точка Пауза
тире Пауза
тире точка Разделитель слов
точка тире Пауза
точка тире точка точка Пауза
тире тире Пауза
точка тире Пауза
тире точка Пауза
точка Пауза
тире тире тире Пауза
точка точка точка тире

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #22 : Сентябрь 23, 2012, 03:46:06 pm »
Ну, ок. Если тебе хочется чего-то более сложного, то вот тебе еще один файлик.
В чем сложность-то, что есть разделители слов?
Сложность в том, что ты даже не увидел там проблем :-)
Расшифруй пожалуйста полностью. Да хоть руками.
Y = λf.(λx.f (x x)) (λx.f (x x))

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #23 : Сентябрь 23, 2012, 04:02:06 pm »
Я, конечно, не прочь иногда заниматься х%№;%;№, но не до такой же степени  :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #24 : Сентябрь 23, 2012, 04:07:34 pm »
Я, конечно, не прочь иногда заниматься х%№;%;№, но не до такой же степени  :)
Вот поэтому эта часть программы и нужна, чтобы ручками не делать :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #25 : Сентябрь 23, 2012, 04:18:01 pm »
Я, конечно, не прочь иногда заниматься х%№;%;№, но не до такой же степени  :)

Если я правильно переве твою дешифровку в морзе, то у тебя получилось нечто вроде такого:
..-   -- .-.   .--. . - -.   .- .-.. -- .- -. . --- ...-

Что, если верить вот этому онлайн-декодеру: http://webnet77.com/cgi-bin/helpers/morse.pl
расшифровывается как:
U MR PETN ALMANEOV

Что несколько не то, что передавалось :-) Таким образом, твой недоделанный декодер (ибо самого интересного в нем таки нет) во-первых неправильно дешифровал сообщение, и кроме того, даже не сообщил бы пользователю что возникли проблемы с декодингом и декодировка может содержать ошибки.
Y = λf.(λx.f (x x)) (λx.f (x x))

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #26 : Сентябрь 24, 2012, 04:23:31 am »
Что несколько не то, что передавалось :-)
Вот в это я "Не верю"(c). Слишком уж хороша форма сигнала, если смотреть на нее глазами. В результате сильных искажений картинка была бы другая.
Либо аппаратура работает с точностью до фантазирования. Тогда только в морг.

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #27 : Сентябрь 24, 2012, 04:39:13 am »
Таким образом, твой недоделанный декодер (ибо самого интересного в нем таки нет) во-первых неправильно дешифровал сообщение, и кроме того, даже не сообщил бы пользователю что возникли проблемы с декодингом и декодировка может содержать ошибки.
При такой постановке задачи (первый пост) ожидать, что кто-то на Обероне(!) сделает то, что здесь ожидается - это 5.
Как постановщик задач, ты даже vlad'а переплюнул.
Мои поздравления.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #28 : Сентябрь 24, 2012, 10:09:24 am »
Что несколько не то, что передавалось :-)
Вот в это я "Не верю"(c). Слишком уж хороша форма сигнала, если смотреть на нее глазами. В результате сильных искажений картинка была бы другая.
Либо аппаратура работает с точностью до фантазирования. Тогда только в морг.
Аппаратура работает четко. Я же упоминал, что потера сигнала может быть не по вине аппаратуры и не из за шумов.

Представь себе такую схему: передаем данные азбукой морзе не по радио, а через свет. Грубо говоря у нас мигающий фонарик. Между приемником и передатчиком в момент передачи "точки" может оказаться постороннее тело (напримример птица, машина или что-то еще) и затенить приемник. В результате точка пропадет, как и не было. При этом амплитуда сигнала отличная, шумов нет.

И такие вещи, в большенстве случаев, можно детектировать (но не корректировать).
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Задачка: декодер морзе.
« Ответ #29 : Сентябрь 24, 2012, 10:18:37 am »
Таким образом, твой недоделанный декодер (ибо самого интересного в нем таки нет) во-первых неправильно дешифровал сообщение, и кроме того, даже не сообщил бы пользователю что возникли проблемы с декодингом и декодировка может содержать ошибки.
При такой постановке задачи (первый пост) ожидать, что кто-то на Обероне(!) сделает то, что здесь ожидается - это 5.
Как постановщик задач, ты даже vlad'а переплюнул.
Мои поздравления.

А я и не ожидал что кто-то это сделает сразу. Задача многоступенчатая, в исходном условии задачи обозначены примерно первые две ступени. По ступенькам предполагалось постепенно подниматься, а не сразу на скалу лезть без ступенек. Ты пожаловался, что задача тебе слишком простая, тебе скучно, ну я и показал одну из следующих ступенек (специально, для других, пояснив, что с этим пока бороться не нужно, пока нужно простейшее решение для первой ступеньки-малины, на Обероне, да).

Кроме того, ты так и первую ступеньку даже на шарпе не одолел. Нужен таки полный декодер, а не выделение точек и тире из приехавшего сигнала.

У меня такое ощущение, что целиком условие задачи воспринял только Илья Ермаков (то есть он хотя бы в своем наброске хотя бы обозначил и обработчик сэмплов, и декодер который из точек и тире собирает буквы).
Y = λf.(λx.f (x x)) (λx.f (x x))