nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 27 May 2018 15:53



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

Joined: 09 Jan 2003 00:22
Posts: 16532
Location: Colorado
Reply with quote
Конвертер между четырмя системами счисления:

<applet code=TriCon width=640 height=160>
</applet>

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;
 }

}

_________________
:eugeek: https://twitter.com/Shaos1973


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



08 Feb 2006 23:04
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16532
Location: Colorado
Reply with quote
Post 
Адрес апплета на ternary.info:

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

_________________
:eugeek: https://twitter.com/Shaos1973


08 Feb 2006 23:08
Profile WWW
Supreme God
User avatar

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

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

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

_________________
iLavr


22 Sep 2012 17:59
Profile
Admin
User avatar

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

_________________
:eugeek: https://twitter.com/Shaos1973


22 Sep 2012 18:02
Profile WWW
Doomed

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

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


23 Sep 2012 04:14
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16532
Location: Colorado
Reply with quote
Post 
b2m wrote:
Для полного кайфа нехватает девятиричной :)


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

_________________
:eugeek: https://twitter.com/Shaos1973


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

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

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



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

_________________
iLavr


23 Sep 2012 10:27
Profile
Supreme God
User avatar

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

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

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

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

Image

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

_________________
iLavr


08 Oct 2012 21:58
Profile
Admin
User avatar

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

_________________
:eugeek: https://twitter.com/Shaos1973


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

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

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

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

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

_________________
iLavr


01 Dec 2017 18:21
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16532
Location: Colorado
Reply with quote
Метод showStatus("...") вроде как есть у апплета

_________________
:eugeek: https://twitter.com/Shaos1973


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

Joined: 21 Oct 2009 09: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 18:37
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16532
Location: Colorado
Reply with quote
да - для окна незнаю как
не нравились мне джавовские окна никогда...

_________________
:eugeek: https://twitter.com/Shaos1973


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

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

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

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


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

_________________
iLavr


01 Dec 2017 19:48
Profile
Supreme God
User avatar

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

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

_________________
iLavr


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

Who is online

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