Prog/2012/ex05
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*応用プログラミング演習 2012年度 第5回 [#bebe2b15]
//&color(#ff0000){工事中};
#contents
**注意 [#i749b259]
-演習のすすめ方について [[AProg/2012/ex01#note]]
-Linux環境での操作についてはわからないことがあったら [[Do...
**課題A 締切: 今回の演習終了20分前(2点) [#kadaiA]
,番号,名前,年齢,視力
, 3,Uni, 100,0.1
, 666,Henako, 18,5
, 1055,Hogeo, 40,1.5
構造体を利用して,上記の各行をひとまとまりのデータとみな...
ただし,次の条件を満たすようにすること.
+ ソースファイル名は ex05a.c とする.
+ 次の内容のテキストファイル(ファイル名を data4ex05a.txt...
#pre{{
3 Uni 100 0.1
666 Henako 18 5
1055 Hogeo 40 1.5
}}
これを入力としてこのプログラム(実行形式のファイル名を ex...
#pre{{
$ ./ex05a < data4ex05a.txt
num: 666 name: Henako age: 18 sight: 5.0
num: 3 name: Uni age: 100 sight: 0.1
num: 1055 name: Hogeo age: 40 sight: 1.5
}}
-- 元のファイルと順序が入れ替わっている箇所があることに注...
-- nameの文字列は,名前に最大99文字使えるように大きさを考...
-- 視力の数値の表示形式に注意.
+ 上述の結果が得られるように,次のようなプログラムを作成...
-- 構造体の変数も配列にできるので,配列を使いたくなるかも...
#pre{{
#include <stdio.h>
「ひとり分のデータを格納するための構造体を定義する」(typ...
int main(void)
{
「構造体変数の宣言」
scanf("%d %s %d %lf", 「ひとつめの変数に値を入れる」);
scanf("%d %s %d %lf", 「ふたつめの変数に値を入れる」);
scanf("%d %s %d %lf", 「みっつめの変数に値を入れる」);
「3つの変数のうち2つの内容をいれかえる」(構造体を使う...
printf(「ひとつめの変数の内容を表示」);
printf(「ふたつめの変数の内容を表示」);
printf(「みっつめの変数の内容を表示」);
return 0;
}
}}
**課題B 締切: 今回の演習終了20分前(2点) [#kadaiB]
***step0 [#t716d2cc]
次のように cp コマンドを実行すると,prime.h と prime.c と...
$ cp /home/sample/takataka/aprog2012/prime.* .
ちなみにこのコマンドを実行すると何がおこるかを説明すると…
+「*」は,「0文字以上の任意の文字」を表すので,prime.h と...
+コピー先の指定が「.」つまりカレントディレクトリなので,...
ということになっている.
「*」や「?」(任意の1文字を表す)の解釈はシェルが行ってい...
$ ls *.c
$ ls ex??x999.c
などを実行してみるとよい.ちなみに,次のように実行すると...
$ rm *
コピーができたら,次のことをしなさい.
-lsコマンドを実行して本当にコピーできたことを確認
-emacs または less でこれらのファイルの中身を眺めてみる
以下のstepでは,この2つのファイルを利用するプログラムを作...
その際には,&color(#00a000){prime.h と prime.c は利用する...
***step1 [#ffc074ba]
次のような動作をするプログラムを作りなさい.
-自分で作成するソースファイルの名前は ex05prime.c とする...
-入力された数は配列に格納すること.数の個数は100以下と仮...
#pre{{
$ ./ex05prime
何個?: 6 ← 6 はキーボードからの入力
0番目: 7 ← 7はキーボードからの入力.以下同様
1番目: 2
2番目: 1024
3番目: 1023
4番目: 8192
5番目: 8191
素数は3個 ← プログラムの出力
}}
***step2 [#i6cbea07]
prime.{c,h} を見るとわかるように,prime.c には三つの関数...
step1のプログラムでは,そのうちひとつはmain()から呼び出さ...
step1のプログラムを改造し,その関数をmain()から呼び出すよ...
ここまでできたらチェックをうけよう.
**課題C 締切: 次回の演習開始直後(4点) [#kadaiC]
次のような動作をするプログラムを作成しなさい.
#pre{{
$ ./ex05search
線形探索するよん
0以上の整数から成るデータを扱えるよん
データは何件?: 5
0番目のデータ(0以上の整数)を入力してね: 10
1番目のデータ(0以上の整数)を入力してね: 37
2番目のデータ(0以上の整数)を入力してね: 26
3番目のデータ(0以上の整数)を入力してね: 10
4番目のデータ(0以上の整数)を入力してね: 123
データは5件やな
キー値を入力してね(負の数だと終了するよ): 37
その値は1番目にあるよ
キー値を入力してね(負の数だと終了するよ): 10
その値は0番目にあるよ
キー値を入力してね(負の数だと終了するよ): 36
その値はないみたい
キー値を入力してね(負の数だと終了するよ): -2
ばいばい
}}
ただし,以下の指示に従うこと.
-ソースは次の3つのファイルから成るものとする
--関数mainの定義を含むソースファイル ex05search.c
--関数LSearchの定義を含むソースファイル search.c
--関数LSearchのプロトタイプ宣言を含むヘッダファイル searc...
-入力されるデータが0以上の整数であるかどうかのチェックは...
-関数LSearchは次のような仕様とする(&color(#00a000){まず...
--引数は,int型配列,その要素数,キーの値,の3つ
--配列中にキーの値と一致する要素が見つかればその番号(配...
--探索アルゴリズムは線形探索とする
--この関数中ではscanfもprintfも使わない(デバグ中は別です...
--配列中に同じ値が複数含まれている場合のことは考慮しなく...
ヒント: mainの側での1回の探索の手順はこんな感じですね.
+キー値を入力してもらう
+それが負だったらほげほげ
+LSearchを呼ぶ
+見つけたかどうかに応じてほげほげ
終了行:
*応用プログラミング演習 2012年度 第5回 [#bebe2b15]
//&color(#ff0000){工事中};
#contents
**注意 [#i749b259]
-演習のすすめ方について [[AProg/2012/ex01#note]]
-Linux環境での操作についてはわからないことがあったら [[Do...
**課題A 締切: 今回の演習終了20分前(2点) [#kadaiA]
,番号,名前,年齢,視力
, 3,Uni, 100,0.1
, 666,Henako, 18,5
, 1055,Hogeo, 40,1.5
構造体を利用して,上記の各行をひとまとまりのデータとみな...
ただし,次の条件を満たすようにすること.
+ ソースファイル名は ex05a.c とする.
+ 次の内容のテキストファイル(ファイル名を data4ex05a.txt...
#pre{{
3 Uni 100 0.1
666 Henako 18 5
1055 Hogeo 40 1.5
}}
これを入力としてこのプログラム(実行形式のファイル名を ex...
#pre{{
$ ./ex05a < data4ex05a.txt
num: 666 name: Henako age: 18 sight: 5.0
num: 3 name: Uni age: 100 sight: 0.1
num: 1055 name: Hogeo age: 40 sight: 1.5
}}
-- 元のファイルと順序が入れ替わっている箇所があることに注...
-- nameの文字列は,名前に最大99文字使えるように大きさを考...
-- 視力の数値の表示形式に注意.
+ 上述の結果が得られるように,次のようなプログラムを作成...
-- 構造体の変数も配列にできるので,配列を使いたくなるかも...
#pre{{
#include <stdio.h>
「ひとり分のデータを格納するための構造体を定義する」(typ...
int main(void)
{
「構造体変数の宣言」
scanf("%d %s %d %lf", 「ひとつめの変数に値を入れる」);
scanf("%d %s %d %lf", 「ふたつめの変数に値を入れる」);
scanf("%d %s %d %lf", 「みっつめの変数に値を入れる」);
「3つの変数のうち2つの内容をいれかえる」(構造体を使う...
printf(「ひとつめの変数の内容を表示」);
printf(「ふたつめの変数の内容を表示」);
printf(「みっつめの変数の内容を表示」);
return 0;
}
}}
**課題B 締切: 今回の演習終了20分前(2点) [#kadaiB]
***step0 [#t716d2cc]
次のように cp コマンドを実行すると,prime.h と prime.c と...
$ cp /home/sample/takataka/aprog2012/prime.* .
ちなみにこのコマンドを実行すると何がおこるかを説明すると…
+「*」は,「0文字以上の任意の文字」を表すので,prime.h と...
+コピー先の指定が「.」つまりカレントディレクトリなので,...
ということになっている.
「*」や「?」(任意の1文字を表す)の解釈はシェルが行ってい...
$ ls *.c
$ ls ex??x999.c
などを実行してみるとよい.ちなみに,次のように実行すると...
$ rm *
コピーができたら,次のことをしなさい.
-lsコマンドを実行して本当にコピーできたことを確認
-emacs または less でこれらのファイルの中身を眺めてみる
以下のstepでは,この2つのファイルを利用するプログラムを作...
その際には,&color(#00a000){prime.h と prime.c は利用する...
***step1 [#ffc074ba]
次のような動作をするプログラムを作りなさい.
-自分で作成するソースファイルの名前は ex05prime.c とする...
-入力された数は配列に格納すること.数の個数は100以下と仮...
#pre{{
$ ./ex05prime
何個?: 6 ← 6 はキーボードからの入力
0番目: 7 ← 7はキーボードからの入力.以下同様
1番目: 2
2番目: 1024
3番目: 1023
4番目: 8192
5番目: 8191
素数は3個 ← プログラムの出力
}}
***step2 [#i6cbea07]
prime.{c,h} を見るとわかるように,prime.c には三つの関数...
step1のプログラムでは,そのうちひとつはmain()から呼び出さ...
step1のプログラムを改造し,その関数をmain()から呼び出すよ...
ここまでできたらチェックをうけよう.
**課題C 締切: 次回の演習開始直後(4点) [#kadaiC]
次のような動作をするプログラムを作成しなさい.
#pre{{
$ ./ex05search
線形探索するよん
0以上の整数から成るデータを扱えるよん
データは何件?: 5
0番目のデータ(0以上の整数)を入力してね: 10
1番目のデータ(0以上の整数)を入力してね: 37
2番目のデータ(0以上の整数)を入力してね: 26
3番目のデータ(0以上の整数)を入力してね: 10
4番目のデータ(0以上の整数)を入力してね: 123
データは5件やな
キー値を入力してね(負の数だと終了するよ): 37
その値は1番目にあるよ
キー値を入力してね(負の数だと終了するよ): 10
その値は0番目にあるよ
キー値を入力してね(負の数だと終了するよ): 36
その値はないみたい
キー値を入力してね(負の数だと終了するよ): -2
ばいばい
}}
ただし,以下の指示に従うこと.
-ソースは次の3つのファイルから成るものとする
--関数mainの定義を含むソースファイル ex05search.c
--関数LSearchの定義を含むソースファイル search.c
--関数LSearchのプロトタイプ宣言を含むヘッダファイル searc...
-入力されるデータが0以上の整数であるかどうかのチェックは...
-関数LSearchは次のような仕様とする(&color(#00a000){まず...
--引数は,int型配列,その要素数,キーの値,の3つ
--配列中にキーの値と一致する要素が見つかればその番号(配...
--探索アルゴリズムは線形探索とする
--この関数中ではscanfもprintfも使わない(デバグ中は別です...
--配列中に同じ値が複数含まれている場合のことは考慮しなく...
ヒント: mainの側での1回の探索の手順はこんな感じですね.
+キー値を入力してもらう
+それが負だったらほげほげ
+LSearchを呼ぶ
+見つけたかどうかに応じてほげほげ
ページ名: