导航:首页 > 编程语言 > lua编程实例

lua编程实例

发布时间:2023-12-06 08:11:58

‘壹’ 《Lua程序设计》之 数值

在Lua 5.2及之前的版本,所有数值都以双精度浮点格式表示,从5.3版本开始,Lua语言的number分为integer的64位整型和被称为float的双精度浮点型,若想要32位的整型和单精度浮点类型,可以将Lua 5.3编译为精简姿哪Lua(Small Lua)模式.

可以使用%a参数进行格式化输出,如:

这种格式很难阅读,但是可以保留所有浮点数的精度,并且比十进制转换速度更快

// 区分整数和浮点数,基册逗由于5.3版本之前没有整数的概念,所以math.floor永远返回整数,// 的操作数只要有一个浮点数,则向下取整返回浮点数

取模运算的定义:

由此可知,取模和取余数差不多,当想要一个值不超过某个范围的时候,就对该值进行取模, 在整数的情况下, a % b 取模的值永远在[1,b-1]范围内,即 5 % 3的取模结果在[1,3]之间

Lua语言的关系运算六种

标准数学库math,包括三角函数(sin,cos,tan,asin等)、指数函数、取整函数、最大和最小函数max和min,random以及常量pi和huge(最大可表示数值,在大多数平台上代表inf)

math.random

math.randomseed 用于设置伪随机数发生器的搏卖种子,看例子就明白了了

math.randomseed每次设置一样的值,则math.random就会生成一样的随机数,不管math.random带不带参数。

三个取整函数:
floor 向负无穷取整;
ceil 向正无穷取整;
modf 向0取整,并会返回小数部分作为第二个结果;

如果想将数值x向最近的整数取整,这个问题没看懂??????

数学库中的常量定义了整型值的最大值math.maxinteger和最小值math.mininteger

这段内容也没完全看懂?????

整型转行成浮点型

浮点型转行成整型

可以充分利用math.tointeger函数来判断一个数值是否为整数

从上到下,优先级从高到低

在二元运算符中,除了幂运算和连接操作符是右结合外,其他都是左结合

Lua 5.3 支持的最大整数为2^63,而Lua 5.2支持的最大整数为2^53,由于5.2及以下版本没有整数,所以跟整数相关的函数都不支持,如math.type()、math.maxinteger、math.mininteger、math.tointeger等

‘贰’ 用lua编程,三道题目

Test1

local a[10]={3,4,6,7,8,4,2,1,9,10}

function q1(array)
local swap = 0

local newArray = {}
for i = 1, #array do

for j = i + 1, #array do

if array[j] < array[i] then
swap = array[i]

array[i] = array[j]

array[j] = swap

end
end
newArray[1] = array[1]

for i = 1, #array do

if array[i] != newArray[#newArray] then

newArray[#newArray + 1] = array[i]

end

end
return newArray

end

function q2(array)
local array1 = {}

local array2 = {}

for i = 1, #array do

if array[i] % 2 == 0 then

array2[#array2 + 1] = array[i]

else

array1[#array1 + 1] = array[i]

end

end

return array1, array2

end

‘叁’ 用lua语言编程:输入一个字符串,长度不超过50,要求求出字符串中任意字符出现的次数。

将以下代码保存为lua_string.lua:

#!/usr/bin/envlua
s={}
a=io.read()--读入字符串,可含汉字
len=#(string.gsub(a,"[128-191]",""))--计算字符数(不是字节数)
print(len)
forcinstring.gmatch(a,".[128-191]*")do--迭代出每一个字符
ifs[c]团纳羡==nilthen--并计算出现次数
s[c]=1
else
s[c]=s[c]+1
end
end
fork,vinpairs(s)do--打印结果
print(k,v)
end

虽然题主没有特别提到对unicode友好,不过考虑到多字节字符现在很常用,所以把utf-8的支持也加进去了。

其中的知识点,参考《Programming in LUA》第三版中以下章节:

-- 2.1 Nil
-- 4.3 Control Structures
-- 7.2 The Semantics of the Generic for
-- 21.1 Basic String Functions
-- 21.2 Pattern-Matching Functions
-- 21.7 Unicode
-- 22.1 The Simple I/O Model


测试输出如下:

moose@debian:~/Code/_knowledge/lua_string$./lua_string.lua
nihao你好
7
a1
h1
好1
i1
你1
o1
n1
moose@debian:~/Code/_knowledge/lua_string$./lua_string.lua
你好你好
4
好2
你2
moose@debian:~/Code/_knowledge/lua_string$./lua_string.lua
用lua语言编程:输入一个字符串,长度不超过50,要求求出字符串中任意字符出现的次数。
43
a茄唤1
符3
一1
中1
,2
不1
求2
串2
l1
01
度1
超1
u1
出2
数1
个1
次1
输1
程1
:1
的1
意1
语1
编1
。1
入1
现1
用1
长塌拍1
任1
51
字3
言1
要1
过1
阅读全文

与lua编程实例相关的资料

热点内容
抖音app怎么推荐 浏览:98
歌库服务器能做其他什么用途 浏览:95
安卓44虚拟机怎么root 浏览:38
程序员瘦身c盘空间 浏览:243
dell服务器温度怎么看 浏览:303
游戏服务器地址是什么 浏览:69
C语言经过编译之后的程序是 浏览:160
编程设计一个简易计算机界面 浏览:516
游戏压缩包损坏 浏览:485
压缩包图标下载 浏览:229
日本解压喜剧 浏览:38
芜湖程序员兼职如何接 浏览:368
句译app怎么用 浏览:342
vs2010编译c怎么用 浏览:104
摩拜单车没app怎么退款 浏览:469
苹果手机下载的app怎么变色了 浏览:903
韵母app怎么写 浏览:603
命令提示符是中文 浏览:167
vsqt编译出的程序版本号 浏览:892
快表服务器如何更改 浏览:688