当日のOHP資料です。
Download : sample-001.c ( SJIS 版 )
/* * 2011/05/20 sample-001.c */ #include <stdio.h> #include <string.h> void down_triangle ( char *length ) { if ( !strcmp ( length, "" ) ) { /* 長さが 0 */ /* なにもしない */ } else { printf ( length ); printf ( "\n" ); down_triangle ( length + 1 ); } } main() { down_triangle ( "****" ); /* **** *** ** * */ }
C:\usr\c\> sample-001 **** *** ** * C:\usr\c\>
Download : sample-002.c ( SJIS 版 )
/* * 2011/05/20 sample-002.c */ #include <stdio.h> #include <string.h> void up_triangle ( char *length ) { if ( !strcmp ( length, "" ) ) { /* 長さが 0 */ /* なにもしない */ } else { up_triangle ( length + 1 ); printf ( length ); printf ( "\n" ); } } main() { up_triangle ( "****" ); /* * ** *** **** */ }
C:\usr\c\> sample-002 * ** *** ****
Download : sample-003.c ( SJIS 版 )
/* * 2011/05/20 sample-003.c */ #include <stdio.h> #include <string.h> void down_triangle ( char *length ) { if ( !strcmp ( length, "" ) ) { /* 長さが 0 */ /* なにもしない */ } else { printf ( length ); printf ( "\n" ); down_triangle ( length + 1 ); } } void up_triangle ( char *length ) { if ( !strcmp ( length, "" ) ) { /* 長さが 0 */ /* なにもしない */ } else { up_triangle ( length + 1 ); printf ( length ); printf ( "\n" ); } } void maya_pramid ( char *length ) { up_triangle ( length ); /* 上の部分 */ down_triangle ( length ); /* 下の部分 */ } main() { maya_pramid ( "****" ); /* * ** *** **** **** <= 頂上が平なピラミッド *** ** * */ }
C:\usr\c\> sample-003 * ** *** **** **** *** ** * C:\usr\c\>
Download : sample-004.c ( SJIS 版 )
/* * 2011/05/20 sample-004.c */ #include <stdio.h> #include <string.h> /* * maya_pramid 再帰版 */ void revese_pramid ( char *length ) { if ( !strcmp ( length, "" ) ) { /* 長さが 0 */ /* なにもしない */ } else { printf ( length ); printf ( "\n" ); revese_pramid ( length + 1 ); printf ( length ); printf ( "\n" ); } } main() { revese_pramid ( "****" ); /* **** *** ** * * ** *** **** */ }
C:\usr\c\> sample-004 **** *** ** * * ** *** ****
Download : sample-005.c ( SJIS 版 )
/* * 2011/05/20 sample-005.c */ #include <stdio.h> #include <string.h> void count_up ( char *length ) { if ( !strcmp ( length, "" ) ) { /* 長さが 0 */ /* なにもしない */ } else { printf ( "*" ); count_up ( length + 1 ); } } main() { count_up ( "abc123" ); printf ( "\n" ); count_up ( "123456789" ); printf ( "\n" ); /* 文字列の長さを計算する */ }
C:\usr\c\> sample-005 ****** *********
Download : sample-006.c ( SJIS 版 )
/* * 2011/05/20 sample-006.c */ #include <stdio.h> #include <string.h> /* * ペアノの公理 (自然数の定義) * i) 0 は自然数 * ii) x が自然数ならば x + 1 も自然数 * iii) i) と ii) 以外に自然数はない */ /* * 和の定義 * n, m が自然数の時に n + m とは何か * * m ( n が 0 の時 ) * n + m { * ( x + m ) + 1 ( n = x + 1 の時 ) */ /* * a と b の和を計算する */ void addition ( char *n, char *m ) { /* printf ( a ); printf ( b ); */ if ( !strcmp ( n, "" ) ) { /* n が 0 の時 */ printf ( m ); } else { addition ( n + 1, m ); /* x + m を計算 */ printf ( "*" ); /* +1 をしている */ } } main() { addition ( "***", "****" ); printf ( "\n" ); /* 足し算をする */ }
C:\usr\c\> sample-006 *******
Download : sample-007.c ( SJIS 版 )
/* * 2011/05/20 sample-007.c */ #include <stdio.h> #include <string.h> /* * 積の定義 * n, m が自然数の時に n * m とは何か * * 0 ( n が 0 の時 ) * n + m { * ( x * m ) + m ( n = x + 1 の時 ) */ /* * n と m のかけ算 */ void multiply ( char *n, char *m ) { if ( !strcmp ( n, "" ) ) { /* n が 0 の時 */ /* 何もしなくてもよい */ } else { multiply ( n + 1, m ); /* x * m を計算 */ printf ( m ); /* + m をしている */ } } main() { multiply ( "***", "****" ); printf ( "\n" ); /* 足し算をする */ }
C:\usr\c\> sample-007 ************
Download : sample-008.c ( SJIS 版 )
/* * 2011/05/20 sample-008.c */ #include <stdio.h> #include <string.h> /* * 引き算の定義 * n, m が自然数の時に n - m とは何か ( n >= m ) * * n ( m が 0 の時 ) * n - m { * y - x ( m = x + 1 の時 ) * ( n = y + 1 の時 ) */ /* * n と m の差 */ void diffirence ( char *n, char *m ) { if ( !strcmp ( m, "" ) ) { /* m が 0 の時 */ printf ( n ); } else { diffirence ( n + 1, m + 1 ); /* y - x を計算 */ } } main() { diffirence ( "******", "****" ); printf ( "\n" ); /* 足し算をする */ }
C:\usr\c\> sample-008 **
Download : sample-009.c ( SJIS 版 )
/* * 2011/05/20 sample-009.c */ #include <stdio.h> #include <string.h> /* * 割り算の定義 * n, m が自然数の時に n / m とは何か ( m > 0 ) * * 0 ( m > n の時 ) * n / m { * 1 + ( n - m ) / m ( その他の時 ) */ /* * */ void devide_sub ( char *n, char *m, char *mm ) { /* ^ ^ 変化*/ /* ^^ 最初の m を記憶して、後から利用できるようにしている */ if ( !strcmp ( m, "" ) ) { /* m が 0 */ printf ( "*" ); devide_sub ( n, mm, mm ); /* 1 + ( n - m ) / m ( その他の時 )*/ } else if ( !strcmp ( n, "" ) ) { /* n が 0 */ /* なにもしない */ } else { devide_sub ( n + 1, m + 1, mm ); } } void devide ( char *n, char *m ) { devide_sub ( n, m, m ); } main() { printf ( "10/4 = " ); devide ( "**********", "****" ); printf ( "\n" ); printf ( "10/3 = " ); devide ( "**********", "***" ); printf ( "\n" ); printf ( "10/2 = " ); devide ( "**********", "**" ); printf ( "\n" ); } /* devide ( "**********", "****" ); devide_sub ( "**********", "****", "****" ); devide_sub ( "*********", "***", "****" ); devide_sub ( "********", "**", "****" ); devide_sub ( "*******", "*", "****" ); devide_sub ( "******", "", "****" ); devide_sub ( "******", "", "****" ); 10 - 4 -> 6 printf ( "*" ); devide_sub ( "******", "****", "****" ); printf ( "*" ); devide_sub ( "*****", "***", "****" ); printf ( "*" ); devide_sub ( "****", "**", "****" ); printf ( "*" ); devide_sub ( "***", "*", "****" ); printf ( "*" ); devide_sub ( "**", "", "****" ); (10 - 4) - 4 -> 2 printf ( "*" ); printf ( "*" ); devide_sub ( "**", "****", "****" ); printf ( "*" ); printf ( "*" ); devide_sub ( "*", "***", "****" ); printf ( "*" ); printf ( "*" ); devide_sub ( "", "**", "****" ); printf ( "*" ); printf ( "*" ); なので答は「**」となる */
C:\usr\c\> sample-009 10/4 = ** 10/3 = *** 10/2 = *****
[課題1]メタセコイヤのによる3次元のモデルデータをウェブから検索して、sample_GL.exeを利用して、表示せなさい。そしてのそのモデルデータのあるPageの紹介を情報をファイル20110520-1-QQQQ.txt ( QQQQは学生番号)に記入し、CST Portalに提出しなさい。
[課題2] 前回の [課題 3 ]をしなさい(1)。
windows 7で実行するには、DirectX エンド ユーザー ランタイムをインスートールする必要があります。