C言語の演習問題(難解)の模範解答お願いしますm(__)m

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
タマキチ

C言語の演習問題(難解)の模範解答お願いしますm(__)m

#1

投稿記事 by タマキチ » 14年前

C言語のプログラミング問題(難解)について教えてください!

実は2週間ほど前から独学(問題集を用いて)でC言語の学習をしておりまして

その演習問題(解答がない)のプログラミングの答えを教えて頂きたく質問させていただきました。

C言語の基礎的な関数は独学で習得しましたがファイル処理やポインタのに関する知識は曖昧な理解になっています。

大変申し分け御座いませんが、もし宜しければ、この演習問題の模範的なプログラミングの解答を教えて頂けないでしょうか?

無理難題を押し付けてしまい申し訳ございません。

以下の問題です。
次の作業を実現するためのプログラミングを描け。

機能名:リストファイルの分割処理

■概要:部門1、部門2の商品が混合して書かれたファイルがある。
部門毎に分けたファイルを新たに作成する。

■条件 (1)ファイルを1行ずつ読み込み、ポインタで受け取り関数で渡すこと。
(2)出力ファイルの最終行には各部門の品種数を入力すること
(3)出力ファイルは固定長とし、空きが出る場合は半角スペースでレコード長を合わせること。
(4)エラー発生時にはエラーメッセージを表示し、終了すること。

■ファイルレイアウト(入力ファイル)
レコード長:26(固定長)


長さ 項目名
1 |部門コード1
1 |(区切り文字カンマ)
6 |商品名1
1 |(区切り文字カンマ)
1 |部門コード2
1 |(区切り文字カンマ)
6 |商品名2
1 | (区切り文字カンマ)
1 |部門コード゛3
1 |(区切り文字カンマ)
6 | 商品名3

■ファイルレイアウト(出力ファイル)
レコード長:20(固定長)

長さ | 項目名
6 |商品名1
1 ||(区切り文字カンマ)
6 |商品名2
1 ||(区切り文字カンマ)
6 |商品名3

(1)入力ファイル(LIST_INPUT.txt)

1,菓子A,1,菓子B,1,菓子C
2,野菜A,2,野菜B,2,野菜C
1,菓子D,1,菓子E,2,野菜D
1,菓子F,1,菓子G,2,野菜E
1,菓子H,2,野菜F,1,菓子I
1,菓子J,1,菓子K,2,野菜G


(2)出力ファイル1(菓子)(LIST1.txt)
菓子A,菓子B,菓子C
菓子D,菓子E,菓子F,
菓子G,菓子H,菓子I
菓子J,菓子K
11

(3)出力ファイル2(LIST2,txt)
野菜A,野菜B,野菜C
野菜D,野菜E,野菜F
野菜G
7


*出力ファイルの最終行に品種数を追加すること。

よろしくお願い致しますm(__)m

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: C言語の演習問題(難解)の模範解答お願いしますm(__)m

#2

投稿記事 by softya(ソフト屋) » 14年前

すいません、マルチポストになっているので解消をお願いします。
「C言語のプログラミング問題(難解)について - C&C++ - 教えて!goo」
http://oshiete.goo.ne.jp/qa/6698274.html

詳しくはフォーラムルールにありますが相互リンクをお願いします。
http://dixq.net/board/board.html

それと、まずご自分で作られたプログラム未完成でもお見せ頂けますか?
それを見ながらアドバイスさせていただければと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

タマキチ

Re: C言語の演習問題(難解)の模範解答お願いしますm(__)m

#3

投稿記事 by タマキチ » 14年前

大変申し訳ございません。
相互リンクは以下の2件でございます。
http://detail.chiebukuro.yahoo.co.jp/qa ... 1361046423
http://oshiete.goo.ne.jp/qa/6698274.html
以上の二件で質問させていただきましたが、解決できませんでしたので、こちらでも質問させて頂きます。


流れは以下の通りでございます。

入力ファイルを開く
・出力ファイル2つ分を開く
・ファイルから一行単位に読み込む。
・1行分のデータを3つの商品に分割する
・各商品の部門文字よりA/Bの何れの出力ファイルに出力するかを判定する
・出力ファイル用のバッファへ蓄積(商品数のカウントアップ)
・出力バッファに3個分データが蓄積されたら、出力ファイルの書き出し
・入力ファイルが終端に達したら、それぞれの出力ファイルに商品数を書き出してファイルを閉じる


このときに、どの処理をサブ関数化するか?
どういった情報を引数にするか?
どういった場合にエラーが発生しうるか?
という点が分かりませんでしたので、模範解答よろしくお願いいたします

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: C言語の演習問題(難解)の模範解答お願いしますm(__)m

#4

投稿記事 by softya(ソフト屋) » 14年前

タマキチ さんが書きました:大変申し訳ございません。
相互リンクは以下の2件でございます。
http://detail.chiebukuro.yahoo.co.jp/qa ... 1361046423
http://oshiete.goo.ne.jp/qa/6698274.html
以上の二件で質問させていただきましたが、解決できませんでしたので、こちらでも質問させて頂きます。
あちら側でも補足などでリンクしていただかないと相互リンクになりませんので、よろしくお願いします。

>模範解答よろしくお願いいたします

問題集をされているんでしたら模範解答は意味が無いと思います。
1つ1つ問題を分解して解決して行きましょう。最後まで付き合いますので。
タマキチ さんが書きました:入力ファイルを開く
・出力ファイル2つ分を開く
・ファイルから一行単位に読み込む。
・1行分のデータを3つの商品に分割する
・各商品の部門文字よりA/Bの何れの出力ファイルに出力するかを判定する
・出力ファイル用のバッファへ蓄積(商品数のカウントアップ)
・出力バッファに3個分データが蓄積されたら、出力ファイルの書き出し
・入力ファイルが終端に達したら、それぞれの出力ファイルに商品数を書き出してファイルを閉じる
それに付いては他の方が書かれたものですよね?
自分で書かれたものは無いのでしょうか?
そして、挙げられた項目の内どこの部分なら書けますか?
タマキチ さんが書きました:このときに、どの処理をサブ関数化するか?
どういった情報を引数にするか?
どういった場合にエラーが発生しうるか?
エラーを気にせず、関数化しなければ書けるという事でよろしいですか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

タマキチ

Re: C言語の演習問題(難解)の模範解答お願いしますm(__)m

#5

投稿記事 by タマキチ » 14年前

相互リンクは完了いたしました。
ご迷惑をお掛けして申し訳ございません。
申し訳ございませんが、自分で書いたプログラムは接合性がなく、とてもお見せできるものではありません。
上から下に流れるような単調なプログラムはコーティングできるのですが、こういった複雑なプログラミングの組み立てや接合性が表現できず
大変困っております。いかんせん、問題集には回答がないので模範解答を拝見させていただき、そのソースコードを読んで理解を深めたいと思いまして質問させていただきました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: C言語の演習問題(難解)の模範解答お願いしますm(__)m

#6

投稿記事 by softya(ソフト屋) » 14年前

タマキチ さんが書きました:相互リンクは完了いたしました。
ご迷惑をお掛けして申し訳ございません。
申し訳ございませんが、自分で書いたプログラムは接合性がなく、とてもお見せできるものではありません。
上から下に流れるような単調なプログラムはコーティングできるのですが、こういった複雑なプログラミングの組み立てや接合性が表現できず
大変困っております。いかんせん、問題集には回答がないので模範解答を拝見させていただき、そのソースコードを読んで理解を深めたいと思いまして質問させていただきました。
それでも理解度などを把握したいので、ソースコードをぜひご提示下さい。
読み込みに使う構造体や読み込み処理など部分的な開示でもかまいません。
理解度が分かりませんので、先頭部分の読み込み部分のコードでさえも現状のタマキチさんには理解が困難かもしれません。

【追記】
例えば下記サイトの練習問題ですが、解答を見ずに何番まで解けそうですか?
「C言語 練習問題」
http://www.geocities.jp/kenji_y0328/crenshu/index.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

たいちう
記事: 418
登録日時: 14年前

Re: C言語の演習問題(難解)の模範解答お願いしますm(__)m

#7

投稿記事 by たいちう » 14年前

> 大変困っております。いかんせん、問題集には回答がないので模範解答を拝見させていただき、

その問題集にこだわる理由は?
もっと自分にあった本なりサイトなりを探した方が有意義ではないですか?

ところで、マルチポスト、問題の出典を書かない、
途中経過を書かないし欲しがらない、模範解答のみを求める。
課題の提出期限が迫っている状況に良く似ていますね。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: C言語の演習問題(難解)の模範解答お願いしますm(__)m

#8

投稿記事 by Dixq (管理人) » 14年前

>自分で書いたプログラムは接合性がなく、とてもお見せできるものではありません。

勉強している最中なのだから、間違っているプログラムを見せる事は全く恥ずかしい事ではないと思いますよ。
むしろどこを間違って理解しているのかが、こちらで分からないと正確な回答が出来ないです。
プログラムの質問をする時、今書いているコードを提示するのは重要なことです。

問題集をしているということは、解くのはこの問題自体ではなくても良いのですよね?
もう少し少しずつ分解して解いた方が良いと思うので、似たような問題でも良いのでしょうか?

softyaさんと重複しますが、

・出力ファイル2つ分を開く
・ファイルから一行単位に読み込む。
・1行分のデータを3つの商品に分割する
・各商品の部門文字よりA/Bの何れの出力ファイルに出力するかを判定する
・出力ファイル用のバッファへ蓄積(商品数のカウントアップ)
・出力バッファに3個分データが蓄積されたら、出力ファイルの書き出し
・入力ファイルが終端に達したら、それぞれの出力ファイルに商品数を書き出してファイルを閉じる

これのどこまで出来ますか?

11 22 33
111 222 333

のようなテキストデータが入っているファイルからデータを取得する事は出来ますか?

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: C言語の演習問題(難解)の模範解答お願いしますm(__)m

#9

投稿記事 by Dixq (管理人) » 14年前

タマキチさん
お伝えしたいことがありますので、 dixqhp@gmail.com こちらにご連絡頂けないでしょうか?
こちらに書くと差し支えありますので、メールにてご連絡いただけると幸いです。

閉鎖

“C言語何でも質問掲示板” へ戻る