2014-03-06 34 views
0

打印非複數,和除法我不知道如何將這種提示的標準適用於我的代碼: 例如: 根2 64 - 9 7 上面的例子將產生8和2.當退出單詞作爲操作員輸入時,程序應該結束。你的程序不應該處理複雜的數字,而是顯示一條錯誤信息(即「請等待PerlCalculator 2.0版本」)。此外,你的程序應該由0,顯示劃分錯誤等Perl的計算器,通過0錯誤

這裏是我的代碼至今:

#!/usr/bin/perl 
use strict; 
use warnings; 


print "enter a symbol operation symbol to and two numbers to make a calculation"; 

my $input = <STDIN>; 

my ($operation, $x, $y) = split ' ', $input; 
#print "$operation\n"."$x\n"."$y\n"; 
if($operation eq "+"){ 
my $z = ($x + $y); 
print "$z\n"; 
print "$operation\n"."$x\n"."$y\n"; 
} 
elsif ($operation eq "-"){ 
my $z = ($x - $y); 
print "$z\n"; 
print "$operation\n"."$x\n"."$y\n"; 
} 
elsif ($operation eq "*"){ 
my $z = $x * $y; 
print "$z\n"; 
print "$operation\n"."$x\n"."$y\n"; 
} 
elsif ($operation eq "/"){ 
my $z = $x/$y; 
print "$z\n"; 
print "$operation\n"."$x\n"."$y\n"; 
} 
elsif ($operation eq "%"){ 
my $z = $x % $y; 
print "$z\n"; 
print "$operation\n"."$x\n"."$y\n"; 
} 
elsif ($operation eq "pow"){ 
my $z = $x ** $y; 
print "$operation\n"."$x\n"."$y\n"; 
print "$z\n"; 
} 
elsif ($operation eq "root"){ 
my $z = $x ** (1/2); 
my $i = $y ** (1/2); 
print "$z\n"; 
print "$i\n"; 
print "$operation\n"."$x\n"."$y\n"; 
} 
else{ 
print "$operation\n"."$x\n"."$y\n"; 
print " you messed up"."$operation\n/"; 
} 

打印字符串都在那裏進行故障排除,這樣我可以,如果if見語句採用正確的整數

+0

1.你不會在除法運算分母2.檢查零您沒有退出操作被處理,所以你的程序將沒有盡頭 – user4035

+0

什麼是你的問題? – user4035

回答

0

處理除零錯誤。

elsif ($operation eq "/") { 
    eval { 
     my $z = $x/$y; 
     print "$z\n"; 
     print "$operation\n" . "$x\n" . "$y\n"; 
    }; 

    if ([email protected]) { 
     warn "Error: Division by zero!!"; 
    } 
}