pimentの日記

2006-05-21

[][]Hello, world" 12:51

練習問題 1-1

"Hello, world" プログラムタイプ入力して実際に動かしてみましょう。

Perl
print "Hello, world\n" ;
Ruby
puts "Hello, world" 
print "Hello, world\n" 
print "Hello, ","world" , "\n"


問題 2-1

半径12.5の円の演習の長さを求めるプログラムを書いてください。

Perl
my $r = 12.5 ;
my $pi = 3.141592654 ;
print $r * 2 * $pi ;
ruby
r = 12.5 
PI = 3.141592654 
print r * 2 * PI 

問題 2-2

ユーザから入力された半径の円の演習の長さを求めるプログラムを書いてください。

Perl
#!/usr/bin/perl 

use warnings ;
use strict ;

print "Please input a radius \n r = ";

chomp( my $r = <STDIN> ) ;
my $pi = 3.141592654 ;

print $r * 2 * $pi ;
ruby
#!ruby -w 

PI = 3.141592654 

print "Please input a radius \n r = "
r = gets.chomp ;
print r * 2 * PI 

とやったら、

Please input a radius
 r = 12.5
12.512.512.512.512.512.5

こうなった。Perlでの文字列繰り返し演算子(x)はRubyでは文字列変数に対して、*を使えば同じ動きをするみたい。文字列から数値への変換が必要らしい。浮動小数点への変換を行う。(to_f)。

#!ruby -w 

PI = 3.141592654 

print "Please input a radius \n r = "
r = gets.chomp.to_f ;
print r * 2 * PI 

問題 2-3

問題2-2で0より小さい値が入力された場合には、0を半径として使用する。

Perl
#!/usr/bin/perl 

use warnings ;
use strict ;

print "Please input a radius \n r = ";

chomp( my $r = <STDIN> ) ;
my $pi = 3.141592654 ;

if ( $r < 0 )
{
    print "r < 0\n" ;
    $r = 0 ;
}

print $r * 2 * $pi ;
ruby
#!/usr/bin/ruby -w 

PI = 3.141592654 

print "Please input a radius \n r = "

r = gets.chomp.to_f 

if r < 0 
then
    print "r < 0\n" 
    r = 0 
end

print r * 2 * PI 

問題 2-4

プロンプトから2個の数を別々に読み込んでそれらの積を表示するプログラムを書いてください。

Perl
#!/usr/bin/perl 

use warnings ;
use strict ;

print "Please input 2 value \n";
print "A = ";
chomp( my $a = <STDIN> ) ;
print "B = ";
chomp( my $b = <STDIN> ) ;

print "A * B = ".($a*$b) ;
ruby
#!/usr/bin/ruby -w 

print "Please input 2 value \n"
print "A = "
a = gets.chomp.to_f ;

print "B = "
b = gets.chomp.to_f ;

print "A * B = ",( a * b ).to_s  

問題 2-5

プロンプトから文字列と数を読み込んで、文字列を数の回数だけ繰り返し出力するプログラムを書いてください。

Perl
#!/usr/bin/perl 

use warnings ;
use strict ;

print "Please input a String and repeat times\n";
print "String = ";
chomp( my $a = <STDIN> ) ;
print "repeat times = ";
chomp( my $b = <STDIN> ) ;

print "String x times = ".( $a x $b ) ;
ruby
#!/usr/bin/ruby -w 

print "Please input a String and repeat times\n"
print "String = "
a = gets.chomp ;
print "repeat times = ";
b = gets.chomp.to_f ;

print "String x times = ",( a * b ) ;

OrionOrion2007/06/12 07:12http://fd487d203f640fbf2d33c0fc28515aa1-t.aoswav.info <a href="http://fd487d203f640fbf2d33c0fc28515aa1-h.aoswav.info">fd487d203f640fbf2d33c0fc28515aa1</a> [url]http://fd487d203f640fbf2d33c0fc28515aa1-b1.aoswav.info[/url] [url=http://fd487d203f640fbf2d33c0fc28515aa1-b2.aoswav.info]fd487d203f640fbf2d33c0fc28515aa1[/url] [u]http://fd487d203f640fbf2d33c0fc28515aa1-b3.aoswav.info[/u] 3fcc621abccddfc620568e2850cf1aed

trotrtrotr2007/06/23 09:34円周率はMath::PIを使った方がいいかもしれません