- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 程序设计方法;1.逐步求精方法;分割技术;递推技术;分析技术;逐步求精方法是一种适应性很强且十分有效的程序设计方法。用它解决问题时,可归纳如下:
1、对实际问题要进行全局性分析、决策及数据模型的确定。
2、要确定程序的总体结构,将整个问题分解成若干相对独立的子块。
3、要确定子块的功能及相互间的关系。
4、在抽象的基础上,将各子块逐一精细化,直到能用确定的高级语言程序描述,得到完整的程序系统。;验证“哥德巴赫猜想” ;求解
第一步 提出问题: 验证哥德巴赫猜想
?
第二步 设一上限数M,验证从4到M的所有偶数是否能被分解为两个素数之和。 1. 定义一个变量X,初值为4。 2. 每次令其加2,并验证X能否被分解为两个素数之和,直到 X不小于M为止。
?
;第三步 如何验证X是否能被分解为两个素数之和。
1.从P=2开始; 2.判别X—P是??仍为素数: 3.若是,打印该偶数的分解式。 4.否则,换更大的素数,再继续执行2.。如此循环,直到用于检测的素数大X/2且X与其之差仍不是素数,则打印“哥德巴赫猜想”不成立。
第四步 查找下一个素数。(1)当前素数P加1(2)判别P是否是素数;(3)若是素数,返回P;(4)否则,P加1,继续执行( 2)。
;例:编写一个程序,打印n前素数(n为给定的正整数)
begin
read(n);
x:=1;
while xn do
begin
“x是下一个素数”;
write(x);
end
end;“x是一个素数”
x:=x+1;
k:=2;{k=2,3,4, …,x-1}
lim:=x-1;
repeat
if “x能被k整除” then prim:=false
else begin
k:=k+1;prim:=true
end
until (not prim) or (k达到lim);program A515 (INPUT, OUTPUT);
var n,x,k,lim:integer;
prim:boolean;
begin
read(n);
x:=1;
WRITE(2,,);
while x+1n do
begin
x:=x+1;
k:=2;
lim:=x-1;
repeat
if(x mod k)=0 then prim:=false
else begin
k:=k+1;
prim:=true;
end
until(not prim) or(k=lim) ;
if prim then write(x,,);
end
end.;逐步求精方法的最大优点是摆脱了传统的程序设计方法的束缚,按先全局后局部、先整体后细节、先抽象后具体的过程组织人们的思维活动,使得编写了的程序结构清晰、容易阅读、修改。;2、 模块化程序设计方法;把一个程序分成具有多个明确任务的程序模块,分别进行编写和调试,最后再把它们连接在一起,形成一个完成总任务的完整程序,这种程序设计方式叫模块程序设计。这种方法的优点如下:
(l)单个程序模块易于编写,调试和修改;
(2)便于分工,可由多个程序员编写、调试,有利于加快工作速度;
(3)程序易读性好;
(4)程序的修改可局部化进行;
(5)频繁使用的功能可以编制成模块存在库里供多个任务使用。;模块设计三个原则;Modula 2语言的模块功能;说明的语法为:
$说明=
$“CONST”{常量说明“;”}|
$“TYPE”{标识符[“=”类型]“;”}|
$“VAR”{变量说明“;”}|
$过程首部“;”
;实现部分与主程序相似,其语法为:
$实现模块=
$“IMPLEMENTATION”“MODULE”模块名“;”
${移入表}
${说明}
$[BEGIN语句序列]
$“END”模块名“。”
其中说明部分的语法与定义部分相似,只是用过程说明代替过程首部
;程序模块语法为:
$程序模块=
$“MODULE”模块名[优先权]“;”
${移入表}
${说明}
$[BEGIN语句序列]
$“END”模块名“。”
程序模块通常是分级定义模块和实现模块的头。
;程序模块编译单位的定义语法是:
$编译单位=
$定义模块|
$实现模块
$程序模块
其中移出表语法:
$移出表=“EXPORT”[“QUALIFIED”]标识符表“;”
移入表语法:
$移入表=[“FROM”模块名]“IMPORT”标识符表“;”
;例:设计一个可
您可能关注的文档
最近下载
- 《全面质量管理(习题集)》考试题库(含答案).pdf VIP
- 第6课《传播文明》课件++2024—2025学年苏少版(2024)初中美术七年级上册.pptx VIP
- 浙江工业大学研究生矩阵原理期末试题及答案.docx VIP
- Roland罗兰乐器SPD-SX 采样打击板SPD-SX 说明书用户手册.pdf
- 地基与基础分部验收工程总结.doc
- 数字化智能工厂建设方案及规划蓝图建设方案.doc VIP
- 刘伟教你打乒乓(北大)中国大学MOOC慕课 章节测验答案.docx
- 探究乡土植物在园林绿化建设中的应用及存在的问题.doc VIP
- 湖南省湘西州永顺县2023-2024学年四年级上学期期中英语试卷.doc VIP
- 2024年中级经济师《经济基础知识》教材变化对比.pdf
文档评论(0)