algebra fx-2.0에서 야구게임

계산기 2022. 10. 12. 22:19 posted by tolkien

- hp-39gs에서 야구게임

- sharp el-5230에서 야구게임

 

 이번에 입수한 casio algebra fx-2.0(이하 afx-20)에 야구게임을 porting(?) 해보았습니다.

후속 version인 fx-2.0 plus가 2001년에 나왔으니, 나온지 20년이 넘은 제품입니다.

porting(?)하면서 앞 두 기종과 다른 점은...

  1. GOTO를 제공한다. (EL-5230과 같음) 하지만, goSub를 지원하지 않는다.
  2. 외부 program을 subroutine처럼 쓸 수 있다. RETURN 지원 (hp-39gs와 동일)
  3. 출력은 한번에 한개만 가능 (EL-5230과 비슷)
  4. IF (condition) ... 에서 AND 및 OR 연산자 사용할 수 있다.
    (hp-39gs에서는 쓰지 못하는 것으로 알고 있어서 check routine을 별도 program으로 만들어서 호출했는데, emulator로 확인해니 hp-39gs도 AND 및 OR 연산자를 쓸 수 있는 것 같습니다. 그렇다면 더 간결하게 작성할 수 있을 것같네요.)

afx-2.0는 위치상 fx-9860 series보다 상위 제품입니다. CAS를 지원하고, 후속기종이 Casio ClassPad series입니다. 나온지 오래되어서 기본 프로그램이 조금 낡은 느낌이 나고, 버튼이나 명령어 배치가 조금 불편합니다. CPU는 NEC v30mx로 intel 8086 호환이 됩니다. 그래서, OS로 ROM-DOS가 깔려있다고 합니다.

 

 

 code는 아래와 같습니다. '->'는 →이고, <는 ▲입니다.

더보기
Do:Int (Ran# x10)->A:LpWhile A=0
Do:Int (Ran# x10)->B:LpWhile B=0 Or A=B
Do:Int (Ran# x10)->C:LpWhile C=0 Or A=C Or B=C
Lbl 0
"GUESS"?->G
If G=-1:Then Ax100+Bx10+C<
IfEnd
Int (G/100)->D
Frac (G/10)x10->F
(G-100xD-F)/10->E
0->S:0->R
If D=B Or D=C
Then R+1->R
Else If D=A
Then S+1->S
IfEnd:IfEnd
If E=A Or E=C
Then R+1->R
Else If E=B
Then S+1->S
IfEnd:IfEnd
If F=B Or F=A
Then R+1->R
Else If F=C
Then S+1->S
IfEnd:IfEnd
 
If S=3:Then
"GOOD JOB":Stop
IfEnd
If S=1:Then "1 STR"<
Else If S=2:Then "2 STR"<
Else "NO STR"<
IfEnd:IfEnd
If R=1:Then "1 BALL"<
Else If R=2:Then "2 BALL"<
Else If R=3:Then "3 BALL"<
Else "NO BALL"<
IfEnd:IfEnd:IfEnd
Goto 0

baseball_afx-20.txt
0.00MB

HP-39gs에서 야구게임

계산기 2022. 5. 30. 12:04 posted by tolkien

  Shart EL-5230에서 사용했던  숫자야구 프로그램을 HP-39gs에 porting해보았습니다.


 두 기종에서 제공하는 programming language(Sharp Basic vs HP Basic ?)의 차이를 보면...

  1. EL-5230은 GOTO문을 제공하지만, HP-39gs는 GOTO문이 없습니다.
  2. EL-5230에서 IF문이후 무조건 GOTO문을 써야 합니다. 즉, IF ... GOTO <lable> 형태로 고정되어 있습니다.
  3. HP-39gs의 IF문은 우리가 알고 있는 형태로 사용합니다. IF ... ELSE ... END
  4. EL-5230은 여러프로그램을 작성할 수 있지만, 서로 호출할 수 없슴. but, 내부에 subroutine을 정의하고 호출할 수 있습니다.
  5. HP-39gs는 프로그램을 파일단위로 관리하고, 상호 호출할 수 있지만, 파일내 함수를 정의할 방법이 없습니다.
  6. HP-39gs는 graphing 함수가 있다. (당연한가?) 하지만, 숫자야구에서는 쓸 일이 없슴.
  7. HP-39gs는 parameter구분은 ;를 사용하고, statement 종료는 :를 입력한다.
  8. 출력은 EL-5230보다 HP-39gs가 더 유연한 것같습니다.
    EL-5230은 string 출력과 값출력을 따로 해야 하지만, HP-39gs는 그냥 섞어서 내보낼 수 있습니다.
    그래서, HP-39gs가 출력 부분이 더 간결합니다.

code는 BASEBALL.000과 BG.CHK.000 code 두 파일을 연속해서 나열한 겁니다.
(->는 HP-39gs의 "STO" 기호로 대체해야 합니다.)

더보기
BASEBALL.000
---
INT(RANDOM*10)->A:
DO
  INT(RANDOM*10)->B
UNTIL A != B END:
DO
 DO
  INT(RANDOM*10)->C
 UNTIL B != C END:
UNTIL A != C END:
A*100+B*10+C->H:
0->R:0->S:-1->G:

DO
  INPUT G;
  "BASEBALL GAME";
  "YOUR GUESS";
  G": "S"Strike, "R"Ball";0:

  IF G==0 THEN STOP: END:
  INT(G/100)->D:
  FRAC(G/10)*10->F:
  (G-100*D-F)/10->E:

  0->S:0->R:
  A->I:D->J:RUN BG.CHK:
  B->I:E->J:RUN BG.CHK:
  C->I:F->J:RUN BG.CHK:
UNTIL G == H END:
MSGBOX "GOOD JOB"

BG.CHK.000
---
IF J==A THEN R+1->R: END:
IF J==B THEN R+1->R: END:
IF J==C THEN R+1->R: END:
IF J==I THEN
  R-1->R:
  S+1->S:
END:

첨부파일은 HP-39gs용 binary.

BASEBALL.000
0.00MB
BG.CHK.000
0.00MB

TI BA II PLUS

계산기 2022. 4. 5. 14:15 posted by tolkien

TI BA II plus를 접할 기회가 있었다.

먼저 접한 재무계산기가 HP-12C다보니 시각이 조금 HP-like한 것을 감안하시길...

 

  처음 인상은 "아. 조용하다.". 누구는 버튼이 헐렁거린다.고 하는데, 버튼이 매우 부드러워서 도서관에서 써도 될 정도이다.

 

  그 다음에 몇번 써보니까, 일반 공학용 계산기와 달리 RPN이 아니어서 불편함을 느꼈다. 구체적으로 설명해보면
  - 재무용 계산기에서 연이율 5%를 입력하려면 "5 입력, <I/YR> 입력" 순이다.

  - 공학용 계산기에서는 "5 입력, <STO> 입력, <I/YR> 입력"순이 될 것이다.
    (참고로, 재무용 계산기도 <STO>를 사용할 수도 있다. 아무도 하지 않겠지만)

이 틀에서 BA2 plus는 재무용 계산기다. "5 입력, <I/YR> 입력" 순을 따르고 있고, 관련 교육영상을 봐도 이렇게 가르치고 있다.

  헌데, 다 입력하고, <FV>를 구하려고 하면 <CPT> (compute) button을 누르고, <FV> button을 눌러야 한다. 내가 써본 HP들은 그냥 <FV>만 누르면 나오는데...

 

  HP-12C, HP-17bII+, HP-10bII+보다 나은 점은 통계 데이타 처리. 데이타 입력, 확인 및 통계량 확인에 있어서 화살표 button을 이용해서 쉽게 확인할 수 있다.

 

전체적으로 보면, 무난한 계산기. 일반 공학용 계산기에 제공하는 기본적인 수학함수도 제공하고, ... 단지, 매니아를 만들만한 독특한 점은 없는 것 같다.

BA_II_PLUS_EN.pdf
1.34MB

HP-10bII

계산기 2022. 4. 5. 13:43 posted by tolkien

이전에 쓰던 HP 재무 계산기들을 흘려보내고,
다시 손에 쥔 것이 HP-10bII

 

처음에는 HP-10bII+에 비해서 삼각함수정도 없는 것이려니 하고 생각했는데, 그것보다 더 차이가 크다. 없는 것을 하나하나 짚어보면

  1. 삼각함수 부재.
  2. 채권 함수, 감가 상각 및 기타 재무 함수 없슴.
  3. 통계 데이타 입력한 내용 확인할 수 없슴.

 첫번째 항목은 사전에 알고 있던 것이어서 아쉬움이 덜한데, 통계 데이타 입력을 확인할 수 없는 것은 상당히 타격이 크다. 입력한 것이 틀리면 틀린 값을 빼고, 다시 입력하면 된다.라고 하는데, 내가 뭘 잘못 입력했는지 확인할 수 있어야 고치지.

 

 이전에 사용했던 HP-10bII+에서는 한줄씩이나마 입력된 값을 볼 수 있도록 했다는 점에서, 그리고 이 계산기를 한번에 한 줄만 보인다는 점에서 많이 아쉬운 점이다. multiline이었다면 직전에 입력한 값을 확인할 수 있어서 덜 아쉬웠을 것 같다.

 

HP-10bII+와 같이 가볍운 무게 및 적절한 button 느낌은 여전하다.

HP10BII-Sauder_School.pdf
0.73MB
HP-10BII_User_Guide.pdf
3.27MB

1280 bytes vs 4096 bytes

계산기 2022. 2. 21. 15:42 posted by tolkien

Sharp EL-5230을 입수해서

언제나 그렇듯이 설명서보면서 이것저것 해보다가

web에 올라온 숫자야구 프로그램을 발견했습니다.

조금 길긴 했는데, 다 꾸역꾸역 입력하고 실행해보았습니다.

그리고, 혹시나해서 memory check를 해보니 EQN 2개, 프로그램 4개가 들어있다고 하고, 남은 memory가 59bytes...

 

설명서를 보니 EL-5230은 1280 bytes를 제공한다고 합니다.

형제 기종인 EL-5250은 4096 bytes를 제공한다는 설명을 본 순간

와~ 널널하겠다.라는 생각이 불쑥 들었습니다.

 

추신. HP-12C는 400 step 지원(platinum 기준)이라서 더 작긴 한데, 거긴 명령어 세트로 제한되어서 작다는 느낌이 없었슴.

      2. HP-17bII+는 32K bytes... (광할하다.) 게다가 List, Matrix 지원

          EL-5230에서는 STAT mode에서 입력한 값을 PROG mode에서는 못 가져오네요. 아쉽...

 

EL-5230,5250.pdf
6.11MB

꼬랑지. 첨부한 숫자야구 프로그램에 버그가 있었네요.
          0~9에서 서로 다른 세개의 숫자를 맞추는 것으로 변경했습니다.

baseball-el5230.txt
0.00MB

HP-12C, HP-17BII+에서 삼각함수

계산기 2022. 2. 12. 21:25 posted by tolkien

HP-17BII+는 재무용 계산기다. 그래서, 삼각함수를 제공하지 않는다.

HP-12C는 재무용 계산기다. 역시 삼각함수따위는 제공하지 않는다.
HP-10BII+도 재무용 계산기다. 하지만, 학생용.이어서 그런지 삼각함수를 제공한다.

 

그리고, 난 "고급" 계산기에 삼각함수가 없으면 왠지 허전하다.

뭐, 제공하지 않으니까 하고 체념했는데, 그런 허전함을 느낀 사람들이 많았던 것같다.

HP-12C와 HP-17BII+는 프로그래밍을 할 수 있다는 점을 이용해서
삼각함수를 계산하는 프로그램이 공개되어 있다.

- hp-12c에서 삼각함수: https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=487

- hp-17bII+에서 삼각함수: https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=222

 

둘 다 외부에서 프로그램을 download는 꿈도 꿀 수 없으니
8bit 시대처럼 문서를 보고 일일히 입력할  밖에. 그리고, 굉장히 느리다.

그냥 보급형 공학계산기를 따로 갖추는 것이 더 효율적이지만, 입력해놓고 일부러 삼각함수 값을 계산하면서 히죽히죽 웃고 있다.

Fast and Accurate Trigonometric Functions on the HP-12C.pdf
0.11MB
Improved TRIG. and INVERSE TRIG. functions for the HP-17BII.pdf
0.12MB

HP-17BII+ 재무 계산기

계산기 2022. 2. 7. 17:45 posted by tolkien

어쩌다보니 재무계산기쪽을 공부하고 있고,

(계산기 사용법만 공부합니다!)

어쩌다보니 HP-12C, HP-10BII+, HP-17BII+를 손에 들게 되었습니다.

 

HP-12c Platinum

처음에 시작한 것은 HP-12C.

- 시작하면서 TVM은 확실하게 익혔습니다.

- hpcalc에 가니 삼각함수를 구하는 program이 있어서 입력해보고 우와~ 이건 소중이야.라고 외침.

- program을 보면서 내용을 이해하기 위해서 flow chart를 그리는 제 자신을 발견했습니다.

- 단점: cpu 8bit, debugging 환경도 8bit.

중간에 틀리게 입력해서 값이 이상하면 한줄한줄 버튼 눌러가며 확인하는데, 두어번하고 나니 회의가 들더군요. 21세기에 뭔 짓이여.


 

 

HP 10bII+ (rev1)

어제 저녁부터 보기 시작한 것이 HP-10BII+

- 일단 최신!이라고 말하고 싶었지만, rev2가 아닌 rev1

- 학생용.

- 무엇보다 기본 수학함수(ln, log, y^x, e^x, 삼각함수)까지 내장되어 있어 일반 공학용 계산기로 쓸 수 있음을 확인하고 뿌듯. (hp-12c는 없습니다.)

- 단점(?): hp-12c와 달리 RPN이 아닌 infix 계산(일반 공학용 계산기 입력 방식)

- cpu가 32bit

 


 

 

hp 17bII+ (gold)

그러다가, 오늘 17BII+를 보고 질렀습니다.

- hpcalc에서 평이 그다지 좋지 않은 gold입니다.

- RPN 됩니다.

- hp-39gs에서 가장 높이 평가했던 soft menu를 채용하고 있습니다. 즐거워요.

- 통계 값(x,y) 입력하는데, 위에 것들 보다 조금 더 불편합니다.

- (통계) 결과값을 보는 것은 위 두 모델보다 좋아요. 우와~ 소리가 나오네요.

- 나쁜 점: 가장 최신 제품이 2007년 이전에 출시한 것이라서 "부드러운" button이 언제 삭아버릴까 조마조마하네요. (이후에 나온 17bII+ sliver가 2007년 출시)

- 나쁜 점(2): 이것도 8bit cpu! 근데, 빨라...


 

총평은

12C는 CFA 시험에 들고 갈 수 있는 놈 + premium (왜?)

10BII+는 실용성에서 탑.

17BII+는 HP 계산기 특유의 감성...

 

추신. hpcalc의 글을 보면 다른 브랜드보다 확실히 덕후가 많음.

hp 직원에도 덕후가 있는 듯.

워즈니악이 hp 직원이었던이 우연이 아닌듯.

 

추신2. 한글 manual 첨부합니다.

hp12cplatinum-qsg-ko.pdf
0.45MB
hp12cplatinum-ug-ko.pdf
1.82MB
hp10biiplus-qsg-ko.pdf
0.63MB
hp10biiplus-ug-ko.pdf
2.93MB
hp17biiplus-qsg-ko.pdf
0.36MB
hp17biiplus-ug-ko.pdf
6.77MB

TI-89 emulator

계산기 2021. 3. 31. 23:37 posted by tolkien

이전 포스트 - https://tinuviel.tistory.com/1060

Graph89 free source를 build해서 migration해서 쓰다가 찾아낸 porting bug.

 

- android 11에서 take_screenshot을 실행하면 app이 죽는다.

 

원인은 android 11에서 media file 처리하는 방법이 바뀐 것때문이다. android 11에서는 app들간 파일을 공유하도록 하려면 MediaStore을 사용해야 한다. 그럭저럭 S20에서 돌아가게 한 다음에 다른 device에서 test해보니 android 8.1.0에서 또 안됨. web으로 관련자료를 뒤져보니까 google에서 media 처리관련 잦은 변경사항때문에 media file 처리가 꽤 난해한 것같다라는 글을 있었다.

어쨌든 이것도 오늘 fix up. 첨부 파일은 screenshot 기능을 fix한 graph89-free.apk.

(2021/03/31 기존 source code에 있었던 AmbilwarnaPreference(Color Picker) class와 custom SeekBarPreference.java를 제거한 version으로 다시 올립니다. 이걸로 최신 android와의 최소한의 호환성은 확보한 것같습니다.)

graph89-free_release2.apk
7.86MB
TI89Titanium_OS.89u
1.34MB

TI-84에서 통계,리스트,회귀분석 등등...

계산기 2021. 2. 28. 13:10 posted by tolkien

이 글은 m.cafe.daum.net/TI-84/G8eo/6 에서 대부분 복사해왔습니다.

해당 까페는 2011 ~ 2015까지 운영하다가 폐쇄되었습니다.

TI-84 사용에 있어 얼마없는 통계나 재무회계를 다루고 있어서 옮겨 적습니다.

 

  건물가격 (원/m^2) 경과년수
1 580,000 3
2 500,000 10
3 520,000 7
4 560,000 5
5 600,000 0

 

자료가 위와 같을 때, 우선 리스트에 자료를 입력하는데

경과년수를 독립변수로 건물가격을 종속변수로 하는 것이 좋으므로 이렇게 입력.

 

1) 회귀분석하기

y = ax+b

a = -10689.65517

b = 605448.2759

r² = .96331

r = -.98148

차례대로 회귀계수, 회귀상수, 결정계수(r²), 상관계수(r) 를 의미한다. 상관계수, 결정계수가 안나온다면 설정을 바꿔주어야 한다.

* 여기서 4:LinReg(ax+b) 로 하는 것과 8:LinReg(a+bx) 로 계산하는 것의 내용상 차이는 없다. a, b의 위치가 달라질 뿐이다.

 

2) 통계분석

 

변수가 두개니까

  STAT-CALC

  2-Var Stats

를 이용하면 통계분석을 간단하게 할 수 있다.

 

중점적으로 봐야 할 내용은

  x 평균 (x위에 줄 그어진 것. 'x바'라고 읽는다)

  y 평균 ('y바') 그리고 σx, σy (표준편차)  정도이다.

* 표준편차는 모표준편차로, 표본표준편차인 Sx, Sy 와 다르므로 주의.

 

여기서 공분산을 구해보면...

mean( (L1-mean(L1))*(L2-mean(L2)) )

 = mean(L1*L2) - mean(L1)*mean(L2)

 = -124,000 이 나온다.

공분산을 (x의 표준편차 * y의 표준편차) 로 나누면 상관계수(R)가 되는데 -124000 / (σx * σy ) = -.98148  이고. 그 값을 제곱해주면 결정계수 0.96331 이 된다.

 

TIP) 2-Var Stats를 통해 계산된 값은 계산기 내의 통계변수에 저장이 되므로 그 값을 불러오면 쉽게 계산이 가능하다. 변수값을 불러올 때는 VARS 버튼 - 5:Statistics 를 누르면 된다.

Graph 89-free 다시 build하기

계산기 2021. 2. 21. 21:42 posted by tolkien

 계산기에 대해서 살짝 열중하고 있는 와중에 나를 홀딱 반하게 한 계산기가 TI-89 이다.

 정확히 말하면 계산기 껍데기를 쓴 휴대용 컴퓨터이다. 제공하는 기능만 따지면 휴대폰보다 더 쓸고있는 물건(?)이라고 생각한다. 그래서, TI-89의 기능을 다 공부한 다음에 다음 타겟은 같은 회사에서 나온 voyage 200. 이것은 키보드가 달려있는 TI-89라고 생각해도 된다. 헌데 외양이 계산기답지 않아서 천대받고 있는 천덕꾸러기.

 이것을 휴대폰에서 돌릴 수 있게하는 emulator중에서 제일 좋은 것이 Graph 89-free라고 생각한다. Free version의 경우, TI-89만 돌릴 수 있다.

 그런데, 이것을 작성하신 분은 Dritan Hashorva라는 인도(?) 사람으로 추정되는 개발자.이고, 개발을 2013년 10월에 멈추고 source license를 GPLv2로 변경하고, code를 bitbucket에 올렸다. 그리고, 더 이상 update가 없다.

 그걸 받아다가 android studio 4.1.2에서 build되게 하고, galayx S20까지 설치 test까지 해서 수정한 code를 내 개인 github에 올렸다. android studio 4.1.2로 migration은 자동으로 되었고, 여기에 살짝 warning 정도를 제거한 것이 전부.

 내가 build한 binary는 여기에 첨부한다. (google play에는 Dritan이 올린 것이 있으므로)

graph89-free_debug.apk
6.94MB