nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 05:31



Reply to topic  [ 45 posts ]  Go to page Previous  1, 2, 3  Next
Троичный конвертер онлайн 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Допилил я этот свой конвертер на Java чисто потому, как нет у меня никаких других инструментов
для работы с троичными кодами и их различными интерпретациями:
Attachment:
convert1.gif
convert1.gif [ 12.12 KiB | Viewed 12191 times ]
Total Converter for Ternary Research

Самое неприятное, что допиливать во многом пришлось не основную суть программы, а всякие косяки
и несоответствия... :osad:

По ссылке загружается Java jar-файл, подписи у него нет, поскольку у меня нет никаких инструментов
поставить ему подписи - так что всё это на индивидуальный страх и риск. :-?

По идее конвертер должен работать с числами в диапазоне от -2147483648 до 2147483647;
Это весьма много (4-байтное целое со знаком), в троичных схемах таких величин пока нет, поэтому
никаких проверок на превышение этого диапазона я делать не стал.


P.S. Я, конечно, проверял работу конвертера в процессе написания, но всё может быть: программа
новая, как говорится, "альфа-версия", замечания и пожелания - приветствуются...

_________________
iLavr


18 Dec 2017 20:09
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
В общем, кто попробовал, прислали мне примерно вот такую статистику:
Quote:
...под Windows 10, запустилось только через Internet Explorer.
Конвертер работает, всё нажимается, считает, размер меняет, чирикает).
Браузер Google Chrome говорит, что нет Java. Но они давно отказались от неё.
Opera также говорит, что нет Java
и даже Microsoft Edge в отказ ушёл.

По моей собственной статистике:
Opera 9.64 - запускает конвертер;
Internet Explorer - запускает конвертер;
K-Meleon - не запускает, и не пишет 'No Java' (ну у него сложные отношения с Java).

В принципе, можно пересобрать в исполняемый .ехе-файл по типу logisim-а,
но пишут, что JRE при этом на компьютере всё равно должна быть...
А если JRE на компьютере есть, то и смысла в .ехе-файле нет, и jar запустится.

Так что кроссплатформенность на платформе Java - запутанная штука... :wink:

_________________
iLavr


20 Dec 2017 10:56
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
У меня хромой и ослик пишут "no java".
Значит её нет, java-машины. Либо хромой и ослик такие умные что хотят jar с подписью.
Но это маловероятно... хромой не юзает java принципиально и со своего основания.
Если дело в подписи, то просто есть сообщение об её отсутствии и предложение -
запустить всё как есть на свой страх и риск.

А сборка jar здесь по любому написана с запуском "из HTML-окна".
Если java-машина есть, то всё выглядит вот так:
Attachment:
Start.gif
Start.gif [ 2.02 KiB | Viewed 12159 times ]

Хотя, некоторые люди написали мне, что "тыкали по кнопочкам - кнопки не нажимаются!" 8)
Ну что тут поделаешь... у скриншота "кнопки" не нажимаются... :mrgreen:

_________________
iLavr


20 Dec 2017 13:37
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Lavr wrote:
Если java-машина есть, то всё выглядит вот так:
Вот вместо кнопки и есть "нет жабам" :lol:
Ясное дело, что там написано "No Java!", если я это сам и написал в HTML для ситуации, когда Java не найдена. :wink:
Меня почему и удивило, что K-Meleon - не запускает апплет, но и не пишет 'No Java!'... :roll:
Но потом я прочитал на оффициальном сайте K-Meleon, что та его версия, что у меня установлена,
просто не знает, что такое Java, и как на нее реагировать. :mrgreen:

AlexanderZh wrote:
автономные jar апплеты я запускаю на ура.
Этот не автономный, он просто создает свое отдельное окно.
Для автономности его надо переписать с методом main и перекомпилировать.

_________________
iLavr


20 Dec 2017 15:08
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Кстати, посмотрите, если у Вас на машине есть файл appletviewer.exe,
то всё запустится как есть, безо всяких автономных jar апплетов.

Прямо вот сейчас и посмотрел:
Attachment:
a-viewer.gif
a-viewer.gif [ 13.77 KiB | Viewed 12148 times ]

Я когда пишу код на Java то все текущие компиляции смотрю через appletviewer.exe, так быстрее.

Только эти "танцы с бубном" - какая-то кривая кроссплатформенность... :wink:

_________________
iLavr


20 Dec 2017 15:42
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Lavr wrote:
если у Вас на машине есть файл appletviewer.exe
Отсутствует.
Ну тогда, как в анекдоте:"Sorry, Sir..." :wink:

Ну а у кого вдруг присутствует, то через него всё запускается так:
Attachment:
a-viewer_.gif
a-viewer_.gif [ 5.65 KiB | Viewed 12141 times ]

Либо написать .bat-файл, в котором только первая строчка (я свой назвал a-viewer.bat),
либо Пуск-->Выполнить и вписать эту первую строчку в окно Выполнить, потом - [Enter].

Для справки: appletviewer.exe считается микробраузером, который в любом HTML-файле выполняет только APPLET.

_________________
iLavr


20 Dec 2017 18:01
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
AlexanderZh wrote:
автономные jar апплеты я запускаю на ура.
Для автономности его надо переписать с методом main и перекомпилировать.

Перекомпилировал я апплет в автономное Java-приложение: Total Converter for Ternary Research

Я, правда, и сам планировал это сделать, но несколько позже и с применением класса Swing,
по внешнему виду примерно как-то так:
Attachment:
jSwing.gif
jSwing.gif [ 3.07 KiB | Viewed 12131 times ]
Ну дело в общем-то не в красивостях, а в функционале. Раз уж возникла необходимость в связи
с тем, что современные браузеры Java поддерживать фактически перестали... :-?

Но у всего есть оборотная сторона - у автономного Java-приложения нет HELP-a, хотя под него
и зарезервирована кнопочка, называемая сейчас "Exit".
Но дописывать HELP-окно мне сейчас что-то категорчески расхотелось. :osad:

Если Java SE Runtime Environment (JRE) на машине есть, но jar-файл всё-равно не запускается
по двойному клику по нему, я приложил .bat-файл, запускающий Total Converter.

_________________
iLavr


21 Dec 2017 08:45
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Понадобился мне для троичного ассемблера алгоритм перевода десятичного числа в его
троичное симметричное представление.
И надеялся я, что все нужные алгоритмы у меня есть в этом самом Троичном конвертере на Java...
Но, как всегда некстати, выяснилось, что исходник с комментариями я потерял, когда HDD рухнул. :osad:
А читать декомпилированную Java весьма муторно, легче и быстрее заново написать.

В общем раскопал я вот такой алгоритм, на мой взгляд - весьма удачный:
Quote:
Перевод числа из десятичной в троичную симметричную систему счисления

Положительное число A можно разделить с остатком на 3 двумя способами

Первый, традиционный: A / 3 = q (остаток r1, 0 <= r1 < 3)
Второй, сдвинутый: A / 3 = q + 1 (остаток r2 = r1 - 3, -3 <= r2 < 0)

Например: 5 / 3 = 1 (остаток 2) или 5 / 3 = 2 (остаток -1)

Берем исходное число и итеративно делим его на 3.
Если число делится нацело, то на выход записываем 0.
Если число не делится нацело, то выбираем тот вариант
(из вышеприведенных), который дает меньший по модулю остаток.
Остаток записываем на выход.

Code:
#include <iostream>
#include <string>

int main() {
  unsigned a = 32;
  std::string s;

  while (a > 0) {
    unsigned q = a / 3; //--- целочисленного деления
    unsigned r = a % 3; //--- возвращает остаток целочисленного деления

    if (r <= 1) {
      s = (char)(r + '0') + s; //---  по сути: r + 30h - код ASCII символа числа r
      a = q;
    }
     else
    {
      r = 3 - r;
      s = '-' + ((char)(r + '0') + s); //---  r + 30h - код ASCII символа числа r
      a = q + 1;
    }
  }

  std::cout << s << std::endl;
}

_________________
iLavr


30 Mar 2019 08:51
Profile
Novelist

Joined: 21 Jan 2019 03:36
Posts: 39
Reply with quote
Я прошу прощения, если мои соображения окажутся не к месту, но:
почему-бы не воспользоваться статьёй Рамиля Альвареса Хосе, которую можно взять по адресу
http://www.computer-museum.ru/books/set ... res_02.pdf и не перевести число из десятичной в (10-1)-ичную систему? А уж из девятеричной попарно получать разряды троичной записи.

Этот-же принцип и при переводе из троичной в двоичную/восьмеричную/шестнадцатеричную можно использовать. Либо из троички в четверичную, а затем хоть в двоичную (если один разряд четверичной раскладывать в два) либо в шестнадцатеричную (если два разряда четверичной объединять в один). Ну или из троички, попарно объединяя разряды, получить девятеричную, а потом хоть в восьмеричную, хоть в десятичную перевести.


31 Mar 2019 21:24
Profile ICQ
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
kvas wrote:
Я прошу прощения, если мои соображения окажутся не к месту,
Совершенно не к месту... :-?
kvas wrote:
почему-бы не воспользоваться статьёй Рамиля Альвареса Хосе, которую можно взять по адресу
http://www.computer-museum.ru/books/set ... res_02.pdf и не перевести число из десятичной в (10-1)-ичную систему? А уж из девятеричной попарно получать разряды троичной записи....

Потому что, это как вырезать гланды... автогеном... через ж@пу... ©

_________________
iLavr


01 Apr 2019 08:24
Profile
Novelist

Joined: 21 Jan 2019 03:36
Posts: 39
Reply with quote
Lavr wrote:
...а вот иностранцы в анекдоте по ссылке приняли такой подход за признак мастерства :)

Однако, если вернуться к теме перевода в троичную симметричную систему счисления, то вот по этой ссылке предлагают алгоритм и функцию, работающие для любых симметричных СС, и приводят образец её вызова для троичной и пятеричной СС.


02 Apr 2019 06:08
Profile ICQ
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
kvas wrote:
..а вот иностранцы в анекдоте по ссылке приняли такой подход за признак мастерства :)
На то они и иностранцы... но если вас устраивает такой "признак мастерства" - то мне тоже не жалко... :mrgreen:

kvas wrote:
Однако, если вернуться к теме перевода в троичную симметричную систему счисления, то вот по этой ссылке предлагают алгоритм и функцию, работающие для любых симметричных СС, и приводят образец её вызова для троичной и пятеричной СС.

...если вернуться к теме, то поскольку вы предлагаете какие-то алгоритмы ЗДЕСЬ, то не поленитесь,
проверьте их на C++ или C и выложите в этот форум работоспособный вариант.
У посетителей будет возможность сравнить, какой алгоритм лучше, быстрее или компактнее.

Алгоритмов в сети много, многие я просмотрел, но пришел к выводу, что тот, который я запостил
выше, наиболее краток и быстр в данной конкретной ситуации.

_________________
iLavr


05 Apr 2019 08:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Допилил я этот свой конвертер на Java чисто потому, как нет у меня никаких других инструментов
для работы с троичными кодами и их различными интерпретациями: ...

Понадобился мне такой конвертер, а Java я больше не держу на компьютере... :-?
Искал я, искал что-то похожее, нашел только вот это: http://trinary.su/projects/translator/,
но как-то мне оно не очень помогло... :-?

И по пути наткнулся на один ресурс, где клятвенно (но на английском :wink: ) обещали конвертнуть
работающий *.jar в исполнимый *.exe, причём онлайн! :o
Я, хоть и знаю, что чудес не бывает, чисто от безвыходности на это купился... :wink:

Ну... не обманули! :lol: Создали мне TConvert.exe ! :roll:
Вот только выяснилось, что ему всё равно для работы нужна Java JRE... пришлось поставить... :neutral:
Attachment:
Tc.PNG
Tc.PNG [ 114.89 KiB | Viewed 2495 times ]

Но если на машине уже установлена Java JRE, то никакой TConvert.exe уже и не нужен... :D
Всё и без него работает:
Code:
start "C:\Program Files\Java\jre1.8.0_144\bin\javaw.exe" -jar "C:\TEMP\TConvert.jar" %*

_________________
iLavr


03 Jan 2023 09:56
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Советую проверить машину на наличие троянчегов и всякого рода вирусни :mrgreen:

_________________
:dj: https://mastodon.social/@Shaos


03 Jan 2023 20:36
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Советую проверить машину на наличие троянчегов и всякого рода вирусни :mrgreen:

Ты это советуешь ровно столько, сколько я тебя тут знаю... мне мог бы и не советовать. :-?
Как говорил покойный ныне Зигмунд Фрейд:"Иногда сигара - это просто сигара..." :lol:

P.S. Но чтобы Shaos спал спокойно и не переживал за меня, я эту проверку повторно сделал: :roll:
Attachment:
TConv.PNG
TConv.PNG [ 59.32 KiB | Viewed 2495 times ]
Кстати говоря, я тут намедни прочитал ряд статей на тему: почему всё же от Java отказались в браузерах.
Пишут, что Java - самая трудноустранимая дыра в них, поэтому Javу и уволили...
Может мне всю Java-машину от Оракли на наличие троянчегов и всякого рода вирусни проверить?
:ebiggrin:

_________________
iLavr


04 Jan 2023 05:25
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 45 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 16 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.