当日の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\>