Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第05回 C++講座 ~配列とfor文~

第05回 C++講座 ~配列とfor文~

北海道科学大学 電子計算機研究部のソフトチームで行っているC++講座の資料です。
電算部Webページ URL:http://densan.info/index.php
旧Webページ URL:http://www1.hus.ac.jp/~densan/index.htm
--------------------------------------------------
ここから資料内のURLやプログラム等
--------------------------------------------------

More Decks by 北海道科学大学 電子計算機研究部

Other Decks in Programming

Transcript

  1. 前回の復習 ❏ while文:条件が合致している間処理を繰り返す文 cin >> data; int keta = 0;

    while(data>=1) { keta++; data /= 10; } cout << "入力された値の桁数は " << keta << "桁です。\n"; 条件が正しかった(真である)場合 に、{}内の処理が繰り返し実行さ れます。 2
  2. 前回の復習 ❏ do-while文:条件が合致している間処理を繰り返す文 char data; do { cout << "文字を入力してください:

    "; cin >> data; cout << "入力された文字は " << data << "です。" << endl; } while (data != 'z'); 条件が正しかった(真である)場合 に、{}内の処理が繰り返し実行さ れます。 while文と違い、継続条件の判定部分が後方にあるので最低一回は実行されます! 3
  3. 前回の復習 ❏ for文:条件が合致している間処理を繰り返す文 for (int i = 0; i <

    5; i++) { cout << "ループの回数" << i << endl; } 初回の実行時のみ、初期化式 (今 回は int i=0)が実行される 条件式(今回は i<5)によって処理 を行うか選択する。 処理終了後に、ループ式 (今回は i++)が実行される 4
  4. 配列 ~実際に使ってみよう~ 実際にプログラムを記述して確認し てみましょう。 40人分のテストの平均点を算出す るプログラムです。 02array_for.cpp #include <iostream> using

    namespace std; int main() { int overall_points[] = { 730,450,560,520,390,620,550,490,850,525, 350,680,750,542,586,675,485,238,485,756, 159,956,486,756,423,365,478,459,556,684, 482,764,486,652,579,421,841,248,442,348 }; int Sum = 0; for (int i = 0; i < 40; i++) { Sum += overall_points[i]; } cout << "テストの平均点は " << Sum / 40.0 << " 点です。" << endl; return 0; } 11
  5. 配列 ~実際に使ってみようの解説~ この部分で、for文を使用してテスト 点数の合計を算出しています。 ここのiがfor文のループとともに変 化し、40人全員分の点数を足して います。 02array_for.cpp #include <iostream>

    using namespace std; int main() { int overall_points[] = { 730,450,560,520,390,620,550,490,850,525, 350,680,750,542,586,675,485,238,485,756, 159,956,486,756,423,365,478,459,556,684, 482,764,486,652,579,421,841,248,442,348 }; int sum = 0; for (int i = 0; i < 40; i++) { sum += overall_points[i]; } cout << "テストの平均点は " << sum / 40.0 << " 点です。" << endl; return 0; } 回数 iの値 処理 1 0 sum+=overall_points[0]; 2 1 sum+=overall_points[1] … … … 40 39 sum+=overall_points[39] 12
  6. 配列 ~実際に作ってみよう回答~ 03max_min_array.cpp #include <iostream> using namespace std; int main()

    { int overall_points[] = { 730,450,560,520,390,620,550,490,850,525, 350,680,750,542,586,675,485,238,485,756, 159,956,486,756,423,365,478,459,556,684, 482,764,486,652,579,421,841,248,442,348 }; int max = 0; int min = 99999999; for (int i = 0; i < 40; i++) { if (max < overall_points[i])max = overall_points[i]; if (min > overall_points[i])min = overall_points[i]; } cout << "テストの最高点は " << max << " 点です。" << endl; cout << "テストの最低点は " << min << " 点です。" << endl; return 0; }14
  7. まとめ ❏ 配列:たくさんの変数が合体した物。 ❏ 宣言:型名 配列名[要素数]; ❏ 使用方法:配列名[要素番号]とかくと指定した番号の(配列 内の)変数にアクセスできる。 ❏

    初期化:型名 配列名[] = {値1,値2…}; ❏ 配列をfor文で回すととても便利。 :for(int i=0;i<要素数;i++){配列名[i]を使用した処理} 15