算法与程序设计PPT课件_第1页
算法与程序设计PPT课件_第2页
算法与程序设计PPT课件_第3页
算法与程序设计PPT课件_第4页
算法与程序设计PPT课件_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

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

文档简介

1、算法与程序设计1.1算法解决问题的一般过程v1、分析问题v2、设计算法v3、编写程序v4、运行程序(上机调试与维护)v指令就是用来规定计算机操作的命令。v计算机的所有指令组成了计算机的指令集。v计算机程序就是指示计算机如何去解决问题或完成任务的一组可执行的指令。v程序设计就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。1.2算法的概念 为解决某一问题而设计的确定的有限的步骤就成为算法。v算法的特点:l有穷性l确定性l可行性l有0个或多个输入l有一个或多个输出算法的三种结构v顺序结构v分支结构v循环结构1.3算法的描述方法v1、自然语言描述v2、流程图表示(即框图和结构化

2、流程图N-S图)v3、用伪代码(p8)或直接用计算机程序描述N-S图流程图符号处理框输入、输出框判断框连接框流程线开始、结束符开始输入实验数据at=t+an=n+1输出 t/12 的值结束计数器变量n赋初值0实验数据总和变量t赋初值0N=12否是变量及用途v已知矩形的长和宽,求矩形的面积。v矩形面积=长*宽vS=a*b变量和常量的概念v常量是在程序运行过程中值不变的数据或存储单元。v变量则用来表示数据的存储区,在程序运行过程中,这些存储区中的值是可以改变的。变量命名的规则v英文字母、数字、下划线组成,英文字母开头。v在计算机程序设计语言中,变量是用于程序执行期间保存数据的。v变量可以存放一个值

3、,并在后面随意调用。v变量有变量名和变量的值:例如: vt=7800,变量vt的值是7800,而vt是该变量的名。表达式v是由适当个数的数据(变量或常量)、基本运算符及圆括号构成的用来描述值的计算过程,或用来描述情况的判断过程。 一个表达式中可能包括算术运算、关系运算和逻辑运算等多种基本运算以及这些基本运算所涉及的数据(变量和常量)。v各类运算符的作用及运算规则v各类运算符的优先级v详细看书P59-60开始输入长到变量a计算 S=a*b输出面积S结束输入宽到变量b顺序结构伪代码input ainput bs=a*bprint s或者:input a,bs=a*bprint s输入一个圆的半径,

4、计算该圆的圆面输入一个圆的半径,计算该圆的圆面积和周长并输出计算结果。积和周长并输出计算结果。开始输入半径 rPI=3.1415S=PI*r*rC=2*PI*r输出C,S结束INPUT RPI=3.14S=PI*R*RC=2*PI*RPRINT CPRINT SINPUT RPI=3.14S=PI*R*RC=2*PI*RPRINT C, S或者这样可以吗?INPUT RS=PI*R*RPI=3.1415926C=2*PI*RPRINT CPRINT S计算并联电阻的总阻值vInput r1vInput r2v r = (r1 * r2) / (r1 + r2)vPrint rInput r1,

5、r2t = 1/r1+1/r2r=1/tPrint r输入平面直角坐标系中两点的坐标,输入平面直角坐标系中两点的坐标,计算两点之间的距离并输出结果。计算两点之间的距离并输出结果。输入(x1,y1),(x2,y2)的值计算S=sqr(x2-x1)2+(y2-y1)2)输出S结束开始Input x1,y1,x2,y2 s = Sqr(x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)Print s写伪代码注意点v不用中括号v左边只能是变量名,不能有运算符v乘号,除号等不能省略v变量名不成出现中文v分母有时不要忘记小括号从键盘输入一个正方形的边长,求出该正方形与

6、其内切的圆所夹的部分的面积并输出计算结果。 (如图所示)startendpi=3.14输入正方形边长aS2=pi*a*a/4S1=a*a输出面积S的值 S=S1-S2Input api = 3.14s1 = a * as2 = pi * a * a / 4s = s1 - s2Print sIf 结构结构在某些条件成熟的情况下才能解决下一个问题,在表达的时候就会有“如果就”或者“如果就,否则就”的说法,这些表达方法表示成计算机语言 “IfThen”结构或者“If Then Else”结构v单分支结构(If Then 语句)这种结构的语法为: If Then 语句组 End If这种结构的程序流

7、程图为:TF条 件 表 达式语句组开始(start)结束(End)如果Then后面所跟的语句只有一条,可以写成:If Then 而不用End If。例例:已知两个数已知两个数x和和y,比较它们的大,比较它们的大小,使得小,使得x大于大于y.If x5 then x=x+1或者:if x5 then x=x+1endif双分支结构双分支结构这种结构就是人们常这种结构就是人们常说的说的“如果如果就就,否则就,否则就”的问题,这类问题转的问题,这类问题转化成计算机语言就是化成计算机语言就是双分支结构双分支结构 T F条件表达式语句组1开始结束语句组2这种结构的语句形式:这种结构的语句形式:If Th

8、en 语句组语句组1Else 语句组语句组2End IF这种结构的程序流程图为:这种结构的程序流程图为:例如:输出例如:输出x,y两个中值较大的一两个中值较大的一个值。个值。IF XY Then Print XElse Print YEnd If写代码或者:X=12Y=10If x5 then y=x*9/4endifPrint yvX=12vY=10vIf x5 then y=x*9/4vPrint y写代码Input xIf x5 then Y=x*x+7Else Y=7*x+2Endifprint y有一种手机的月使用费的收费方法可以有一种手机的月使用费的收费方法可以用下面的式子表示用下

9、面的式子表示 60元元 月通话时间月通话时间100分钟分钟 能根据输入的月通话时间能根据输入的月通话时间s,计算出应付,计算出应付的月使用费的月使用费t并输出结果。并输出结果。开始输入通话时间SS100t=60t=60+(S-100)*0.4输出 t结束TFInput s If s 100 Then t = 60 + (s - 100) * 0.4Else t = 60End Ifprint t任意输入一个实数,求出它的绝对值。Input x If x 0 Then y = -xElse y = xEnd Ifprint y这样可以吗?Input x If x 0 Then y = -x pr

10、int yElse y = x print yEnd If根据输入的自变量X的值,求分段函数Y的值。Y=x2-4x-5 x0vInput xvIf x 3) or (72)的值是:T(43) or (23)的值是:T(43) and (23)的值是:F(43) and (72)的值是:TNot (43) and (72)的值是:F (72) and Not (43)的值是:F(4+3)(4-3 )or (5+2)5 and (87)T输入一个年号year,判断它是否为闰年。(提示:判断闰年的条件:该年份能被4整除而不能被100整除,或者能被400整除)v input year If year

11、Mod 4 = 0 And year Mod 100 0 Or year Mod 400 = 0 Thenv print 是闰年vElsev print 不是闰年vEnd If条件1语句组1TF语句组2条件2-条件n语句组n语句组n+1TTFF入口出口多分支结构多分支结构If Then Else If then Else End IfEnd IfStartnynyEndIf Then If then Else End IfElse End IfStartynnyEndIf Then If then Else End IfElse If then Else End IfEnd IfStartyn

12、nyynEnd据学生考试成绩S, 确定其等级。标准为S90,输出为“优秀”,60S90, 输出为“合格”,S= 90 Then print 优秀 Else If s = 60 Then print 合格 Else print 不合格 End If End If 例6.5-2 已知小球在最初的t1=30秒时间内沿斜面作初速度为0的匀加速直线运动,加速度a=2m/s2 ,小球在后续的t2=10秒时间内沿平面作匀减速直线运动,加速度a=-6m/s2。试编写程序计算小球在某一时刻的速度Vt 。分析:根据题意,小球最初的t1时间和后续的t2时间内的运动状态不同。根据物理学中的知识,在最初的t1时间内应该

13、用初速度为0的匀加速直线运动的速度公式来计算某一时刻的速度,而在后续的t2时间内则应按匀减速直线运动的速度公式来计算某一时刻的速度。因而,必须对要求的某一时刻的值进行判断,选择不同的计算公式。根据题意,小球的运动时间限制在开始后的40秒内,所以对用户输入的时间还应作一限制,当用户输入的时间超出40秒时,提示用户“输入错误”,当输入的时间小于或等于40秒时,才予以计算。t1=30st2=10sv0=0m/s在斜面作匀加速运动在平面作减速运动vta1=2m/s2a2= -6 m/s2方法一:input t If t =0 and t= 40 Then If t = 30 Then vt = 2 *

14、 t Else vt = 30 * 2 - 6 * (t - 30) End If print vt Else print 时间超出范围End If方法二:Input t If t 40 Then print 时间超出范围Else If t = 30 Then vt = 2 * t Else vt = 30 * 2 - 6 * (t - 30) End If print vtEnd If例6.5- 3 编写程序求任意系数的一元二次方程ax2+bx+c = 0(a0)的解。要求对系数的各种可能的情况作出判断并求出相应的解。分析:根据数学知识,在实数范围内,一元二次方程ax2+bx+c = 0 (

15、a0) 的解应按下列情况进行讨论:如果b2-4ac0,则: 方程无实数解。否则: 方程有实数解,此时,如果 b2-4ac =0则: 方程有二个相同的实数解,x1=x2=-b/(2*a)否则: 方程有二个不同的实数解; x1=(-b+sqr(b2-4ac)/(2*a)x2=(-b-sqr(b2-4ac)/(2*a)D=bb-4*a*cD0无实数解D0是是否计算两解X1,X2计算相同的解X输出两相同的解输出两不同的解否Input a,b,cd = b * b - 4 * a * cIf d BACBC输入A,B,CInput a,b,cIf a b Then If a c Then print a

16、 Else print c End IfElse If b c Then print b Else print c End IfEnd If方法一Input a,b,cIf a b And a c Then print aElse If b c Then print b Else print c End IfEnd If方法二比较a、b两数的大小,把大的数字放在max变量中,并输出。(写伪代码)方法一提示:vInput a,bvIf _ then _ vElse _vEndifvPrint _ vInput a,bvIf ab then max=a vElse max=bvEndifvPrin

17、t max方法二提示:vInput a,bvMax=avIf _ then _ vPrint _vInput a,bvMax=avIf bmax then max=bvPrint max方法一是直接进行比较,方法二类似打擂台的形式。比较a、b、c三个数的大小,把最大的数字放在max变量中,并输出。(写伪代码)方法一提示:vInput a,b,cvIf a b Then v If a c Thenv _v Elsev _v End IfvElsev If b c Thenv _v Elsev _v End IfvEnd Ifvprint maxvInput a,b,cvIf a b Then v

18、 If a c Thenv max=av Elsev max=cv End IfvElsev If b c Thenv max=bvElsev max=cvEnd IfvEnd Ifvprint max方法二提示v_vMax=avIf bmax then _vIf cmax then _vPrint maxvInput a,b,cvMax=avIf bmax then max=bvIf cmax then max=cvPrint maxa=1b=2c=3m=aIf bm then m=bIf cm then m=cPrint mm的值为多少?的值为多少?3vInput a,b,cvMax=av

19、If bmax then v Max=bvElse v If cmax then max=c vEnd ifvPrint maxv这样写对吗?最后输出的max将是谁?a=1b=2c=3m=aIf bm then m=bElse If cm then m=c End ifPrint mm的值为多少?的值为多少?2 对从键盘任意输入的字符,判断其是否英文字母,若不是,输出“非英文字母”,否则,再判断其是否大写字母,若是,直接输出,否则输出“非英文大写字母”。提示:判断一个字符CH是否是英文大写字母,可以用表达:CH=“A” AND CH=“a” AND CH= A And ch = a And c

20、h = 1 And m = 3 Then print 第一季度Else If m = 6 Then print 第二季度 Else If m = 9 Then print 第三季度 Else print 第四季度 End If End IfEnd If写代码并说出算法功能Input x,y,zIf xy then a=xElse a=yEndifIf z3) or (72)的值是:T(43) or (23)的值是:T(43) and (23)的值是:F(43) and (72)的值是:TNot (43) and (72)的值是:F (72) and Not (43)的值是:F(4+3)(4-3

21、 )or (5+2)5 and (87)Tv例,把二进制数11110101111转换为八进制数。v解:(11110101111)2( )8v 11 110 101 111v 3 6 5 7v (11110101111)2(3657)8v例,把八进制数4036转换为二进制数。v解:(4036)8( )2v 4 0 3 6 v 100 000 011 110v (4036)8(100000011110)2v例,把二进制数10011001101011转换为十六进制数。v解(10011001101011)2( )16v 10 0110 0110 1011v 2 6 6 B v (10010001101

22、011)2(266B )16v例,把十六进制数C65B转换为二进制数。v解:(C65B)16( )2v C 6 5 Bv 1100 0110 0101 1011 v (C65B)16(1100011001011011)2第二节 信息的数字化v用简单的二进制数字序列来表示现实世界中各种各样信息的过程就是信息的“数字化”过程。v数字化是计算机处理信息的基础:数字、文字、图像、语音,包括虚拟现实,以及可视世界的各种信息等,实际上都可以通过采样和量化用0和1的二进制数字序列来表示,也可以通过转换还原出原来的信息。这样,计算机不仅可以进行计算,也可以通过信息的还原来发出声音、打电话、发传真、放录象、看电

23、影。一、字符的数字化v信息可识别的符号形式,称为数据。数据可以是数值型的,也可以是非数值型的,如图像、声音等。当文字、数字、声音、图像等数据与计算机可识别的代码间有了一定的对应关系后,人们才能有效地同计算机交换各种信息。 v建立数据与代码间的关系,需要有统一的规则,这种规则称为“编码”。v目前计算机中广泛采用的编码规则是美国信息交换标准代码(American Standard Code for Information Interchange),简称ASCII码。 v字母“A”的ASCII码二进制数为1000001。 vASCII码用7位二进制代码表示,共有27=128种不同的组合,表示128个

24、字符。v这种编码使用了每个字节的低七位,而该字节的最高位为“0”。第二章计算硬件构成冯诺依曼体系计算机的逻辑构成为输入设备(Input Device)、输出设备(Output Device)、存储器(Memory Unit)、运算器(Arithmetic and logic Unit)和控制器(Controller)五大部分 输入信息输入设备输出设备运算器存储器控制器输出信息数据信息流向控制信息流向一个完整的电子计算机系统由硬件和软件两大部分构成 计算机硬件计算机硬件()输入设备从外部获取信息的计算机设备()输出设备把计算机处理信息的结果以人们能够识别的形式表现出来的设备。()存储器对大量信息

25、进行暂存或保存的器件(外存和内存 )内存分RAM和ROM()运算器对信息进行算术运算和逻辑运算的部件()控制器控制和指挥其他部件有条不紊的运行。 CPU包括运算器和控制器常见的外存有磁盘(软盘和硬盘)、光盘、USB闪存以及磁带等等v存储容量,也就是可有效容纳信息的总量,是存储器的一个主要技术指标。v存储容量的基本单位是字节(Byte,简写为B)v字节由8个二进制位构成(bit)v1GB=1024MBv1MB=1024KBv1KB=1024Bv1TB=1024GB汉字编码v汉字信息交换码GB2312-80 (国标码) GB2312-80中规定了用于信息交换的6763个汉字和682个非汉字图形符号

26、的代码。每个汉字(图形符号)均用双字节表示,每个字节只用低7位,最高位为0 。v汉字的机内码 汉字机内码是供计算机系统内部进行存储、加工处理、传输等工作时统一使用的代码,又称为汉字内部码或汉字内码。目前使用最广泛的一种为两个字节的机内码,俗称变形的国标码。这种格式的机内码是将国标GB2312-80 交换码的两个字节的最高位分别置为l而得到的 v汉字的输入码 汉字的输入码(外码)是为了将汉字通过键盘输入计算机而设计的,它有多种形式。例如,以汉字的字音为主的拼音码,以字型为主的五笔字型码等。v汉字的字形码 汉字的字形码是汉字字库中存储的汉字字形的数字化信息,用于汉字的显示和打印。目前,汉字字形的产

27、生大多采用点阵方式和矢量函数方式。 汉字输入码各不相同,机内码都一致。汉字输入码各不相同,机内码都一致。 二、模拟量和数字量v“数字化”过程就是将这种“模拟量”转换成“数字量”。 v“模拟量”和“数字量”的区别是:前者是连续的,后者是间断的;前者可以独立存在,而后者必须与计量的方式关联。 v例如,温度计中反映温度变化的水银柱伸缩是连续变化的,而与水银柱变化相对应的刻度值则是间断的(如图所示),所以,前者是“模拟量”而后者是“数字量”。v从“模拟量”转换成“数字量”,称为模数转换(A/D)。计算机加工好的“数字量”,往往也需要转换为“模拟量”,这就是数模转换(D/A)。实现相应转换的设备则为A/

28、D、D/A转换器。v这种转换的关键在于以很小的时间间隔不断测得模拟量在这些瞬间的幅度值(取样),并以某种数值(量化)形式加以保存;或者以与上述相同的时间间隔产生以电压等幅度形式表示的数值,并使之平滑过渡,还原出原来的模拟量。三、声波的数字化v声音是由振动产生的在空气中传输的波。它是一种模拟信号,需要通过“采样”并“量化”后达到数字化。v采样:每隔一定的时间,读取一次声波模拟电压的数值。 在一定的时间内,读取的数据越多,得到的数据精度越高,量化后的数据量越大。v量化:将读取到的物理量用数字来描述。 以最基本的单个字节量化为例,一个字节为 8位二进制数,采样值就可以是00101010、010101

29、001、10001001模拟信号变成了二进制数序列,这些二进制数序列的信息可以被存储为不同编码形式的文件,如常见的“.wav”“.mp3”格式的声音文件。v例: CD音频格式采用的采样频率为44.1KHz,量化的值用16位表示,立体声双声道,7分钟的数据量为多少KB?v44.1*1000*2*7*60*16/8/1024 KBv常见的一些音频格式:WAV、MP3。采用33KHZ的采样频率、双声道的方式用录音笔录制了2分钟的演讲,采用的量化级数为24位,得到内容为 _KB的录音文件. 答案:33*1000*2*2*60*24/8/1024 四、图像的数字化v图像的数字化处理的基本思想是把一幅图像

30、看成是由纵横分割的许多图像元素组成,对每个图像元素进行采样并量化。 v在图像处理技术中,这些方格被称作像素。像素的数量就是图像的分辨率,通常是以水平方向上的像素数量乘以垂直方向上的像素数量来表示的。例如:分辨率为1024 768的图像,它水平方向上的像素数量为1024个,垂直方向上的像素数量为768个。显然,像素(或分辨率)越大,表现出的图像越逼真。v例. 现有一张分辨率为1024*768的黑白图片,那么这张图片的数据量为多少KB?v1024*768*1/8/1024 KBv常见图片格式:BMP、TIF、GIF、JPG一张1024*768像素的图片,如果以16位彩色扫描,其图片大小约为_KB.

31、答案:1024*768*16/8/1024或者:1024*768*2/1024五、压缩技术 v数据压缩就是采用特殊的编码方式来保存数据,使数据占用的存储空间比较少。 v在音频和视频方面的文件,如VCD,DVD视频格式影碟和MP3,WMA,RealMedia音频文件,都是采用压缩算法编码的,这种经过压缩处理的文件在还原成声音或影像时或多或少都会有一些质量损失,但一般不影响效果,叫有损压缩。vBMP位图,没有经过压缩。Jpeg等图片压缩过。v无损压缩算法一般都有严格的校验功能,以使经过该算法压缩的数据可以完整地还原。一些程序和数据必须无损压缩。WINZIP,WINRAR无损压缩vMP3是音乐信息压

32、缩标准;JPG是静态图像信息的压缩标准;MPEG和RM是视频信息的压缩标准,这些标准都有很高的压缩比;RAR、ZIP无损压缩一、信息一、信息1用来描述各事物的特征、变化及相互关系的数据所表达的内容就是信息。v2信息、物质、能源是人类社会的三大基本资源。v现代信息技术的应用遍及整个社会。信息的处理包括信息获取、信息存储、信息加工、信息表达(发布)、信息传输等方面。v信息处理过程:是指收集、存储、加工、发布信息的过程。信息安全 v计算机病毒(计算机病毒(Computer Virus)是人为编制的、)是人为编制的、可能对计算机及其存储的信息造成危害的计算机程可能对计算机及其存储的信息造成危害的计算机

33、程序。序。这种特殊的计算机程序能够在计算机系统或网络中通过自我复制来进行传播,在一定条件下被激活并对计算机系统及存储的信息造成破坏。这种程序具有类似自然界生物病毒的繁殖、传染、潜伏并对其寄主造成损害的特点,所以被形象地称为“病毒”。计算机病毒是信息安全工作中最主要的防范对象之一。计算机病毒的特点 v计算机病毒具有隐蔽性、传染性、潜伏性和破坏性等特点。v(1)隐蔽性:许多病毒通过一定的伪装保护自己。 v(2)传染性:计算机病毒进入计算机系统后,通过修改计算机中存储的文件,把自身代码复制到寄主程序中,从而使病毒进一步扩散。 v(3)潜伏性:许多计算机病毒能够潜伏在正常的程序之中,在满足一定条件的时

34、候才被激活发作,对计算机系统进行破坏。 v(4)破坏性:计算机病毒对计算机及其信息的破坏有多种形式。计算机病毒的防治v目前已经发现的计算机病毒的传播途径主要有:v 通过文件系统传播;v 通过电子邮件传播;v 通过局域网传播;v 通过互联网上即时通讯软件和点对点软件等常用工具传播;v 利用操作系统和应用软件的漏洞进行传播;v 利用系统配置缺陷传播,如弱口令、完全共享等。v对计算机病毒,应该是防重于治。预防“中毒”首先是要隔离“毒源”。 v除了隔离毒源外,经常对计算机进行病毒的检测是必要的,以便发现病毒立即清除。v在操作过程中,设置动态的病毒检测是很必要的,同时这也是最有效的防毒手段。杀毒软件通常都具有病毒“防火墙”功能,能对一些病毒进行实时的检测和防范。 v如果发现连网的计算机感染了病毒,应立即把它从网上切断,再使用最新版本的杀毒软件进行查杀。v由于计算机病毒防不胜防,因此除了使用杀毒软件定期进行查杀外,还应及时将一些重要的数据备份 。算法与程序设计1.1算法解决问题的一般过程v1、分析问题v2、设计算法v3、编写程序v4、运行程序(上机调试与维护)v指令就是用来规定计算机操作的命令。v计算机的所有指令组成了计算机的指令集。v计算机程序就是指示计算机如何去解决问题或完

温馨提示

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

评论

0/150

提交评论