Created by
sironekotoro
| #!/usr/bin/env perl
use strict;
use warnings;
# Perl入学式 2018 第4回 練習問題
# https://github.com/perl-entrance-org/workshop-2018/blob/master/4th/slide.md
# 練習問題(simple_calc.pl)
# 次のような機能を持つコードを,
# simple_calc.plという名前で作成しよう.
# 2つの引数の和を計算するaddと同様に, 2つの引数の差を計算するmin, 積を計算するmul,
# 商を計算するdivというサブルーチンを作ってみよう.
#
# これらのサブルーチンが正しく実装できているか
# (与えた2つの引数に対して, 適切な値を返すか)を
# 確認するコードを書いてみよう
# 2つの引数を受け取り, その和を返すサブルーチンadd
sub add {
my ( $left, $right ) = @_;
return $left + $right;
}
# サブルーチンaddの確認コード
if ( add( 2, 5 ) == 7 ) {
print "ok:add subroutin test\n";
}
else {
print "NG:add subroutin test\n";
}
# 2つの引数を受け取り, 第一引数から第二引数を引いた
# 差を返すサブルーチンmin
sub min {
my ( $left, $right ) = @_;
return $left - $right;
}
# サブルーチンminの確認コード
if ( min( 2, 5 ) == -3 ) {
print "ok:min subroutin test\n";
}
else {
print "NG:min subroutin test\n";
}
# 2つの引数を受け取り, 積を返すサブルーチンmul
sub mul {
my ( $left, $right ) = @_;
return $left * $right;
}
# サブルーチンmulの確認コード
if ( mul( 2, 5 ) == 10 ) {
print "ok:mul subroutin test\n";
}
else {
print "NG:mul subroutin test\n";
}
# 2つの引数を受け取り, 第一引数を第二引数で
# 割った商を返すサブルーチンdiv
sub div {
my ( $left, $right ) = @_;
# 第二引数が0の場合にはエラーメッセージを返す
if ( $right == 0 ) {
return 'divided by zero';
}
return $left / $right;
}
# サブルーチンdivの確認コード その1
if ( div( 2, 5 ) == 0.4 ) {
print "ok:div subroutin test(normal)\n";
}
else {
print "NG:div subroutin test(normal)\n";
}
# サブルーチンdivの確認コード その2
if ( div( 2, 0 ) eq 'divided by zero' ) {
print "ok:div subroutin(divided by zero)\n";
}
else {
print "NG:div subroutin(divided by zero)\n";
}
|