170 likes | 304 Views
情報処理演習 ~ C 言語の基礎~. 2009 年 11 月 16 日 笠井俊信. 今後の予定. 11月23日 祝日 11月30日 休講 12月 7日 通常講義. アルゴリズムの例1. 問題: 2 つの数を入力し,その大きい方を出力する. アルゴリズムを示せ(日本語で). 2 つの数値を入力 (A,B) する (条件分岐):大きい方を求める もし A が B よりも大きいならば, A を出力. そうでないなら, B を出力.. C プログラムの例1. #include <stdio.h> void main(void) { int a,b;
E N D
情報処理演習~C言語の基礎~ 2009年11月16日 笠井俊信
今後の予定 • 11月23日 祝日 • 11月30日 休講 • 12月 7日 通常講義
アルゴリズムの例1 問題: 2つの数を入力し,その大きい方を出力する. アルゴリズムを示せ(日本語で) • 2つの数値を入力(A,B)する • (条件分岐):大きい方を求める • もしAがBよりも大きいならば,Aを出力. • そうでないなら,Bを出力.
Cプログラムの例1 #include <stdio.h> void main(void) { int a,b; scanf(“%d”, &a); scanf(“%d”, &b); if(a>b){ printf(“%d\n”, a); } else{ printf(“%d\n”, b); } } • 2つの数値を入力(A,B)する • (条件分岐):大きい方を求める • もしAがBよりも大きいならば,Aを出力. • そうでないなら,Bを出力.
コンパイル (ファイルを保存しないと できない) (プログラムの文法チェック) (実行ファイルの作成)
コンパイルメッセージの例 絶対に修正が必要 修正しなくても実行可能
実行 (コンパイルが成功しないと 実行できない)
演習問題1 問題: ある数の絶対値を求める手順を示せ. • 数値を入力する • (条件分岐):絶対値を求める • もし数値が正または零ならば その数値が絶対値 • そうでないなら数値と-1の積が絶対値 • 絶対値を出力
演習問題1(Cプログラム) #include <stdio.h> int main(void) { int a, kai; scanf("%d", &a); if (a>=0) kai=a; else kai=a*(-1); printf("%d\n", kai); } • 数値を入力する • (条件分岐):絶対値を求める • もし数値が正または零ならばその数値が絶対値 • そうでないなら数値と-1の積が絶対値 • 絶対値を出力
C言語における処理の基本構造(繰り返し1) 式1 for(式1;式2;式3){ 文 } 条件(式2) No Yes 例: int i, sum=0; for(i=1;i<=10;i++){ sum=sum+i; } printf(”%d\n”, sum); 処理(文) 式3
C言語における処理の基本構造(繰り返し2) while(式){ 文 } 条件(式) No Yes 例: int i=1, sum=0; while(i<=10){ sum=sum+i; i++; } printf(”%d\n”, sum); 処理(文)
アルゴリズムの例 問題: ある数字から始めて,零になるまでカウントダウン する順序を示せ. • 数値を入力 • カウンタに入力した数値を設定 • (繰り返し)カウンタの値が正または零である限り • カウンタの値を出力 • カウンタの値を1だけ減らす • カウントダウン終了のメッセージを出力
int a, count; scanf("%d", &a); for(count=a;count>=0;count--){ printf("%d\n",count); } Cプログラムの例 #include <stdio.h> void main(void) { int count; scanf("%d", &count); while (count>=0){ printf("%d\n",count); count--; } printf("カウントダウン終了\n"); } • 数値を入力 • カウンタに入力した数値を設定 • (繰り返し)カウンタの値が正または零である限り • カウンタの値を出力 • カウンタの値を1だけ減らす • カウントダウン終了のメッセージを出力
演習問題2 問題: 整数データを10個入力していき,合計と平均 (整数値)を求めて表示する手順を示せ. • カウンタと変数SUMの値を0に設定 • (繰り返し)カウンタの値が10未満である限り • 数値を入力する • 入力された数値をSUMに加算 • カウンタの値を1だけ増やす • 合計値(SUM)を出力 • 平均値(SUM/10)を出力
i=0; while(i<10){ scanf ("%d", &dat); sum = sum + dat; i++; } 演習問題2(Cプログラム) #include <stdio.h> void main(void) { int dat, sum, i; sum=0; for (i=0;i<10;i++){ scanf("%d", &dat); sum = sum + dat; } printf("合計 = %d\n", sum); printf("平均 = %d\n", sum/i); } • カウンタと変数SUMの値を0に設定 • (繰り返し)カウンタの値が10未満である限り • 数値を入力する • 入力された数値をSUMに加算 • カウンタの値を1だけ増やす • 合計値(SUM)を出力 • 平均値(SUM/10)を出力