- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 算法和算法的描述 一、算法的基础知识 1.用计算机解决问题的步骤: ① 分析问题 ② 算法设计 ③ 描述算法 ④ 编程实现 从上面的求解问题过程可以看出,关键在于前三步的解决:第一步就是解决模型的数据结构,第二步是解决问题的算法,第三步是形式化地描写算法。 2.算法的定义: 算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算。算法可以理解为:程序(数据处理)+ 数据结构(数据组织)。 3.算法的性质: ① 有限性 ② 确定性 ③ 输入输出(可以没有输入,但一定有输出) ④ 可行性 常见的算法有:穷举法、迭代法、递推法、递归法、回溯法、深度及广度搜索法、动态规划、构造法等等。 二、算法的描述方法 1.自然语言 例如: 【例3】给定一个正整数N,判断它是否为素数。 素数:除1和它本身之外,不能被其他任何整数整除。 1.设除数为i,i的值从2变化到i-1,i的初值为2; 2.用i除N,得到余数为R; 3.如果R=0,则表示N能被i整除,N不是素数,算法结束;否则,表示N不能被i整除,可能为素数,继续; 4.使I的值加上1; 5.如果I≤N-1,那么返回2.否则,表示表示N已被2到N-1除,且都不能被整除,可以判断N为素数,算法结束。 2.N-S图: 1973年,美国学者I.Nassi和B.Shneiderman提出了一种用图形表示算法的方法,称为N-S流程图。N-S图包括顺序、选择和循环三种基本结构。 【例1】交换A和B的值。【例2】将A和B中较大的值给 MAX。 【例3】给定一个正整数N,判断它是否为素数。 3.程序设计语言: 计算机中的语言分为低级语言和高级语言,而低级语言又分为机器语言和汇编语言。 机器语言是一种CPU的指令系统,它是CPU可以识别的一系列有0和1这种二进制代码组成的指令。它依赖于机器,不同类型的计算机有不同的机器语言,机器语言的程序有许多机器指令组成,每条指令由操作码和地址码组成,数据和指令都放在不同的地址单元中。 汇编语言它是一种符号语言,为了克服机器语言固有的缺陷,20世纪50年代中期出现,将难以记忆和辨别的机器语言操作码用有意义的英文单词作为“助记符”来代替0、1进行编程。 高级语言,不再面向机器,而是接近人类的自然语言。常见的还有C/C++,Pascal,Basic,Java等。 【例1】交换A和B的值。 【例2】将A和B中较大的值给 MAX。 【例3】给定一个正整数N,判断它是否为素数。 三、算法的实现 【例4】求出1+2+3+…+N的值。 问题分析:用S表示所求的和,T表示每一个加数。 算法设计: 置初值,即S=0,T=1; 使S=S+T,所求的和还放在S中; 使T增加1,即T=T+1; 如果T≤N,转第二步,否则转第五步; 输出S的值。 算法描述:编程实现: 【例5】求正整数M和N的最大公约数。 问题分析:用M为被除数,N为除数,R为余数。使用辗转相除法。 算法设计: 输入M和N的值; 求出M除以N所得的余数; 用N迭代M(M←N),用R迭代N(N←R); 若R=0,则N为所求得的最大公约数,转第五步,否则转第二步; 输出最大公约数N的值。 算法描述:编程实现: 习 题 用自然语言描述下列各题的算法: 从键盘上输入三个数,然后将最大数输出。 求1*2*3*…*n的值。 求a,b的最小公倍数。 输入一个四位整数,将这个数反向输出。(例:输入为1367,输出为7631) 第二章 Free Pascal基础 一、 Pascal 简介 PASCAL语言是瑞士苏黎世联邦工业大学的N.沃思(Niklaus Wirth)教授于1968年设计完成的,1971年正式发表,它的命名是为了纪念法国数学家Pascal。在Pascal问世以来的三十余年里,先后产生了适合于不同机型的各种版本,其中,影响最大的莫过于Turbo Pascal系列软件。Turbo Pascal 是由美国Borland公司设计、研制的一种微机的Pascal语言应用开发集成环境。该产品由1983年推出的1.0版本发展到1992年推出的7.0版本,随着版本的不断更新,功能也更趋完善。 PASCAL语言是结构化程序设计的典范,可以用来编写应用程序。它提供了丰富的数据类型和语句,功能强,应用广。它不仅适合于教学,也可广泛用语编写各种系统软件和应用软件。中国计算机协会要求fp,从主办方的角度上说,TP有版权,FP没有版权限制,TP已经12年没有更新,而FP一直在更新,IOI、NOI使用的都是FP,对选手来说,FP没有严格的内存限制,有更强大的数据类型、函数。 (CCF要求) 软件下载地址:01/noip/env.html 二、版本介绍 Freep
文档评论(0)