`
rich8w
  • 浏览: 178467 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[转] ruby学习一个综合小练习

阅读更多
在rubystudy.com转的时候,找到个对现阶段的我来说不错的Ruby实例。
有点学C语言时候的感觉了!特此收藏!

#  test.rb 求50以内的素数   
$arr=[ ] 							#建立一个全局数组  $arr   
$arr[0]=2
   
def add_prime(n)					#定义方法  将 n以内的奇素数加入$arr   
	3.step(n,2){|num|$arr<<num if is_prime?(num) }        
end

def	is_prime?(number)				#定义方法  判断一个数是否是素数   
	j=0								#数组下标   
	while  $arr[j] * $arr[j] <=number   
		return false  if  number  %  $arr[j] ==0   
		j+=1   
    end
	return true  
end

add_prime(50)   
print $arr.join(", "),"\n"			#转换成字符串输出



转自http://www.rubyidea.com/bbs/viewthread.php?tid=152
附件中的<Ruby语言中文教程>是张开川写的入门教程,简单易懂,非常适合入门,内含实例源码,这个实例就是他写的……
分享到:
评论
4 楼 rich8w 2009-09-09  
#数组运算

aaaa=[" aa ",4,5," bb "]
bbbb=[4,1,3,2,5]

print aaaa + bbbb    ,"\n"
print aaaa * 2        ,"\n"
print bbbb - aaaa    ,"\n" 

#并运算;交运算
print aaaa | bbbb   ,"\n" 
print aaaa & bbbb    ,"\n" 

#排序;倒置
print bbbb.sort    ,"\n"
print aaaa.reverse    ,"\n" 
3 楼 rich8w 2009-09-09  
#增加、删除数组元素
#Ruby的数组大小是动态的,你能够随时增加、删除数组元素。 

arr=[4,5,6]     
#print arr.join(", "),"\n"  意思是:将数组 arr转换成字符串输出,用", "隔开每个元素,最后换行。 
print arr.join(", "),"\n"  

arr[4] = "m"        #把4 号索引位置元素赋值为"m"
print arr.join(", "),"\n"       #4, 5, 6, , m 
print arr[3] ,"\n"    #打印3 号索引位置元素      #nil 

arr.delete_at(3)     #删除3号索引位置元素
print arr.join(", "),"\n"       #4, 5, 6, m 

arr[2] = ["a","b","c"]         #把2号索引位置元素赋值为["a","b","c"]
print arr.join(", "),"\n"       #4, 5, a, b, c, m 
print arr[2] ,"\n"          #打印2 号索引位置元素     #abc

arr[0..1] = [7,"h","b"]         #把 0..1 号元素替换为7,"h","b"
print arr.join(", "),"\n"       #7, h, b, a, b, c, m 

arr.push("b" )                    #加入元素"b" 
print arr.join(", "),"\n"       #7, h, b, a, b, c, m, b 


arr.delete(["a","b","c"] )     #删除元素["a","b","c"] 
print arr.join(", "),"\n"       #7, h, b, m, b
arr.delete("b")                   #删除所有元素"b"
print arr.join(", "),"\n"       #7, h, m  

arr.insert(3,"d")                 #在3号索引位置插入元素"d" 
print arr.join(", "),"\n"       #7, h, m, d 

arr<<"f"<<2                     #加入元素"f";加入元素2 
print arr.join(", "),"\n"       #7, h, m, d, f, 2 
arr.pop                               #删除尾元素 
print arr.join(", "),"\n"        #7, h, m, d, f 
arr.shift                              #删除首元素  
print arr.join(", "),"\n"       #h, m, d, f

arr.clear                             #清空数组 arr 
print arr.join(", "),"\n"       #
2 楼 rich8w 2009-09-09  
#方法支持可变参数
def sum(*num)
  numSum = 0
  num.each{|o| numSum+=o}
  return numSum
end

puts sum()
puts sum(3,6)
puts sum(1,2,3,4,5,6,7,8,9)
1 楼 rich8w 2009-09-09  
3.times{printf "Hi"}   
print "\n"  
1.upto(9){|i| print i if i<7}   
print "\n"  
9.downto(1){|i| print i if i<7}   
print "\n"  
(1..9).each{|i| print i if i<7}   
print "\n"  
0.step(11,3){|i| print i}   
print "\n"  

相关推荐

Global site tag (gtag.js) - Google Analytics