본문 바로가기

Perl

[Perl] hanoi sub hanoi {my ($mai , $x, $y, $z) =@_;if ($mai > 0){hanoi($mai-1 , $x , $z , $y );print "move", $mai ,"from", $x ,"to", $z ,"\n";hanoi($mai-1 , $y , $x , $z );}}hanoi(3, "A", "B", "C"); 상기의 결과에 더해, 각행의 선두에 수순의 순번수를 출력하도록 변경해라. use strict;use warnings; my $i = 0; sub hanoi {my ($mai , $x, $y, $z) =@_;if ($mai > 0){hanoi($mai-1 , $x , $z , $y );print ++$i;print "move", $mai ,"from", $x ,"to", $z ,.. 더보기
[Perl] 재귀함수 숫자를 한개 입력하여, 그 숫자의 계승을 계산하는 프로그램을 재귀(?)를 사용하여 만들을것.(3-A) (再帰呼び出し:재귀 호출:Recursive Call)자기자신을 호출하는 것. [1부터 10까지의 숫자를 합계한다. ] use strict;use warnings; my $num;my $cal = 0; print "Please enter the number. "; $num = ;chomp $num; Factorial ($num);print "result : " . $cal . "\n"; sub Factorial {$num = shift; $cal += $num;$num--;if ($num > 0) {Factorial ($num);}} 더보기
[Perl] 홀수 짝수 Subroutine 전달된 1개의 인수의 짝수홀수를 조사하여, 홀수라면 [Odd], 짝수라면 [Even]이라고 출력하는 서브루틴을 작성하여, http://seungngil.tistory.com/entry/Perl%ED%99%80%EC%88%98-%EC%A7%9D%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0의 과제를 그 서브루틴을 사용해도록 변경하여라. use strict;use warnings; my $num; print "Please enter the number. "; $num = ;chomp $num; OddEven ($num); sub OddEven {my $num = shift;for (my $i = 1; $i 더보기
[Perl] Subroutine parameter 전달된 2개의 인수의 차(의 절대값)을 값으로서 되돌려주는 서브루틴을 작성해여라. 동작을 확실히 하기위해, 마땅한 호출을 해보자 use strict;use warnings; my $num1;my $num2; print "Please enter the 2 number. "; $num1 = ;chomp $num1;$num2 = ;chomp $num2; print "result : " . CalAbsolute ($num1, $num2) . "\n"; sub CalAbsolute {my ($num1, $num2) = @_; return (abs($num1 - $num2));} 더보기
[Perl] Subroutine 전달된 한개의 인수의 절대값을 값으로서 되돌려주는 서브루틴을 작성하여, http://seungngil.tistory.com/entry/perl-%EC%A0%88%EB%8C%80%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B0를 그 서브루틴을 사용하게 변경하여라. use strict;use warnings; my $str; while (1) { print "Please enter the number.(Enter exit at the end) "; $str = ; chomp $str; if ($str eq "exit" || $str eq "") { last; } if ($str =~ /[a-zA-Z]/) { print "Not number.\n"; next; } print (Absolute.. 더보기
[Perl]STDIN, while, for, if http://seungngil.tistory.com/entry/Perlfor-if에서, 입력하는 숫자를 10개가 아닌, 입력이 없어질때까지로 할것. 또한, while문, for문, if문은 각각 하나씩 사용하게된다. use strict;use warnings; my $num;my $result;my @array = (2, 3, 4, 5, 6); for (;;) {print ("Please enter the number.(Enter exit at the end) ");$num = ;chomp $num; if ($num =~ /[a-zA-Z]/ || $num eq "") {exit;} $result = ($num . " = ");my $j = 0;while ($j < scalar(@array)) {$resu.. 더보기
[Perl]for, if http://seungngil.tistory.com/entry/PerlFor-Foreach를, for문은 2개, if문은 1개를 사용한 프로그램에서 풀어볼것. use strict;use warnings; my @num;my @array = (2, 3, 4, 5, 6);my $result; for (my $i = 0; $i < 10; $i++) {print ("Please enter the number.(", $i + 1, ") ");$num[$i] = ;chomp $num[$i]; $result .= ($num[$i], " = ");if ($num[$i] =~ /[^a-zA-Z]/ || $num[$i] ne "") {for (my $j = 0; $j < scalar(@array); $j++) {$resu.. 더보기
[Perl]if 비교기호 if 문장의 판정은 수의 비교와 문자열 비교를 수행하지만, 그 양자에서 표현이 다릅니다.수치문자열의미$ x == $ y$ x eq $ y동일한 ( eq ual)$ x! = $ y$ x ne $ y같지 않음 ( N OT E qual)$ x $ y$ x gt $ y$ x는 $ y보다 ( g reater T han)$ x = $ y$ x ge $ y$ x는 $ y 이상 ( g reater than E qual to)$ x $ y$ x cmp $ y$ x와 $ y가 같으면 0 $ x보다 $ y가 작 으면 -1 $ x보다 $ y가 크면 1 ( C O MP are) 더보기
[Perl]For, Foreach http://seungngil.tistory.com/entry/Perl%EB%B0%B0%EC%97%B4 문제에, 입력한 숫자의 수를 전부 10개로 하여, 각각에 대해 떨어질수있는지를 판단할것. 또한 그때, 2,3,4, 에 더하여 5와6에도 값이 떨어질 수 있는지를 출력하시오. use strict;use warnings; my @num;my @array = (2, 3, 4, 5, 6); for (my $i = 0; $i < 10; $i++) {print ("Please enter the number.(", $i + 1, ") ");$num[$i] = ;chomp $num[$i];# exceptionif ($num[$i] =~ /[a-zA-Z]/ || $num[$i] eq "") {print ("Not nu.. 더보기
[Perl]배열 숫자를 하나 입력하여, 그 숫자를 출력한다. 거기에 그 숫자가 2,3,4로 나누어떨어질 수 있는지를 출력하시오.예를들어, 하기와같은 출력한다. 16 = [2]OK = [3]NG = [4]NG use strict;use warnings; my $num;my @array = (2, 3, 4); print ("Please enter the number. ");$num = ;chomp $num; # exceptionif ($num =~ /[a-zA-Z]/ || $num eq "") {print "Not number.\n";exit;} print ($num, " = ");foreach my $elem (0..$#array) {print ("[", $array[$elem], "]", (($num % $array[$.. 더보기