2012年4月18日投稿 / 投稿者 : いったん / タグ : 投稿プログラム ツール QRコード mkII専用
524287を超えた演算をしてくれるプログラムです。
プログラムに組み込んだりして使ってください。
足し算と掛け算しかできませんが、できたら引き算などもこれから載せたいと思います。
バグなどありましたら連絡してください。
4/22
引き算とマイナスの符号を使えるようにしました。
プログラムリストに追加したところを青、消したところを灰色で書いてあります。
バグがありましたら連絡お願いします。
最初に演算子を選んでください。その後2つの数字(整数)を打ってください。
筆算のようにして解いています。なのでケタ数が多いと時間がかかります。
プチコンmkII 向けの QR コードです。
バージョン1
バージョン2 引き算と符号の認識ができるようになりました。
バージョン1と同じ名前なので上書き保存してください。
- ’Power up エンサ゛ンソフト by ittan
- ’−LOG−
- ’2012/04/19 ヒキサ゛ン ツイカ
- ’2012/04/22 フコ゛ウ テキヨウ
- VISIBLE 1,1,0,0,0,0
- CLEAR:CLS
- ’ヘンスウテイキ゛
- LMAX=30
- DIM K$(LMAX)
- ANS$=””
- L1=0:L2=0:L3=0:L4=0
- A$=””:B$=””:C$=””:D$=””
- A=0:B=0:C=0:E=0:F=0:G=0
- MA=0:MB=0
- @PUT
- ?”カケサ゛ン→0*
- ?”タシサ゛ン→1+
- ?”ヒキサ゛ン→−
- INPUT”エンサ゛ンシハ”;C$
- G=INSTR(”*+−”,C$)
- INPUT”ハシ゛メノスウシ゛ハ”;A$
- INPUT”ツキ゛ノスウシ゛ハ”;B$
- GOSUB @CHKMINUS
- MAX1=LEN(A$)
- MAX2=LEN(B$)
- IF G==1 OR G==2 THEN GOSUB@CHKTASI
- ON CG GOTO @KAKE,@TASI
- GOTO@PUT
- @KAKE
- FOR I=0 TO MAX2−1
- K$(I)=””
- FOR P=0 TO I−1
- K$(I)=K$(I)+”0”
- NEXT
- A=VAL(MID$(B$,MAX2−I−1,1))
- FOR J=0 TO MAX1−1
- B=VAL(MID$(A$,MAX1−J−1,1))
- C=A*B
- D=C%10
- E=(C−C%10)/10
- F=D+VAL(MID$(K$(I),J+I,1))
- IF F>=10 THEN E=E+1:F=F%10
- K$(I)=LEFT$(K$(I),J+I)
- K$(I)=K$(I)+STR$(F)+STR$(E)
- NEXT J
- NEXT I
- ANS$=””
- M1=MAX1+MAX2
- M2=MAX2
- FOR I=0 TO M1−1
- A=0
- FOR P=0 TO M2−1
- B=VAL(MID$(K$(P),I,1))
- A=A+B
- NEXT
- L1=0:L2=0:L3=0:L4=0
- L1=A%10+VAL(MID$(ANS$,I,1))
- IF L1>9 THEN L1=L1%10:L2=L2+1
- L2=L2+(A−A%10)/10
- L2=L2+VAL(MID$(ANS$,I+1,1))
- IF L2>9 THEN L2=L2%10:L3=L3+1
- L3=L3+(A−A%100)/100
- C$=STR$(L1)+STR$(L2)+STR$(L3)
- ANS$=MID$(ANS$,0,I)+C$
- NEXT
- H$=ANS$:ANS$=””
- L4=LEN(H$)
- FOR I=1 TO L4
- ANS$=ANS$+MID$(H$,L4−I,1)
- NEXT
- @A
- IF MID$(ANS$,0,1)==”0” THEN ANS$=MID$(ANS$,1,LEN(ANS$)−1):GOTO@A
- IF ANS$==”” THEN ANS$=”0”
- IF MA!=MB THEN ANS$=”−”+ANS$
- ?ANS$
- GOTO@PUT
- @TASI
- A=MAX1
- C$=””
- IF A<MAX2 THEN A=MAX2
- A$=RIGHT$(”0”*32+A$,A)
- B$=RIGHT$(”0”*32+B$,A)
- FOR I=A TO 1 STEP −1
- A=VAL(MID$(A$,I−1,1))
- B=VAL(MID$(B$,I−1,1))
- E=VAL(LEFT$(C$,1))
- C=A+B+E
- D$=RIGHT$(”0”+STR$(C),2)
- C$=D$+RIGHT$(C$,LEN(C$)−1+(C$==””))
- NEXT
- ANS$=C$
- @B
- IF LEFT$(ANS$,1)==”0” THEN ANS$=RIGHT$(ANS$,LEN(ANS$)−1):GOTO@B
- IF MA==1 AND MB==1 THEN ANS$=”−”+ANS$
- ?ANS$
- GOTO@PUT
- @HIKI
- A=MAX1
- C$=A$:ANS$=””
- IF A<MAX2 THEN A=MAX2
- A$=RIGHT$(”0”*(LMAX−MAX1)+A$,A)
- B$=RIGHT$(”0”*(LMAX−MAX2)+B$,A)
- FOR I=A TO 1 STEP −1
- A=VAL(MID$(A$,I−1,1))
- B=VAL(MID$(B$,I−1,1))
- C=A−B
- IF C<0 THEN GOSUB @KURISAGARI
- ANS$=STR$(C)+ANS$
- NEXT
- IF F==TRUE THEN F=FALSE:G=TRUE:GOTO@HIKI
- @C
- IF LEFT$(ANS$,1)==”0” THEN ANS$=RIGHT$(ANS$,LEN(ANS$)−1):GOTO@C
- IF ANS$==”” THEN ANS$=”0”
- IF G==TRUE THEN ANS$=”−”+ANS$:G=0
- ?ANS$
- GOTO@PUT
- @KURISAGARI
- L=I−1
- IF L==0 THEN F=TRUE:GOTO@FTRUE
- F=FALSE
- @KLOOP
- D=VAL(MID$(A$,L−1,1))
- IF D!=0 THEN A$=SUBST$(A$,L−1,1,STR$(D−1)):GOTO@EXIT
- A$=SUBST$(A$,L−1,1,”9”)
- IF L==1 THEN F=TRUE:GOTO@FTRUE
- L=L−1
- GOTO@KLOOP
- @FTRUE
- I=0
- A$=B$
- B$=C$
- SWAP MAX1,MAX2
- @EXIT
- A=A+10
- C=A−B
- RETURN
- @CHKMINUS
- C=CANCEL:D=CANCEL
- C$=LEFT$(A$,1)
- D$=LEFT$(B$,1)
- C=INSTR(”+−”,C$)
- D=INSTR(”+−”,D$)
- MA=(C==1)
- MB=(D==1)
- IF C==−1 AND D==−1 THEN RETURN
- A$=RIGHT$(A$,LEN(A$)−(C>=0))
- B$=RIGHT$(B$,LEN(B$)−(D>=0))
- RETURN
- @CHKTASI
- IF G==2 THEN MB=!MB
- IF MA==MB THEN G=1:RETURN
- IF MB==1 THEN G=2:MB=0:RETURN
- SWAP A$,B$
- SWAP MAX1,MAX2
- MA=0
- G=2
- RETURN
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.145 秒 | このページの最終更新 : 2022/09/20 (火) 12:44:17 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30