アカウント名:
パスワード:
>> 初心者に変数がグローバル変数だけと思わせるような筋、stdio.hをインクルードする理由を解説しない点についてはタレこみ人はどうかと思うが
これね、教えたことがない人のセリフ。教えると、こうするしか無いのよ(main()の外にint宣言おいてあるのはいただけないが)。
関数の概念の前にmain()関数があって、メモリの概念の前に"やscanfの&があったり、プリプロセッサの前に#includeがあったり、とどめ、printf()なんて可変長引数をとる、どう考えても最初に教えちゃいけない関数だったり。
ある程度目をつぶって教えるしかない場所なんですよ。で、ポインタやってから戻って「実はscanfの&は・・・」というように教えるしかない。main()の引数char** argvなんて・・・じゃん。
(main()の外にint宣言おいてあるのはいただけないが)。
それがまさに「初心者に変数がグローバル変数だけと思わせるような」ジャマイカ。このソースならローカル変数で書けるし、後々main()以外の関数を導入した際に説明が容易だと思う。
ここは、グローバル変数でよいと思いますよ。初心者なんですから、グローバルもローカルもわからないでしょ。おそらく、初心者にはローカルの概念が難しいと思われ、関数を教えるにせよ、最初はグローバルで教え、そのあと、ローカル変数を教えつつ、それぞれのスコープの違いなどの特徴を学ぶのがスムーズかと。
最初は、問題を単純化して覚えやすくするために、正しくないことでも、あえて正しいと教えることも多々ありますからね。
初めて何かをやる場合などは、最初に教わった方法・手順で後々まで覚えていく事って結構あると思うので、意味もわからないところから教えるのであれば、ローカル変数使用した方法で教えていってコードを組むときの定石として覚えてもらうって方法もアリかなぁとは思います。(手段としては#include をおまじないと教えるのと同レベルかもしれませんが・・・)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
とは言うけどね (スコア:4, 興味深い)
>> 初心者に変数がグローバル変数だけと思わせるような筋、stdio.hをインクルードする理由を解説しない点についてはタレこみ人はどうかと思うが
これね、教えたことがない人のセリフ。教えると、こうするしか無いのよ(main()の外にint宣言おいてあるのはいただけないが)。
関数の概念の前にmain()関数があって、メモリの概念の前に"やscanfの&があったり、プリプロセッサの前に#includeがあったり、とどめ、printf()なんて可変長引数をとる、どう考えても最初に教えちゃいけない関数だったり。
ある程度目をつぶって教えるしかない場所なんですよ。で、ポインタやってから戻って「実はscanfの&は・・・」というように教えるしかない。main()の引数char** argvなんて・・・じゃん。
-- gonta --
"May Macintosh be with you"
Re: (スコア:2, すばらしい洞察)
>> 初心者に変数がグローバル変数だけと思わせるような筋、stdio.hをインクルードする理由を解説しない点についてはタレこみ人はどうかと思うが
(main()の外にint宣言おいてあるのはいただけないが)。
それがまさに「初心者に変数がグローバル変数だけと思わせるような」ジャマイカ。
このソースならローカル変数で書けるし、後々main()以外の関数を導入した際に説明が容易だと思う。
Re: (スコア:4, 興味深い)
ここは、グローバル変数でよいと思いますよ。
初心者なんですから、グローバルもローカルもわからないでしょ。
おそらく、初心者にはローカルの概念が難しいと思われ、
関数を教えるにせよ、最初はグローバルで教え、
そのあと、ローカル変数を教えつつ、
それぞれのスコープの違いなどの特徴を学ぶのがスムーズかと。
最初は、問題を単純化して覚えやすくするために、
正しくないことでも、あえて正しいと教えることも多々ありますからね。
Re:とは言うけどね (スコア:1, すばらしい洞察)
初めて何かをやる場合などは、最初に教わった方法・手順で後々まで覚えていく事って結構あると思うので、
意味もわからないところから教えるのであれば、ローカル変数使用した方法で教えていって
コードを組むときの定石として覚えてもらうって方法もアリかなぁとは思います。
(手段としては#include をおまじないと教えるのと同レベルかもしれませんが・・・)