全10件 (10件中 1-10件目)
1

【Excelプログラミング講座】第10回です。 この講座では、エクセル野球シミュレーション「ダイナミックベースボール」のゲームプログラムを材料として、エクセルVBAでのプログラミングを解説していきます。 ▼ダイナミック・ベースボールのページ 過去記事をまとめたサイト↓ ▼エクセルプログラミング講座 前回は、デバッグの手順について。(1)再現を試みる (2)原因を突き止める (3)プログラムを修正する (4)動作確認という話をしました。 今回は、前回の続きです。未解決だったバグの改善に挑みます!前回参照したブログのコメント欄に寄せられたバグ報告のうち、未解決だったバグがあります。【エラー内容】 ・サヨナラ勝ちの場合、ホームランの時はその打者に打点と安打がカウントされるが、サヨナラヒットの時には、打者に打点、打数、安打が反映されない。この連載もついに第10回を迎えたので、最後の大仕事として、このバグの改善に挑みます!なお、リンク先のコメント欄を見てもらうと分かると思いますが、僕は「打点のカウント」だけされるところまで改善できたものの、その後の対処ができずに、投げ出していました。ブログ記事を書きながらプログラム構造をだいぶ読み返すことが出来たので、今こそ再挑戦です。【エラー報告を受けた直後の思考と対応】 ・ホームランの時は、例えば Call SeisekiB(Range("H6"), 16) Call SeisekiP(Range("O6"), 20) ScoreInのように、成績反映 が、ScoreIn(得点処理)より先になっているのに比べて、他のケースが逆になっているからだと思う。・プログラムコード表示画面において、Ctrlキーを押しながらFキーを押して「検索」画面を表示し、「ScoreIn」を検索して、怪しいところの順番を変えて、対処しよう。バグの原因を予測し、プログラム処理の順序に着目して、順序を入れ替えることで解決できるという見通しを持っています。その基本方針自体はいいと思うのですが・・・。さて、バグ改善をする前に、このバグに関係するプログラムコードの情報を確認しておきます。打者成績のワークシートにおけるそれぞれのデータの場所(セルの番地)です。以下の画像は、セルの番地を示す番号を、打点や安打数などの数字としてそれぞれ入力したものです。すなわち、本塁打=14(左から14番目の場所) 打点=16 盗塁数=18 安打数=20 打数=22がそれぞれのデータの位置情報です。上の写真では「V6」というセルの番地が選択されていますが、これをプログラム上で表記すると、「V」というのは左から22番目なので、こういう指定の仕方をするわけです。「V」という列番号を数字で表したのが「22」です。つまり、プログラムコードにおけるCall SeisekiB(Range("H6"), 16)は、打点に対応しています。同様に、Call SeisekiB(Range("H6"), 20)なら安打数。Call SeisekiB(Range("H6"), 22)なら打席数です。さて、打点の場合はうまく順序を入れ替えたものの、安打数と打数のカウントについては僕は以前あきらめています。その理由は、「打数と安打数のカウントが今の仕様だとサヨナラで途中終了する場所と完全に離れているので、打数と安打数がカウントできない」というものでした。プログラムを書いたときには、ヒットを判定する分岐(サブルーチン)に飛んで、そのままサヨナラヒットで試合終了する場合を想定できていなかったということです。こうなるとなかなか難しいものがあります。しかし、落ち着いて考えれば何とかなるかもしれません。難しいケースは、小分けにして考えなければいけません。一気に解決を図るのではなく、小分けにして各個撃破を狙います。まず、「打数」のカウント。「打数のカウント」は、新打者がバッターになってすぐにカウントするぐらい前の方に持ってくればよさそうですが・・・実は打数にカウントされない例外的な場合があるので、それに気をつけないといけません。例外的な場合とは、「送りバント」の場合です。野球に詳しい方はご存じですが、送りバントに成功した場合、打数にも安打数にも記録されません。つまり、ユーザーがいつ「バント」ボタンを押すかどうか分からないので、打数のカウントを最初に行ってしまうわけにはいかなかったのです。実際のプログラムを見てみましょう。バントの場合のサブルーチンは、「Module3」の場所にあります。「Module3」の「バント」のプログラムを見ると、セーフティバントの時のみ、打数と安打数を反映する記述があります。~~~~~~~~~~~~~~~~~~~~~~~~BantSafe: MsgBox ("1塁送球~セーフ!!"), , "バント!" Call SeisekiB(Range("H6"), 22) Call SeisekiB(Range("H6"), 20) '※バント後自分が生きたら、特別にヒットとみなす。 (略) GoTo Nextbatter Exit Sub BantOut: MsgBox ("1塁送球~アウト!!"), , "バント!" If Dice2 = 3 Then Call SeisekiB(Range("H6"), 22) '※セーフティバントのとき、打数をカウントする。 End If~~~~~~~~~~~~~~~~~~~~~~~~ バントのところはできればいじりたくないですが・・・そうなると、「打数と安打数のカウントが今の仕様だとサヨナラで途中終了する場所と完全に離れているので、打数と安打数がカウントできない」の罠にはまってしまいます。そこで・・・逆転の発想で、打数と安打数のカウントを最後の最後から最初の最初に移し、バントの場合のみ例外的にカウントを戻す、というやり方で、なんとか実現したいと思います。長くなりましたので、この続きは、また次回!次回には、バグが直っているかな~??P.S.今回この連載講座の更新が約30分遅れましたことをお詫びします。 (予定では水曜21時の予定だったのですが、、、21:30になってしまいました。)
2018.08.29
コメント(0)

通級指導教室で指導している子どもたちの中には、書くことだけが特に苦手である子どもたちもいます。いわゆる「読み書き障害」といわれる子どもたち。その中でも特に「書字障害」といわれる子どもたちです。「文字を書く」ということは手段でしかなく、本来であれば鉛筆で紙に字を書く以外の代替手段が、普通に認められてしかるべきだとおもいます。代替手段は次の2つに大別されます。(1)誰かが代わりに書く(2)代わりに書いてくれるツールを使うここでは、(2)の代替ツールの活用として、パソコンの音声入力で読書感想文を書いてみた事例を紹介します。ただ、子どもが実際に入力したものは示せないので、サンプルとして示すのは、僕が自宅のPCでやってみたときのものを画像付きで示します。新しいやり方にチャレンジするとき、まずは、ネットで情報収集してみましょう。すると、iOSアプリで音声入力して読書感想文を作成するやり方がヒットします。▼読書感想文の書き方(実践編)(2017.8「平林ルミのテクノロジーノート」様)ただ、僕の場合は、アプリが正常に動作しなくて、あきらめました。もしかするとこれでうまくいく人もいるかもしれません。結局、汎用性の高い、Wordを使うことにしました。Wordでの音声入力のやり方は、こちらのサイトを参考にしました。▼Wordで音声入力してみよう | シナプス・マガジンやり方の詳細は上のリンク先を見ていただければいいのですが、Wordに音声入力機能を追加するためには、「dictate」(ディクテイト:書き取らせる、という意味)というアドインを追加インストールする必要があります。ネットからダウンロードでき、無料です。Wordだけでなく、パワーポイントにも使えます。僕の場合、「Officeのバージョン」というのを、OSのバージョンと勘違いしていて、「64bitにきまってるや~ん」と思い込んで、64bitをインストールしてしまいました。ダウンロード元のサイトにも、赤字で警告が書いてあるのに!"Even if you have 64-bit Windows, your Office version will mostly likely be 32-bit."(たとえあんたのWindowsが64bitだとしても、だいたいのOfficeは32bitやねんでー!)はなっから英語なんか読み気はなかったので見事に失敗しました。せめて赤字のところくらいは読んでおけばよかったです。インストールに失敗してから気づき、32bitをインストールしなおしました。ともあれ、これでdictateはインストール完了!これで、Wordが立ち上がるたびに、「dictation」というのがメニューバーに表示されるようになりました。(^0^)dictationの初期設定は、英語を聞き取って、英語を書き出すものになっています。これは、どちらも日本語に変えておきます。通級のお子さんに対しては、設定したノートPCでワードを立ち上げて縦書き・原稿用紙表示にし、音声入力を試してもらいました。ただ、教室に持ち込んだノートPCのマイク入力端子が、ヘッドホン端子と共用だったので、差し込んだマイクをうまく認識しない・・・。どうも、ヘッドホンなのかマイクなのかを切り替える設定が必要だったようです。(後で調べると、変換プラグを別途購入する必要があるような・・・。例えばこんなのとか。)結局、ノートPCに向かってマイクなしで話しかけることにしました。そのせいで、口元から離れたマイク入力になってしまい、音声認識の精度は落ちてしまったと思います。「dictate」自身の音声入力の精度は、大人がくっきりはっきりしゃべれば、短文であればけっこうしっかりと変換してくれる、という印象です。ただ、子どもにさせる場合、子どもが慣れていないということもあり、大人による手直しがかなり必要でした。実用性としてはまだだけれど、体験してみたことに意味がある、みたいなことになりました。実際にどんなふうになるかは、僕が後で自宅でやってみたものをお見せします。▼自宅でdictateを使用最後の↑以降は直接入力。音声入力が最初の短文はうまくいったものの、長くなるにつれて変になっていった様子がよくわかります。(>。<)音声入力はiPhoneのものがかなり精度がよく、個人的に普段のネット検索やMusicの楽曲検索でよく使っています。精度はどんどん上がっていくと思うので、今後かなり実用性が上がってくると期待しています。今回は、今後のことも考えてとりあえずやってみたという感じになりました。引き続き情報収集に努めると共に、実際にやりながら、子どもに合った代替手段を探っていきたいと思います。情報をお持ちの方がいらっしゃいましたら、ぜひコメント欄でお知らせくださいますよう、お願いします!
2018.08.24
コメント(0)

【Excelプログラミング講座】第9回です。 この講座では、エクセル野球シミュレーション「ダイナミックベースボール」のゲームプログラムを材料として、エクセルVBAでのプログラミングを初心者向けに解説していきます。 ▼ダイナミック・ベースボールのページ 過去記事をまとめたサイト↓ ▼エクセルプログラミング講座 前回は、条件分岐が複雑化すると何がどうなっているか分かりにくくなるので、 「ノートにすべての場合を書き出し、一目瞭然にしておく」という話をしました。お盆休みをはさんだので、もう忘れてますか?そんなときは、前回をもう1度見に行ってください。(この連載記事にどれだけの需要があるのかは分かりませんが・・・) さて、そんなふうにすべての場合を想定してプログラムを組んだとしても、人間のやることですから、分岐によってはうまく作動せず、エラーになることが多いです。エジソンも言いました。失敗は成功の元。プログラムのエラーは、あって当たり前。そのエラーをすべて見つけて、ことごとく修正していくことによって、完成していくのです。「ダイナミックベースボール」は公開後10年以上経ちますが、いまだにエラーが発見されます。エラーを見つけることをデバッグ(バグとり)といいます。ゲーム会社では、デバッグ専用の人たちが日夜テストプレイに明け暮れます。一般ユーザーがどんな操作をするか分からないので、ありとあらゆることをやってみて、プログラムが誤作動しないかチェックするのです。で、今回はそうやって見つかったバグ(エラー)をどう修正するか、を実例で紹介します。「にかとまは、実は野球ゲームを作っています 」という僕のブログ記事に寄せられた実際のバグ報告を元に、紹介します。【エラー内容】・セーフティバントをした打者がアウトになった場合に 打数が2増えてしまいます。【エラー報告を聞いたときの思考】・打者成績の細かいところまでよく見てくれてる!・打数が1増えるべきところを2増えていると言うことは、二重に処理されているかな?・セーフティバントをした後のプログラムの処理を順に追っていこう。【デバッグの実際】(1)再現を試みるエラー報告のとおりに自分もやって、同じことが起きるかどうか、確認します。今回のエラーの発生条件は、「セーフティバントをしたとき」なので、再現が容易です。セーフティバントをして、すぐに打者成績のワークシートを見てみると、確かに、打数が2増えていました。(2)原因を突き止める「バント」ボタンを押したときのプログラムは、標準モジュール3 の 「バント」のところに書いてあります。バント処理の最初の条件分岐は、ランナーの有無が条件。セーフティバントとはランナーがない状態のバントなので、記述をず~っと下に行くと、以下の箇所があります。~~~~~~~~~~~~~~~~~~~~~~~~ MsgBox ("なんとセーフティバント~!!"), , "バント!" Call SeisekiB(Range("H6"), 22)~~~~~~~~~~~~~~~~~~~~~~~~Call SeisekiB(Range("H6"), 22) の意味は、 バッター成績反映のサブルーチン(SeisekiB)を呼び出し DB_main.xlsの”H6"番地のセル=選手名を、 DB_teamdata.xlsで検索し、22番目の列=「打数」を1増やすすなわち、ここでいったん打数が1増えています。その語の記述を追っていくと、やはり!Call SeisekiB(Range("H6"), 22)という、打数を1増やす命令がまた出てきました。二重処理がめだたく見つかりました。あとは、どちらかを削除すればいいわけです。さて、どっちをとるか?どっちをとってもいいのですが、条件分岐の中の処理をとるよりも、条件分岐する前の処理をとったほうがわかりやすいので、最初のをとることにします。(3)プログラムを修正する~~~~~~~~~~~~~~~~~~~~~~~~ MsgBox ("なんとセーフティバント~!!"), , "バント!" Call SeisekiB(Range("H6"), 22)~~~~~~~~~~~~~~~~~~~~~~~~ここの、最初の Call SeisekiB(Range("H6"), 22)というのを、消します。これで、めだたくデバッグ終了!(4)動作確認本当にエラーが直っているかどうか、確認しなければいけません。実際に「バント」ボタンを押し、セーフティバントを敢行して、打者成績への反映具合をチェックします。直っていると、ほっとします。(^0^)【今日のまとめ】 デバッグの手順 (1)再現を試みる(2)原因を突き止める(3)プログラムを修正する(4)動作確認 完璧主義の人は、こういうバグ取りにすんごい熱意を燃やして、バグがとれるたびに歓喜に打ち震えます。そして、デバッグの苦労が大きければ大きいほど、「完成した!」と思えたときの喜びも大きくなります。テストプレイはとっても大事ですので、もちろん自分でも何度もプレイしてチェックするのですが、同じ人がデバッグすることには、限界があります。その人が考えもつかないことをやってくれることもありますので、なるべく他の多くの人にデバッグしてもらうようにしましょう。身近にそういう人がいない場合は、未完成版の時点でネット公開し、デバッグ報告を多数の方から受け付けるのも一つの方法です。さあ、あなたも、レッツ、デバッグ♪
2018.08.22
コメント(0)
![]()
高知のご先祖様のお墓に初めて参るにあたり、幕末のことを本で勉強しました。その総仕上げとして(?)、吉田松陰の教えをまとめたものを読みました。『吉田松陰に学ぶリーダーになる100のルール』(沢辺有司、彩図社、2015、1200円)======================== 『吉田松陰に学ぶリーダーになる100のルール』 ・優れたリーダーというのは、まず腹を決めるものである。 リーダーの腹が決まれば、部下がそれに従わないわけがない。 (p10より) 100のルールの最初に書いてある言葉。 リーダーとしての覚悟が問われています。 ・「今の欠点は、全国の人をみんな同じようにしようと願っていることである」 「人にはそれぞれできることとできないことがある。物が同じでないというのは物の本質である」 (p95より) 今も昔も、みんな同じようにしようとしているのが日本の教育の欠点なのかもしれません。 吉田松陰はさすがで、それぞれの長所を伸ばせばいいと説いていました。「聖人は人を鋳型にはめたりはしない」とも。 ・たとえ生きていても、心が死んでいては意味がない。 魂がこの世に残るのなら、体は死んでも無駄じゃない。 (p186より) 吉田松陰は壮絶な生き方をして、若くして亡くなりました。 吉田松陰の辞世の句「身はたとひ 武蔵の野辺に 朽ちぬとも 留め置かまし 大和魂」 この句の通り、松陰の魂は日本の大改革の中で生き続け、現代にまで脈々と受け継がれています。・体は自分のものであり、 心はみんなのものである。 (p218より) 松陰もまた、無私の心を持った人であった、と思います。 「心はみんなのもの」と、自分を開放的に、人々のために尽くすこと。 行動的な松陰先生からは、すさまじい「心」のエネルギーを、今なお、感じることができます。 ======================== リーダーとしての心構えとして、大切なことを教えてもらいました。
2018.08.13
コメント(0)
![]()
豊中の「原学級保障」には以前から興味を持っていました。その取組の経緯をまとめたものが本になっています。著者は大学の研究者です。非常に多くの文献・資料に目を通され、多くの関係者に取材されています。『インクルーシブ教育の源流 一九七〇年代の豊中市における原学級保障運動』(二見妙子、現代書館、2017、2000円)「原学級保障」とは、今風に言えば、特別支援学級の子どもたちが通常学級の場で共に学ぶことを保障する取組です。非常に興味深く読ませていただきました。読後は、巻末の参考書籍の中から、いくつかをネット注文。さらにこれについて学んでいこうと思っています。内容の一部を紹介します。たとえば、保護者の思いが、具体的に書かれています。「障害児が将来地域で生きられるか否かは、普通学級を担当される先生方が健常児をどう教育されるかにかかっているのだということに気付いてほしい」(p123:Kの母親の思い:引用元原典は北丘小学校の実践をまとめた『みんないっしょやで』)著者は同じp123に、「わが子への思いにとどまらない共生社会実現を願う真摯な態度」と書かれています。この態度が、今日の「インクルーシブ教育」の流れの基礎となる当事者運動の大きな核であったことを、感じざるを得ません。そして、豊中では、今に先立つことなんと40年前。その時点で、当事者運動などの成果により、行政の公的な方針に、あまりにも先駆的な内容が反映されています。豊中市障害児教育基本方針(昭和53年:1978年)・分離教育制度に抗し、校区就学を保障・就学指導体制に抗し、就学先決定における保護者の希望を優先(p168)「原則統合のインクルーシブ教育を保障した上で、それでも保護者や本人の希望がある場合には、分離を認めるという仕組み」(p169)というのは、なんと先進的なことでしょう。これが40年前に、国の方針にさからって成立していたとは、信じられません。すごい。「障害児と健常児が共に学ぶための教育目標の設定を、各学校の責任として位置づけている」(p170)というのも、全国的には、現在まだそれぞれの学校がやりきれていないところです。僕も自分自身の責任においてやりきれていないところを痛感しています。「やはり、やっていかなくてはならない」という思いを強くしました。「本方針策定から40年たった現在、『後期中等教育』の項に示された、障害児の高校・大学への進学も徐々に進展している」(p171)と、さらっと、今の状況についても書かれています。これもまた、興味深いです。障害があろうとなかろうと、高校や大学に行けるということ、これはなかなか壁が大きいのですが、その壁をうがつ取組が真摯になされていることも、尊敬に値します。僕は、教師として採用されたA市においてすでに「豊中は進んでいる」ということを聞いていました。しかし、ここまで具体的にその内容を知ることができたのは、本書のおかげです。なお、巻末の参考文献の中には僕がすでに読んで感銘を受けていたものもありました。『普通学級での障害児教育』という本です。その読書メモは、すでにこのブログで公開しています。興味のある方は、続けてご一読いただきたいと思います。▼「普通学級での障害児教育」本の内容まとめ1(2006/7/28)▼「共に学ぶ教育」とは( 「普通学級での障害児教育」本の内容まとめ2)(2006/7/28)
2018.08.12
コメント(0)
![]()
本棚整理中につき、2018夏の読書メモ第2弾。 自己啓発小説の分野では大変有名な喜多川泰さんの『ソバニイルヨ』です。 『ソバニイルヨ』 (喜多川泰、幻冬舎、2017,1400円) ・あらすじ(上のリンク先より) ======================== 勉強が嫌いで、周りからどう思われているかばかりを気にして毎日生活している隼人。さらに、些細な出来事がきっかけで、仲の良かった友達との関係がもつれ、孤立することになってしまった。 ある日、自分の部屋に帰ると、そこには見慣れぬ物体が。 それは、長期間不在になる父親が残していったロボット・ユージだったーー。 ======================== ロボット・ユージのことを隼人は最初嫌っていましたが、ユージの言うとおりにやってみるといろんなことがうまくいくようになっていき、2人はどんどん親密に・・・。 主人公隼人と自分を重ねながら、生き方・考え方について学ぶことができる良書です。 では、ロボット・ユージのセリフを少しばかり、紹介します。 ======================== 『ソバニイルヨ』 ・「アイを知レバ、自然と『自分だけ』ッテ考えナクナル」 ・「隼人がアイを知レバ、時間はカカルケド、隼人の周りから隼人ヲ傷つけようとスル人はダンダン減ッテク。アイを知らなけレバ、ドンドン増エル」 (p98より) アイを教えてくれるロボット「ユージー」の言葉。 アイとは何か。 難しいテーマを、子どもにも分かりやすいように教えてくれるユージーは、本当にありがたい存在です。 ・「怒りっぽい人や、イライラしている人ホド、誰かに頼ッテ生キテル」 (p99より) ・「自分の1日の幸せは、誰かに頼って作り出すモノデハナク、誰にも頼らず自分で作り出すモノダ」 (p101より) 誰かに腹を立てたり、イライラしてしまうとき、どういった考え方でそれを解消していくのか。 人のせいにしている性癖がそれを生んでいるとしたら? 自分を変えない限り、イライラしてしまう人生は続いてしまう。 人は誰かに頼らずして生きられないけれど、意識が人のやることなすことに向きすぎているとしたら、もっと自分ですべてを引き受けていく姿勢になった方が、いいかもしれません。 ・「勉強にしても、何にしても 必要最低限を超えないと損だ」 (p134より) これも、意識について。 特に、夏休みの宿題なんて、「終わらせればいいんでしょ」になってしまいがち。(笑) 「どうせやるのなら」と高いレベルで取り組む姿勢は、著名人の子どもの頃のエピソードを読むと、至る所に感じられるところです。大成する人は、必要最低限ではやってないですね。 ======================== アイを教えてくれるロボット・ユージ。 うちの家にも、ほしい。(^0^) AIの進化はめざましく、すでに家庭用ロボットは少しずつ普及し始めています。 ロボットの形こそとっていないものの、話相手になってくれたり、いろんな命令を聞いてくれるスマートスピーカー(AIスピーカー)がその代表。しりとりの相手をしてくれたり、なぞなぞを出してくれたりはするようです。 アイを教えてくれたら、完璧ですね。 電子書籍版もあります。試し読み可。 ソバニイルヨ【電子書籍】[ 喜多川泰 ] 今まで喜多川泰さんの本はたびたび紹介しています。 どの本も、本当に素晴らしい内容です。 (過去の紹介本) ▼喜多川泰『手紙屋』~あなたが成功した後に出会う大応援団 (2010/11/28) ▼『心晴日和』~第1部 美輝 十四歳 (読書メモ) (2010/09/16) ▼喜多川泰『君と会えたから・・・・・・』~今日一日を精いっぱい生きる。 (2010/09/28) ▼喜多川泰『「また、必ず会おう」と誰もが言った。』 (2011/2/14) ▼喜多川泰『賢者の書』1 ~まずは、受け入れる。 (2010/9/21)
2018.08.11
コメント(0)
![]()
僕はかなり失礼な人間だと思います。あまり礼儀を重んじないところがあります。そこで、「それではいけないかもしれない」と思ったときに買った本が、コレ。『そこのあなた!その自己中マナー、失礼です!! 3秒で身につく!新社会人の徹底マナー』(河村晴美、経済界、2013、1300円)本当は新社会人が読む本らしい。(^0^;)その本の中から、基本中の基本2つをご紹介。=============================== 『そこのあなた!その自己中マナー、失礼です!!』 ・人と接するときは、目を合わせるだけではなく、おへそからビームを出すように、相手に身体も向けてロックオンすることが重要(p77より)僕はけっこう、身体の向きを変えずに「ありがとう」とお礼を伝えたり、「はい」と返事をしたりすることがあります。反省です・・・。 ちなみに、本書の中の具体的エピソードによると、郷ひろみさんはできていたそうです。 郷ひろみさんから、身体の向きをロックオンされて「ありがとう!」なんてはっきり言われた日にゃあ、「うひゃ~~」って、なりますよね。一気にファンになりますね。・気持ちよいあいさつは、自分をカチッと仕事モードにしてくれます。・お腹から声を出してあいさつすると、元気もわいてきます。・仕事のできる人は、あいさつ一語で周囲にやる気を波及させていくのです。(p110より)僕自身はできていませんが、そういう方を何度も見たことがあります。 やっぱり、気持ちのよいあいさつは、素晴らしいですね。 そういう人は、応援したくなりますよね。 あいさつは、周囲を変える。 不満があるなら、あいさつで周囲を変えるのだ!=============================本棚の整理のため、昔読んだ本を読み返していて、今回ブログに紹介するはこびになりました。今回の本の内容は、僕が全く出来ていない、ということで反省したために書いたのであって、これっぽっちも、僕ができているということはありませんので、あしからず。う~む、社会人1年目をやり直した方がいいかなあ・・・。(>。<;)
2018.08.10
コメント(0)
![]()
夏休みなので、いっぱい研修を受けています。ほぼ毎日です。しかも、非常に充実した研修内容。それが連続。こんなに学んだのは特別支援教育士の合宿以来です。久しぶりに、「めっちゃ勉強しまくっている」という境地を味わっています。ありがたいことです。今日も、まる1日研修づくめ。その中で、なつかしいお名前をお聞きしました。本日最初の講義。その中盤。「兵庫県といえば、東井義雄先生」と、講師の方がぽんとおっしゃいました。学びに向かう力の実例として、東井先生が教えられた子どもが、家を出るときに、「きょうも とういせんせい いわしてくるで~」と家の人に言って家を出たんだ、ということを言われたのでした。「いわしてくる」とは、「困らせてくる」ということ。この子は、東井先生と授業をすることに対して、受け身的になっていない。主体的になっている。東井先生は、授業の中で子どもたちの主体性を引き出す名人だったそうです。兵庫県内の北の方に、東井義雄記念館があります。以前、そこに行こうとしたら、休館日でした。今日まで休みなしでしたが、明日からは夏期休暇をとっています。「明日、東井義雄記念館に 行ってこようかな」と思いました。▼東井義雄記念館 兵庫県豊岡市但東町出合150 (豊岡市役所 但東庁舎内)新学習指導要領について学ぶこともいいのですが、昔の著名な実践家に学ぶこともまた、いいのではないかと思います。東井先生など、戦後教育界で素晴らしい実践をされてこられた先生方については『時代を拓いた教師たち』という本にまとめられています。「学びたい」先生たちには、非常に有益な本であると思います。僕も、東井先生のことをそんなによく知らずにいますので、この本の東井先生の章をもう一度読み直します。(わずか12ページに実践がまとめられていますので、どのような実践をされてこられたのか、大まかに知るために、この本が役立ちます。)『時代を拓いた教師たち 戦後教育実践からのメッセージ』(田中耕治 編著、日本標準、2005、1800円)========================■目次 (出版社公式サイトより)主な内容序章戦後における教育実践のあゆみ第一章新生日本を切り拓く1.無着成恭と生活綴方2.糸賀一雄と障害児教育3.大村はまと国語単元学習4.東井義雄と「村を育てる学力」5.斎藤喜博と授業の創造第二章学力と自治の保障を求めて1.遠山啓と水道方式2.大西忠治と生活指導3.庄司和晃と仮説実験授業4.岸本裕史と学力の基礎5.到達研と評価を生かした授業づくり6.仲本正夫と「学力への挑戦」第三章授業づくりと「生きる力」の育成をめざして1.向山洋一と教育技術法則化運動2.有田和正と教材づくり3.金森俊朗といのちの学習4.和光小学校・和光鶴川小学校と総合学習========================上の目次で分かるように、非常に著名な方の実践を整理してまとめてあります。そのため、若い教師や、これから教師を目指される方にとっては、特におすすめの本です。温故知新故きを温ねて新しきを知る。新学習指導要領への移行期である今、先人の足跡も学び直し、その上で未来の教育について考えてみるのもいいのではないか、と思います。
2018.08.09
コメント(0)

【Excelプログラミング講座】第8回です。 この講座では、エクセル野球シミュレーション「ダイナミックベースボール」のプログラム実物を材料として、エクセルVBAでのプログラミングを初心者向けに解説していきます。 ▼ダイナミック・ベースボールのページ 過去記事をまとめたサイト↓ ▼エクセルプログラミング講座 前回は、バッターがボールを打った後の飛球判定プログラムを見ながら、 「もし~なら の連発で わけが分からなくなっていく」という話をしました。日常会話で考えても、そうですね。「もし君がイワシ好きならば、もし大阪に行って、もしイワシが売っているのを見たら、もしそのイワシの値段が200円未満なら、そのイワシを買いなさい。もしイワシが200円以上なら、もしタイが500円未満なら、タイを買いなさい。もし~~」こんな会話するやつはいない。こんな会話はいやだ。(^^;)しかし、プログラムというやつは、すべての状況を想定して、「この場合はこうしなさい」と言っておかないと、エラーになって止まってしまうのです。だから、「もし」の話をしだすと、「そうでない場合」も言っておかないといけないので、必然的に長くなってしまうのです。ただ、そういったことがとめどなく書いてあるプログラムを順番に見ていくのは、本当にいやになります。そこで今回は、「それってつまり、シンプルに言うと、どういうこと?」というのを掘り下げたいと思います。 前回、大学時代に書いたプログラミングのノートをお見せしました。これもまた、分かりにくいねえ、という話をしました。ただ、1カ所、「ここは分かりやすい」というところを見つけました。どこだか、分かりますか? はい、この部分です。これは、今は小6で習うことになっている「場合の数」をすべて書き出した表です。ダイス2個を振って出た組み合わせと、それによって導き出される結果(例えば「本」は「本塁打」、「O」はアウト)というのが、一目瞭然です。こういうのは、分かりやすいですね。プログラムを組む際のメモとしては、こういう表などを書いて、「場合の数」を「見れば分かる」状態にしておくといいです。手元にその表があれば、プログラムがそのすべての場合に対応しているか調べていく際にも、便利です。ランダム変数というのはいくらでも作れるわけですが、ゲーム作りの初心者のうちは、ダイスで再現可能な1~6の整数値を使うのがおすすめ。エクセルVBAでは、僕は「Dice1 = Int(6 * Rnd) + 1」と書いていましたね。ランダム変数についての詳しいことは、例によって他の方が詳しく書かれたサイトに勉強しに行ってください。▼Excel VBAで範囲を指定して乱数を生成する:Rnd,Int 上のサイト様では、最後に「今夜の夕食をランダムに選ぶプログラム」を作っています。こんなふうに、ランダム変数を使ったごく簡単なプログラムを作ると、それだけでも、けっこう面白いです。【今日のまとめ】 いろんな場合の結果を想定しないといけないときは 一目瞭然な表を作る 全部の場合の数を書き出して、想定の抜けがないかチェックするのはとっても大事です。僕は「場合の数」や「確率・統計」はとっても好きでしたが、こういった方面の勉強は、エクセルVBAでプログラムを組む際に、とっても役に立ちます。しっかり勉強しておきましょう。(^0^) さて、毎週水曜21時に公開しているこの連載記事ですが、8/15はお盆休みをいただきます。次回の公開は、8/22(水)になります。
2018.08.08
コメント(0)

【Excelプログラミング講座】第7回です。 この講座では、エクセル野球シミュレーション「ダイナミックベースボール」のプログラム実物を材料として、エクセルでのプログラミングを初心者向けに解説していきます。 ▼ダイナミック・ベースボールのページ 過去記事をまとめたサイト↓ ▼エクセルプログラミング講座 前回は、ホームランになる場合の判定プログラムを見ながら、 「条件分岐のプログラミングは、Select Case も使える」という話をしました。 もし 1 なら → こうする もし 2 なら → こうする もし、1でも2でもないなら → こうする もし の話は、おわり! というような構文のことです。 (おっと、IF構文とめっちゃ似てますね。) 僕の場合は、Select Case の中に、IFを入れ子構造にしていました。 IF構文の中にIF構文を入れるよりも、Select Case の中にIF構文を入れるほうが、見やすくなるかな? 今回は、前回のつづき。 ホームランにならなかったとき以降の、「飛球判定」プログラムの続きを参照します。 例によって、一部はしょって、お送りします。 ========================== Sub 飛球判定() Select Case BN(0) '0=偶数、1=奇数、3=飛球判定のスキップ Case 0 If Dice1 = Dice2 Then 'ぞろ目のとき If Dice1 <= Range("I8") Then ’ホームラン(詳細前回) ElseIf Dice1 = 6 Then ’6のぞろ目のときは、ホームランでなければダブルプレーになります。 ただし、ダブルプレーになるためには、ランナーが1人はいないとだめですね。 また、すでにツーアウトのときも、ダブルプレーはありえません。 そういうことを、次に書いています。 If R1 + R2 + R3 > 0 And Out < 2 Then MsgBox "あっ~と! いい当たりでしたが、野手の真正面!" & Chr(13) _ & " Wプレー!!", vbExclamation, "とられた!" ’vbExclamationというのは、エクスクラメーションマークを出すメッセージボックス。 つまり、このマークですね。 エクセルさんが出してくるメッセージウインドウにも種類があるので、 その種類をこうやって指定することができます。 Out = Out + 2 Range("l5:m5") = "●" Range("l5:m5").Font.ColorIndex = 3 ’ダブルプレーなので強制的にアウトカウントの表示を●●とアウト2つ分表示させました。 '※塁走者のアウト処理 If Range("N10") <> "" Then ’<>は、ノットイコールということ。上の記述の意味は、N10番地のセルが空白でないなら、という意味になります。つまり、3塁走者を表示させるマスですね。3塁走者がいた場合、というのを、こんなふうに書いています。 プログラム的に、「~~でないなら」という書き方を採用するときがあるので、こういう言い方にも慣れておいた方がいいですね。自分がやりたいことを別の言い方で言い換えるとか、別のやり方に置き換えるとか、そういう能力は、プログラミングをしていると、鍛えられるかもしれません。 Range("N10:N11") = "" '3塁走者 R3 = 0 ’3塁走者がいた場合にダブルプレーになったので、3塁走者を消しています。””は空白を表します。 ElseIf Range("O9") <> "" Then Range("O9:O10") = "" '2塁走者 R2 = 0 ’2塁走者がいた場合も同様 ElseIf Range("P10") <> "" Then Range("P10:P11") = "" '1塁走者 R1 = 0 ’1塁走者がいた場合も同様 End If If Out = 2 And AR = True And R1 + R2 + R3 > 0 Then ’いっぺん「IF」第1弾を終えた後、また「IF」です。 ダブルプレーの処理をした後にさらに走者が残っていた場合、トリプルプレーの可能性があります。 AR は、エンドランを表す変数です。つまりエンドランを仕掛けていた場合。この場合、ランナーが飛び出していて戻れないので、トリプルプレーになります。 MsgBox "ランナーとびだしている!矢のような送球!アウト!" & Chr(13) & _ "なんとトリプルプレー!", , "トリプルプレー!" End If Else ’IF構文が入り組んでいてわけがわかりません。 ここのElseは、今回青文字にしたIFのつづきです。つまり、 R1 + R2 + R3 > 0 And Out < 2 でないなら。 つまり、走者はいないし、アウトカウントも2アウトより小さい。 その場合、単独アウトで、ゲーム続行ですね。 WavePath = ActiveWorkbook.Path & "\out.wav" MsgBox "とびついてとった!ファインプレー!", , "とられた!" Out = Out + 1 Cells(5, 11 + Out).Value = "●" End If Else ’青のEndIFが入ると青のIFの話が終わりましたが、赤字のIFの話が続いています。あ~、ややこしい。 やっと、ようやく、「ぞろ目だけれど6のぞろ目じゃないとき」の話です。 この場合、「ホームラン性の当たり」=長打として、処理します。 If Range("K8") >= 2 Then ’K8番地は何があるか、見てください。 はい。バッターの走力表示ですね。 打ったバッターの走力が2以上なら、足が速いので3ベースにします。 「走力」は、足が遅ければ「1」、普通なら「1.5」、速ければ「2」というようなルールで入力されています。 MsgBox "あわやホームランという当たり!" & Chr(13) & _ Range("H6") & " 速い! これは3塁まで行けそうだ!", , "3ベース!" Call 走者判定3B HitIn R3 = Range("K8") Range("N10") = Range("H6") Range("N11") = R3 Else MsgBox "あわやホームランという当たり! 2ベース!", , "2ベース!" Call 走者判定2B (略) End If End If 'ぞろ目ここまで ’やっと、ぞろ目の時の条件分岐が終わりました。 IFの中にIFが入りまくって、わけが分からなかったですね・・・。 このあと、「ぞろ目でないけれど、和が偶数のとき」が続きます。 Else 'ぞろ目でなく和が偶数のとき ’以下、略・・・ ========================== IFばっかりでいやになったので、これでいったん終わります。 せっかく最初の条件分岐でSelect Case を使ったのに、その中にこれだけIFを入れ子構造で入れまくると、「このElseIFはどこのElseなの?」「このEndIFはどこのIF?」とわけがわかりません。 全く悪い例です。(笑) 【今日のまとめ】 条件分岐が複雑化すると いやになるいちおう、IF構文の中にIF構文を入れるときには、文字を書くスタート位置を右にずらしているのですが、その程度の違いでは、構造が捉えにくくなってしまいました。 プログラマー自身にも捉えにくい構造は、バグの温床になります。 EndIFを入力し忘れていて、プログラマー自身は終わっていたつもりのIFの話がコンピュータにとっては終わっていなくて・・・ということがよくあります。 ほんとに、いやになるので、なるべくなら、やめましょう。 ただ、あえて挑戦するというなら・・・ パソコン画面以外に、条件分岐をまとめて「見える化」したものを、必ず作りましょう。 一般にはフローチャートを使うことが多いです。 (参考リンク▼5. VBA(for Excel)とフローチャート¶) 僕の場合はどうしてたか・・・ なんと、大学時代に書いたこのゲームのプログラミングのメモを見つけました。 汚い字です。 えんぴつで見えにくいですが、「情報処理学」と書いてあります。 そういえば、大学の「情報処理学」の授業で、このゲームの原型となるプログラムをせっせと打っていたのでした。 そのときのメモが、こちら。 まったく見やすくありません。 これまた、悪い例です。 ちなみに、エクセルのVBAではなく、BASICだったので、行番号がメモってあります。 なつかしい。(>_<) 次回はこんなわけの分からない世界からはおさらばしたいと思いつつ、今回はこれでおわり! 次回、誰も読んでくれなかったらどうしよう。。。(^^;) 約束します。 次回は単純な話をします!!
2018.08.01
コメント(0)
全10件 (10件中 1-10件目)
1
![]()

![]()