【コラム】

日本語で10行プログラミング

80 ノルマ計算機

 

80/90

10月は国家試験や様々な資格試験が行われた月でした。資格試験に挑戦された方々は、一息ついて、そろそろ合否の結果が気になっているのではないでしょうか。さて今回は、試験対策に役に立つノルマ計算機を作ってみようと思います。

学生時代の定期試験や資格試験、昇進試験など、人生のうちで試験を受けなくてはならない場面は数多くあります。試験に備えて一番大事なのは学習計画を立てることでしょう。いつまでに、この問題集のここまでやるとか、過去の問題を何ページずつやるとか、しっかり予定を立てて、その通りに勉強を進めていくことが大事なのだと思います。

そこで、試験対策としてやるべきことを数値化しておいて、それが残りの日数と比べてどこまで進んでいるのか一目でわかれば、学習計画を順調に進めることができます。予定と比べて遅れていれば、もうちょっと頑張って進めなくてはならないとか、ゆとりがあるから予備的な知識も見ておこうとか、有効に時間が使えるようになります。

計画と計算の方法

そこで今回は、私が資格試験に向けて実践した試験対策と、ノルマ計算プログラムを紹介します。

まず、資格試験を受けると決めたなら、試験のことを徹底的に調べます。特に、過去にその資格に合格した人が、どれだけの問題集をこなしたのかという情報を調べます。そして、合格するためにやるべき問題集の総ページを調べて計画を立てます。その後、問題集の総ページ数を試験の残りの日数で割ります。こうすると、今どれだけ進んでいるのかという「進行度」と、これから後、何ページずつやらなくてはならないのかという「ノルマ」が明らかになります。

去年までの合格者がどんな問題集を解いていのたかは、試験名に加えて「合格者の声」などのキーワードでインターネットを検索すると出てきます。そこには効果的な学習方法や、どの問題集が良くて、合格するために何回こなしたとか、そんな情報も載せられていると思います(調べなくても、親切な問題集や解説書に載っていたりもします)。

例えばそんな情報から、問題集Aと問題集Bを2回ずつこなすのが良いとわかったとします。問題集Aのページ数が200ページ、問題集Bのページ数が180ページなら(200ページ+180ページ)×2で合計760ページになります。これを試験までの残りの日数、例えば90日で割ります。すると、8.44……という数字が出てきます。すると、1日に9ページずつ完璧にやれば、計画から遅れることなく学習を進めることができます。

頑張って進めていると、1日でやるべきノルマ(ページ数)の数値が減ってきます。そして、計画が遅れだすとノルマが増えていきます。これが1日でこなすことができなくなるまで増えてしまうと、計画が破綻したことがわかります。

しっかりとした学習計画を立てたら、あとは毎日コツコツと勉強を進めることが大切なのはわかりきったことです。ですが、なかなか計画通りには進みません。時には、甘い誘惑に負けてしまうこともあります。

私が試験に臨んだ時も、やはり、予定がどんどん遅れてしまいました。そこで、このように、現在の学習進行状況を毎日パソコンの画面に表示させて確認するようにしました。これ以上遅れると、問題集をやりきれなくなるというプレッシャーがあり、これによりサボらず学習を継続することができました。

残り日数の求め方

それでは、試験に役立つノルマ計算機を作っていきましょう。ノルマを計算する上で面倒な部分は、試験までの日数を求める方法です。なぜなら、各月によって日数が違いますし、1年の日数ですら、うるう年などを考慮しなくてはならないので、日付の計算は非常に複雑です。

ところが、なでしこには、日付の差を求める「日数差」という便利な命令を備えていますので、予定日までの日数を数えるのが簡単です。今日から予定日までの日数を調べることで、試験までの残り日数を調べることができるでしょう。

以下は簡単な使い方の例です。

予定日は「{今年}/12/24」
残り日数=今日から予定日までの日数差。
残り日数を言う。

2006/10/24から12/24までの日数差です

10行プログラム~ノルマ計算機

では、今回の10行プログラムを作ってみましょう。はじめに、プログラムの流れをまとめてみます。ここで作るプログラムは、1度作っておけば試験が終わるまでほとんど変更しないでしょうから、トータルでやるべきページ数は初めからプログラムに書き込んでおくことにします。

そして、ユーザーが何ページやったのかという情報だけを入力してもらい、残りのページ数を計算し、試験までの日数で割るという計算を行います。箇条書きにすると以下のようになるでしょう。

  1. ユーザーが今日までにやったページ数を入力
  2. ノルマ(残りのページ数)を計算
  3. 今日から試験日までの残り日数を計算
  4. ノルマを残り日数で割って平均ノルマを求める
  5. 残り日数と平均ノルマのレポートを表示する

それでは、10行プログラムです。今回はほとんど簡単な計算を行っているだけのものです。

総ページ数=760。#1
試験日=「{今年}/12/24」#2
「今日までにやったページ数は?」と尋ねて、消化ページ数に代入。#3
残りページ=総ページ数-消化ページ数。#4
残り日数=今日から試験日までの日数差。#5
平均ノルマ=残りページ÷残り日数。#6
進行度=INT(消化ページ数÷総ページ数×100) #7
「試験日は、{試験日}、あと{残り日数}日です。
進行度は、{進行度}%です。
残り1日平均ノルマは、{平均ノルマ}ページです。」と表示。#8

実行したところ

1行目、2行目では、問題集の総ページ数や試験日と、ユーザーがはじめに変更すべき部分を設定しています。3行目では、ユーザーに勉強の進み具合を尋ねています。4行目では、残りのページ数を計算します。5行目では、「日数差」命令を利用して残りの日数を計算します。6行目では、残りのページ数と日数から平均ノルマを計算します。7行目では、総ページ数と消化ページ数から進行度パーセントを計算します。8行目では、4~7行目で計算した計算結果を画面に表示します。

改造のヒント~自分用に書き換えるために

このプログラムの具体的な使い方は、前項の「計画と計算の方法」で書いていますので、自分の試験に使うための簡単な方法を紹介します。

まず、基本的な部分は、10行プログラムの1行目のやるべき問題集のページ数と、2行目の試験の日付を書き換えることです。この辺りは日本語で書かれているので、意味が明白で書き換えも難しくないでしょう。

他の改造としては、複数の科目ごとにノルマ計算をしたいこともあるでしょう。そんな時は、科目ごとにべつの変数を用意してそれぞれ計算を行えば良いので、腕試しと思って挑戦してみると良いでしょう。

そんな訳で、今回は、試験対策用にとノルマ計算機を作りました。しかし私自身、よく考えてみると試験対策だけでなく、次に本を執筆する際にもこのノルマ計算機がそのまま使えそうです。そして、ページ数を金額に置き換えれば、販売成績ノルマになりそうですね。

プログラムをWindowsのスタートアップなどに登録すれば、パソコンを起動するたびにノルマ計算機が立ち上がるようになりますので、かなりプレッシャーになります。必要に迫られている方はぜひ使ってみてください。

80/90

インデックス

連載目次
第90回 10行プログラミング最終回~10行プログラミングを振り返って
第89回 フォルダ一括圧縮
第88回 テキストエディタに貼り付けたExcelの表を見やすく整形する
第87回 一発加算電卓
第86回 ブログにHTMLソースを貼れるよう変換する
第85回 カード式メモ帳
第84回 時間電卓を作る
第83回 アスキーアート地図エディタ
第82回 縦書き風テキスト作成ツール
第81回 Excelシートの比較を行う
第80回 ノルマ計算機
第79回 高速バックアップ
第78回 単語帳に読み上げ機能をつける
第77回 ホームページのバックアップツール
第76回 英単語帳を作成する(その2)
第75回 英単語帳を作成する(その1)
第74回 メモリカード挿入でデータをコピーするツール
第73回 モールス信号ソフトの作成
第72回 フォトCDランチャーを作る
第71回 残暑見舞い作成ツールを作る
第70回 画面キャプチャプログラムを作る
第69回 様々なルールに対応するビンゴシートのプログラムを作る
第68回 ビンゴカードを作る
第67回 ビンゴマシンを作る
第66回 パスワードマネージャの作成
第65回 アンドゥ機能をつける
第64回 テキストの比較ツール~FCフロントエンド
第63回 システム情報クリップ
第62回 飲み会電卓を作る
第61回 バイナリエディタの作成
第60回 メールフッタ作成ツール(その2)
第59回 メールフッタ作成ツール(その1)
第58回 プロセス監視ツールを作成する
第57回 TODOメモを作る
第56回 携帯電話をテキストリーダーに使う(2)
第55回 携帯電話をテキストリーダーに使う(1)
第54回 「オープンソースカンファレンス2006 Tokyo/Spring」に参加しました
第53回 10行でチャットソフトを作る(2)
第52回 10行でチャットソフトを作る(1)
第51回 プレゼンタイマーを作る
第50回 カラーピッカーを作る
第49回 簡単な暗号作成プログラム
第48回 お手軽データベース「SQLite」を使う
第47回 CUI(コマンドライン)環境を拡張する
第46回 デスクトップ画像を記録するプログラム
第45回 市外局番で住所を調べる検索プログラム
第44回 コマンドライン型ランチャーを作る
第43回 文字数カウンタを作る
第42回 日本語でバッチ処理
第41回 イベントドリブンと電光掲示板
第40回 なでしこでWindowsの「送る」メニューを使いやすくする
第39回 同人音楽即売会M3に参加して思ったこと
第38回 画像のサムネイル作成
第37回 なでしことExcelで行事予定カレンダーを作ろう
第36回 なでしことExcelで月間カレンダーを作ろう!
第35回 なでしことExcelで年間カレンダーを作ろう
第34回 急な電話にも安心、意外と便利な「手書きメモ」
第33回 携帯電話のアドレスデータを取り出す
第32回 記念日カウンターを作る
第31回 顔文字入力支援ソフト
第30回 アスキーアートのためのエディタ
第29回 HTTPサーバーを作る
第28回 手紙のあいさつ文を作成するプログラム
第27回 ギターコードの構成音を表示
第26回 音楽の再生スピードを変える
第25回 ミニスライドショーを作る
第24回 撮影日で写真を振り分け
第23回 PSP用テキスト画像の作成
第22回 金種計算
第21回 パスワードを自動生成
第20回 携帯メールでWEBを更新する
第19回 時間の使い方を反省するプログラム
第18回 ウェブを画像でキャプチャ
第17回 ラーメンタイマーを作る
第16回 画像のトリミングツール
第15回 ごみの分別カレンダー
第14回 デスクトップ検索ツール
第13回 フォント見本帳
第12回 セピア調の画像ビューワー
第11回 健康チェック
第10回 10行で壁紙にらくがきする
第9回 WEBサイトの更新チェッカー
第8回 WEBページのリンク切れをチェック その2
第7回 WEBページのリンク切れをチェック
第6回 音楽ファイルの整理 - メディアタグから自動フォルダ分類
第5回 請求書の自動作成・印刷~Word連携技
第4回 重要データのバックアップ術
第3回 10行ニュースリーダーを作ろう!
第2回 なでしことは その2
第1回 なでしことは? その1

もっと見る

人気記事

一覧

イチオシ記事

新着記事