疯狂的Ruby(一)- 从小程序开始_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > 疯狂的Ruby(一)- 从小程序开始

疯狂的Ruby(一)- 从小程序开始

 2010/11/17 22:56:58  royaki  http://royaki.javaeye.com  我要评论(0)
  • 摘要:平时时间不错,没事儿就抽空学习一个吧,争取早日用上rails,呵呵。1、从键盘上输入两个数,求他们的和并输出:a=getsb=getsc=Integer(a)+Integer(b)printcprint输出数据后不换行,puts输出数据后换行处理。Integer(a)可对从键盘接受的字符串a进行强制类型转换2、从键盘获得三角形的底和高,获得它的面积:puts"请分别输入三角形的底和高:"putsInteger(gets)*Integer(gets)/2.0。3、编程实现,若输入的x<0
  • 标签:Ruby小程序

平时时间不错,没事儿就抽空学习一个吧,争取早日用上rails,呵呵。

?

1、从键盘上输入两个数,求他们的和并输出:
a=gets
b=gets
c=Integer(a)+Integer(b)
print c


print输出数据后不换行,puts输出数据后换行处理。
Integer(a)可对从键盘接受的字符串a进行强制类型转换

?

?

2、从键盘获得三角形的底和高,获得它的面积:

puts "请分别输入三角形的底和高:"
puts Integer(gets)*Integer(gets)/2.0。

?

?

?

3、编程实现,若输入的x<0,则输出-1,输入x>0则输出+1,若x=0,则输出0,如果输入x,则退出函数:

while a=gets
??? puts a
??? break if a=="x\n"
??? puts case
??? ??? when Integer(a)<0:"-1"
??? ??? when Integer(a)>0:"+1"
??? ??? when Integer(a)==0:"0"
??? end
end

a是字符串,从键盘获得的要加上\n。

?

?

?

第三题改进一下,学会了一个新的运算符 <=>
while a=gets
??? break if a=="x\n"
??? puts Integer(a)<=>0
end

ruby真是灵活.....

?

?

4、在键盘上输入0~6代表周日周一,输出结果。

week=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]
puts week[Integer(gets)]


这个还真是不好弄....刚开始用{}来访数组的,谁知道竟然是花括号竟然是HashTable。
数组是[]

?

?

5、输入一组数据,使用冒泡发排序:

#输入四个数字
week=[Integer(gets),Integer(gets),Integer(gets),Integer(gets)]
i=0
while i<week.length
?? j=0
?? while j<week.length-i-1
?? ??? if week[j]>week[j+1]
?? ??? ??? tmp=week[j]
?? ??? ??? week[j]=week[j+1]
?? ??? ??? week[j+1]=tmp
?? ??? end
?? ??? j=j+1
?? end
?? i=i+1
end
print week

按照C语言的思路来写的,基本没用到ruby的什么特性....

?

?

?

6、求出1到100里所有数的和

i=1
sum=0
while i<=100
??? sum=sum+i
??? i=i+1
end
puts sum

?

解释一下上面的程序。
String.unpack("xxx")是ruby中很有用的一个函数,可以按照不同的规则(xxx)来对String进行解码成ascii表中的二进制。array.pack("xxx")跟其对应

B*的意思是
按照字符解码,每个字符为8bit位。解码全部字符。*可用数字代替

string.gsub(/[abc]/,"*") 表示把a,b,c都替换成*
/../表示任意两个字符。

?

?

7、实现设计模式中的单例模式

?

class Session
? def initialize(*args)
??? @name=args
? end
? def say
??? puts @name
? end
end

class SessionFactory
? @@s = Session.new("Session 1")
? def getSession
??? return @@s
? end
end

sf = SessionFactory.new()
s = sf.getSession()
s.say()

sf2 = SessionFactory.new()
s2 = sf2.getSession()
s2.say()

?

@@name表示类变量

@name表示实例变量

$name表示全局变量

?

?

  • 相关文章
发表评论
用户名: 匿名