第4章 子程序习题
2016-05-14 07:44
190 查看
1、 写一个名为total的子程序,它可以返回给定列表中数字相加的总和。
2、 使用之前程序中的子程序,计算从1加到1000的总和
3、写一个名为&above_average的子程序,当给定一个包含多个数字的列表时,返回其中大于这些数平均值的数。
4, 写一个名为greet的子程序,当给定一个人名作为参数时,打印出欢迎他的信息,并告诉他前一个来宾的名字:
按照语句的顺序,它应该打印出:
脚本:
5、修改前面这个程序,告诉所有新来的人之前已经迎接了哪些人:
按照语句的顺序,它应该打印出:
脚本:
#!/usr/bin/perl my @fred = qw/ 1 3 5 7 9 /; my $fred_total = total (@fred); print "The total of \@fred is $fred_total.\n"; print "Enter some numbers on separate lines: "; my $user_total = total(<STDIN>); print "The total of those numbers is $user_total.\n"; sub total{ my $sum; foreach (@_){ $sum += $_ ; } $sum; }
2、 使用之前程序中的子程序,计算从1加到1000的总和
#!/usr/bin/perl print "The summary of 1 to 1000 is equal to ".total(1..1000)."\n"; sub total{ my $sum; foreach (@_){ $sum += $_ ; } $sum; }
3、写一个名为&above_average的子程序,当给定一个包含多个数字的列表时,返回其中大于这些数平均值的数。
#!/usr/bin/perl my @fred =above_average(1..10); print "\@fred is @fred\n"; print "(Should be 6 7 8 9 10)\n"; my @barney = above_average(100, 1..10); print "\@barney is @barney\n"; print "(Should be just 100)\n"; sub total{ my $sum; foreach (@_){ $sum += $_ ; } $sum; } sub average{ if (@_ == 0){return} my $count = @_; my $sum = total(@_); $sum/$count; } sub above_average{ $average = average(@_); my @above_number; foreach my $element(@_){ if ($element > $average){ push @above_number, $element; } } @above_number; }
4, 写一个名为greet的子程序,当给定一个人名作为参数时,打印出欢迎他的信息,并告诉他前一个来宾的名字:
greet( "Fred" ); greet( "Barney" );
按照语句的顺序,它应该打印出:
Hi Fred! You are the first one here! Hi Barney! Fred is also here!
脚本:
#!/usr/bin/perl use 5.010; #state这个特性是从perl5.10开始引入的 greet ( "Fred" ); greet ( "Barney" ); greet ( "Alice" ); sub greet { state $last_person; my $name = shift; print "Hi $name!"; if (defined $last_person){ print "$last_person is also here!\n"; }else{ print "You are the first one here!\n"; } $last_person = $name; }
5、修改前面这个程序,告诉所有新来的人之前已经迎接了哪些人:
greet("Fred"); greet("Barney"); greet("Alice"); greet("Betty");
按照语句的顺序,它应该打印出:
Hi Fred!You are the 4000 first one here! Hi Barney! I've seen: Fred Hi Alice! I've seen: Fred Barney Hi Betty! I've seen: Fred Barney Alice
脚本:
#!/usr/bin/perl
use 5.010;
greet("Fred"); greet("Barney"); greet("Alice"); greet("Betty");
sub greet{
state @list;
my $name = shift;
print "Hi $name!";
if (@list){
print "I've seen:@list \n";
}
else{
print "You are the first one here!\n";
}
push @list, $name;
}
相关文章推荐
- 小代码
- Spring Boot使用自定义的properties
- Keeplived 详解
- Spring Boot使用自定义的properties
- 小代码 java
- 互联网
- Android调用WPS
- LINUX 内核导论
- CentOS 6.7 minimal开启xdmcp远程桌面登录
- The servlets .. are both mapped to the url-pattern [/ControllerServlet] which is not permitted
- 陶哲轩实分析-第4章-整数和比例数
- 色情倾向的新闻标题识别
- LVS 详解
- iOS 并行编程:GCD Dispatch Queues
- s5pv210 datasheet_system_power management
- xgboost 分布式部署教程
- OpenThread is an Open Source Implementation of Thread IoT Networking Protocol
- 新浪微博第三方登录
- Linux 下安装配置 JDK7
- spark install