1、程序与程序设计语言程序与程序设计语言广东版教材高中信息技术(选修1)算法与程序设计第一章 解开计算机解决问题的神秘面纱 第三节 回顾上一节课1.在编程领域,算法可以进一步定义为什么?2.算法有哪五个特征?算法就是用计算机求解某一问题的方法,是算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。能被机械地执行的动作或指令的有穷集合。0个或多个输入、至少个或多个输入、至少1个输出、有穷性、确个输出、有穷性、确定性和可行性。定性和可行性。1、程序的概念程序是一组机器操作的指令或语句序列,是算法的一种描述。【随堂练习】某工厂2005年的年生产总值为200万元,技术革新后预计以后
2、每年的年生产总值都比上一年增长5%,设计一个程序框图,输出预计年生产总值超过300万元的最早年份。算法提示第一步,输入2005年的年生产总值;第二步,计算下一年的年生产总值;第三步,判断所得的结果是否大于300,若是,则输出该年份;否则,返回第二步。 www.3- www.in- 开始结束n=2005a=200t=a0.05a=a+tn=n+1a300?输出nNY开始结束n=2005a=200t=a0.05a=a+tn=n+1a300?输出nNY求解“最早年份”的算法与程序算法算法程序程序Private Sub Command1_Click()(1)指定指定n和和a的初始值的初始值n=2005
3、a=200Do(2)求下一年增长值求下一年增长值t=a*0.05 t=a*0.05(3)求出下一年生产的总求出下一年生产的总值值 a=a+t a=a+t(4)求出下一年的年份求出下一年的年份 n=n+1 n=n+1(5)判断年生产总值是否判断年生产总值是否超过超过300万元万元Loop Until a 300(7)输出年生产总值超过输出年生产总值超过300万元的最早年份万元的最早年份Print 预计年生产总值超过预计年生产总值超过300万元的最早年份是万元的最早年份是:;n(5)结束。结束。End Sub示例示例:输入一个整数a,判断是否为偶数,是偶数时输出“yes”,否则输出“no”。(用伪
4、代码描述)。算法:输入 aIf a 能被2整除 Then 输出“yes”Else输出“no”End if【随堂练习】求解“判断是否为偶数”的算法与程序算法算法程序程序Private Sub Command1_Click()(1)输入 aa=InputBox(a=,输入输入一个整数一个整数a)(2)If a 能被2整除 Then 输出“yes”If a Mod 2=0 Then Print YES(3)Else输出“no”Else Print NO(4)End if End If(5)结束。结束。End Sub【随堂练习】操作题有10个评委为参赛选手打分。评分时,去掉最高分和最低分,算出其余8个
5、分数的平均分,作为该选手的得分。请设计一算法,从键盘输入10个评委给的分数,输出选手的得分。设:MAX为评委给出的最高分;MIN为评委给出的最底分;N为评委给出的分数个数;X为评委给出的分数;S为评委分数总和。用伪代码描述如下:N=1S=0输入第一个评委给出的分数XS=S+XMAX=XMIN=XN=N+1IF N10 THEN输出(S-MAX-MIN)/8;结束ELSE输入下一个评委给出的分数XS=S+XIF XMAX THEN MAX=X IF X 10 Then y=(s-max-min)/8 Print 该选手的得分为:;y;分 Else x=InputBox(第&(n)&个评委给出的分
6、数=,请输入第&(n)&个评委给出的分数)s=s+x If x max Then max=x End If If x min Then min=x End If GoTo redo End IfEnd Sub2、程序的特征(1)程序中,每一个算法的步骤对应着程序设计语言的一个或多个语句;(2)除非特别声明,程序从第一条语句开始顺序执行;(3)程序总是施行操作于某些对象,这些对象通常称为数据;(4)这些数据一般应该有属性和取值范围,即类型说明;(5)有时语句要求执行者作出判定,即在某种条件成立的情况下执行一条或一组语句,否则执行另一条或另一组语句。(6)一条或一组语句可能需要执行一次以上,当一条
7、或一组语句要重复时,必须指明重复次数或重复条件。(7)程序本身是一个静态实体,而执行语句的进程是动态的。3、程序的基本结构程序一般是由若干个基本结构组成的,一个基本结构可以包含一条或若干条语句。一般情况下,程序有三种最基本的结构:顺序结构、选择结构和循环结构。语句1语句1语句1是否条件语句组1语句组2是否循环体条件1、顺序结构、顺序结构将命令和语句逐条顺序排列。将命令和语句逐条顺序排列。程序执行时按语句的程序执行时按语句的先后顺序逐条执行先后顺序逐条执行。例、例、a=1 b=2 c=a+b a=c-a b=c-a最后,变量最后,变量b的值是(的值是()S1S2S312、选择结构:(分支结构)、
8、选择结构:(分支结构)根据条件判断其根据条件判断其是否成立是否成立,如果成立执行成,如果成立执行成立的分支;否则执行另一分支。立的分支;否则执行另一分支。其一般形式为:其一般形式为:If 条件条件 Then 语句序列语句序列1Else 语句序列语句序列2End If分支结构的简单形式为:分支结构的简单形式为:If 条件条件 Then 语句序列语句序列End IfCS1S2例例3、a=2:b=1:c=5If ab Then m=a Else m=bEnd IfIf c100最后,变量最后,变量s的值是(的值是()50501 1、有以下程序段:、有以下程序段:I=3 .J=0I=3 .J=0 J=
9、5 I=1 J=5 I=1 I=I I=IJ DOJ DO J=J J=J 十十 I I I=I I=I 十十 1 1 Loop Until I 5 Loop Until I 5 .j=0 .J=0 .j=0 .J=0 If J If J0 Then If J0 Then If J0 Then0 Then J JJ J1 J=J 1 J=J l l End If Else End If Else J=J-1 J=J-1 End If End If 以上四个程序段中,属于顺序结构的是以上四个程序段中,属于顺序结构的是 ,属于分支结,属于分支结构的是构的是 ,属于循环结构的是,属于循环结构的是 (
10、)A.B.C.D.以上都不正以上都不正确确课堂巩固练习程序中使用三种基本控制结构的好处:1.任何复杂的算法都可以用顺序结构、选择结构、循环结构三种基本结构组合而成的程序表示。2.使用三种基本控制结构的组合来表现程序,可以改善程序的清晰度,提高程序的可读改善程序的清晰度,提高程序的可读性性。这是因为:(1)以控制结构为单位,只有一个入口、一个出口,各单位之间接口简单,每个单位也容易理解。(2)缩小了程序的静态结构与动态执行过程之间的差异,是人们能方便、正确地理解程序的功能。4、程序设计分析问题、建立模型、设计算法、编写程序具体问题程序设计计算机程序程序设计就是编写程序的过程。程序设计就是编写程序
11、的过程。程序设计寻求解决问题的方法,并将其实现步骤写成计算机可执行的程序的过程。一个高质量的程序,应具备以下的条件:一个高质量的程序,应具备以下的条件:建立正确的数学模型和确定有效的计算方法。运行结果必须正确,且在精度和其他各方面均满足要求。程序本身具有良好的结构,逻辑清楚,易读易懂。程序运行时间尽可能短,同时尽可能合理地使用内存。便于检查、修正、移植和维护。5、算法、程序设计与程序设计语言之间的关系 算法用计算机解决问题的方法。程序设计寻求解决问题的方法,并将其实现步骤写成计算机可执行的程序的过程。程序设计语言泛指一切用于书写计算机程序的语言。算法是程序设计的算法是程序设计的前提前提,它包含
12、方法和步,它包含方法和步骤:骤:程序是实现算法中的思想的程序是实现算法中的思想的过程过程;程序设计语言把算法转化为计算机认识的程序设计语言把算法转化为计算机认识的语言语言。5、程序设计语言的产生与发展程序设计语言,就是指人们编制程序所使用的计算机语言。随着计算机的发展,程序设计语言经历了从机器语言到高级语言的发展历程。1.机器语言一组由0、1序列构成的指令码,能够被计算机直接接受和执行的计算机语言。2.汇编语言用助记符来表示每一条机器指令的计算机语言。3.高级语言一类接近于自然语言和数学公式的计算机(编程)语言。10110000000010010000010000001000MOV AL,9A
13、DD AL,89+89+8的程序设计语言语言种类优势不足机器语言能被计算机直接接受和执行程序难以理解、程序设计任务繁重,效率低下,而且程序设计人员必须经过专门的训练。汇编语言比机器语言更易理解程序不能被机器直接接受,要经过翻译器翻译成机器语言。高级语言更近自然语言,易于理解,移植性好高级语言编写的程序要经过翻译器翻译成机器语言,才能在计算机上执行。各种程序设计语言的比较6、程序的编辑与编辑程序相关的几个概念:1.源代码:以汇编语言或高级语言编写的程序。2.程序的编辑:将源代码输入计算机并把它们以文件的形式保存的过程。3.源文件:程序的编辑中保存的文件。4.BASIC语言的扩展名为.bas VB
14、6.0VB6.0应用程序集成开发环境应用程序集成开发环境控件控件工具箱工具箱窗体编辑窗体编辑窗口窗口工程资源工程资源管理器管理器属性属性窗口窗口窗体布局窗体布局窗口窗口菜单栏菜单栏工具栏工具栏启动、中断、结束程序7、程序的翻译高级语言的翻译程序则有两种类型:编译程序和解释程序。1.编译程序:主要功能是将高级语言编写的程序在执行前翻译成等效的机器语言程序,以便在机器上直接执行。其编译过程如右图所示。源程序编译程序目标程序连接程序装入程序可执行程序其他目标程序解释程序:所谓解释实际上是对源程序的每一个可能的行为都用机器语言编写一个子程序,用来模拟这一行为。其过程如右图所示。源程序原始数据解释程序结果数据