Presentation is loading. Please wait.

Presentation is loading. Please wait.

地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日

Similar presentations


Presentation on theme: "地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日"— Presentation transcript:

1 地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
三井真吾 居室:工作実習棟 HP:佐々木敏彦研究室HP   

2 while文 int a=0; while(a<10){ printf(“%d\n”, a); a++; }
一般に for文は「○回処理を繰り返す」ときに使用し、 while文は「~の条件の間処理を繰り返す」ときに使用する。 break;でループを1つ抜ける事ができる。 while(1){・・・・・・}で無限ループ。if(・・・){break;}で抜ける。 例題 2つの数字を入力し、足し算を続けるプログラムを作れ。Ctrl+Cで終了出来る。 0+0のときに終了するように改良せよ。

3 do~while文 int a=0; do{ printf(“%d\n”, a); a++; } while(a<10);
処理を行った後に継続条件を判定する。 必ず1回は処理するときなどに使われる。 例題 while文を、do~while文に変更しても問題ないことを 確認せよ。

4 switch文 int a, x, y; printf(“1:和 2:差\n”); scanf(“%d”, &a); //分岐条件を入力 printf(“数値を2つ入力\n”); scanf(“%d%d”, &x, &y); switch (a) { //aの値によって分岐 case 1: //aの値が1のとき printf(“和は%d”, x+y); break; //必ずbreakを入れる case 2: //aの値が2のとき printf(“差は%d”, x-y); break; default: //aの値がその他のとき printf(“1又は2を入力して下さい。”); }

5 2次元配列 int no[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; // 縦3行、横4列の配列を定義 int no[3][4] = {{ 0 }}; //全て0で初期化。 char month[13][20] = {“January”, “February”, ・・・・・・, “December”} 3次元以上の配列も可能。 例題 数字の2次元配列を作り表示せよ。 表示例 one two three four five

6 ポインタ int x = 123; x //変数xの値123を表す(家) &x //変数xのアドレスを表す(住所) pt //アドレスを記録する変数(住所録) int a, b; int *pt; //ポインタptの宣言 pt = &a; //ポインタptにaのアドレスを記録 *pt = 100; //ptの指す中身に100を代入 b = *pt + 100; //bにptのさす中身+100を代入 メモリ(中身) 123 100 &a 200 変数 x a pt b アドレス(住所) &x &pt &b *ptはここを表す。

7 ポインタ 配列 char a[3] = “AB”; このときa = &a[0]となる。 変数とは異なることに注意。
ポインタ 配列 char a[3] = “AB”; このときa = &a[0]となる。 変数とは異なることに注意。 char st[]=“AB”; char *pt1, *pt2; pt1 = st; printf(“%c”, *pt1); printf(“%c”, *pt1+1); printf(“%c”, *pt1+2); pt2 = st; printf(“%c”, *pt2); pt2++; メモリ ‘A’ ‘B’ ‘\0’ 配列 a[0] a[1] a[2] アドレス &a[0] &a[1] &a[2] ポインタにこのアドレスを詰める。 配列名aだけだとこれを表す。 *pi1+1;とpt2++;とは次のアドレスに移動するという意味。 型によって移動量が異なる。

8 ポインタ 文字列 char *p = “ABC”; //”ABC”の先頭アドレスがポインタに詰められる。 char moji[4] = “ABC”; //文字列を定義 char *p; //ポインタを定義 p = moji; //ポインタに文字列の先頭アドレスを代入 //文字列は配列名だけで先頭アドレスを表す。 配列 moji[0] moji[1] moji[2] moji[3] char week[8][20] = {“Sunday”, ・・・・・・, “Saturday”} //それぞれの先頭アドレスがweek[0]、・・・・・・、 week[6]に詰められる。 例題 数字をポインタを用いて出力せよ。 moji[4] = ‘A’ ‘B’ ‘C’ ‘\0’ 先頭アドレスをポインタpに代入。


Download ppt "地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日"

Similar presentations


Ads by Google