Relative Content

Yearly Archives: 2016

4.1 while文

C言語には、全部で3つのループ文が用意されています。 while文、for文、そして、do(デュウ)~while文です。 do~while文構文 do~while文は、一般に、次のような書き方で使用します。 do { 繰り返す文; } while (条件式); do~while文には、1つ大きな利点があります。それは、繰り返し文が、必ず1回は実行されるという点です。入力チェックの時に威力を発揮します。 継続条件式の後の(;)を忘れないよう注意。 円の面積を計算するプログラム。半径入力値が間違っているならば、再入力させる。 int main(void) { int r; double s; do { printf(“半径?:”); scanf(“%d”,&r); } while (r < 0); s = r * r * 3.14; printf(“面積は %f です。\n”,s); return 0; }  演習 ミニクイズ http://lmspress.net/ (登録は : 学籍番号 / 学校e-mailアドレス) 詳しくはLMS Pressとは参照してください。 入力チェックプログラム 下記のプログラムの入力チェックを追加して下さい。 入力値が間違って誤った月を入力された場合、再入力を行ってください。 […]

6.2 関数から値を返す

ある関数が別の関数を呼び出して、呼び出した関数に制御が戻って来た時に、関数によっては値が返ってくるものがあります。 関数から値を返すには、関数の戻り値の他に、ポインタを使って、関数から呼び出し側の領域を書き換えるも可能です。 値を関数戻り値で返す 関数の定義 戻り値の型 関数名(パラメータリスト) { 文 … } 関数の戻り値で返す。 この方法では、常に1つの情報しか返すことが出来ません。 2つ以上の情報を返したい時などは不便です。 値を引数の配列に返す 配列の先頭要素のアドレスを引数にして、上位関数側と下位関数側で配列を共有し、見かけ上、複数のデータを返したようにします。 #include <stdio.h> void waru2(int *p); int main(void) { int i; int dt[] = { 20, 10, 4, 35, 66, 78, -1 }; waru2(dt); /* 配列の先頭要素のアドレスを渡す */ for(i = 0; dt[i] != -1; i++) { printf(“%d “, dt[i]); } printf(“\n”); return […]

C# exercises (9) Puzzle Game3

Visual Studio community 2015 アカウントについて (学内専用) パズルゲームUIの改進 改進点: ピースを順番でセットするではなく、あらかじめランダムにセットして、マウス移動できるようにする ピースをあらかじめランダムにセット initialData の改造 // 変数関係の初期化処理 private void initialData() { flg = new bool[9]; data = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; answer = new int[] { -1, -1, -1, -1, -1, -1, -1, -1, -1 }; Random r = new […]

3.2 switch文

Switch文構文 条件式を判定して多方向分岐を行う。 switch (式) { case 定数: ブロック文 default: デフォルト・ブロック文 } Berak文構文 switch文で、case句の処理を打ち切りブロックを脱出するときに用いる。 ⇒ 説明済み for文、while文などのループから脱出するときに、if文と併用して用いる。 break;   例題 毎月の末日の判断 #include <stdio.h> int main() { int n; printf(“月を入力して下さい –> “); scanf(“%d”, &n); switch(n){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf(“–31日–\n”); break; case 4: case 6: case 9: […]

6.1 関数の呼出

関数の基本 C言語において関数を使うことには、以下のような利点があります。 関数化しておくとそれを1つのブラックボックスとして扱うことができます。 つまり、使用する側が知っておくべきことは、以下の通りです。 入力として、どのような引数を与えるか 出力として、関数がどんな値を返すのか 関数を使ったことによって、どんな副作用があるか 一度、関数として作成しておけば、後で何度でも再利用することができる 関数として各機能をまとめていくと、一般にプログラムが見やすく、デバッグの作業もしやすい 関数の呼び出し #include <stdio.h> void func();   //関数のプロトタイプ宣言 int main() { func();    //関数呼び出し printf(” ここがメイン関数内\n”); return 0; } void func()    //自作関数 { printf(“ここは自作関数内\n”); return;    //「return;」は省略可 }   関数定義 関数の定義 戻り値の型 関数名(パラメータリスト) { 文 … } 関数プロトタイプ宣言 戻り値型 関数名(パラメータリスト); 戻り値の型、関数名、引数のルールは関数を作る際とほとんど同じです。但し、プロトタイプ宣言する行の最後には「;」が必要。 Void Type関数 void型は、今までの数値型や文字型とは異なり、戻り値が無い関数のデータ型のことです。処理の結果を戻す必要が無い場合は、わざわざint型にして「return 0;」としなくても、void型で関数を定義すれば、最後にreturn文を書く必要はありません。   値を返さない return型に用いる 引数が無い場合に用いる 関数へ値を渡す 値 C言語では、関数へ情報を渡す場合、必ず元の変数の値のコピーを渡します。 この様な方法を値渡しと呼び、元の変数の値が変更されないことが特徴です。 「値渡し」, ex : printf() #include <stdio.h> void […]

C# exercises (8) Puzzle Game2

先週できたパズルゲームUIの改進 参考 http://www18.big.or.jp/~neon2/bunkatu/tips9.shtml 改進点: ピースを順番でセットするではなく、あらかじめランダムにセットして、マウス移動できるようにする ピースをあらかじめランダムにセット initialData の改造 PlayBox_Paint の改造 マウス移動できる 勝負判定 経過時間の表示

3.1.1 複合文

C の推奨されるスタイル C言語やJava言語は、中括弧 { } を使ってブロックを記述します。 中括弧だけでなく、ブロックの範囲を字下げ(インデント)して記述します。 ただ、中括弧をどの位置に記述するかによって、コーディング・スタイルの宗教論争が起きています。 主に中括弧の位置の違いなのですが、なぜか字下げスタイルと呼ばれています。 // 中括弧の開始を、文末に記述するスタイルを「K&R スタイル」といいます。 void FuncA() {   if ( … ) {   } } // 中括弧の開始を、文のない行に記述するスタイルを「BSD スタイル」といいます。 void FuncA() {   if ( … )   {   } } // 関数の開始も、文末に記述するスタイルを「Java スタイル」といいます。 void FuncA() {   if ( … ) {   } }   複合文(ブロック) 文の並びを{ }で囲んだものを「複合文」といいます。ブロックとも言います。 複合文は複数の「宣言」と「文」を扱うことができます。 関数の定義に使うブロック { […]

11.2 ポインタによる文字列の操作

ポインタのまとめ アドレス ポインタと使用手順 ポインタ配列 過去のページを参照 演習 ポインタを使ったプログラムをグループで作成する。 7-3-4-3(P245) 大きさ10の整数型配列を用意し、下図のように初期設定しなさい。 この配列を順に調べ、奇数の値のみ、別の大きさ10の整数型配列に代入しなさい。 また、配列の中身と、何個格納したかを画面表示しなさい。 実行結果 15 45 9 71 37 格納個数 = 5 ヒント: 大きさ10の整数型配列を用意し、初期設定する。 別の大きさ10の整数型配列を用意。 この配列を順に調べ、奇数の値のみ、別の大きさ10の整数型配列に代入。 配列の中身と、何個格納したかを画面表示。 #include <stdio.h> int main( void ) { int data1[10] = { 10, 15, 22, 45, 9, 66, 71, 4, 37, 82 }; int data2[10], i, cnt; int *p1, *p2; cnt […]

C# exercises (7) Puzzle Game

今回作るのは、イメージを読み込んで利用するパズルゲームです。イメージファイルを読み込むとそれを 9 分割し、ランダムに混ぜます。 プレビューのイメージをフォーム上クリックして配置、すべて正しい場所に配置できればクリアです。   フォーム作成 サイズ:500 x 400 背景色:適当 PictureBox配置 (Name) : PlayBox Size :        300 x 300 BackColor :  white プレビュー用PictureBox配置 (Name) : Preview Size :        100 x 100 BackColor :  white     メニュー作成 MenuStrip をフォームにドロップ、下記のようにメニュー追加 File Load Image…     ダイアログ作成 openFileDialog をフォームにドロップ、フィルターを設定 Image Files (*.png, *.jpg) | *.png; *.jpg   […]

3.1 if文

制御構文 制御構文は、上から下へ流れるプログラムを途中で流れを分岐させたり、流れを繰り返したりすることができる構文を表します。 制御構文の主な種類としてif文、for文、while文、switch文の4パターンあります。 if文を使うと、分岐構造を作ることができます。 条件式の真偽 状態 真偽 値 条件が満たされた場合 true(真) 1(0以外) 条件が満たされなかった場合 false(偽) 0  関係演算子 2つの値の大小を比較します。 条件を満たせば「真(true)」、条件を満たさなければ「偽(false)」となります。 関係演算子の形式は以下の通りです。 演算子 例 意味 < a < b aはbよりも小さい > a > b aはbよりも大きい <= a <= b aはbよりも小さい(a == bの条件も含む) >= a >= b aはbよりも大きい(a == bの条件も含む) == a == b aとbは等しい != a != b aとbは等しくない […]