جایی برای نوشتن

بایگانی
آخرین نظرات
۰۵آذر
palindrome کلمه ایست که از ابتدا و انتها به یک صورت خوانده شود . به عنوان مثال radar و یا nan .

تکه کد زیر کلمات را از ورودی استاندارد می خواند و سپس کلمه های palindrome را در خروجی استاندارد چاپ می کند . با استفاده از سوییچ v- می توانید کلمات غیر palindrome را در خروجی استاندارد چاپ کنید .

#!/usr/local/bin/perl
#
# Read from standard input and check for
# palinrome. use -v option to check
# for non-palindrome words.
# Enter one word per line.
#
use strict;
use warnings;

# check for non-palinrome words.`
my $vflag = 0;
my $prog_name = __FILE__;

sub palindrome {
$_ = shift @_;
my @arr = split "", $_;

return 0 if @arr <= 1;

my ($i, $j) = (0, $#arr);

while ($i < $j) {
return 0 if $arr[$i] ne $arr[$j];
$i++;
$j--;
}

return 1;
}

#
# Usage function. Never returns.
#
sub usage {
print STDERR "usage: $prog_name [-h -v]\n",
"-h:show this help\n",
"-v:show non-palindrome words\n",
"Note: -->Read words from standard input<--\n";
exit 1;
}

foreach (@ARGV) {
if ($_ eq "-h") {
usage();
# Unreachable!
}
elsif ($_ eq "-v") {
$vflag = 1;
shift;
}
}

my $result;
while (<STDIN>) {
chomp;
$result = palindrome $_;
if ($vflag) {
print "$_\n" if !$result;
}
else {
print "$_\n" if $result;
}
}

 نمونه تست برنامه را مشاهده کنید :

# cat file1
man
too
ooo
radr
baba
nan
dad
# cat file1 | ./pal.pl
ooo
nan
dad
# cat file1 | ./pal.pl -v
man
too
radr
baba
۹۳/۰۹/۰۵ موافقین ۰ مخالفین ۰
...:::... محسن ...:::...

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی