【コラム】

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

87 一発加算電卓

 

87/90

何事も単純であることは素晴らしいことです。1回覚えれば何にでも使えるという多機能ソフトも素晴らしいのですが、単純であれば、使い方を覚える必要も、応用力を試される必要もありません。

今回の10行プログラムで作るのは、足し算しかできない電卓です。とにかく数字を入力していくと、合計値が表示されるというシンプルで便利な電卓を作ります。

画面の設計

それでは、「一発加算電卓」を作ってみたいと思います。この電卓は、足し算しかできません。しかし、電卓よりも足し算を計算するのが楽で、入力した数値の履歴も残るというものです。

画面には、複数行のテキストが入力ができるメモ部品と、計算結果を表示するエディタ部品の2つだけを配置します。まずは、レイアウトだけを作ってみたいと思います。

ユーザーは、画面の上部にあるメモ部品に次々と数値を入力していきます(各行に1つずつ数値を書きます)。すると、画面の下部にあるエディタ部品に合計値が表示されるという具合です。

部品を配置してみたところ

上のように入力部品を配置するには、以下のようなプログラムを書きます。

# 複数行が入力できるメモ部品
計算メモとはメモ。#1
そのサイズは「10,10,300,300」。#2
その文字サイズは32。#3

# 一行入力用エディタ
結果エディタとはエディタ。
そのサイズは「10,310,300,380」。
その文字サイズは32。

# 画面の幅を調節
母艦のクライアント幅は310。#4

なでしこで、「**とはメモ」と書くと、テキストが複数行入力できるメモ部品を作成することができます(#1)。同様に「**とはエディタ」と書くことで、エディタ部品を作成できます。

そして、その直後(#2)に「そのサイズは」と続けて、画面座標を「左上X,左上Y,右下X,右下Y」の書式で指定できます。単位はピクセルです。次に「その文字サイズは」とありますが、これはエディタに表示する文字の大きさを指定します(#3)。

最後(#4)の「母艦のクライアント幅」では、画面の横幅の長さを指定できます。

こうした画面のレイアウトは、なでしこエディタの画面左にあるタブから「行動」を選び、GUIデザイナをダブルクリックすると、簡単な画面のレイアウトツールが起動するので、簡単な画面デザインはこのツールで作ることができます。

簡単な画面レイアウト作成ツール「GUIデザイナ」

繰り返し足し算を行う方法

次にユーザーが入力した値を繰り返し足していく方法を考えましょう。なでしこでは、次々と処理を行うために「反復」構文を利用できます。「反復」構文は以下のように使います。

(データ)を反復
  ※ここに繰り返し実行する内容を記述

このように、繰り返し実行したいデータを与え、次の行を字下げ(インデント)して、繰り返すプログラムを記述します。

この「反復」構文を使って、繰り返し足し算を行うプログラムは、以下のようになります。

結果は0
データは「100
200
300」
データを反復
  結果=結果+対象。
結果を表示。

このプログラムを実行すると、600が表示されます。このプログラム中の「対象」という変数は、「反復」構文で自動的に値がセットされる変数で、繰り返すデータの1つの要素(この場合、1つの値)が代入されます。

「反復」構文の動きが分かりづらい場合、以下のプログラムを実行して、動作を確かめてみてください。データの1行ずつが、変数「対象」に代入され表示されます。

データは「100
200
300」
データを反復
  「---」と表示
  対象を表示。
  「---」と表示

「反復」構文の動きテスト

10行プログラミング

ここまでできたら、画面の設計で作ったプログラムと、繰り返し足し算を行うプログラムを組み合わせて、目的のプログラムを完成させましょう。

以下のプログラムが今回の10行プログラムです。

母艦のタイトルは「一発加算電卓」。母艦のクライアント幅は310。#1
計算メモとはメモ。#2
そのサイズは「10,10,300,300」。その文字サイズは32。#3
結果エディタとはエディタ。#4
そのサイズは「10,310,300,380」。その文字サイズは32。#5
計算メモを変更した時は #6
  合計値=0 #7
  計算メモを反復 #8
    合計値=合計値+対象 #9
  結果エディタは、通貨形式(合計値)。#10

画面の上部に複数の数値を入力していくと、画面の下部に合計値が表示されます。

1行目~5行目では、部品を配置します。

6行目、「計算メモを変更した時は」で、メモ部品の内容が変更された時に、7行目以降の合計処理を行うようにしています。

7行目~9行目が、繰り返し足し算を行うプログラムで、最後、10行目で、合計した結果を、結果エディタに表示します。その際、「通貨形式(値)」命令を使って、合計値を3桁のカンマで区切って表示します。

改造のヒント

今回のように、自分でエディタ部品などの部品を配置する方法だと、自分の思い通りのレイアウトを作ることができます。しかし、その反面、部品の配置情報などを記述しないといけないので若干面倒です。

前回の連載でも触れましたが、「メモ記入」命令を使うと、メモ帳に似たダイアログを表示することができて、手軽にユーザーからの入力を得る事ができます。今回のプログラムでも、「メモ記入」命令を利用してデータを入力してもらうと、利便性は落ちますが、さらに簡単なプログラムにすることができます。

以下「メモ記入」命令を利用して、書き直したプログラムです。たった4行になりました。

合計値=0
メモ記入して反復
  合計値=合計値+対象
通貨形式(合計値)を言う。

87/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

もっと見る

人気記事

一覧

イチオシ記事

新着記事