画面をドラッグ&コピーしてお使い下さい。
(半角スペースはレイアウト上のもので、プログラム上は無視されます。)
P.6
# sum_01a.pl
# for を用いたループ計算(1)
# データの個数
$num = 6 ;
# データの定義
@ax = (55, 32, 47, 91, 60, 28) ;
# 合計の計算
for (1..$num)
{
$sum += $ax[$k] ;
++$k ;
}
# 平均の計算
$ave = $sum/$num ;
# 結果の表示
print "\n 合計 = $sum \n 平均 = $ave \n" ;
P.11
# sum_01b.pl
# for を用いたループ計算(2)
# データの定義
@ax = (55, 32, 47, 91, 60, 28) ;
# データの個数
$num = @ax ;
# 合計の計算
for $k (0..$num-1)
{
$sum += $ax[$k]
}
# 平均の計算
$ave = $sum/$num ;
# 結果の表示
print "\n 合計 = $sum
平均 = $ave \n"
P.14
# sum_01c.pl
# for を用いたループ計算(3)
# データの定義
@ax = qw (55 32 47 91 60 28) ;
# 合計の計算
foreach (@ax) {$sum += $_}
# 平均の計算
$ave = $sum/@ax ;
# 結果の表示
print "\n 合計 = $sum
平均 = $ave \n"
P.17
# sum_02a.pl
# while を用いたループ計算(1)
# データの定義
@ax = qw (55 32 47 91 60 28) ;
# データの個数(カウンタ用)
$num = @ax ;
# 合計の計算
while ($num--) {$sum += $ax[$num]}
# 平均の計算
$ave = $sum/@ax ;
# 結果の表示
printf "\n 合計 = %d \n 平均 = %.1f \n", $sum, $ave
P.19
# sum_02b.pl
# while を用いたループ計算(2)
# データの定義
@ax = qw (55 32 47 91 60 28) ;
# 合計の計算
while ($k < @ax)
{$sum += $ax[$k] ; ++$k}
# 平均の計算
$ave = $sum/@ax ;
$ave2 = sprintf "%.1f", $ave ;
# 結果の表示
print "\n 合計 = $sum
平均 = $ave2 \n"
P.23
# sum_03a.pl
# 画面からの入力(1)
# データの個数の入力
print "\n 個数:" ;
$num = <STDIN> ;
chomp $num ;
print "\n" ;
# 合計の計算
for $k (1..$num)
{
print " ($k/$num):" ;
$ax = <STDIN>;
chomp $ax ;
$sum += $ax
}
# 平均の計算
$ave = $sum/$num ;
$ave2 = sprintf "%.1f", $ave ;
# 結果の表示
print "\n 合計 = $sum
平均 = $ave2 \n"
P.26
# sum_03b.pl
# 画面からの入力(2)
# データの入力と合計の計算
while ($ax ne "\n")
{
++$num ;
print "\n $num:" ;
$ax = <STDIN>;
$sum += $ax
}
# 平均の計算
--$num ;
$ave = $sum/$num ;
$ave2 = sprintf "%.1f", $ave ;
# 結果の表示
print "\n ($num 個 / 合計 $sum / 平均 $ave2) \n"
P.29
# sum_03c.pl
# 画面からの入力(3)
while (1)
{
# データの入力
++$num ;
print "\n $num:" ;
$ax = <STDIN>;
# 終了判断
if ($ax eq "\n") {last}
chomp $ax ;
# 合計の計算
$sum += $ax ;
# 平均の計算
$ave = $sum/$num ;
$ave2 = sprintf "%.1f", $ave ;
# 結果の表示
print "\n (合計 $sum / 平均 $ave2) \n"
}
# 終了のメッセージ
print "\n 計算終了 \n"
P.34
# sum_04a.pl
# 外部ファイルの利用(1)
# データの読み込み
print "\n ファイル名:" ;
$name = <STDIN> ;
chomp $name ;
open R, "$name" ;
for (<R>) {push @ax, split}
# 合計の計算
foreach (@ax) {$sum += $_}
# 平均の計算
$num = @ax ;
$ave = $sum/$num ;
$ave2 = sprintf "%.1f", $ave ;
# 結果の表示
print "\n (個数 $num / 合計 $sum / 平均 $ave2) \n" ;
# 結果の追加書き込み
open A, ">>$name" ;
print A "\n個数 $num \n合計 $sum \n平均 $ave2 \n"
P.39
# sum_04b.pl
# 外部ファイルの利用(2)
# データの読み込み
print "\n ファイル名:" ;
$name = <STDIN> ;
chomp $name ;
open (R, "$name.txt") ;
for (<R>)
{
push @ax, split if /^\d/ ;
@ax = grep /\d/, @ax
}
# 合計の計算
for (@ax) {$sum += $_}
# 平均の計算
$num = @ax ;
$ave = $sum/$num ;
$ave2 = sprintf "%.1f", $ave ;
# 結果の表示
print "\n (個数 $num / 合計 $sum / 平均 $ave2) \n" ;
# 結果を別ファイルで保存
open (R, "$name.txt") ;
@bx = <R> ;
open (W,">$name-2.txt") ;
print W @bx ;
print W "\n個数 $num \n合計 $sum \n平均 $ave2 \n" ;
print "\n「$name-2.txt」で保存しました。\n"