Author: Hong Chen

CalculatorCalculator

電卓プログラムの考え方、書き方例 2つの数値の加減乗除をする電卓のようなプログラムを作ります。 簡単なようですが、多くの話題(データ型の選択、入力、判断や繰り返しなど)を含んでおり、学習に役立つ例題です。 今回は、プログラムをつくる流れも分かるように、どんなプログラムにするか検討するところから始めます。 それを処理手順に書き、C言語のコードに直します。 プログラムの機能を考える まずは、どんなプログラムにするかを考え、前提とすることや制約についても検討します。 数や演算の指定はどうする? たとえば「2 + 5」のように、「数値1 演算記号 数値2」の順に入力すると計算結果が表示されるようにする。 演算記号は、+, -, *, / のみとする。 繰り返して計算できるようにする 繰り返しの終了は、指定が上記の書式でなかったときとしよう。 […]

Reverse Polish Notation CalculatorReverse Polish Notation Calculator

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

C programming (5) operator and operandC programming (5) operator and operand

C言語の特徴(2) 関数型言語 コンピュータに実行してもらう命令はすべて関数の中に記述されている。関数がプログラムの実行単位。いくつかの関数を組み合わせ、コンピュータへ命令をする。最初にコンピュータが実行する関数はmain()に決まっている。 戻り値の型 関数名(引数リスト) { 命令文; } 命令文(Statement) 名札付き文 式文 複合文 選択文 繰り返し文 ジャンプ文 式(Expression) オペランド 演算子 オペランド... トークン(token) コンパイラが認識する最小単位のテキスト、トークン(token) […]

C exercises (4) math and utilityC exercises (4) math and utility

数学関数 数学的な計算が必要な場合に使用する命令セットです。引数と返りは全てdouble型になります。 主なもの: sin(x):角度x(ラジアン)のsinの値を返す cos(x):角度x(ラジアン)のcosの値を返す tan(x):角度x(ラジアン)のtanの値を返す pow(x,y):xのy乗の値を返す exp(x):指数関数eのx乗の値を返す log(x):xの自然対数の値を返す log10(x):xの常用対数の値を返す sqrt(x):xの平方根の値を返す ceil(x):小数第一位を切り捨てした値を返す floor(x):小数第一位を切り上げした値を返す round(x):小数第一位を四捨五入した値を返す サンプル: #include <stdio.h> #include <math.h> //math.hのインクルードを忘れずに […]

C# exercises (4) Slot machineC# exercises (4) Slot machine

Visual Studio community 2015 アカウントについて (学内専用) スロットマシンの作成 Slot machine スロットのプログラムに必要な3つの部品 数字を表示させるための部品   → ラベル (Labelコントロール) スロットを開始するための部品   → ボタン (Buttonコントロール) 数字の書き換えを短い間隔で行うため、その間隔を計るための部品 […]

C言語勉強関連サイトC言語勉強関連サイト

プログラミング言語の基礎を簡単に楽しく学べるサイト プログラミング学習サイト http://dotinstall.com/ — 講義型のプログラミング学習サイト http://paiza.jp — 用意された問題を解くとプログラミングスキルを6段階に評価してくれるサービスです http://judge.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja — 会津大学が提供しているプログラミング問題サイトです。お題に対して問題を解いていく形式で、提出したプログラムをオンラインで採点してくれます。 https://www.codeeval.com/ — 約150問程度のプログラミング問題(初級、中級、上級)が掲載されており、点数が良いと海外の企業からスカウトが来るサービスです。 オンラインコンパイラ ■http://ideone.com/  — ideate , WordPress 対応Plugin あり ■http://codepad.org/ ■https://www.learn-c.org/  C言語入門 http://wisdom.sakura.ne.jp/programming/c/index.html — C言語入門 http://www.wisdomsoft.jp/189.html — 読本C http://dixq.net/g/ — >新・C言語 ~ゲームプログラミングの館~ […]

C# exercises (3) Common ControlC# exercises (3) Common Control

ディジタル時計の作成 Create Digital Clock デザイン ツールボックスの中で、 –コモンコントロール「TextBox」 –コンポーネント「Timer」 Formにドラッグ&ドロップする Timerのプロパティ(値)を変更 timer1のプロパティ Enabled⇒ True (Enabled:タイマーを実行する) Interval⇒ 1000 (Interval:タイマーの実行間隔, 1000⇒1000ms(1秒))   TextBoxのプロパティ […]

C programming (4) puts and scanfC programming (4) puts and scanf

puts関数:表示を行う関数 書式化の必要がなく、改行もしたいの場合 puts(“ABC”); printf(“ABC\n”);   scanf関数:読込みを行う関数 scanf関数は、処理の途中でキーボードから文字の入力を求め、入力されたものを処理に利用するというものです。 実例: #include <stdio.h> int main(int argc, const char * argv[]) { // insert […]

Nim gameNim game

Nim game ニム (nim) は、2人で行うレクリエーション数学ゲームの1つである。ルーツは古代中国からあるとされ、16世紀初めの西欧で基本ルールが完成したが、名前については、一般的に1901年にハーバード大学のチャールズ・L.バウトン (Charles L. Bouton) によって名付けられたとされる。 ゲームルール: 一人1個か2個か3個か4個だけ取れて、交互にやっていって、 最後の1個の石を取った人が負けとなります。 #include <stdio.h> int main(void) { int i, stone, […]