第讲程序设计基础课件_第1页
第讲程序设计基础课件_第2页
第讲程序设计基础课件_第3页
第讲程序设计基础课件_第4页
第讲程序设计基础课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、第九章 程序设计基础计算机基础知识19.1 算法与程序设计概述 2022/9/25第九章 程序设计基础计算机基础知识19.1 算法与程序设计9.1.1 程序的概念 9.1.2 算法的概念及特征 1)算法的特征 2)算法的评价 9.1.3 算法的表示方法1) 用自然语言表示2) 用传统流程图表示3) N-S流程图4) 用伪代码表示9.1.4 简单的程序设计实例 (下一讲)9.1 算法与程序设计计算机基础知识22022/9/259.1.1 程序的概念 9.1 算法与程序设计计算机1、程序 (先看生活中的程序)现实生活中,程序的直观特征是按事先安排的步骤,一步步完成一系列动作,这种对活动过程的步骤描

2、述就是一个“程序”。在计算机领域,程序是指为让计算机完成特定的任务而设计的指令序列。它是程序设计人员编写的、计算机能够理解并执行的一些命令的集合,是解决问题的具体步骤在计算机中的实现。9.1.1 程序的概念计算机基础知识32022/9/251、程序 (先看生活中的程序)9.1.1 程序的概念计算计算机中的问题事例:例1:求解一元二次方程4.34651.24X+8=0例2:求解一元二次方程 a bXc=0例3:设a0,b0,c0,若以正数a,b,c为三角的三条边,求三角形abc的面积?可利用海伦公式:例4:求10以上200以下的整数中,能被3整除但不能被5整除的所有数据之和?9.1.1 程序的概

3、念计算机基础知识42022/9/25计算机中的问题事例:9.1.1 程序的概念计算机基础知识计算机中的程序与日常生活中的程序的概念是类似的,只不过执行日常生活程序的主体是人,而执行计算机程序的主体是计算机。计算机程序就是要由计算机进行解释和执行的程序。它表示的是计算机处理事务的时间顺序和处理问题的步骤。程序只能由计算机可以解释和执行的基本操作组成,组成计算机程序的基本单位一般称为指令,因此简单的说,程序就是事先编制好的具有特定功能的指令序列。9.1.1 程序的概念计算机基础知识52022/9/25计算机中的程序与日常生活中的程序的概念是类似的,只不过执行日2、程序设计既然程序是按一定次序编排的

4、指令序列,那么编写指令序列的过程就是程序设计。用什么来编写指令序列?由于指令序列是给计算机执行的,因此这些指令应该是以计算机能够理解的语言表示的,这种语言就是程序设计语言。现在能够充当人和计算机之间的交流工具的,就是计算机语言,包括各种命令语言和程序设计语言,主要是程序设计语言。9.1.1 程序的概念计算机基础知识62022/9/252、程序设计9.1.1 程序的概念计算机基础知识6202*例1的 FoxPro 程序A=4.346B=-51.24C=8X1=(-B+SQRT(B*B-4*A*C)/(2*A)X2=(-B-SQRT(B*B-4*A*C)/(2*A)? X1=,X1? X2=,X2

5、9.1.1 程序的概念计算机基础知识72022/9/25*例1的 FoxPro 程序9.1.1 程序的概念计算机*例2的 FoxPro 程序INPUT 输入数据到A TO AINPUT 输入数据到B TO BINPUT 输入数据到C TO CIF B*B-4*A*C=0 X1=(-B+SQRT(B*B-4*A*C)/(2*A) X2=(-B-SQRT(B*B-4*A*C)/(2*A) ? X1=,X1 ? X2=,X2ELSE ? 无实数解!ENDIF9.1.1 程序的概念计算机基础知识82022/9/25*例2的 FoxPro 程序9.1.1 程序的概念计算机*例3的 C语言程序#inclu

6、demain() float a,b,c,p,area; scanf(%f,%f,%f,&a,&b,&c); if (a+bc) &(a+cb)&(b+ca) p=(a+b+c)/2.0; area=sqrt(p*(p-a)*(p-b)(p-c); printf(a=%7.2f,b=%7.2f,c=%7.2f,p=%7.2fn,a,b,c,p); printf(area=%7.2fn,area); else printf(abc不能构成三角形!);9.1.1 程序的概念计算机基础知识92022/9/25*例3的 C语言程序9.1.1 程序的概念计算机基础知识*例4的 FoxPro程序sum=0

7、n=10do while n200 if mod(n,3)=0 and int(n/5)n/5 s=s+n endif stor n+1 to nenddo 5,10 say 10200内被3整除但不能被5整除的所有数据之和为: +str(s,5)9.1.1 程序的概念计算机基础知识102022/9/25*例4的 FoxPro程序9.1.1 程序的概念计算机基1、算法的概念所谓算法是指解题方案的准确而完整的描述。算法是程序的灵魂,计算机程序设计的实质是算法的设计。自从计算机广泛用于解决现实问题以来,人们积累了大量的算法,这些算法是前人思想的结晶,也是新算法产生的基础。学习和研究这些算法,对解决

8、实际问题,以及研究新的算法都是极为必要的。 每个算法实际上是按解题要求从所有的指令系统操作中选择合适的操作所组成的一组指令序列。因此,计算机算法就是计算机能处理的操作所组成的指令序列。9.1.2 算法的概念及特征计算机基础知识112022/9/251、算法的概念9.1.2 算法的概念及特征计算机基础知识11一个算法的功能不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。算法中各操作间的执行顺序称为算法的控制结构2、算法的基本要素一个算法通常由两种基本要素组成,一是对数据对象的运算和操作,二是算法的控制结构。一个算法的运算操作或控制结构无论是简单还是复杂,一般必须满足以下五个重要特性:有

9、穷性、确定性、可行性、输入、输出9.1.2 算法的概念及特征计算机基础知识122022/9/25一个算法的功能不仅取决于所选用的操作,而且还与各操作之间的执1)有穷性对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成。2)确定性对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径。 3)可行性算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之。4)输入一个算法有零个或多个输入。5)输出一个算法有一个或多个有效信息的输出。9.1.2 算法

10、的概念及特征计算机基础知识132022/9/251)有穷性对于任意一组合法输入值,在执行有穷步骤之后一定能3、算法的评价(算法复杂度)解决同一个问题的算法可以有多种,不同人员的设计不尽相同,其效率也存在差别,一个不好算法可能导致程序要运行几天、几个月甚至几年,一个好的算法可能只要几分种、几秒钟就可以完成。在设计算法时,应当遵循以下原则:首先是保证算法的正确性其次要具有良好的可读性第三,算法应具有健壮性第四,算法执行时间的高效性第五,降低对存储空间的需求9.1.2 算法的概念及特征计算机基础知识142022/9/253、算法的评价(算法复杂度)9.1.2 算法的概念及特征计算一般而言,方法有优劣

11、之分,算法的优劣可以有多种不同的评价标准。例如,可以从时间上来评价,也可以从空间上来评价,或者从其他的角度来评价。人们当然愿意选择较优的算法。因此,为了有效解题,不仅需要保证算法的正确性,还要考虑算法的质量,选择合适的算法。从时间上来评价算法的优劣,即执行时间短的算法效率高,用算法的时间复杂度来度量。所谓算法的时间复杂度是指执行算法所需要的计算工作量。可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。9.1.2 算法的概念及特征计算机基础知识152022/9/25一般而言,方法有优劣之分,算法的优劣可以有多种不同的评价标准例如,求1+2+100的结果,有人是先求1+2,再把和加上

12、3,再加4,一直加到100;而高斯采取的办法是,先将这100个数分为若干个组:(100)、(1, 99)、(2, 98)、(49, 51)、(50),前面50个组每个组的和都是100,因此结果为50*100+50。当然还有其他的方法。从空间上来评价即为算法所需辅助空间越少越好,用算法的空间复杂度来度量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。9.1.2 算法的概念及特征计算机基础知识162022/9/25例如,求1+2+100的结果,有人是先求1+2,再把和加1)

13、 用自然语言表示(教材中有例)2) 用传统流程图表示3) N-S流程图4) 用伪代码表示【例】求1+2+100的和,算法描述如下。 将1赋值给x。 将2赋值给y。 将x与y相加,结果存放在x中。 将y加1,结果存放在y中。 若y大于100,则输出结果x,算法结束,否则转步骤,算法继续执行。9.1.3 算法的表示方法计算机基础知识172022/9/251) 用自然语言表示(教材中有例)9.1.3 算法的表示方【例】求1+2+100的和,算法描述二: i1,sum0(即将1赋值给i,0赋值给sum)。 sumsum + i(即将sum + i的结果保存到sum中)。 ii+1。 判断是否i100,

14、如果是,转到步骤,否则,转到步骤。 输出sum的值,算法结束。9.1.3 算法的表示方法计算机基础知识182022/9/25【例】求1+2+100的和,算法描述二:9.1.3 算2) 用传统流程图表示传统流程图是用规定的一组图形符号、流程线和文字说明来表示各种操作的算法表示方法。9.1.3 算法的表示方法计算机基础知识192022/9/25处理框判断框输入输出框连接点流程线起止框2) 用传统流程图表示9.1.3 算法的表示方法计算机基础2) 用传统流程图表示在算法设计中常用到三种基本流程控制结构,即顺序、分支和循环结构。 顺序结构。每一个基本的处理单位顺序地被执行,9.1.3 算法的表示方法计

15、算机基础知识202022/9/25FT条件AB 分支结构。又称作选择结构,根据逻辑条件的成立与否,选择执行不同的处理,当逻辑条件成立时,执行处理A,否则执行处理B。2) 用传统流程图表示9.1.3 算法的表示方法计算机基础2) 用传统流程图表示 循环结构。当逻辑条件成立时,反复执行处理A,直到逻辑条件不成立时结束(左)。9.1.3 算法的表示方法计算机基础知识212022/9/25FTA条件TFTA条件2) 用传统流程图表示9.1.3 算法的表示方法计算机基础2) 用传统流程图表示求1到100的自然数的和流程图9.1.3 算法的表示方法计算机基础知识222022/9/25FT开始sum0,i1

16、sumsum + ii100?输出sum结束2) 用传统流程图表示9.1.3 算法的表示方法计算机基础4) 用伪代码表示 赋值给一个变量赋值 变量名表达式 例 s12 xs*6.2+8给多个变量赋相同的值 变量名,变量名,变量名表达式例 x,y,z3.5 s,tx+y9.1.3 算法的表示方法计算机基础知识232022/9/254) 用伪代码表示9.1.3 算法的表示方法计算机基础知识4) 用伪代码表示从键盘上输入数据到一个变量input “数据类型” to 变量名例 INPUT “姓名” TO XM INPUT “数值数据” TO S输出一个或多个结果值output “结果提示”, 表达式,

17、表达式例 OUTPUT “二次方程式的根为:”, X,Y output “1100的数据和S=:” ,s OUTPUT S9.1.3 算法的表示方法计算机基础知识242022/9/254) 用伪代码表示9.1.3 算法的表示方法计算机基础知识4) 用伪代码表示分支9.1.3 算法的表示方法计算机基础知识252022/9/25单分支if 语句组endif双分支if 语句组Aelse 语句组Bendif4) 用伪代码表示9.1.3 算法的表示方法计算机基础知识4) 用伪代码表示分支9.1.3 算法的表示方法计算机基础知识262022/9/25多分支(可省略)DO CASE CASE 语句组1 CA

18、SE 语句组2 CASE 语句组N OTHER 语句组N+1 ENDCASE【注】逻辑运算符3个: NOT AND OR4) 用伪代码表示9.1.3 算法的表示方法计算机基础知识4) 用伪代码表示循环9.1.3 算法的表示方法计算机基础知识272022/9/25 DO WHILE/ENDDO结构(当条件为真时执行循环体)DO WHILE 循环体ENDDO FOR/NEXT结构(不超越终值时执行循环体)FOR 循环控制变量=初值(表达式) TO 终值(表达式) STEP 步长值(表达式) 循环体NEXT4) 用伪代码表示9.1.3 算法的表示方法计算机基础知识综合举例:【例1】求数列1,1,2,3,5,8,13,21前30项的数据和。X,Y1N,S2DO WHILE N30 GX+Y XY YG SS+Y NN+1ENDDOOUTPUT “数列1,1,2,3,5,8,13,21前30项的数据和S=”,S OUTPUT “数列当前项为”,N9.1.3 算法的表示方法计算机基础知识282022/9/25综合举例:9.1.3 算法的表示方法计算机基础知识28

温馨提示

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

评论

0/150

提交评论