N第5章基结构程设计 第5章基本结构程序设计 5,1程序设计的一般过程 52顺序结构程序设计 5.3分支程序设计 5.4循环程序设计 55字符处理 BACK
第5章 基本结构程序设计 第5章 基本结构程序设计 5.1 程序设计的一般过程 5.2 顺序结构程序设计 5.3 分支程序设计 5.4 循环程序设计 5.5 字符处理
N第5章基结构程设计 5.1程序设计的一般过程 511程序与程序设计的概念 要用计算机解决问题,必须事先对所要解决的问题拟定一个 便于计算机工作的明确步骤,并且用计算机所能理解的“语言” 把它表示出来,输入计算机,经过调试正确,并最后运行取得结 果后才算完成了任务,我们称这一过程为程序设计。把用计算机 语言表示的问题求解的一系列明确步骤,称作解决该问题的程序, 而把完成这项任务的活动称为编码(或称编制程序,简称编程); 拟定一个便于计算机工作的明确步骤称为算法设计(或称设计问题 求解的方法)。程序设计与编制程序是有区别的。程序设计除了包 括编码外,还有其他过程,如算法设计,程序测试等
第5章 基本结构程序设计 5.1 程序设计的一般过程 5.1.1 程序与程序设计的概念 要用计算机解决问题,必须事先对所要解决的问题拟定一个 便于计算机工作的明确步骤,并且用计算机所能理解的“语言” 把它表示出来,输入计算机,经过调试正确,并最后运行取得结 果后才算完成了任务,我们称这一过程为程序设计。把用计算机 语言表示的问题求解的一系列明确步骤,称作解决该问题的程序, 而把完成这项任务的活动称为编码(或称编制程序,简称编程); 拟定一个便于计算机工作的明确步骤称为算法设计(或称设计问题 求解的方法)。程序设计与编制程序是有区别的。程序设计除了包 括编码外,还有其他过程,如算法设计,程序测试等
N第5章基结构程设计 5.12算法与流程图 1.算法 在编制程序之前,必须设计算法。算法是求解问题的方法 和具体步骤,即把所要解决的问题表达为一系列计算机所能执 行的基本操作 例如:任意给定一个正整数N,求出一切不超过N的素数。 如果用筛选法来解决这一问题,则求解的步骤可概述如下:
第5章 基本结构程序设计 5.1.2 算法与流程图 1.算法 在编制程序之前,必须设计算法。算法是求解问题的方法 和具体步骤,即把所要解决的问题表达为一系列计算机所能执 行的基本操作。 例如:任意给定一个正整数N,求出一切不超过N的素数。 如果用筛选法来解决这一问题,则求解的步骤可概述如下:
N第5章基结构程设计 1)将不超过N的整数从小到大排成一串,即 1,2,3,4,,,N-1,N (2)划去数串最左边的数1(可使用*号标在该数的右上角),即 1*,2,3,4,,,N-1,N 此时数串留下的最左边的数为2,而2是一个素数,它是已识别 的当前素数
第5章 基本结构程序设计 (1) 将不超过N的整数从小到大排成一串,即 1,2,3,4,…,N-1,N (2) 划去数串最左边的数1(可使用*号标在该数的右上角),即 1*,2,3,4,…,N-1,N 此时数串留下的最左边的数为2,而2是一个素数,它是已识别 的当前素数
第5章基结构程库设计 (3)从当前素数2起,划去数串右边所有2的倍数的数(2 除外),即 ,2,3,4*,5,6*,7,8*,9,10 这样划去的都是合数,而右边剩下的就可能是素数。从2起, 往数串右边看,首先遇到的是素数3。 (4)再从当前素数3起,划去数串右边所有3的倍数的数(3本 身除外),即 1*,2,3,4*,5,6*,7,8*,9*,10*,11, 这样划去的都是合数。再从3起往右边看,首先遇到的就是 素数5
第5章 基本结构程序设计 (3) 从当前素数2起,划去数串右边所有2的倍数的数(2本身 除外),即 1*,2,3,4*,5,6*,7,8*,9,10*,… 这样划去的都是合数,而右边剩下的就可能是素数。从2起, 往数串右边看,首先遇到的是素数3。 (4) 再从当前素数3起,划去数串右边所有3的倍数的数(3本 身除外),即 1*,2,3,4*,5,6*,7,8*,9*,10*,11,… 这样划去的都是合数。再从3起往右边看,首先遇到的就是 素数5
N第5章基结构程设计 如此继续下去,一直到找出的数(此数不包括在所求素数中) 刚好超过N为止。这时,从该数起,数串左部中没有被划去的 所有数就是所求的不超过N的全部素数。 上述这样一个工作步骤,就是求出一切不超过N的素数的 “算法
第5章 基本结构程序设计 如此继续下去,一直到找出的数(此数不包括在所求素数中) 刚好超过N为止。这时,从该数起,数串左部中没有被划去的 所有数就是所求的不超过N的全部素数。 上述这样一个工作步骤,就是求出一切不超过N的素数的 “算法
第5幸基李结构程设让 2.流程图 在上述例题中,对于求解问题的算法描述用的是自然语言, 包括一些数学语言。但用这种方法来描述算法,对于求解问题 的流程(即逻辑结构)还不是很直观,人们理解起来也比较慢。因 此,人们往往利用具有几何图形直观性的流程图(简称框图)方法 来描述算法,即给出问题求解步骤的图形表示,或是用某种类 髙级语言(如类 PASCAL语言)来描述算法,而流程图是描述算法 最早使用的一种方法 流程图是框和线(或带箭头的线)的集合体。框用以指示做什 么事,线用以指示各框之间的关系(包括顺序关系)。框具有各种 形状,表示各种不同的用途。国际标准化组织ANSI/ISO对流程 图使用的备种坠形号及其含义了规定本书再讨论
第5章 基本结构程序设计 2.流程图 在上述例题中,对于求解问题的算法描述用的是自然语言, 包括一些数学语言。但用这种方法来描述算法,对于求解问题 的流程(即逻辑结构)还不是很直观,人们理解起来也比较慢。因 此,人们往往利用具有几何图形直观性的流程图(简称框图)方法 来描述算法,即给出问题求解步骤的图形表示,或是用某种类 高级语言(如类PASCAL语言)来描述算法,而流程图是描述算法 最早使用的一种方法。 流程图是框和线(或带箭头的线)的集合体。框用以指示做什 么事,线用以指示各框之间的关系(包括顺序关系)。框具有各种 形状,表示各种不同的用途。国际标准化组织ANSI/ISO对流程 图使用的各种图形符号及其含义作了规定,本书不再讨论
N第5章基结构程设计 513程序设计语言与编码 用计算机来求解问题,还必须用计算机所能接受的语言将 问题的算法表示出来,即编码或编程序 编程序首先碰到的是使用何种语言的问题,这取决于两个 因素,一是求解问题或任务的性质和要求,二是所用的计算机 配置了什么语言
第5章 基本结构程序设计 5.1.3 程序设计语言与编码 用计算机来求解问题,还必须用计算机所能接受的语言将 问题的算法表示出来,即编码或编程序。 编程序首先碰到的是使用何种语言的问题,这取决于两个 因素,一是求解问题或任务的性质和要求,二是所用的计算机 配置了什么语言
第5章基结构程库设计 如前所述,在计算机系统的最内层是机器语言,它是裸积 能直接理解的惟一语言。用机器语言编写程序虽可充分利用机 器指令的灵活性,达到较高的效率,但这种程序是二进制代码 形式,难读难写不便修改,现在已很少使用它,改用其外层的 汇编语言来写“要求效率较高”的程序。汇编语言的主要思想 是用符号表示机器指令,即用“记忆码”代替操作码,用“标 识符”代替地址。与机器语言相比,它易读、易写,可以减轻 人们的劳动。然而机器并不能直接理解汇编语言,因此必须要 有一个翻译程序将汇编语言程序翻译成机器语言程序,这就是 汇编程序。汇编语言是一种重要的程序设计语言
第5章 基本结构程序设计 如前所述,在计算机系统的最内层是机器语言,它是裸机 能直接理解的惟一语言。用机器语言编写程序虽可充分利用机 器指令的灵活性,达到较高的效率,但这种程序是二进制代码 形式,难读难写不便修改,现在已很少使用它,改用其外层的 汇编语言来写“要求效率较高”的程序。汇编语言的主要思想 是用符号表示机器指令,即用“记忆码”代替操作码,用“标 识符”代替地址。与机器语言相比,它易读、易写,可以减轻 人们的劳动。然而机器并不能直接理解汇编语言,因此必须要 有一个翻译程序将汇编语言程序翻译成机器语言程序,这就是 汇编程序。汇编语言是一种重要的程序设计语言
N第5章基结构程设计 除了汇编语言,还有许多高级程序设计语言,如 PASCAL、 Visual c++等。使用这类高级语言编写的程序,同汇编语言程 序一样,也必须经过相应语言的“编译程序”的翻译,使之成 为机器语言程序,才能在机器上执行
第5章 基本结构程序设计 除了汇编语言,还有许多高级程序设计语言,如PASCAL、 Visual C++等。使用这类高级语言编写的程序,同汇编语言程 序一样,也必须经过相应语言的“编译程序”的翻译,使之成 为机器语言程序,才能在机器上执行