nedoPC.org

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



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

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Конвертер между четырмя системами счисления на джаве:
Code:
<applet code=TriCon width=640 height=160>
</applet>

 TriCon.java
Code:
// TriCon.java - Alexander Shabarshin  08-Feb-2006
// See http://ternary.info

import java.applet.*;
import java.awt.*;

public class TriCon extends Applet
{
 TextField text2;
 TextField text3;
 TextField text10;
 TextField text16;
 int number;

 public void init()
 {
  setLayout(new GridLayout(4,2));
  add(new Label("Ternary (N,O,P):"));
  text3 = new TextField(24);
  add(text3);
  add(new Label("Decimal (0-9):"));
  text10 = new TextField(16);
  add(text10);
  add(new Label("Hexadecimal (0-9,A-F):"));
  text16 = new TextField(8);
  add(text16);
  add(new Label("Binary (0,1):"));
  text2 = new TextField(32);
  add(text2);
 }

 public boolean action(Event event, Object object)
 {
  if(text2.equals((TextField)event.target))
  {
    number = Integer.parseInt(text2.getText(),2);
    text3.setText(toTernary(number));
    text10.setText(Integer.toString(number));
    text16.setText(Integer.toHexString(number).toUpperCase());
  }
  if(text3.equals((TextField)event.target))
  {
    number = fromTernary(text3.getText());
    text2.setText(Integer.toBinaryString(number));
    text10.setText(Integer.toString(number));
    text16.setText(Integer.toHexString(number).toUpperCase());
  }
  if(text10.equals((TextField)event.target))
  {
    number = Integer.parseInt(text10.getText(),10);
    text2.setText(Integer.toBinaryString(number));
    text3.setText(toTernary(number));
    text16.setText(Integer.toHexString(number).toUpperCase());
  }
  if(text16.equals((TextField)event.target))
  {
    number = Integer.parseInt(text16.getText(),16);
    text2.setText(Integer.toBinaryString(number));
    text3.setText(toTernary(number));
    text10.setText(Integer.toString(number));
  }
  return true;
 }

 public static String toTernary(int num)
 {
    int n,m,k;
    String s = null;
    k = 387420489;
    for(int i=0;i<=18;i++)
    {
      n = num/k;
      num -= n*k;
      m = k/2;
      if(num>+m){n++;num-=k;}
      if(num<-m){n--;num+=k;}
      if(n!=0 && s==null) s="";
      if(n==-1) s+="N";
      if(n==0 && s!=null) s+="O";
      if(n==1) s+="P";
      k /= 3;
    }
    return s;
 }
 
 public static int fromTernary(String s)
 {
    int n = 0;
    int k = 1;
    for(int i=s.length()-1;i>=0;i--)
    {
      char c = s.charAt(i);
      if(c!='N'&&c!='O'&&c!='P') return 0;
      if(c=='N') n-=k;
      if(c=='P') n+=k;
      k *= 3;
    }
    return n;
 }

}

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


Last edited by Shaos on 21 Sep 2012 10:41, edited 1 time in total.



08 Feb 2006 22:04
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Адрес апплета на ternary.info:

http://ternary.info/ternary/java.php?applet=2

P.S. Репа с этими и другими исходниками:

https://gitlab.com/ternary/ternary/-/tree/master/obsolete

Результат запуска без браузера: appletviewer TriCon.html


Attachments:
Screenshot from 2023-04-23 12-40-40.png
Screenshot from 2023-04-23 12-40-40.png [ 10.68 KiB | Viewed 2677 times ]

_________________
:dj: https://mastodon.social/@Shaos
08 Feb 2006 22:08
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Хорошая штука!!! Я и сам хотел себе написать - а тут вдруг и есть!!!

Только вот куда нажимать, чтобы вычислять начала? :o
Вводил в разные поля... и Enter нажимал, и мышю - тыкал...
Не вычисляет - нифига... Мож сломалось че? :-?

Странно... а на http://ternary.info/ternary/java.php?applet=2
по Enter работает... :roll:

_________________
iLavr


22 Sep 2012 16:59
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Дык просто вводишь в нужное поле и жмёшь Enter - оно выводится в разных форматах в другие поля...

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


22 Sep 2012 17:02
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Для полного кайфа нехватает девятиричной :)

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


23 Sep 2012 03:14
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
b2m wrote:
Для полного кайфа нехватает девятиричной :)


Ну тогда уж и восьмиричную надо добавить ;)

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


23 Sep 2012 08:35
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Ну тогда уж и восьмиричную надо добавить ;)

Блин... а она была популярна в старых отечественных машинах!...
У меня есть старая документация - там всё пестрит этими 65123о...
Очень тяжело читать с непривычки... :-?



PS. Хмм... "Троичный конвертер на Java"... Ну что бы мы делали
без этой дохлятины Джаббы...
:( (лопата)

_________________
iLavr


23 Sep 2012 09:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Ну тогда уж и восьмиричную надо добавить ;)

Надо же! Вроде пошутили... а восьмиричную - надо добавить! :o
Этот оригинальный EDUC-8 весь усыпан октальной системой... :(

Я сначала не мог понять - чего этого JAMIESON-а ROWE распёрло на октальную... :-?

Наконец понял - дислей он сподобился сделать октальный! (а точнее - десятичный)
вот у него и hex-числа на дисплей не лезут... :(

Image

Shaos, а нельзя заодно добавить и кнопочку "Вычислить" ?
А то "Enter" в поле ввода не всегда уверенно срабатывает... :-?

_________________
iLavr


08 Oct 2012 20:58
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Всё можно. Только я это уже не на джаве писать буду, а на JS...

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


08 Oct 2012 21:41
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos, я тут в целях совместить полезное с приятным решил добавить
твоему калькулятору GUI и всякие кнопочки, которые мне бы хотелось.

И всё получилось довольно неплохо:
Attachment:
converter2.gif
converter2.gif [ 46.59 KiB | Viewed 13425 times ]

И даже случился такой бонус, что Java сама приделывает к GUI-окну Status Bar
и пишет в нём по старту: Java Applet Window

Вот только я нигде не нашел, как мне самому что-то вывести полезное в этот Status Bar,
раз уж он есть...
Ты не знаешь, как это делают?

_________________
iLavr


01 Dec 2017 17:21
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Метод showStatus("...") вроде как есть у апплета

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


01 Dec 2017 17:25
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Метод showStatus("...") вроде как есть у апплета

Есть такой метод, это находится быстро... но выводит он в строку статуса броузера.
Я уже попробовал.

А это Status Bar GUI-окна.


P.S. Наверное, в этот Status Bar GUI-окна класса Frame ничего не выводят никак.
Не нашел я таких методов... :-?
Если скомпилировать в автономное GUI-приожение, то, видимо, этого Status Bar
просто не будет.

_________________
iLavr


01 Dec 2017 17:37
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
да - для окна незнаю как
не нравились мне джавовские окна никогда...

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


01 Dec 2017 18:41
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
не нравились мне джавовские окна никогда...

А я ещё когда писал «Специалист» на Java, хотел открывать его, как GUI-окно.
Но что-то в тот раз не случилось... А тут решил это попробовать! :wink:

Кстати, если юзать JFrame из JFC/Swing, то окна и вовсе приятные,
причем выглядят своеобразно:
Attachment:
javaNote.gif
javaNote.gif [ 7.91 KiB | Viewed 13415 times ]


Но чего это я раскудахтался? :lol: Джаба скоро помрёт! Всем повторять: помрёт Джабба! :mrgreen:

_________________
iLavr


01 Dec 2017 18:48
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Если скомпилировать в автономное GUI-приожение, то, видимо, этого Status Bar просто не будет.
Да, так и вышло:
Attachment:
noStatus.gif
noStatus.gif [ 3.25 KiB | Viewed 13409 times ]

Видимо, этот Status Bar с надписью Java Applet Window Джаба приделывает
своему GUI-окну, если оно развертывается из страницы браузера.
Наверное, чтобы юзер не пугался - откуда это окно такое всплыло... :wink:

_________________
iLavr


02 Dec 2017 04:04
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 45 posts ]  Go to page 1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 9 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.