平时时间不错,没事儿就抽空学习一个吧,争取早日用上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都替换成*
/../表示任意两个字符。
?
?
?
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表示全局变量
?
?