Lua学习笔记-table中的混合风格&多项式求和

1、table中包含record风格和list风格的情况:

polyline={color='blue',thickness=2,npoint=4,
{x=0,y=1},--polyline[1]
{x=2,y=3}}
print(polyline[2])--打印的结果是地址
print(polyline[2].y)
2、更为一般的方式是用中括号将索引包住,右值作为value

代码:

opnames={["+"]="add",["-"]="sub",["*"]="mul",["/"]="div"}
i=20;s="-"
a={[i+0]=s,[i+1]=s..s,[i+2]=s..s..s}
print(opnames[s])--sub
print(a[22])


3、练习题

--exercise1
for i=-10,10 do-- a % b == a - math.floor(a/b)*b,其中floor是向负取
	print(i,i%3)--结果是商相对负无穷圆整后的余数。(译注:负数对正数取模的结果为正数) 
end
--exercise2
print(2^2^3)--从右到左边,先计算2^3=8,再计算2^8.

4、多项式求和计算:输入系数和x值,计算二项展开的结果

多项式求和:输入系数和x的值,返回计算结果。

<pre name="code" class="cpp">--exercise3
-- calculates polynomials
function calculate(coefficients, x)
    p = 0
    for i = 1, #coefficients do
        p = p + coefficients[i]*x^(#coefficients-i)
    end
    return p
end

-- read coefficients from user
print("how many coefficients should be read?")
size = io.read("*n")
print("reading " .. size .. " coefficients")
c = {}
for i = 1, size do
	print("c的长度:"..#c)
    c[#c+1] = io.read("*n")--读取的时候可以以空格进行分割一次性输入,也可以每输入一个回车,输入下一个。
end

-- asks for x values to calculate the function
print("please enter x values (ctrl-d to exit)")
while true do
    x = io.read("*n")
    print("f(" .. x .. ") = " .. calculate(c, x))
end

系数为1 2 3 4,则f(x)=4+3*x+2*x^2+x^3。系数的顺序是从高阶到低阶。所以,按照一般的习惯可以从右边往左边开始写。


 
 
 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值