Download : sample-001.c ( SJIS 版 )
/*
* 2015/10/02 sample-001.c
*/
/*
* curses hello
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o BASENAME.exe sample-001.c -lncurses
* 実行
* BASENAME
*/
#include <stdio.h>
#include <curses.h> /* curses を利用する場合 */
/*
* curses_hello()
*/
void curses_hello( void ) {
initscr(); /* curses の利用開始 */
move ( 10, 30 ); /* カーソルの移動 ( Y, X の順である事に注意 ) */
addstr ( "Hello, Curses" ); /* 文字列の表示 */
getch(); /* 文字の入力を待つ */
endwin(); /* curses の利用終了 */
}
/*
* main
*
*/
int main( int argc, char *argv[] )
{
curses_hello();
return 0;
}
$ ./sample-001.exe
Hello, Curses
/*
* CDATE FILENAME
*
* キーボードから一文字入力し、その文字によって異る国の挨拶をする
*/
#include <stdio.h>
/*
* hello ( char contry )
* char contry : 国を表す一文字
* j : 日本
* e : 英語
* c : 中国
* f : フランス語
* g : ドイツ語
*/
void hello ( char cmd ) {
switch ( cmd ) {
case 'j': /* 'j' の時は、日本語にする */
printf ( "こんにちは\n" );
break;
case 'e': /* 'e' の時は、英語にする */
printf ( "Good Afternoon\n" );
break;
case 'c': /* 'c' の時は、中国語にする */
printf ( "ニイハオ\n" );
break;
case 'f': /* 'f' の時は、フランス語にする */
printf ( "Bonjour\n" );
break;
case 'g':
printf ( "Guten tag\n" );
break;
default: /* どれでもなければ.. */
printf ( "???\n" );
break;
}
}
/*
* main
*/
int main( void )
{
printf ( "国を表す文字を入力してください\n" );
printf ( "\tj\t日本\n" );
printf ( "\te\t英語\n" );
printf ( "\tc\t中国\n" );
printf ( "\tf\tフランス\n" );
printf ( "\tg\tドイツ\n" );
hello ( getchar() ); /* getchar() で文字を入力し、それに対応する結果を出す */
return 0;
}
/*
* 課題 CNAME-02
*
* 20150925 20150925-02-QQQQ.c
*
* 0 〜 99 の偶数を出力する
*
*/
#include <stdio.h>
/*
* for 文を利用して、0 から 99 の偶数の数値
(そのニ) i が 0 〜 99 の間の偶数だけを動くようにし、毎回 i を出す
*/
int main(int ac, char *av[] ) {
int i; /* for 文の制御変数 */
for ( i = 0; i < 100; i = i + 2 ) {
/* i++ だと i = 0, 1, 2, .. */
/* i = i + 2 ととすれば i = 0, 2, 4, .. */
printf ( "%d\n", i ); /* i を出力 */
}
return 0;
}
#include <stdio.h>
int main(void) {
int i; /* i という局所変数の宣言 */
/* この段階で、 変数 i に何がはいっているかは不明 */
i = 1; /* 代入(最初の代入なので初期化と呼ぶ */
printf ( "i=%d\n", i ); /* i の値を出力 */
printf ( "i=%d\n", i ); /* i の値を出力(代入をしない限り何度やって同じ結果) */
printf ( "i=%d\n", i ); /* i の値を出力(代入をしない限り何度やって同じ結果) */
printf ( "i=%d\n", i ); /* i の値を出力(代入をしない限り何度やって同じ結果) */
i = 2; /* 二度目の代入 (世界が変化) */
printf ( "i=%d\n", i ); /* 同じ命令なのに結果が異る */
return 0;
}
#include <stdio.h>
int main(void) {
int i; /* i という局所変数の宣言 */
/* この段階で、 変数 i に何がはいっているかは不明 */
i = 1; /* 変数の初期化 */
/* 世界の創造(ビッグバン) */
while ( i < 10 ) { /* 繰返しの条件は 「i<10」 */
/* 「世界」を進めて行く */
printf ( "i=%d\n", i );
/* 「世界」の状況をレポート */
i = i + 1; /* i の値を 1 増やす */
/* 「世界」の時間が進む */
}
return 0;
}
#include <stdio.h>
int main(void) {
printf ( "整数値を出力する = %d\n浮動小数点数を出力する = %f\n", 123, 12.34 );
printf ( "%d%d%d%d%d%d%d%d%d%d\n", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 );
return 0;
}
#include <stdio.h>
int main(void) {
int i = 0; /* 整数型の変数 */
double f = 0.0; /* 浮動小数点数 */
char c='A';
printf ( "i=%d\nf=%f\nc=%c\n", i, f, c ); /* 現在の i と f の値 */
scanf ( "%d", &i ); /* 整数値を標準入力から入力し、その値を変数 i に代入する */
printf ( "i=%d\nf=%f\nc=%c\n", i, f, c ); /* 現在の i と f の値 */
scanf ( "%lf", &f ); /* 浮動小数点数値を標準入力から入力し、その値を変数 f に代入する */
printf ( "i=%d\nf=%f\nc=%c\n", i, f, c ); /* 現在の i と f の値 */
scanf ( " %c", &c ); /* 文字を標準入力から入力し、その値を変数 c に代入する */
printf ( "i=%d\nf=%f\nc=%c\n", i, f, c ); /* 現在の i と f の値 */
return 0;
}
#include <stdio.h>
int main(void) {
int i;
scanf ( "%d", &i );
/* 多重分岐 : 一つの状況に対して、値によって、複数の処理を選択する */
if ( i == 1 ) {
printf ( "One\n" );
} else if ( i == 2 ) {
printf ( "Two\n" );
} else if ( i == 3 ) {
printf ( "Three\n" );
} else {
printf ( "Too Many\n" );
}
return 0;
}
#include <stdio.h>
int main(void) {
int i;
scanf ( "%d", &i );
/* 多重分岐 : 一つの状況に対して、値によって、複数の処理を選択する */
switch ( i ) {
case 1:
printf ( "One\n" );
break;
case 2:
printf ( "Two\n" );
break;
case 3:
printf ( "Three\n" );
break;
default:
printf ( "Too Many\n" );
break;
}
return 0;
}
#include <stdio.h>
int main(void) {
int i; /* i という局所変数の宣言 */
for ( i = 1; i < 10; i = i + 1 ) { /* i = i + 1 -> i++ */
printf ( "i=%d\n", i );
}
return 0;
}
#include <curses.h>
int main(void) {
initscr(); /* curses を利用開始 */
move ( 12, 35 ); /* 12 行目の 35 桁にカーソルを移動 */
addstr ( "Hello, World\n" );
getch(); /* 態と文字を一文字まつ */
endwin(); /* curses を利用終了 */
return 0;
}
#include <curses.h>
int main(void) {
int ballx = 35; /* ボールの x 座標 */
int bally = 12; /* ボールの y 座標 */
int ch = ' '; /* キーボードからの入力 */
initscr(); /* curses を利用開始 */
noecho();
while ( ch != 'q' ) {
move ( bally, ballx ); /* ボール書き込む */
addstr ( "********" );
ch = getch(); /* 入力をまつ */
move ( bally, ballx ); /* ボールを消す */
addstr ( " " );
switch ( ch ) {
case 'h':
ballx = ballx - 1;
break;
case 'l':
ballx = ballx + 1;
break;
}
}
endwin(); /* curses を利用終了 */
return 0;
}
#include <curses.h>
int main(void) {
int racketx = 35; /* ラケットの x 座標 */
int rackety = 19; /* ラケットの y 座標 */
int ballx = 35; /* ボールの x 座標 */
int bally = 12; /* ボールの y 座標 */
int balldx = 0; /* ボールの x 速度 */
int balldy = 1; /* ボールの y 速度 */
int ch = ' '; /* キーボードからの入力 */
initscr(); /* curses を利用開始 */
noecho();
while ( ch != 'q' ) {
move ( rackety, racketx ); /* ボール書き込む */
addstr ( "********" );
move ( bally, ballx ); /* ボール書き込む */
addch ( '*' );
ch = getch(); /* 入力をまつ */
move ( rackety, racketx );
addstr ( " " );
move ( bally, ballx );
addch ( ' ' );
ballx = ballx + balldx;
bally = bally + balldy;
switch ( ch ) {
case 'h':
racketx = racketx - 1;
break;
case 'l':
racketx = racketx + 1;
break;
}
}
endwin(); /* curses を利用終了 */
return 0;
}
#include <curses.h>
int main(void) {
int racketx = 35; /* ラケットの x 座標 */
int rackety = 19; /* ラケットの y 座標 */
int ballx = 35; /* ボールの x 座標 */
int bally = 12; /* ボールの y 座標 */
int balldx = 0; /* ボールの x 速度 */
int balldy = 1; /* ボールの y 速度 */
int ch = ' '; /* キーボードからの入力 */
initscr(); /* curses を利用開始 */
noecho();
timeout(0);
while ( ch != 'q' ) {
usleep ( 1000000 );
move ( rackety, racketx ); /* ボール書き込む */
addstr ( "********" );
move ( bally, ballx ); /* ボール書き込む */
addch ( '*' );
ch = getch(); /* 入力をまつ */
move ( rackety, racketx );
addstr ( " " );
move ( bally, ballx );
addch ( ' ' );
ballx = ballx + balldx;
bally = bally + balldy;
switch ( ch ) {
case 'h':
racketx = racketx - 1;
break;
case 'l':
racketx = racketx + 1;
break;
}
}
endwin(); /* curses を利用終了 */
return 0;
}