新しく発言する EXIT インデックスへ
3ケタ×2けたの筆算プログラムは?

  3ケタ×2けたの筆算プログラムは? もりの 2004/01/18 00:26:22 
  もりのさんの発言だけでは仕様が明確でない... 青木太一 2004/01/18 03:23:17 
  │└私がいっているのは問題を出し、 もりの 2004/01/18 11:10:21 
  │ └もりのさんがなにをやりたいのかなんとなく... 青木太一 2004/01/18 20:29:35 
  │  └青木さん もりの 2004/01/18 21:51:11 
  │   └できます。でも十進BASICはそういった処理は... 青木太一 2004/01/18 23:30:50 
  │    ├間違えました。 青木太一 2004/01/18 23:53:54 
  │    ├私も青木さんと同じように もりの 2004/01/18 23:59:40 
  │    │└多角形・シミュレーション・3次元 青木太一 2004/01/19 17:11:40 
  │    │ └FCAIでつくったりしていますが もりの 2004/01/19 21:11:12 
  │    │  └クリフォード・ストールの著書を読んでみな... 青木太一 2004/01/19 23:23:19 
  │    │   └logoは前に教えていました もりの 2004/01/20 19:59:22 
  │    └CHARACTER文のところで もりの 2004/01/19 00:02:23 
  │     └プログラムのコメントが不足していました。... 青木太一 2004/01/19 16:23:09 
  │      └組み込むと筆算表示プログラムは もりの 2004/01/19 20:54:40 
  │       └ここから先はご自分でやった方がいいと思い... 青木太一 2004/01/19 22:52:16 
  計算式をInputで入力して解いて行くという形...2004/01/18 11:01:40 
   └哲さんありがとう もりの 2004/01/18 11:13:35 

  3ケタ×2けたの筆算プログラムは? もりの 2004/01/18 00:26:22  ツリーへ

3ケタ×2けたの筆算プログラムは? 返事を書く
もりの 2004/01/18 00:26:22
乱数で問題をだして
筆算の順番でといて
いくフリーウエアはあったのですが
自分で問題を出して
自分で筆算形式で
解いていくプログラムは
難しいでしょうか?
自分で問題を出してというのが
プログラムできないんです・・
どんな風にプロすればいいんでしょうかね
どうしても解決したい課題ですが
作りたいな
でも今の私の力では無理です


  もりのさんの発言だけでは仕様が明確でない... 青木太一 2004/01/18 03:23:17  ツリーへ

Re: 3ケタ×2けたの筆算プログラムは? 返事を書く
青木太一 2004/01/18 03:23:17
もりのさんの発言だけでは仕様が明確でないので、正確な判断はできませんが、
難しそうですね。(十進BASIC向きではない気がする...)

「自分で問題を出して」
というのは回答者たるユーザが自ら問題文を入力可能にするということですか?
出題者があらかじめソースコードに問題を埋め込んでいてはいけないのですか?
「自分」というのがユーザなのかプログラマなのかプログラムなのかわかりません。

あと、「筆算形式」というのも解答表示のことなのか、回答入力位置のことなのか計算手順のことなのか、それ以外のことなのかもわかりません。

にこにこさんのプログラム
http://freebbs.around.ne.jp/article/b/basic/24/krdneb/krdneb.html
のように、基本的にprint文とinput文だけでいいなら簡単でいいのですが、
インタフェースに凝ろうとすると、十進BASICでは(不可能ではないけど)大変だと思います。

とりあえず、筆算で2つの正数のかけ算を解く過程を表示するプログラムをつくりました。

!筆算式乗算回答表示プログラム
!処理が面倒なので、m,nは正の数でないと表示はただしくならない。
!さらに、書式指定も面倒だったのでしてないので、あまり桁数の大きいプログラムは、
!表示が指数表示になってしまう
LET m=123456
LET n=654321

print m;"かける";n;"の筆算を表示します"
set window 0,1,0,1
SET TEXT JUSTIFY "right" , "top"
ask text height th
LET th=th*1.2
plot text ,at 1,1:str$(m)
plot text ,at 1,1-th:"×"&str$(n)
plot lines:1,1-th*2;1-th*max(keta(m),keta(n)),1-th*2
for i=1 to keta(n)
LET j=nanketame(n,i)
plot text ,at 1,1-th*(1+i):str$(m*j)&repeat$(" ",i-1)
next i
plot lines:1,1-th*(2+keta(n));1-th*(keta(m)+keta(n)),1-th*(2+keta(n))
plot text ,at 1,1-th*(2+keta(n)):str$(m*n)

def keta(a)=len(str$(a))!正数の十進数のときの桁数を返す関数
def nanketame(a,b)=(mod(int(a/(10^(b-1))),10))!整数aのb桁目の数字を返す関数

END

  │└私がいっているのは問題を出し、 もりの 2004/01/18 11:10:21  ツリーへ

Re: もりのさんの発言だけでは仕様が明確でない... 返事を書く
もりの 2004/01/18 11:10:21
私がいっているのは問題を出し、
黒板に児童が
筆算を順番にやっていって
答えをもとめていくという
やりかたです。
問題が自動的に発生するのは
乱数でできますが、この問題を
やってみましょうといい
実際に黒板でやるのと同じ
手順で、それをパソコン上で
やるということです。
今板書の電子化・教材の電子化
共有化に取り組んでいるところ
なんです。教科書の電子化も
少しずつしています。
位取りの枠や黒板の背景を
必要です
できるでしょうか?
YAHOOのコンピュータ
(VECTOR)もみましたが
自分で問題をだすというタイプの
ソフトはありませんでした。
自作できればいいのですが・・
青木さんいつもありがとう。

  │ └もりのさんがなにをやりたいのかなんとなく... 青木太一 2004/01/18 20:29:35  ツリーへ

Re: 私がいっているのは問題を出し、 返事を書く
青木太一 2004/01/18 20:29:35
もりのさんがなにをやりたいのかなんとなくわかってきた気がします。

「ZATTAなプログラム」
http://www.ne.jp/asahi/aaa/tach1394/ramupu/index.htm
で紹介されているようなプログラムを作りたいのでしょうか?

上で紹介されているようなプログラムを十進BASICで作ろうと
すると、使いやすいGUIを作るのがかなり面倒だと思います。

「位取りの枠や黒板の背景」というのが具体的にどういう
機能なのか(入力できるのか、ただの外観上の飾りなのか)
わからいので、なんともいえませんが。

ところで複雑な計算式をinputで文字列として入力して計算させたいなら、
哲さんの紹介している方法が良いと思いますが、
もりのさんがやろうとしている2数の加減乗除程度なら、以下のような方法でもいいと思います。

input prompt "最初の数を入力してください":m
input prompt "次の数を入力してください":n
input prompt "1:+ 2:− 3:× 4:÷ 演算子番号を入力してください":op
select case op
case 1
print m;"+";n;"=";m+n;"です"
case 2
print m;"-";n;"=";m-n;"です"
case 3
print m;"*";n;"=";m*n;"です"
case 4
print m;"/";n;"=";m/n;"です"
case else
print "想定してない演算子番号です。"
end select
END

  │  └青木さん もりの 2004/01/18 21:51:11  ツリーへ

Re: もりのさんがなにをやりたいのかなんとなく... 返事を書く
もりの 2004/01/18 21:51:11
青木さん
ありがとう
紹介してくれたようなホームページ(ZALTUTANA)の
イメージですが
一の位から千の位まで数字をいれるときに
実際枠があり、入力が正しかったら次のくらいに
移動し、誤答だったら
もういちど  と表示してやりなおさせる
と言う事です
じっさいに枠があって入力すると子どもも
集中します
十進BASICでできるでしょうか?

  │   └できます。でも十進BASICはそういった処理は... 青木太一 2004/01/18 23:30:50  ツリーへ

Re: 青木さん 返事を書く
青木太一 2004/01/18 23:30:50
できます。でも十進BASICはそういった処理は向いていないと思います。
(使ったことないから正確なところわからないけど、)
なんとなくVisualBasicやDelphiの方が向いていると思います。
なぜなら、十進BASICのグラフィック命令は
・点を描く
・線を描く
・多角形を塗りつぶす
・文字を描く
のように基本的な命令しかないからです。
「ボタン」や「入力枠」などは自分で文字の大きさを計算して線を描き、
キーボードストロークやマウス入力のレベルから管理しないといけません。
といった命令はありません。
自分で文字の大きさから枠の大きさを計算して、線を描くしかないのです。

それでも、見た目や使いやすさにこだわらなければ、
以下のような方法があると思います。

set window 0,1,0,1
SET TEXT JUSTIFY "right" , "top"
call plot_text(1,0.5,"123",0)
sub plot_text(x,y,str$,start)
for i=start to len(str$)-1
do
clear
plot text,at x,y:"_"&right$(str$,i)
character input a$
loop until(a$=str$(len(str$)-i:len(str$)-i))
next i
clear
plot text,at x,y:str$
end sub
END

  │    ├間違えました。 青木太一 2004/01/18 23:53:54  ツリーへ

Re: できます。でも十進BASICはそういった処理は... 返事を書く
青木太一 2004/01/18 23:53:54
間違えました。
前の発言の「といった命令はありません。」は読み飛ばしてください。

フォントを固定ピッチのものに限定すれば、
入力枠を描くこともいくらか簡単になりそうですね。

  │    ├私も青木さんと同じように もりの 2004/01/18 23:59:40  ツリーへ

Re: できます。でも十進BASICはそういった処理は... 返事を書く
もりの 2004/01/18 23:59:40
私も青木さんと同じように
思いますが十進BASICで
できないかなと思ったんです
どこまでできるか
知りたかったんです
ありがとう
実際にどこまでこの言語は
つかえるかと
やっぱりVBやC++のほうが
つくりやすいかも
多角形・シミュレーション・3次元
文章題も作れるかな??

小学生用文章題作成プログラムが
あるといいな!
使ってみたいな
青木さんつくれますか?
もし作れたら教えてください

  │    │└多角形・シミュレーション・3次元 青木太一 2004/01/19 17:11:40  ツリーへ

Re: 私も青木さんと同じように 返事を書く
青木太一 2004/01/19 17:11:40
>多角形・シミュレーション・3次元
>文章題も作れるかな??
毎回同じこと言うようですが、作れるけど
(使いやすいインタフェースを組み込むのには)
十進BASICは向いてないと思います。

>小学生用文章題作成プログラムが
>あるといいな!
>使ってみたいな
>青木さんつくれますか?
もりのさんの発言は仕様があまりにも不明確なので答えずづらいです。
(ものすごく本格的で難しいものを想定しているのか、意外と簡単なのを求めているのかわからない)

こんな単純なのでいいなら作れますが
(さすがにここまで単純なものをつくれるか聞いているわけではないでしょうが...)
randomize
dim fruit$(1 to 3)
LET fruit$(1)="リンゴ"
LET fruit$(2)="みかん"
LET fruit$(3)="バナナ"
LET i1=int(rnd*10)
LET i2=int(rnd*10)
def fr$=fruit$(int(rnd*3+1))
print fr$&"が";i1;"個、";fr$&"が";i2;"個あります。果物は合わせていくつ?"
END

こんな本格的なのは一年くらい(それ以上?)かかります。
「既存の多くの文章問題から自然言語解析を使って問題パターンを抽出し、自動的に文章問題を生成。
さらに、各児童の正答率にあわせてリアルタイムに問題の難易が変化する機能や、
さらにさらに文部科学省が指導要綱を変更しても、設定一発で対応できる!」

おそらく求めているのはその間のどこかなんでしょうが...

GUIのユーザインタフェースを作り込むにあたっては、
VBやC++でもいいでしょうし、無料なものも
Delphi、HSP、ActiveBasicなどなどもりのさんの要求を
十進BASICよりは満たしそうな言語はたくさんありますので、
(私はどれも使ったことありませんので、間違ってるかもしれませんが...)
自作したいのならそれらをお試しになってはいかがでしょうか?

十進BASICから離れてしまいました。ごめんなさい。

  │    │ └FCAIでつくったりしていますが もりの 2004/01/19 21:11:12  ツリーへ

Re: 多角形・シミュレーション・3次元 返事を書く
もりの 2004/01/19 21:11:12
FCAIでつくったりしていますが
BASICで授業で説明するように
したいのです。
実際N88互換BASICで自作し
授業でやってみましたよ。
でも改善点がありました。
子どもの思考を深める(考えさせる)
ための教材が必要なんです。
つまり、市販の子どもが考えずボタンを押すだけで
解いていくソフトはだめなんです。
考える力をつける
それを証明するためのBASICでつくった
教材が必要なんです。
「コンピュータが子供たちをダメにする」
とアメリカの クリフォード・ストールは
著書でいっていますが、どう思いますか?
考える力をつけさせることが
できる高レベルな学習ソフトが必要なんですよ。
完成度の高いものがいいですね。

  │    │  └クリフォード・ストールの著書を読んでみな... 青木太一 2004/01/19 23:23:19  ツリーへ

Re: FCAIでつくったりしていますが 返事を書く
青木太一 2004/01/19 23:23:19
クリフォード・ストールの著書を読んでみないとなんとも言えませんが、
私は小学校低学年のとき(1986-1989)アメリカにいたのですが、
一時期LOGO(タートルグラフィック)の授業があったことを覚えています。
私は大変楽しんだ記憶があります。
あれなら考える力も身につくかもしれません。
(「考える力」の定義にもよりますが)

いよいよ十進BASICと関係なくなってきたので、これまでにします。
それでは。

(もりのさん、良いアイディアだけあって、実装する余裕を
もてないなら、教材制作会社と共同開発でもした方がいい
のかもしれませんよ。)

  │    │   └logoは前に教えていました もりの 2004/01/20 19:59:22  ツリーへ

Re: クリフォード・ストールの著書を読んでみな... 返事を書く
もりの 2004/01/20 19:59:22
logoは前に教えていました
日本のロゴジャパンはつぶれた
とききました。
たしかにアニメもできますが
ただ遊ぶだけですね。
総合的な学習でいう
「生きる力」につながるような
プログラムやソフトウエアでなければ
教育現場の先生は関心をもちません
いまは、文科省がやれといって
みないるからただ数時間やっている
だけですよ
 教室にパソコンもプロジェクターも
設置せず、インターネットもつながないで
なにが「e−japan」なんですかね
頭ひやしてほしいよ
できる環境を整えないでやれるわけ
ないでしょ
今大学教授や富士通・日立との関係も
ありますが、やはり「もっと現場を見て、
現場にいって、それからプランを
提示しなさいよ」と文部科学省の役人に
いいたいね。
きちんと設置してから指導要領をだしなさい
といいたいよ
 また、わからないプログラムがあったら
聞きますね^^
よろしく


  │    └CHARACTER文のところで もりの 2004/01/19 00:02:23  ツリーへ

Re: できます。でも十進BASICはそういった処理は... 返事を書く
もりの 2004/01/19 00:02:23
CHARACTER文のところで
プログラムが止まって
しまいますね
どうなおせばいいのかな

  │     └プログラムのコメントが不足していました。... 青木太一 2004/01/19 16:23:09  ツリーへ

Re: CHARACTER文のところで 返事を書く
青木太一 2004/01/19 16:23:09
プログラムのコメントが不足していました。すいません。
それは止まっているのではなく、キー入力を待っている状態です。
「3」「2」「1」キーを順に押していけば、画面の右中央に数字が出てくるはずです。
call plot_text(1,0.5,"123",0) は、
「位置x=1,y=0.5に数字"123"を一(=0+1)桁目から順に入力せよ。
正解の数字ならそれは表示され、次の桁も同様に...」
という意味です。

このプログラムは、もりのさんのいう
>一の位から千の位まで数字をいれるときに
>実際枠があり、入力が正しかったら次のくらいに
>移動し、誤答だったら
>もういちど  と表示してやりなおさせる
>と言う事です
を実現する方法を示そうと思って書いたプログラムです。
枠の代わりに「_(アンダースコア)」が表示されています。
また、誤答でも「もういちど」とは表示されません。
先に書いた筆算表示プログラムに組み込むことを意識した作りになっています。

(以下に「もういちど」と出るバージョンを作りました。)
set window 0,1,0,1
SET TEXT JUSTIFY "right" , "top"
call plot_text(1,0.5,"123",0)
sub plot_text(x,y,str$,start)
for i=start to len(str$)-1
do
plot text,at x,y:"_"&right$(str$,i)
character input a$
clear
if(a$=str$(len(str$)-i:len(str$)-i)) then exit do
plot text ,at 0.5,0.5:"もう一度"
loop
next i
clear
plot text,at x,y:str$
end sub
END

枠を線で描かず文字「_」で代用しているのは、
面倒だったのもありますが、十進BASICに「文字の幅を取得する」
という命令がないため、フォントを変更したときに対応するのが難しいからです。
どれかひとつの固定ピッチフォントに決めてしまえば、寸法を決めうちして、
枠を描くこともできますけどね。

  │      └組み込むと筆算表示プログラムは もりの 2004/01/19 20:54:40  ツリーへ

Re: プログラムのコメントが不足していました。... 返事を書く
もりの 2004/01/19 20:54:40
組み込むと筆算表示プログラムは
具体的にどうなりますか?
教えてくれますか・・
すぐ起動確認してみたいので

  │       └ここから先はご自分でやった方がいいと思い... 青木太一 2004/01/19 22:52:16  ツリーへ

Re: 組み込むと筆算表示プログラムは 返事を書く
青木太一 2004/01/19 22:52:16
ここから先はご自分でやった方がいいと思います。
質問があったらお気軽にどうぞ。

  計算式をInputで入力して解いて行くという形...2004/01/18 11:01:40  ツリーへ

Re: 3ケタ×2けたの筆算プログラムは? 返事を書く
2004/01/18 11:01:40
計算式を Input で入力して解いて行くという形であれば、かなり前にこの掲示板で取り上げられたことがあります。
この場合プログラム内で Open 命令でxxx.bas のファイルを別に作って、
EXECUTE で実行して結果を取得するという形になると思います。

計算式を入力して直接実行できる命令を持つBasicは、TinyBascがあります。

   └哲さんありがとう もりの 2004/01/18 11:13:35  ツリーへ

Re: 計算式をInputで入力して解いて行くという形... 返事を書く
もりの 2004/01/18 11:13:35
哲さんありがとう
少しTINYについて調べて
みます


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。