CLab/2006-F03
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
* 第3回 関数 [#xef7c5f7]
- ''基本課題''は授業時間中に終わらせること。
- ★印の付いている問題は,当教員に見せて確認の印(またはサ...
- 授業時間中に終わらなかった''応用課題''は,次回(2週間後...
- [[C言語のコンパイルと実行のしかた>../C言語環境]]
-- プログラムのファイル名は,「問題番号.c」としてください...
- [[プログラムの提出のしかた>../提出]]
-- 提出URL http://vilab.org/upload/clab-upload.html
- [[C言語おすすめ情報>../C言語参考資料]]
-- おすすめのWebページや書籍の紹介。
** 基本課題 [#za0a799c]
*** 関数 [#nb3cde3e]
''★c1)'' 半径rを引数として,円周の長さを表示する関数を作...
void print_circle(double r);
>【ポイント】 関数プロトタイプ宣言は,関数の型(使い方)...
/* プロトタイプ宣言:行末にセミコロンが必要 */
void print_circle(double r);
int main(void)
{
/* 関数の使用例 */
print_circle(10.0);
}
/* 関数の中身の定義:{}の中に実行内容を書く */
void print_circle(double r)
{
/* 関数の実行内容 */
}
''c2)'' 関数f(x)=x+1をC言語で表し、整数nをキーボードから...
''★c3)'' 2つの整数を引数として,値の小さい方を返す関数min...
int min2(int n, int m);
*** ライブラリ関数 [#v9a91afe]
- 参考 http://www9.plala.or.jp/sgwr-t/c/sec07.html
''★c4)'' 座標平面上の点 (x, y) から原点までの距離を計算す...
#include <math.h>
double sqrt(double x);
>【ポイント】 C言語の処理系(OS)によっては,数学関係の...
gcc -lm ファイル名.c
''c5)'' 自分の名前(ローマ字)をキーボードから読み込み、...
#include <ctype.h>
int toupper(int c);
** 応用課題 [#sfd957a4]
''cx1)'' 西暦を引数とし,その年の1月1日の元号が平成(0)...
int gengo(int seireki);
''cx2)'' キーボードから読み込みこんだ整数n (ただしn≧2)を1...
n=2 ** n=3 *** n=4 ****
** * * * *
*** * *
****
''cx3)'' 標準ライブラリ関数rand()は,0〜RAND_MAXの範囲の...
#include <stdlib.h>
int rand(void);
- なお,randは起動するたびに同じ数列を返してしまうので,...
''cx4)'' 三角形の2辺の長さとそれらの挟む角を引数とし、面...
- 参考 http://shigihara.hp.infoseek.co.jp/sin53.htm
- 参考 http://www2.ocn.ne.jp/~atel.a/emath/sugakuc.html
''cx5)'' 前回の線形探索のプログラム ''bx2)'' を改造して,...
int linear_search(int a[], int n, int x);
- 値を「''返す''」というのは「''returnする''」ということ...
** 発展課題 [#k59694ea]
- 発展課題には''提出期限を設けない''ので,前回までの発展...
*** ダンジョン探索 [#u7ff8bff]
''cz1)'' RPGシリーズということで,今度はダンジョン(地下...
主人公たちは村外れにたつ小さな古城にたどり着いた。言い伝...
ダンジョンの地図は2次元配列(グローバル変数)として用意し...
int map[7][7] = {
{ 9, 9, 9, 9, 9, 9, 9 },
{ 9, 1, 9, 0, 9, 5, 9 },
{ 9, 0, 9, 0, 2, 0, 9 },
{ 9, 0, 9, 0, 9, 9, 9 },
{ 9, 0, 0, 0, 2, 0, 9 },
{ 9, 0, 9, 0, 9, 7, 9 },
{ 9, 9, 9, 9, 9, 9, 9 } };
ここで,0〜9はそれぞれ次のものを表す(ここらへんは自由に...
-「0」通路
-「1」上り階段(外に脱出できる)
-「2」扉
-「5」十字架(吸血鬼を倒すためのアイテム)
-「7」吸血鬼(ボスキャラ)
-「9」壁(進めない)
また,主人公が地図上のそれぞれの記号を訪れた場合の関数を...
void passage() /* 通路 */
{
/* 何も起きない */
}
void stairway() /* 階段 */
{
/* 地上に脱出するかどうか質問する */
/* 吸血鬼を倒してから脱出すれば,ハッピーエンド */
}
void door() /* 扉 */
{
/* 何かメッセージを表示させるといいだろう */
}
void cross() /* 十字架 */
{
/* 宝箱があり,中に十字架が入っている */
/* 紙に書かれた謎々を解くと箱を開けられる */
}
void vampire() /* 吸血鬼 */
{
/* 吸血鬼に仲間にならないか誘われるが,断ると対決 */
/* 十字架を持っていれば勝つことができる */
}
プログラムは,ユーザに,主人公を東西南北(上下左右)どち...
printf("どちらの方向に進みますか?(6:東 4:西 2:南 8:北...
scanf("%d", &dir);
switch (dir) {
case 6:
if (map[y][x+1] != 9) x++;
break;
case 4:
if (map[y][x-1] != 9) x--;
break;
case 2:
if (map[y+1][x] != 9) y++;
break;
case 8:
if (map[y-1][x] != 9) y--;
break;
default
printf("その方向には進めません。\n");
/* エラー処理 */
}
switch (map[y][x]) {
case 0:
passage();
break;
case 1:
stairway();
break;
case 2:
door();
break;
case 5:
cross();
break;
case 7:
vampire();
break;
}
画面には,主人公の周囲の状況を表示するとよい。一例として...
- 文字表示の例
あなたは,いま上り階段にいます。
東は壁です。西は壁です。北は壁です。南は通路です。
どちらの方向に進みますか(東西南北)?
- マップ表示の例
■■■
■?■
■ ■ どちらの方向に進みますか(東西南北)?
吸血鬼に負けてしまった場合は,主人公も吸血鬼になってゲー...
終了行:
* 第3回 関数 [#xef7c5f7]
- ''基本課題''は授業時間中に終わらせること。
- ★印の付いている問題は,当教員に見せて確認の印(またはサ...
- 授業時間中に終わらなかった''応用課題''は,次回(2週間後...
- [[C言語のコンパイルと実行のしかた>../C言語環境]]
-- プログラムのファイル名は,「問題番号.c」としてください...
- [[プログラムの提出のしかた>../提出]]
-- 提出URL http://vilab.org/upload/clab-upload.html
- [[C言語おすすめ情報>../C言語参考資料]]
-- おすすめのWebページや書籍の紹介。
** 基本課題 [#za0a799c]
*** 関数 [#nb3cde3e]
''★c1)'' 半径rを引数として,円周の長さを表示する関数を作...
void print_circle(double r);
>【ポイント】 関数プロトタイプ宣言は,関数の型(使い方)...
/* プロトタイプ宣言:行末にセミコロンが必要 */
void print_circle(double r);
int main(void)
{
/* 関数の使用例 */
print_circle(10.0);
}
/* 関数の中身の定義:{}の中に実行内容を書く */
void print_circle(double r)
{
/* 関数の実行内容 */
}
''c2)'' 関数f(x)=x+1をC言語で表し、整数nをキーボードから...
''★c3)'' 2つの整数を引数として,値の小さい方を返す関数min...
int min2(int n, int m);
*** ライブラリ関数 [#v9a91afe]
- 参考 http://www9.plala.or.jp/sgwr-t/c/sec07.html
''★c4)'' 座標平面上の点 (x, y) から原点までの距離を計算す...
#include <math.h>
double sqrt(double x);
>【ポイント】 C言語の処理系(OS)によっては,数学関係の...
gcc -lm ファイル名.c
''c5)'' 自分の名前(ローマ字)をキーボードから読み込み、...
#include <ctype.h>
int toupper(int c);
** 応用課題 [#sfd957a4]
''cx1)'' 西暦を引数とし,その年の1月1日の元号が平成(0)...
int gengo(int seireki);
''cx2)'' キーボードから読み込みこんだ整数n (ただしn≧2)を1...
n=2 ** n=3 *** n=4 ****
** * * * *
*** * *
****
''cx3)'' 標準ライブラリ関数rand()は,0〜RAND_MAXの範囲の...
#include <stdlib.h>
int rand(void);
- なお,randは起動するたびに同じ数列を返してしまうので,...
''cx4)'' 三角形の2辺の長さとそれらの挟む角を引数とし、面...
- 参考 http://shigihara.hp.infoseek.co.jp/sin53.htm
- 参考 http://www2.ocn.ne.jp/~atel.a/emath/sugakuc.html
''cx5)'' 前回の線形探索のプログラム ''bx2)'' を改造して,...
int linear_search(int a[], int n, int x);
- 値を「''返す''」というのは「''returnする''」ということ...
** 発展課題 [#k59694ea]
- 発展課題には''提出期限を設けない''ので,前回までの発展...
*** ダンジョン探索 [#u7ff8bff]
''cz1)'' RPGシリーズということで,今度はダンジョン(地下...
主人公たちは村外れにたつ小さな古城にたどり着いた。言い伝...
ダンジョンの地図は2次元配列(グローバル変数)として用意し...
int map[7][7] = {
{ 9, 9, 9, 9, 9, 9, 9 },
{ 9, 1, 9, 0, 9, 5, 9 },
{ 9, 0, 9, 0, 2, 0, 9 },
{ 9, 0, 9, 0, 9, 9, 9 },
{ 9, 0, 0, 0, 2, 0, 9 },
{ 9, 0, 9, 0, 9, 7, 9 },
{ 9, 9, 9, 9, 9, 9, 9 } };
ここで,0〜9はそれぞれ次のものを表す(ここらへんは自由に...
-「0」通路
-「1」上り階段(外に脱出できる)
-「2」扉
-「5」十字架(吸血鬼を倒すためのアイテム)
-「7」吸血鬼(ボスキャラ)
-「9」壁(進めない)
また,主人公が地図上のそれぞれの記号を訪れた場合の関数を...
void passage() /* 通路 */
{
/* 何も起きない */
}
void stairway() /* 階段 */
{
/* 地上に脱出するかどうか質問する */
/* 吸血鬼を倒してから脱出すれば,ハッピーエンド */
}
void door() /* 扉 */
{
/* 何かメッセージを表示させるといいだろう */
}
void cross() /* 十字架 */
{
/* 宝箱があり,中に十字架が入っている */
/* 紙に書かれた謎々を解くと箱を開けられる */
}
void vampire() /* 吸血鬼 */
{
/* 吸血鬼に仲間にならないか誘われるが,断ると対決 */
/* 十字架を持っていれば勝つことができる */
}
プログラムは,ユーザに,主人公を東西南北(上下左右)どち...
printf("どちらの方向に進みますか?(6:東 4:西 2:南 8:北...
scanf("%d", &dir);
switch (dir) {
case 6:
if (map[y][x+1] != 9) x++;
break;
case 4:
if (map[y][x-1] != 9) x--;
break;
case 2:
if (map[y+1][x] != 9) y++;
break;
case 8:
if (map[y-1][x] != 9) y--;
break;
default
printf("その方向には進めません。\n");
/* エラー処理 */
}
switch (map[y][x]) {
case 0:
passage();
break;
case 1:
stairway();
break;
case 2:
door();
break;
case 5:
cross();
break;
case 7:
vampire();
break;
}
画面には,主人公の周囲の状況を表示するとよい。一例として...
- 文字表示の例
あなたは,いま上り階段にいます。
東は壁です。西は壁です。北は壁です。南は通路です。
どちらの方向に進みますか(東西南北)?
- マップ表示の例
■■■
■?■
■ ■ どちらの方向に進みますか(東西南北)?
吸血鬼に負けてしまった場合は,主人公も吸血鬼になってゲー...
ページ名: