Relative Content

Author Archive for chen

C code2 (c) Command line arg.

今まで、main 関数へ引数なしを意味する int main(void) と記述、 実は main関数にも引数を渡すことができます。 この main関数に渡す引数のことを「コマンドライン引数」といいます。 コマンドライン引数 main関数へ渡せる引数は、 引数の総個数 引数の文字列を指すポインタの配列 の 2つです。 一般に int main(int argc, char *argv[]) と記述し、 int argc: 引数の総個数(プログラム名も含む) char *argv[]: 引数の文字列を指すポインタの配列を表します。 とりあえず、下の例を見てみましょう。 (例) #include <stdio.h> int main(int argc,char *argv[]) { int i; printf(“引数の総個数 = %d\n”, argc); for (i = 0; i < argc; i++) { printf(“%d番目の引数 = %s\n”, […]

C# exercises (b) Web2 Form

Visual Studio community 2015 アカウントについて (学内専用) WebBrowser (基本) Form(自動操作)←今週 HttpClient REST & JSON WebBrowser コントロールを利用した、ブラウザをコントロールアプリケーションの作成手順を紹介します。 Googleの検索ページを利用し、ページに表示されているテキストボックスに文字列が自動的に入力、フォームのサブミットボタンのクリックができ、ページを解析し、含まれるすべてのリンク文字列とそのURLを表示するなどもできる。 このようにプログラムからWebページを操作する場合、事前にそのHTMLのソースをチェックして、操作対象となるHTML要素を明確にしておく必要がある。Googleの検索ページのソースを見ると、フォームの定義部分で次のような記述を見つけることができる。 <form action=”/search” name=f > <input name=q size=55 value=”” …… > <input name=btnG type=submit value=”Google 検索” …… > …… Googleの検索ページ内のフォーム定義部分(抜粋) この記述から、フォーム(<form>要素)には「f」という名前(name属性)が付けられており、またテキストボックス(<input>要素)には「q」、[Google検索]ボタン(サブミット・ボタン。「type=submit」という属性が付いている<input>要素)には「btnG」という名前が付けられていることが分かる。   コントロールの配置 Visual Studioを起動し、新しいWindows Formプロジェクトを作成します。 フォーム上次のコントロールを配置してください ボタン: button1 button2 button3 button4 リストビュー: listView1 listView1.View = View.Details; columnHeader1=HERF columnHeader2=text ウェブブラウザ: webBrowser1 […]

4.3 for文

  for文構文 定められた回数だけ反復制御を行います。 for (初期化式; 継続条件式; 後始末) { 文; } 再初期化式の後に「;」は入れてはいけない。 例題: #include <stdio.h> int main(void) { int i; for (i = 1;i <= 10;i++) { printf(“%02d 回目\n”,i); } return 0; }   for文とwhile文の交換性 一般的にfor文は「指定した回数分だけ処理を繰り返す」、while文は「指定した条件を満たすまで処理を繰り返す」と言う意味で、for文とwhile文は似ているようで定義されている意味は違います。 while文は、for文の条件式だけと同じです。 逆に言えば、for文はwhile文を拡張した文だと言えるでしょう。 実は、この2つは、同じような使い方をすることが可能です。 while文をfor文のように使う場合、次のようにします。 初期化式; while (継続条件式) {   繰り返す文;   後始末; } for文をwhile文のように使う場合、次のようにします。 for (;継続条件式;) {   繰り返す文; } 演習  演習4-12 (A, Bクラス) […]

8.4 Recursive call

東京魅力PRサークル会員募集中 http://svn.mki.biz/pukiwiki/index.php?u-tokyo 興味があれば、ぜひコメントください。 階乗の計算 皆さんは「階乗の計算」を覚えていますか? 5の階乗なら「5!」と表記し, 5! = 5 × 4 × 3 × 2 × 1 と計算します。つまり答えは120です。 0 の階乗:1 1 の階乗:1 2 の階乗:2 × 1 3 の階乗:3 × 2 × 1 – – – – – – – n の階乗: n × (n – 1) × (n – 2) – – – 3 × […]

C# exercises (a) Web1 WebBrowser

Visual Studio community 2015 アカウントについて (学内専用) 今週から、4回分けてWebについて学習する WebBrowser (基本) WebBrowser (自動操作) HttpClient REST & JSON WebBrowser コントロール WebBrowser コントロールを利用した、シンプルなアプリケーションの作成手順を紹介します。 Visual Studioを起動し、新しいWindows Formプロジェクトを作成します。 WebBrowserコントロールの配置 ツールボックスから”WebBrowser”コントロールをクリックして選択します。選択後フォームデザイナにドラッグ&ドロップしフォームにWebBrowserコントロールを配置します。 フォームにWebBrowserコントロールを配置した直後の状態です。フォームいっぱいにコントロールが配置されます. フォーム全体にコントロールが広がる原因は、”Dock”プロパティがデフォルトで”Fill”に設定されるためです。Dockプロパティを”None”に変更します。 Dockプロパティを”None”に変更するとコントロールのリサイズができるようになります。 コード 下記のコードを記述します。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WebBrowserControl { public partial class FormMain : Form { public […]

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 […]