Relative Content

Daily Archives: May 12, 2016

C# exercises (5) Calculator

my電卓を作ろう 逆ポーランド記法電卓 Reverse Polish Notation Calculator 画面をデザインする ツールボックスの中で、 コモンコントロール「TextBox」 TextBox –>  (name): typeText;  text: 0 TextBox –> (name): lastText;  text: 0 コモンコントロール「Button」 Button1 –> (name): plusButton;  text: + Button2 –> (name): subButton; text: – Button3 –> (name): multiButton; text: x Button4 –> (name): divButton; text: / Button5 –> (name): clrButton; text: CL Button6 –> (name): enterButton; text: ER Formにドラッグ&ドロップする プログラミング KeyPressイベントを作成 Form1を選択し、Form1のイベントの表示に切り替えて、「KeyPress」イベントに、FormKeyPressを入力 FormKeyPressメソッドを作成 六つボタンを選択した状態で、コントロール類の、「KeyPress」イベントに、FormKeyPressを選択。 private […]

Calculator

電卓プログラムの考え方、書き方例 2つの数値の加減乗除をする電卓のようなプログラムを作ります。 簡単なようですが、多くの話題(データ型の選択、入力、判断や繰り返しなど)を含んでおり、学習に役立つ例題です。 今回は、プログラムをつくる流れも分かるように、どんなプログラムにするか検討するところから始めます。 それを処理手順に書き、C言語のコードに直します。 プログラムの機能を考える まずは、どんなプログラムにするかを考え、前提とすることや制約についても検討します。 数や演算の指定はどうする? たとえば「2 + 5」のように、「数値1 演算記号 数値2」の順に入力すると計算結果が表示されるようにする。 演算記号は、+, -, *, / のみとする。 繰り返して計算できるようにする 繰り返しの終了は、指定が上記の書式でなかったときとしよう。 他に考えておくことは? (1) 浮動小数点数でも計算できるようにする (2) 加減乗除以外の演算記号が指定されたらどうする? (3) 割り算で、ゼロ割しようとしたときはどうする? (4) 電源ON の代わりに指定の書式を示すメッセージを表示しよう。電源OFF のメッセージも表示しよう (2) と (3) のケースは、エラー・メッセージを表示して、指定し直せるようにしよう。 処理手順として書く 上の検討結果を踏まえて、処理内容を具体的かつ端的に書きます。 判断や繰り返し、データの入出力も分かるようにします。 下記では、チャートを使わずに書きます。 【 電卓プログラムの処理手順 】 指定の書式を示すメッセージを表示する <繰り返し> |  「数値1 演算記号 数値2」の指定を受け取る –> 変数 a, op, b へ |    指定の書式でなかったとき) 繰り返しを抜ける |  演算記号 op に応じた計算をする –> […]

Reverse Polish Notation Calculator

逆ポーランド記法 逆ポーランド記法 逆ポーランド記法を使えば、式の計算をする(評価)には、先頭からひとつずつ順番に記号を読み込み、その記号が演算子以外であればスタックに値を積み、演算子であればスタックから値を取り出して演算し結果をスタックに積む、という簡単な操作の繰り返しだけでよい。そのため、プログラミング初心者の練習課題として、逆ポーランド記法の電卓を作ることがよく行われる。 逆ポーランド記法による計算の例 2+3を計算するとき,逆ポーランド記法では,次のように表す.数値や演算子(+, -, *, /)の間にはスペースを設ける. 2 3 + これはいくつかのメモリー(記憶場所)が準備されているとき, 2を1番目のメモリーに記憶 3を2番目のメモリーに記憶 1番目のメモリーの内容と2番目のメモリーの内容を加算 加算結果を1番目のメモリーに記憶 という手順で計算することを表している. 特徴: 日本語の並びと同じ計算順序 逆ポーランドには括弧がない キータッチ数は最少 【中置記法】 3 * ( 1 + 2 ) / ( ( 4 – 5 ) / ( 6 + 7 ) ) =  キータッチ数は22回 【逆ポーランド記法】 3 1 2 + * 4 5 – 6 7 […]