Pascal退出语句.doc_第1页
Pascal退出语句.doc_第2页
Pascal退出语句.doc_第3页
Pascal退出语句.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Pascal的多种退出语句用法 (以下语句都是过程,必须单独作为一句话使用)break 是用来退出其所在的循环语句即 : 不论在任何一个循环语句中 执行了 break 的话, 马上退出这个语句。相当于 : goto 这一层循环语句 最末尾一句的下一句。例如:var i : integer;beginfor i := 1 to 10 dobegin1 writeln(i);break;writeln(i+1);end;readlnend.执行结果 :1 可见 第一次循环 时 , 执行了1句 后 , 执行 break ,然后马上退出了这个for语句。 * 注意 : 以上两个语句 只 对 它们所在的 那层循环语句 起作用,也就是说 : 如果有多个 循环语句 相嵌套, 其中 某一层 执行了continue / break 语句, 它们并不能影响上面几层的 循环语句。 exit 是退出当前程序块;即 : 在任何子程序 中执行 exit , 那么 将退出 这个子程序;如果是在 主程序中执行 exit , 那么将退出整个程序。相当于 : goto 这个程序块 的 末尾 的 end 例如 : 试除法判断素数时,一旦整除,就把函数值赋为false ,然后exit;*注意 : 类似上面的 , exit也是只对当前 这一个 子程序产生作用,如果多重嵌套子程序 , 那么其中某个子程序执行了exit以后,将返回到 调用它的那个语句 的下一个语句。halt : 没什么好说的,退出整个程序,Game Over.例如 : 搜索时, 一旦找到一个解,就打印,然后执行halt,退出整个程序。使用exit , halt 应该注意的地方:要注意所有可能会退出 子程序或主程序 的地方 均要妥善处理好善后工作,比如 文件是否关闭 ,输出是否完整等。最后说一句 , 使用这些语句 使得程序结构不止有一个出口,破坏了结构化程序设计的 标准控制结构 , 使程序难以调试 (但是往往便于编写),应尽量避免使用,因为它们完全可以用其它语句代替,所以,除非使用这些语句 能给 编写程序 带来 较大的方便,且可读性不受到影响,才值得一用(其实我用的也不少,呵呵) .程序设计的方法1.模块化:(1) 把一个较大的程序划分为若干子程序,每一个子程序解决一个总是独立成为一个模块;(2) 每一个模块又可继续划分为更小的子模块;(3) 程序具有一种层次结构。注:运用这种编程方法,考虑问题必须先进行整体分析,避免边写边想。2.自顶向下:(1) 先设计第一层(即:顶层),然后步步深入,逐层细分,逐步求精,直到整个问题可用程序设计语言明确地描述出来为止。(2) 步骤: 首先对问题进行仔细分析,确定其输入、输出数据,写出程序运行的主要过程和任务; 然后从大的功能方面把一个问题的解决过程分成几个问题,每个子问题形成一个模块。(3) 特点:先整体后局部,先抽象后具体。3.自底向上:(1) 即先设计底层,最后设计顶层;(2) 优点:由表及里、由浅入深地解决问题;(3) 不足:在逐步细化的过程中可能发现原来的分解细化不够完善;(4) 注意:该方法主要用于修改、优化或扩充一个程序。4.例子:求1到n之间的素数。解:要求1到n之间的素数,程序要做的事就是从1开始依次找,判断是否是素数,是则打印出来,否则继续往下找,直到n为止。于是初步设想成: begin read(n); number:=2; while numbern do begin if number是一个素数 then write(number); number取下一个值; end end.第二步:细化“number是一个素数”及“number取下一个值”。(1) 细化“number是一个素数”:“number是一个素数”这是一个布尔值,当number是一个素数时为true,否则为false。细化如下: k:=2; lim:=number-1; repeat if nubmer能被k整除 then prim:=false else begink:=k+1;prim:=true;end; until not(prim) or (k达到lim);(2) 细化“number取下一个值”:number:=number+1;第三步:细化“number能被k整除”及“k达到lim”。(1) 细化“number能被k整除”:number mod k=0;(2) 细化“k达到lim”:k=lim;第四步:补充完整程序。第五步:从所有的素数除了2之外都是奇数的角度出发优化程序。程序设计步骤:1.分析问题:对要解决的问题,首先必须分析清楚,明确题目的要求,列出所有已知量,找出题目的求解范围、解的精度等。例“第10周练习”第7题兔子的繁殖问题,必须找出其繁殖规律。2.建立数学模型:对实际问题进行分析之后,找出它的内在规律,就可以建立数学模型。只有建立了模型的问题,才能可能利用计算机来解决。如上例,可推出递推公式un=un-1+un-2(这是菲波那契数列)3.选择算法:建立数学模型后,还不能着手编程序,必须根据数据结构,解决问题的算法。一般选择算法要注意:(1) 算法的逻辑结构尽可能简单;(2) 算法所要求的存贮量应尽可能少;(3) 避免不必要的循环,减少算法的执行时间;(4) 在满足题目条件要求下,使所需的计算量最小。4.编写程序: 把整个程序看作一个整体,先全局后局部,自顶向下,一层一层分解处理,如果某些子问题的算法相同而仅参数不同,可以用子程序来表示。5.调试运行;6.分析结果;7.写出程序的文档:主要是对程序中的变量、函数或过程作必要的说明,解释编程思路,画出框图,讨论运行结果等。8.例1:输入奇数n,计算并输出n位的魔方阵。(ppro2.pas)说明:(1) 魔方阵就是n*n个不同的正整数按方阵排列时,它的每一行,每一列以及沿对角线的几个数的和具有同一性质的方阵。(2) 由1到n*n个自然数数构成的魔方阵是最基本的,又称为“幻方”,这种方阵的每行、每列和每个对角线上的元素的和全部相等,亦即等于一个常数。该常数是n(n*n+1)/2。(3) 方法: 首先确定1的位置,通常放在第一行的中间位置; 然后当前自然数的右上方放下一个自然数; 如果当前自然数在第一行但不在最右侧,则下一个自然数在最后一行,列数右移一列; 如果当前自然数在第一行最右侧,则下一个自然数在当前自然数的下侧; 如果当前自然数在其它行的最右侧,则下一个自然数在上一行的最左侧。9.例2:任何一个整数的立方都可以写成一串奇数之和。说明:(1)这是著名的尼科梅切斯定理。即 13=1 23=3+5=8 33=7+9+11=27 (2)数据间关系的规律:n3是n个奇数之和,如23是2个奇数之和,33是3个奇数之和;这n个奇数是相邻的,只要知道各式的第一个奇数也就知道所有的n个奇数:组成13的1个奇数是奇数序列中的第1个奇数;组成23的2个奇数中最大的奇数是奇数序列中的第3(3=1+2)个奇数(值为5);组成33的3个奇数中最大的奇数是奇数序列中的第6(6=1+2+3)个奇数(值为11);由此推出:组成n3的n个奇数中最大的奇

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论