当日の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 エンド ユーザー ランタイムをインスートールする必要があります。