4章 制御の流れ-2 くり返し(1) フローチャートで考える 0 1 2 3 4 5 100 くり返し(2) フローチャートで考える 0 1 2 3 4 5 止める方法は? 100 くり返し(3) 出口を作る 0 1 2 3 4 5 A>100 ならばこちら側へ分岐 100 くり返し(4) a=0; while (a<=100) { printf("%d\n",a); a = a+1; } while 文 while (条件式) { 文; } no yes /* 66666 Tachibana Masayoshi */ /* p134 list411.c */ #include <stdio.h> int main(void) { int s = 1; int total = 0; while (s<=10) { total = total+s; s = s+1; } printf("1から10までの和は%dです。\n",total); return 0; } 1から10までの和を求めるプログラム list411.c list411.c 1から10までの和は55です。 1から10までの和を求めるプログラム list410.c /* 66666 Tachibana Masayoshi */ /* p133 list410.c */ #include <stdio.h> #include <math.h> int main(void) { int s; double a,b,c; double value; s =1; printf(" printf(" 逆数 2乗 平方根\n"); ------------------------------\n"); while (s<=10) { value = s; a = 1/value; b = value*value; c = sqrt(value); printf(" %5.1f %5.3f %6.1f %6.4f\n",value,a,b,c); s = s+1; } return 0; } 逆数、2乗、平方根の数表を作るプログラム list410.c 逆数 2乗 -----------------------------1.0 1.000 1.0 1.0000 2.0 0.500 4.0 1.4142 3.0 0.333 9.0 1.7321 4.0 0.250 16.0 2.0000 5.0 0.200 25.0 2.2361 6.0 0.167 36.0 2.4495 7.0 0.143 49.0 2.6458 8.0 0.125 64.0 2.8284 9.0 0.111 81.0 3.0000 10.0 0.100 100.0 3.1623 平方根 逆数、2乗、平方根の数表を作るプログラム インクリメント、デクリメント(1) increment i++; ++i; decrement i--; --i; i = i+1; post-increment pre-increment i = i-1; post-decrement pre-decrement インクリメント、デクリメント(2) post-increment a = a*i++; a = a*i; i = i+1; pre-increment b = b*++j; j = j+1; b = b*j; インクリメント、デクリメント(3) total = 0; s = 1; while (s<=10) { total = total + s; s++; sを1ふやす } printf("結果1は%dです。\n",total); s<10 のあとでsを1ふやす total = 0; s = 0; while ((s++)<10) { total = total + s; } printf("結果2は%dです。\n",total); インクリメント、デクリメント(4) total = 0; s = 0; while (s<10) { ++s; sを1ふやす total = total + s; } printf("結果3は%dです。\n",total); for 文(1) for (a=0; a<=100; a=a+1) { printf("%d\n",a); } for 文(2) カウンタ変数 a=0; while (a<=100) { printf("%d\n",a); a = a+1; } 初期化; while (継続条件) { 文; カウンタ変数の更新; } for 文(3) for (初期化;継続条件;カウンタ変数の更新) { 文; } for (a=0; a<=100; a=a+1) { printf("%d\n",a); } for 文(4) 初期化、継続条件、カウンタ変数の更新をひとまとめに書ける for (a=0; a<=100; a=a+1) { printf("%d\n",a); } a=0; while (a<=100) { printf("%d\n",a); a = a+1; } /* 66666 Tahibana Masayoshi */ /* p144 list416.c */ list416.c #include <stdio.h> int main(void) { int i,n; n=0; for (i=1;i<=10;i++) { n = n+i; } printf("for文で求めた和は%d\n",n); n=0; i=1; while (i<=10) { n = n+i; i++; } printf("while文で求めた和は%d\n",n); return 0; } for文とwhile文の比較 list416.c for文で求めた和は55 while文で求めた和は55 for文とwhile文の比較 コンマ式 for (i=0,j=29;i<30;i++,j++) { 文1; } i=0; for (j=29;i<30;i++) { 文1; j++; } コンマ式、代入式(+=)、post-incrementなど 使いすぎに注意 n=0; for (i=1;i<=10;i++) { n = n+i; } printf("for文で求めた和は%d\n",n); コンマ式、代入式(+=)、 post-increment for (n=0,i=1;i<=10;n+=i++); printf("for文で求めた和は%d\n",n); 見にくくなるので注意! カウンタ変数は整数にする /* 66666 Tachibana Masayoshi */ /* p146 list417.c */ #include <stdio.h> #include <math.h> int main(void) { double i,sine,cosine; printf("三角関数\n"); printf(" i sin cos\n"); printf("----------------------\n"); for (i=0.0;i<1.0;i+=0.1) { sine = sin(i); cosine = cos(i); printf(" %3.1f %6.4f %6.4f\n",i,sine,cosine); } return 0; } カウンタ変数は整数にする i=1.0!! 三角関数 i sin cos ---------------------0.0 0.0000 1.0000 0.1 0.0998 0.9950 0.2 0.1987 0.9801 0.3 0.2955 0.9553 0.4 0.3894 0.9211 0.5 0.4794 0.8776 0.6 0.5646 0.8253 0.7 0.6442 0.7648 0.8 0.7174 0.6967 0.9 0.7833 0.6216 1.0 0.8415 0.5403 カウンタ変数は整数にする /* 66666 Tachibana Masayoshi */ /* p146 list417.c */ #include <stdio.h> #include <math.h> int main(void) { double i,sine,cosine; printf("三角関数\n"); printf(" i sin cos\n"); printf("----------------------\n"); for (i=0.0;i<1.0;i+=0.1) { sine = sin(i); cosine = cos(i); printf(" %3.1f %6.4f %6.4f\n",i,sine,cosine); } return 0; } 修正版 カウンタ変数は整数にする /* 66666 Tachibana Masayoshi */ /* p146 list417x.c */ #include <stdio.h> #include <math.h> int main(void) { int i; double x,sine,cosine; printf("三角関数\n"); printf(" i sin cos\n"); printf("----------------------\n"); for (i=0;i<10;i++) { カウンタ変数は整数にする x = i/10.0; sine = sin(x); cosine = cos(x); printf(" %3.1f %6.4f %6.4f\n",x,sine,cosine); } return 0; } 修正版 カウンタ変数は整数にする 三角関数 i sin cos ---------------------0.0 0.0000 1.0000 0.1 0.0998 0.9950 0.2 0.1987 0.9801 0.3 0.2955 0.9553 0.4 0.3894 0.9211 0.5 0.4794 0.8776 0.6 0.5646 0.8253 0.7 0.6442 0.7648 0.8 0.7174 0.6967 0.9 0.7833 0.6216
© Copyright 2025 ExpyDoc