質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

2951閲覧

ファイルを読み込んで人数を表示するためのプログラム

peke

総合スコア13

Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2016/05/27 02:21

編集2016/05/27 08:23

私は数週間前からプログラミングを勉強し始めたのですが、まだ基礎もきちんとは把握できていません。

ご協力よろしくお願いいたします。

問題文は以下の通りです。

このファイルは CSV フォーマットで書かれた男女の名簿のデータを集めたもので, 先頭の数行は次のようになっている。

飯尾美樹,いいおみき,F
乾圭,いぬいけい,M
浦西史織,うらにししおり,F
川俣晃太郎,かわまたこたろう,M
榊原光希,さかきばらこうき,M
塩谷彩花,しおたにあやか,F
清水紳吾,しみずしんご,M
杉本昂史,すぎもとたかし,M
須﨑恵美,すざきめぐみ,F
鈴木香織,すずきかおり,F
高倉汀,たかくらなぎさ,F

カンマ "," で区切られたデータは,先頭から氏名,氏名の読みがな,性別(男は 'M', 女は 'F') となっている。

このファイルを読み込んで,全員の人数を表示するプログラムを書きなさい。 次のサンプル出力をクリックすると,結果が表示される。

プログラムの仕様と処理の流れは次のようにする。

データファイルのファイル名を,コマンドライン引数から受け取る。 データ行の数を数えるカウンタをゼロに設定する。 ファイルをオープンする。 ファイルを1行ずつ読み込むためのループを作る。 カウンタを増やす。 ループが終了したらファイルをクローズする。 上のサンプル出力のように, カウンタの値を "全部で xx人" のように出力する。 最後は改行すること.

datafile = ARGV[0]
count = 0
file.each_line do |line|
( )
end
end
puts "全部で #{count}人"

ここまでは打ってみましたが
( )の中に何かが入るのはわかるのですが、なにを入れたらいいかわかりません。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yohira0616

2016/05/27 02:46

「自分ではいくら考えても、教科書を読んでもネットで検索してもわからない」とありますが、何がわからないのかもう少し具体的にしてもらえますか。
ozwk

2016/05/27 02:58

「ネットで検索してもわからない」とありますが例えば何と検索したんですか?
matobaa

2016/05/27 03:02 編集

いま時点でどういう状況かを教えてください。例えば「Windowsメモ帳を開いたけど何を書いたらいいのかわからない」「開発環境は使えるようになっているけど、左側がからっぽ」「いちおう書いてみたけど、実行しようとするとなんだか英語の文字列がでてきて意味が分からない」「コマンドまたはファイル名が違います、というメッセージが出ます」とか。
peke

2016/05/27 03:03

なにをどう書けばいいのかわからず なにも書けないで止まってしまっています。 プログラムが書ければ実行できる様にインストールなどは完了しており環境は整っています。
matobaa

2016/05/27 03:09 編集

教科書は何を使っていますか? 出版社とタイトル、わかればISBN番号を教えてください。
peke

2016/05/27 03:09

教科書は「楽しいプログラミング」という株式会社インプレスR&Dというものを使っています
guest

回答1

0

ベストアンサー

プログラムを書くにあたって、できるだけ小さな処理の単位に分けることができれば、必要な結果を求めることはわりとできるようになります。
*なぜなら、最小単位の処理は検索をかけやすいから。
####データファイルのファイル名を,コマンドライン引数から受け取る。
引数の受け取り ruby で検索

####データ行の数を数えるカウンタをゼロに設定する。
変数の初期化 ruby で検索

####ファイルをオープンする。
ファイルオープン ruby で検索

####ファイルを1行ずつ読み込むためのループを作る。
ループ処理 ruby で検索

####カウンタを増やす。
変数の代入 ruby で検索(またはループ処理で合わせて実施できるかを検討)

####ループが終了したらファイルをクローズする。
ファイルクローズ ruby で検索

####上のサンプル出力のように, カウンタの値を "全部で xx人" のように出力する。 最後は改行すること.
表示 ruby で検索
改行 挿入 ruby で検索

検索結果は確認していませんが、おおよそ継ぎ接ぎで、結果を求められると思います。

ある程度理解が進めば、次は最適化するための仕組みや効率化するための手法を考えればよいですが、まずは模倣からですかね。

投稿2016/05/27 03:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

peke

2016/05/27 04:04

ありがとうございます! やってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問