当日のOHP資料です。
Download : sample-001.c ( SJIS 版 )
/* * 2011/10/21 sample-001.c */ /* * */ #include <stdio.h> #include "s_print.h" /* * 代入文による 1 〜 5 までの総和の計算 */ int main ( void ) { int sum0 = 0; /* sumN は 1 〜 N の和 : sum0 は 0 になる */ int sum1 = sum0 + 1; /* sum1 は 1 〜 1 の和 : sum0 + 1 で計算可能 */ int sum2 = sum1 + 2; /* sum2 は 1 〜 2 の和 : sum1 + n で計算可能 */ int sum3 = sum2 + 3; int sum4 = sum3 + 4; int sum5 = sum4 + 5; s_print_string ( "sum 1 〜 5 = " ); s_print_int ( sum5 ); s_print_newline(); return 0; } /* * */
C:\usr\c\> sample-001 sum 1 〜 5 = 15 C:\usr\c\>
Download : sample-002.c ( SJIS 版 )
/* * 2011/10/21 sample-002.c */ /* * */ #include <stdio.h> #include "s_print.h" /* * 代入文による 1 〜 5 までの総和の計算 ( 変数の使い回し ) */ int main ( void ) { /* 初期化 (Input/Initialize) */ int sum = 0; /* 変数 sum を 0 に初期化 */ /* 処理 (Process) */ sum = sum + 1; /* 変数 sum の値は 0 から ( 0 + 1 ) = 1 に変化する */ sum = sum + 2; sum = sum + 3; sum = sum + 4; sum = sum + 5; /* 出力 (Output) */ s_print_string ( "sum 1 〜 5 = " ); s_print_int ( sum ); s_print_newline(); return 0; } /* * */
C:\usr\c\> sample-002 sum 1 〜 5 = 15 C:\usr\c\>
Download : sample-003.c ( SJIS 版 )
/* * 2011/10/21 sample-003.c */ /* * */ #include <stdio.h> #include "s_print.h" /* * 代入文による 1 〜 5 までの総和の計算 ( パラメータの導入 ) */ int main ( void ) { /* 初期化 (Input/Initialize) */ int sum = 0; /* 変数 sum を 0 に初期化 */ int i = 1; /* パラメータ i を導入すると「形が同じ」になる */ /* 処理 (Process) */ sum = sum + i; /* sum <- sum + i = 0 + 1 = 1 */ i = i + 1; /* i <- 1 + 1 = 2 */ sum = sum + i; /* sum <- sum + i = 1 + 2 = 3 */ i = i + 1; /* i <- i + 1 = 2 + 1 = 3 */ sum = sum + i; /* sum <- sum + i = 3 + 3 = 6 */ i = i + 1; /* i <- i + 1 = 3 + 1 = 4 */ sum = sum + i; i = i + 1; sum = sum + i; i = i + 1; /* 出力 (Output) */ s_print_string ( "sum 1 〜 5 = " ); s_print_int ( sum ); s_print_newline(); return 0; } /* * */
C:\usr\c\> sample-003 sum 1 〜 5 = 15 C:\usr\c\>
Download : sample-004.c ( SJIS 版 )
/* * 2011/10/21 sample-004.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * 代入文による 1 〜 n ( n < 10 ) までの総和の計算 */ int main ( void ) { /* 初期化 (Input/Initialize) */ int sum = 0; /* 変数 sum を 0 に初期化 */ int i = 1; /* パラメータ i を導入すると「形が同じ」になる */ int n; s_print_string ( "n ( 1 〜 10 ) = " ); n = s_input_int(); /* 処理 (Process) */ if ( i <= n ) { /* 0 < n の時 */ sum = sum + i; i = i + 1; } if ( i <= n ) { /* 1 <= n の時 */ sum = sum + i; i = i + 1; } if ( i <= n ) { sum = sum + i; i = i + 1; } if ( i <= n ) { sum = sum + i; i = i + 1; } if ( i <= n ) { sum = sum + i; i = i + 1; } if ( i <= n ) { sum = sum + i; i = i + 1; } if ( i <= n ) { sum = sum + i; i = i + 1; } if ( i <= n ) { sum = sum + i; i = i + 1; } if ( i <= n ) { sum = sum + i; i = i + 1; } if ( i <= n ) { /* 9 <= n の時 */ sum = sum + i; i = i + 1; } /* * n >= 10 の時はみな同じ結果に.. */ /* 出力 (Output) */ s_print_string ( "sum 1 〜 " ); s_print_int ( n ); s_print_string ( " = " ); s_print_int ( sum ); s_print_newline(); return 0; } /* * */
7
C:\usr\c\> sample-004< sample-004.in n ( 1 〜 10 ) = 7 sum 1 〜 7 = 28 C:\usr\c\>
Download : sample-005.c ( SJIS 版 )
/* * 2011/10/21 sample-005.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * sum ( n ) : 1 〜 n までの整数の和を計算する * * 再帰/蓄積型 : 頭からやる */ int sum_i_to_n ( int sum, int i, int n ) { s_print_string ( "sum_i_to_n( sum = " ); s_print_int ( sum ); s_print_string ( ", i = " ); s_print_int ( i ); s_print_string ( ", n = " ); s_print_int ( n ); s_print_string ( " )\n" ); if ( i <= n ) { /* まだ加える物がある */ sum = sum + i; i = i + 1; return sum_i_to_n ( sum, i, n ); /* 残りを加える */ } else { /* もう、全てて片付けた */ return sum; /* これまでの和が答 */ } } int sum ( int n ) { s_print_string ( "sum( n = " ); s_print_int ( n ); s_print_string ( " )\n" ); return sum_i_to_n ( 0, 1, n ); /* 最初は 0 で、これに 1 〜 n を加える ) */ } /* * */ int main ( void ) { int n; /* 入力した結果を保存する */ s_print_string ( "n = " ); n = s_input_int(); s_print_string ( "sum ( " ); s_print_int ( n ); s_print_string ( " ) = " ); s_print_int ( sum ( n ) ); s_print_newline(); return 0; } /* * */
5
C:\usr\c\> sample-005< sample-005.in n = 5 sum ( 5 ) = sum( n = 5 ) sum_i_to_n( sum = 0, i = 1, n = 5 ) sum_i_to_n( sum = 1, i = 2, n = 5 ) sum_i_to_n( sum = 3, i = 3, n = 5 ) sum_i_to_n( sum = 6, i = 4, n = 5 ) sum_i_to_n( sum = 10, i = 5, n = 5 ) sum_i_to_n( sum = 15, i = 6, n = 5 ) 15 C:\usr\c\>
Download : sample-006.c ( SJIS 版 )
/* * 2011/10/21 sample-006.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * while 文による 1 〜 n までの総和の計算 */ int main ( void ) { /* 初期化 (Input/Initialize) */ int sum = 0; /* 変数 sum を 0 に初期化 */ int i = 1; int n; s_print_string ( "n = " ); n = s_input_int(); /* 処理 (Process) */ while ( i <= n ) { /* 0 < n の時 */ sum = sum + i; i = i + 1; } /* 出力 (Output) */ s_print_string ( "sum 1 〜 " ); s_print_int ( n ); s_print_string ( " = " ); s_print_int ( sum ); s_print_newline(); return 0; } /* * */
5
C:\usr\c\> sample-006< sample-006.in n = 5 sum 1 〜 5 = 15 C:\usr\c\>
Download : sample-007.c ( SJIS 版 )
/* * 2011/10/21 sample-007.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * 10 個の数を入力し、その総和を計算する * * 蓄積型 : 頭からやる */ int isum_i_to_n ( int sum, int i, int n ) { int v; /* 条件判定 */ if ( i <= n ) { /* まだ加える物がある */ /* 繰返し部分 */ v = s_input_int(); sum = sum + v; i = i + 1; /* 再帰 */ return isum_i_to_n ( sum, i, n ); /* 残りを加える */ } else { /* もう、全てて片付けた */ return sum; /* これまでの和が答 */ } } int isum ( int n ) { return isum_i_to_n ( 0, 1, n ); } /* * */ int main ( void ) { int sum; sum = isum ( 10 ); s_print_string ( "isum ( 10 ) = " ); s_print_int ( sum ); s_print_newline(); return 0; } /* * */
3 5 3 4 9 1 3 5 2 9
C:\usr\c\> sample-007< sample-007.in 3 5 3 4 9 1 3 5 2 9 isum ( 10 ) = 44 C:\usr\c\>
Download : sample-008.c ( SJIS 版 )
/* * 2011/10/21 sample-008.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * 10 個の数を入力し、その総和を計算する ( while 版 ) */ int isum ( int n ) { int sum = 0; int i = 1; int v; /* 条件判定 */ while ( i <= n ) { /* まだ加える物がある */ /* 繰返し部分 */ v = s_input_int(); sum = sum + v; i = i + 1; } return sum; } /* * */ int main ( void ) { int sum; sum = isum ( 10 ); s_print_string ( "isum ( 10 ) = " ); s_print_int ( sum ); s_print_newline(); return 0; } /* * */
3 5 3 4 9 1 3 5 2 9
C:\usr\c\> sample-008< sample-008.in 3 5 3 4 9 1 3 5 2 9 isum ( 10 ) = 44 C:\usr\c\>
Download : sample-009.c ( SJIS 版 )
/* * 2011/10/21 sample-009.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * for 文による 1 〜 n までの総和の計算 ( for 版 ) */ int main ( void ) { /* 初期化 (Input/Initialize) */ int sum = 0; /* 変数 sum を 0 に初期化 */ int i; int n; s_print_string ( "n = " ); n = s_input_int(); /* 処理 (Process) */ for ( i = 1; i <= n; i = i + 1 ) { /* 0 < n の時 */ sum = sum + i; } /* 出力 (Output) */ s_print_string ( "sum 1 〜 " ); s_print_int ( n ); s_print_string ( " = " ); s_print_int ( sum ); s_print_newline(); return 0; } /* * */
5
C:\usr\c\> sample-009< sample-009.in n = 5 sum 1 〜 5 = 15 C:\usr\c\>
Download : sample-010.c ( SJIS 版 )
/* * 2011/10/21 sample-010.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * 「あり」を 10 回だす ( for 版 ) */ void arigatou () { int i; for ( i = 0; i < 10; i = i + 1 ) { s_print_string ( "あり" ); } s_print_newline(); } int main ( void ) { arigatou(); return 0; } /* * */
C:\usr\c\> sample-010 ありありありありありありありありありあり C:\usr\c\>
Download : sample-011.c ( SJIS 版 )
/* * 2011/10/21 sample-011.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * 「あり」を 10 回だす ( while 版 ) */ void arigatou () { int i = 0; while ( i < 10 ) { s_print_string ( "あり" ); i = i + 1; } s_print_newline(); } int main ( void ) { arigatou(); return 0; } /* * */
C:\usr\c\> sample-011 ありありありありありありありありありあり C:\usr\c\>
Download : sample-012.c ( SJIS 版 )
/* * 2011/10/21 sample-012.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * 「あり」を 10 回だす ( do while 版 ) */ void arigatou () { int i = 0; do { s_print_string ( "あり" ); i = i + 1; } while ( i < 10 ); s_print_newline(); } int main ( void ) { arigatou(); return 0; } /* * */
C:\usr\c\> sample-012 ありありありありありありありありありあり C:\usr\c\>
Download : sample-013.c ( SJIS 版 )
/* * 2011/10/21 sample-013.c */ /* * */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * 「あり」を 10 回だす ( 再帰版 ) */ void rec_arigatou ( int i ) { if ( i < 10 ) { s_print_string ( "あり" ); i = i + 1; rec_arigatou ( i ); } } void arigatou () { rec_arigatou ( 0 ); s_print_newline(); } int main ( void ) { arigatou(); return 0; } /* * */
C:\usr\c\> sample-013 ありありありありありありありありありあり C:\usr\c\>
Download : 20111021-01.c ( SJIS 版 )
/* * 20111021-1-QQQQ.c * 10 個の整数をキーボードから入力し、その総和を求め出力する * for 文を利用する事 ( cf. sample-007.c/sample-008.c ) */ #include <stdio.h> #include "s_print.h" #include "s_input.h" /* * 10 個の数を入力し、その総和を計算する ( for 版 ) */ int isum ( int n ) { int sum = 0; int i; int v; /* 条件判定 */ for ( /* q:ここ */ ) { /* 繰返し部分 */ /* ** この部分を完成させなさい */ } return sum; } /* * */ int main ( void ) { int sum; sum = isum ( 10 ); s_print_string ( "isum ( 10 ) = " ); s_print_int ( sum ); s_print_newline(); return 0; } /* * */
3 5 3 4 9 1 3 5 2 9
C:\usr\c\> 01< 01.in 3 5 3 4 9 1 3 5 2 9 isum ( 10 ) = 44 C:\usr\c\>