MM实验报告【DOC精选】.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

taotao0b + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档