トーク:高等学校数学B/数値計算とコンピューター

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動

プログラミング言語[編集]

ユークリッドの互除法や、 二分法をプログラムすることが この部分の目的のようです。 しかし、どの言語で書くのが良いでしょうか? 実際の現場ではやっぱりVisual Basicでしょうか? (特に現場で先生をやっている方がいらっしゃったら コメントをお願いします。 )

--T.Uesugi 2005年5月6日 (金) 13:03 (UTC)

数年前は現役生だった者ですが、Chipmunk Basicを使いながら授業をやっていました。センター試験の過去問を見てもBASICですね。(自分が無知なだけかもしれませんが、pythonなんて初めて聞きました。以前は一般的だったのでしょうか。)--60.36.37.86 2008年4月1日 (火) 19:58 (UTC)
恐らくいまだにBASICの可能性が高い、ですね。多分、実装としては十進BASIC辺りの使用が一番多いのではないでしょうか?
Visual Basicは逆に無い、でしょう。生徒にパッケージ買わせないといけませんし、メリットが少ないです。ですから、下手すればいまだに「行番号付き」のプログラムしこしこ打たせてますね。
(現役高校教師が作った高校生向けのサイトなんかではVBSの使用例なんかはありますが。)
>pythonなんて初めて聞きました。以前は一般的だったのでしょうか。
いや、Pythonはむしろ新しい言語です。アメリカの大学辺りではプログラミング初等教育用言語として導入されているケースが増えてるらしいので、この記事に対してはBASICより「実践的な意味」では相応しい、と思います。
基本的にバッチ式であるBASICでプログラムを学びはじめる、と言うのはあまり現代では適さない選択だと思います(文部科学省がどこまでそれを把握しているのか、は知りませんが)。--Cametan 2008年7月29日 (火) 06:28 (UTC)

議論の整理のため勝手に章題を追加しました。私の認識は古いものである可能性がありますが、ほとんどの教科書ではいまだに行番号付きのBASICを採用していると思います。また実際にプログラムを動かすことなく、机上の空論で授業をする場合もあります。大学の授業ではSchemeを使っていました。--Yuki Konno 2010年4月16日 (金) 18:12 (UTC)

octaveで十分だと思います。[編集]

--219.96.235.50 2008年7月29日 (火) 07:56 (UTC)

確かに数値計算、と言えばOctaveなんですが……。
実際問題、調べた限りでは、Octaveって高階関数使えないんですよね。
ここの例示コード見る限り、Pythonでは高階関数使用してないベタなコードになってるんですが、「一旦枠組み組み立てたら」再利用が可能な事まで視野に入れるとOctaveじゃキツいんじゃないか、と言うのが正直な感想でした(Pythonは高階関数が使用可能、です)。
ネタの例題で言うと、ユークリッド互除法では、
function y = euclid(m, n)
	r = rem(m, n);
		if (r == 0)                #ここまでが導出過程の1
			y = n;             #ここまでが導出過程の3
		else
			y = euclid(n, r);  #ここが導出2
		end
	
# 実行例
# octave:1> euclid(45, 30)
# ans = 15
# octave:2> euclid(45, 28)
# ans = 1
# octave:3> euclid(30, 28)
# ans = 2
と綺麗に再帰使えるんですが、残り二つのお題に関して言うと、題意的には「関数名を引数に取れない」と対象関数の定義のやり直しが煩わしくなって、難しいのでは、と思うのです。--Cametan 2008年7月30日 (水) 08:00 (UTC)