`
rich8w
  • 浏览: 180693 次
  • 性别: 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"  

相关推荐

    Ruby语言入门教程v1.0

    随后,通过编写第一个小程序,让学习者快速上手,体验Ruby的基本语法和运行流程。这不仅增强了学习者的实践能力,也激发了他们继续探索Ruby的兴趣。 ### 4. 语法快览与基础概念 第三章是对Ruby语法结构的全面概览...

    Ruby语言教程&案例&相关项目资源

    - **Reddit的r/ruby社区**:Reddit上的r/ruby板块也是一个活跃的Ruby开发者社群,经常有关于新技术、最佳实践的讨论。 **8. Ruby on Rails框架** - **如果对Web开发感兴趣**:Ruby on Rails是一个基于Ruby的Web...

    发射学校核心课程:发射学校核心课程的笔记和练习

    总的来说,【发射学校核心课程:发射学校核心课程的笔记和练习】是一个全面的编程学习路径,涵盖了从基础知识到高级技术的各个方面,通过实践练习帮助学员扎实掌握Ruby编程和后端开发技能,为未来的职业发展打下坚实...

    ServerNew_2022.zip

    综合来看,这个压缩包可能是一个服务器端的项目,其中包含了一个BlackJack游戏的实现,一个通用功能的代码库,以及一个可能用于特定操作的Ruby脚本。这些资源对于学习服务器端编程、游戏开发以及特定编程语言的实践...

    handlebarbershop:一个练习修饰车把的地方

    总的来说,【handlebarbershop】项目是一个理想的实践平台,可以帮助你掌握 Handlebars 模板和 Ruby 的结合使用,同时提升你在 web 开发中的综合能力。通过探索这个项目,你将学习到模板引擎的运作方式、Ruby 的包...

    练习:重新练习

    综合来看,这个“练习:重新练习”项目提供了一个全面的实践平台,涵盖前端HTML基础,后端开发原理,以及领域驱动设计的深度实践。无论是初学者还是经验丰富的开发者,都可以从中受益,通过实践和学习,不断提升自己...

    aristutor:律师,帮助您的学生在课后学习更快

    "aristutor" 这个标题暗示我们这是一个专为律师或法律学习者设计的在线教育平台,其目标是加速学生在课后的学习进度。"律师"一词表明该应用专注于法律领域的教育内容,而"帮助您的学生在课后学习更快"则说明该软件...

    全面:项目练习:克隆AirBNB的网站

    总之,克隆Airbnb的项目是一个综合性的实践练习,涵盖了Ruby on Rails开发的各个方面,包括数据库设计、MVC架构、RESTful API、用户认证、前端界面构建以及第三方服务的集成。通过这个项目,开发者不仅可以深化对...

    blog-post-challenge-drew-matt:由GitHub Classroom创建的blog-post-challenge-drew-matt

    【标题】:“blog-post-challenge-drew-matt”是一个基于GitHub Classroom创建的项目,它旨在为学生...总的来说,“blog-post-challenge-drew-matt”是一个综合性的学习资源,能够帮助参与者全方位提升他们的Ruby技能。

    网上商城(主要销售表)

    “毕业设计”表明这可能是一个完整的项目案例,适合学生进行实战练习。“网上商城”则暗示了这是一个基于Web的电商平台,可能使用了常见的Web开发框架如Spring Boot、Django或Rails等。“源码”表示提供的是可运行的...

    wyyxx:网易项目练习。。

    由于标题没有提供更具体的信息,我们可以推测这可能是一个涵盖多种技术领域的综合性项目,其中可能涉及到前端开发、后端开发、数据处理等环节。 【描述】"项目说明文档"提示我们这个压缩包中包含了一个或多个文档,...

    algorithms:我从阅读中学到的算法集合

    总的来说,这个项目是一个关于算法学习的综合资源,涵盖了数据结构和算法的基础知识,特别是通过Ruby语言实践。通过研究和模仿这些实现,你可以提升自己的算法思维和编程能力,这对于任何IT专业人员来说都是不可或缺...

    易买网.zip

    【易买网.zip】是一个...但通过分析标签和描述,我们可以推测易买网项目是一个综合性的Web开发练习,涵盖了前端交互、后端服务、数据库操作等多个方面,对于想要提升Web开发技能的学生来说,这是一个极佳的学习资源。

    yksugi11:我对YK Sugi的Udemy编码面试课程的解决方案

    "yksugi11" 这个标题是个人或项目名,它与 "YK Sugi的Udemy编码面试课程的解决方案" 相关联,表明这是一个针对YK Sugi在Udemy平台上讲授的编程面试准备课程的解答集。这个课程可能涵盖了一系列编程面试中常见的问题...

    手册集合.zip

    【标题】"手册集合.zip" 是一个包含了多种编程语言手册的综合资源包,它为学习和精通编程提供了详尽的参考资料。这个压缩包显然旨在帮助程序员、初学者以及对编程感兴趣的人快速查找和理解各种编程语言的核心概念、...

Global site tag (gtag.js) - Google Analytics