perl初心者ですが、プログラム作成で行き詰ってしまいました。
perl初心者ですが、プログラム作成で行き詰ってしまいました。
参考書を読みあさり、色々とググってみたのですが、どうしても組み立てられません。知識のある方ご回答よろしくお願いします。
一つ目は:
英語の文章を記憶したファイルを指定し,その内容を読み込み,文章内に含まれる単語を出現頻度の降順で表示させるプログラムを作成すること
「1位:・・・(・・回)」
「2位:・・・(・・回)」
...
なお,一つの単語が二行にまたがることはないものとする。
二つ目は:
テストの成績データを記憶したCSV ファイルを指定し,その内容を読み込み,各学生の総合点と順位,各科目の最高点,最低点,平均点を記憶したCSVファイルを書き出すプログラムを作成せよ。
なお,入力用のファイルと出力用のファイルはキーボード入力で指定するものとする。
また,異なる学生数および科目数のCSV ファイルを読み込んでも正しく動作するようにすること。
卒業のかかったレポートで、この二つを完成させないと先に進めないのです。
本当に図々しい質問で大変申し訳ありません。知識のある方どうかご教授ねがいます。
*ひとつめに関しては:
open (FILE, 'perl.txt') or die "$!";
while (my @array = <FILE>){
foreach (@array) {
$count{ $_ }++ ;
}
@rank = sort { $count{ $b } <=> $count{ $a } } keys %count ;
foreach (0..$#rank) {
$kagi = $rank[ $_ ];
$kaisu = $count{ $kagi } ;
print $_+1, "位:$kagi($kaisu 回)\n" ;
}
}
のように書いたところで行き詰ってしまいました。
二つ目は:
open (FILE, 'data.txt')
chomp(@data = <FILE>) ;
$i= 1 ; # 行番号を記憶する変数
for (@data) { # 各行に対して以下を繰り返す.
# 各行の数値を配列の要素として記憶する.
@list = split(/,/, $_) ;
# サブルーチンを呼び出して,結果を表示
print "$i行目:" ;
print "数値:",&cardinality(@list),"個," ;
print "最大値:",&maximum(@list),"," ;
print "最少値:",&minimum(@list),"," ;
print "合計:",&summation(@list),"," ;
print "平均:",&average(@list),"\n" ;
# 行番号の更新
$i++ ;
}
とまで書き、もう何が何だか訳わからなくなってしまいました。
お礼
再度回答ありがとうございました。 参考にさていただきます。