1 / 19

第 6 章 この 辺りからややこしくなる!? ~ 配列 ~

第 6 章 この 辺りからややこしくなる!? ~ 配列 ~. 変数を一度にたくさん宣言するよ! これ がどこで生かせるか、わかるかな?. 前回やったこと. 反復処理を やるもう一つの方法 for 文 for 文の中に for 文を書くことで 2 重ループ を作れる 2 重ループは for-for 、 for-while 、 while-while 、 while-for でもできる. 今日 の予定. 配列とは 宣言 、初期化の仕方 繰り返しを使った上手い初期化の仕方 2 次元配列とは 宣言、初期化の仕方. 配列とは (1).

chance
Télécharger la présentation

第 6 章 この 辺りからややこしくなる!? ~ 配列 ~

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章この辺りからややこしくなる!?~配列~第6章この辺りからややこしくなる!?~配列~ 変数を一度にたくさん宣言するよ! これがどこで生かせるか、わかるかな? 第6章 配列

  2. 前回やったこと • 反復処理をやるもう一つの方法 for文 • for 文の中に for 文を書くことで2重ループを作れる • 2重ループは for-for、for-while、while-while、while-for でもできる 第6章 配列

  3. 今日の予定 • 配列とは • 宣言、初期化の仕方 • 繰り返しを使った上手い初期化の仕方 • 2次元配列とは • 宣言、初期化の仕方 第6章 配列

  4. 配列とは(1) • 変数の後ろに『[5]』などをつけ、宣言をすることで、同じ大きさの変数を複数一気に宣言することができる • 例: • こうしてできた変数の集まりを 配列 という • 配列でできる変数の個数は『[]』内の数値分と同じ! intnum[5]; 第6章 配列

  5. 配列とは(2) num[0] num[1] num[2] num[3] num[4] • さっきの『 intnum[5]; 』だと、 変数『num[0]~[4]』が作られる • 一つひとつが立派な変数だから、 ちゃんと数値の代入や、初期化( 最初の値を決めること)ができる • 数値の代入はこんな感じにやるよ↓ ↑ 0 から始まる  のに注意 num[0] = 1; num[1] = 2; 第6章 配列

  6. 配列とは(3) • 配列の初期化はちょっとややこしい • これで→と同じことができた • ただ『{}』内の数値は配列の 個数より多くてはエラーが出る し、この方法は宣言と同時でないとできない仕 様なんだ intnum[5] = { 1, 2, 345, 67, 890}; 『,』で区切ってね num[0] = 1; num[1] = 2; num[2] = 345; num[3] = 67; num[4] = 890; だからただの代入で初期化することも多い 第6章 配列

  7. 配列とは(4) • 説明が長くなっちゃったけど、ひとまず下のプログラムを実行してみよう #inlude <stdio.h> void main(){ intnum[4] = { 1, 9, 3, 6 }; int a; a = num[0] * num[2]; printf(“%d\n”, a ); num[0] = num[1] + a ; printf(“%d\n”, num[0] + num[3]);} 第6章 配列

  8. 配列とは(5) • 実行結果はこんな感じ • また『[]』内の数値を変数に置き換えることもできるよ • 例: intnum[10] inti = 7; num[i] = 3; これで『num[7] = 3;』 と同じことになった 第6章 配列

  9. 配列とは(6) • 実は変数は宣言すると、PC内のメモリ上に領域を確保するようになっている • 普通の変数では、宣言の度に領域の場所がバラバラだったけど、配列はつながって確保するようになっているよ 変数として、これだけ使わせてください、という感じ つながってるのが重要!! 只の宣言 配列 第6章 配列

  10. 練習問題1 • 以下のように、入力した数値を出力(表示)するプログラムを書いてみよう • 繰り返し for 文を使い、上手いこと記述を少なくできるかな? ヒント: printf(“num[%d}”, i ); 第6章 配列

  11. 練習問題1 回答例 • このように繰り返しを利用し、配列の初期化をすることはよくあるから覚えて損無し! #include <stdio.h> void main(){ int num[4]; for(int i = 0; i < 4; i++){ printf(“num[%d] > ”,i ); scanf("%d", &num[i] ); } printf("num[0] + num[2] = %d\n", num[0]+num[2]); printf("num[3] - num[1] = %d\n", num[3]-num[1]);} 第6章 配列

  12. 2次元配列とは(1) • さっきやった配列はタテにつながっていたけど、それをヨコにもつなげることができる • これを2次元配列といい、それに対応して、普通の配列を1次元配列ということもある • 書き方はこんな感じ • 左の『[]』がタテ軸、右がヨコ軸にあたるよ 次頁図で説明 intnum[4][3]; 第6章 配列

  13. 2次元配列とは(2) • 視覚的にわかりやすくすると、こんな感じ • 勿論これら一つひとつが変数だから、代入・初期化ができるし、必要になるよ 2次元配列 1次元配列 第6章 配列

  14. 2次元配列とは(3) • 代入は • 初期化は • それぞれ下のように数値が格納されているのでチェックしてね num[0][2] = 5; int a[2][2] = { {1, 23}, {456, 7} }; 第6章 配列

  15. 練習問題2 • 以下と同じような実行結果になるよう行列(数学C)の和計算を行うプログラムを作ってみよう • ちなみに『%d』の代わ りに『%3d』を使うを 間が3スペース分空かせて 数字を表示できる 第6章 配列

  16. 練習問題2 回答例その1 #include <stdio.h> void main(){ int a[2][2]; int b[2][2]; inti,j; for(i=0;i<2;i++){ for(j=0;j<2;j++){ printf("a[%d][%d] > ",i,j); scanf("%d",&a[i][j]); } } for(i=0;i<2;i++){ for(j=0;j<2;j++){ printf("b[%d][%d] > ",i,j); scanf("%d",&b[i][j]); } } • あまりに 長いので、 2ページ使 います 第6章 配列

  17. 練習問題2 回答例その2 printf("a + b:\n"); for(i=0;i<2;i++){ for(j=0;j<2;j++) printf("%3d",a[i][j] + b[i][j]); printf("\n"); } } • それぞれの for 文がどこまで続いているのか、printf内でどんな処理をしているのかに注目! • 行列のあのカタチと、この味気ないコード(記述)がうまく頭で合わさるといいですね 私は文系で行列 計算なんて習って ないので、簡単な ことしか知りません。 あしからず 第6章 配列

  18. 次回予告 • 『int型』以外の変数のこと データ型、double 型(など)の登場!! intnum = 3; 第6章 配列

  19. テンプレ • テンプレ 第6章 配列

More Related