25
プログラミング初級 5201758繰り返し文 1

プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

プログラミング初級

第5回 2017年5月8日

繰り返し文

1

Page 2: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

第8章 繰り返し文

2

Page 3: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

3

繰り返し処理(ループ)

for文

状態を初期化する

状態を変化させる

ある条件を満たさなくなるまで

繰り返す

Page 4: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

4

#include <stdio.h>

int main(void){printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");return 0;

}

for文を使ったプログラム

問題:画面に“Hello”と10回表示させる

#include <stdio.h>

int main(void){int i;

for (i = 1; i <= 10; i++) {printf("Hello¥n");

}

return 0;}

P108

P110

Page 5: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

5

for文の決まり文句

for (i = 0; i < n; i++) {実行したい文の集まり

}

“n回繰り返す”の基本形

例)200回繰り返すint i;for (i = 0; i< 200; i++) {

実行したい文の集まり}

Page 6: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

6

「繰り返す操作」の確認

#include <stdio.h>

int main(void){

int i;for (i = 0; i < 200; i++) {

printf("Hello¥n");}

return 0;}

#include <stdio.h>

int main(void){

int i;for(i = 1; i <= 200; i++) {

printf("Hello¥n");}

return 0;}

Page 7: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

7

for文の応用

繰り返し変数を“利用”する

#include <stdio.h>

int main(void){

int i;for (i = 0; i < 200; i++) {

printf("%d¥n", i);}

return 0;}

#include <stdio.h>

int main(void){

int i;for (i = 1; i <= 200; i++) {

printf("%d¥n", i);}

return 0;}

Page 8: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

8

for文の応用

繰り返し変数を“利用”する

#include <stdio.h>

int main(void){

int i;for (i = 20; i <= 40; i++) {

printf("%d¥n", i);}

return 0;}

Page 9: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

9

for文の応用

繰り返し変数を“利用”する

#include <stdio.h>

int main(void){

int i;for (i = 20; i <= 40; i = i + 3) {

printf("%d¥n", i);}

return 0;}

Page 10: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

10

for文の応用

繰り返し変数を“利用”する

P113

Page 11: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

11

変数 i は繰り返しの回数を制御変数 wa には加算の合計値を求める変数 seki には掛け算の合計値を求める

9: for (i = 1; i <= 5; i++) {

10: wa = wa + i;

11: seki = seki * i;

12: }

変数の宣言

計算処理

wa = wa + i;

○右辺を計算する(wa + i)

○その結果を左辺に代入する

Page 12: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

12

for文の応用

繰り返し変数を配列と組み合わせて利用する

#include <stdio.h>

int main(void){

int a[10] = {10,20,30,40,50,60,70,80,90,100};int i , total = 0;

for (i = 0; i < 10; i++) {total = total + a[i];printf("%d番目までの合計=%d¥n", i, total);

}printf("合計値=%d¥n", total);

return 0;}

10 20 30 40 50 60 70 80 90 100

a[0] a[9]

Page 13: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

13

for文の応用

繰り返し変数を配列と組み合わせて利用する

#include <stdio.h>

int main(void){

char a[] = "TohokuGakuin";int i;

for (i = 0; i < 12; i++) {printf("%c", a[i]);

}printf("¥n");

return 0;}

T o h o k u G a k u

a[0] a[11]

i n

Page 14: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

14

繰り返し処理(ループ)

while文ある条件を満たさなくなるまで

繰り返す

Page 15: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

15

while文の決まり文句

while ( 繰り返しを継続する条件 ) {

実行したい文の集まり}

“n回繰り返す”の基本形

例)200回繰り返すint i = 0;while (i < 200) {

i++;}

Page 16: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

16

while文とfor文の関係

for ( 計算①; 条件; 計算② ) {

実行したい文の集まり}

while文・for文ともに「繰り返し処理」

計算①;while ( 条件 ) {

実行したい文の集まり計算②;

}

Page 17: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

17

while文を使ったプログラム

問題:画面に“Hello”と10回表示させる

P110

#include <stdio.h>

int main(void){int i;

for (i = 1; i <= 10; i++) {printf("Hello¥n");

}

return 0;}

#include <stdio.h>

int main(void){int i;

i = 1;while (i <= 10) {printf("Hello¥n");i++;

}

return 0;}

Page 18: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

18

繰り返し処理(ループ)

while文+ break

繰り返し処理を指定した条件以外で

終了させたい

for文+ break

Page 19: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

19

#include <stdio.h>

int main(void){int num;int i;

for (i = 0; i < 10; i++) {printf("数値を入力:");scanf("%d", &num);

if (num == 0) {break;

}

printf("数値 = %d¥n", num);}

printf("終了¥n");return 0;

}

break文を使ったプログラム

実行結果

breakの部分で

繰り返し処理は終了する

Page 20: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

20

break文を使ったプログラム

実行結果

#include <stdio.h>

int main(void){int num;int i = 0;

while (i < 10) {printf("数値を入力:");scanf("%d", &num);

if (num == 0) {break;

}

printf("数値 = %d¥n", num);i++;

}

printf("終了¥n");return 0;

}

while文でも使える

Page 21: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

21

キーボードから数字を入力して行くその数字を加算して行くその操作した数値が0なら処理を終了して合計値を表示する

サンプルプログラム

簡易電卓プログラム

P116

注意:0が入力されたら終了

Page 22: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

22

P116

#include <stdio.h>

int main(void){int sum = 0;int dt = 1;

while (dt != 0) {scanf("%d", &dt);sum = sum + dt;

}

printf("合計=%d¥n", sum);

return 0;}

サンプルプログラム

実行結果

教科書に書いてあるプログラム

Page 23: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

23

#include <stdio.h>

int main(void){int sum = 0;int dt = 1;

while (dt != 0) {scanf("%d", &dt);sum = sum + dt;

}

printf("合計=%d¥n", sum);

return 0;}

#include <stdio.h>

int main(void){int sum = 0;int dt;

for (dt = 1; dt != 0; ) {scanf("%d", &dt);sum = sum + dt;

}

printf("合計=%d¥n", sum);

return 0;}

P116 サンプルプログラム

for文を使っても書ける

Page 24: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

24

#include <stdio.h>

int main(void){int sum = 0;int dt = 1;

while (dt != 0) {scanf("%d", &dt);sum = sum + dt;

}

printf("合計=%d¥n", sum);

return 0;}

#include <stdio.h>

int main(void){int sum = 0;int dt;

while (1) {scanf("%d", &dt);

if (dt == 0) {break;

}

sum = sum + dt;}

printf("合計=%d¥n", sum);

return 0;}

P116 サンプルプログラム

break文を使っても書ける

Page 25: プログラミング初級 - 東北学院大学mmt1.cs.tohoku-gakuin.ac.jp/cprog/slide05.pdf5 for文の決まり文句 for (i = 0; i < n; i++) {実行したい文の集まり} “n回繰り返す”の基本形

25

P116 サンプルプログラム

#include <stdio.h>

int main(void){int sum = 0;int dt = 1;

while (dt != 0) {scanf("%d", &dt);sum = sum + dt;

}

printf("合計=%d¥n", sum);

return 0;}

#include <stdio.h>

int main(void){int sum = 0;int dt;

for ( ; ; ) {scanf("%d", &dt);

if (dt == 0) {break;

}

sum = sum + dt;}

printf("合計=%d¥n", sum);

return 0;}

for文とbreak文を使っても

書ける