- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MM实验报告【DOC精选】
M2M
实
验
报
告
实验一 Lua语言编程
一、实验原理
Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。和许多大而全的语言不一样,网路通讯、图形界面等都没有默认提供。但是Lua可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。事实上,现在已经有很多成熟的扩展模块可供选用。Lua是一种多重编程范式的程序设计语言:它只提供了很小的一个特性集合来满足不同编辑范式的需要,而不是为某种特定的编辑范式提供繁杂的特性支持。例如,Lua并不提供继承这个特性,但是你可以用元表来模拟它。诸如名字空间、类这些概念都没有在语言基本特性中实现,但是我们可以用表结构(Lua唯一提供的复杂数据结构)轻易模拟。Lua可以在运行时随时构造出一个函数,并把它看作一个对象(正是所谓的first class function),这个特性可以很好的满足函数式编程的需要。这是提供了这些基本的元特性,我们可以任意的对语言进行自需的改造。
二、实验目的
1. 了解什么是Lua语言及其优势和Lua与C/C++的关系
2. 掌握Lua的基本编程,包括类型和值、表达式(各类运算符、优先级和表的构造)、基本语法和函数等。
3. 掌握Lua的编译、运行和调试。
三、实验内容
1. 配置Lua的运行环境,使其在命令行中可以进行编译。
2. 验证实验指导书中编写的计算输入参数n的阶乘。
3. 编写输出50以内的质数的程序。
4. 编写二分法的程序
四、实验过程
1. Lua在Windows下的搭建
(1)首先从Lua官网下载Lua5.2.3压缩包。
下载地址:/download.html
(2)将压缩包解压后得到如下文件:
(3)在环境变量的Path中添加解压后所得文件的路径并保存。如图:
(3)打开记事本编写代码,完成后另存为***.lua文件。
(4)打开命令行输入lua ***.lua运行。如图:
2. 计算输入参数n的阶乘
(1)源代码
function fact(n)
if n==0 then
return 1
else
return n*fact(n-1)
end
end
print(enter a number:)
a = io.read(*number)
print(fact(a))
(2)结果截图
3. 求50以内的质数
(1)源代码
-- sieve.lua
-- the sieve of Eratosthenes programmed with coroutines
-- typical usage: lua -e N=500 sieve.lua | column
-- generate all the numbers from 2 to n
function gen (n)
return coroutine.wrap(function ()
for i=2,n do coroutine.yield(i) end
end)
end
-- filter the numbers generated by `g, removing multiples of `p
function filter (p, g)
return coroutine.wrap(function ()
for n in g do
if n%p ~= 0 then coroutine.yield(n) end
end
end)
end
N=N or 50 -- from command line
x = gen(N) -- generate primes up to N
while 1 do
local n = x() -- pick a number until done
if n == nil then break end
print(n) -- must be a prime number
x = filter(n, x) -- now remove its multiples
end
(2)结果截图
4. 二分法
(1)源代码
-- bisect.lua
-- bisection method for solving non-linear equations
delta=1e-6 -- tolerance
function bisect(f,a,b,fa,fb)
local c=(a+
文档评论(0)