2-1 结构化程序设计基础
- 格式:doc
- 大小:388.00 KB
- 文档页数:10
用于结构化程序设计的三种基本结构
结构化程序设计是指一种面向过程的高级程序设计方法,它把程序的有机结构划分为独立的小步骤,每个步骤都可以独立考虑,用顺序、分支和循环等结构控制衔接这些步骤,从
而把一个复杂任务划分为一个个较容易解决的子任务。
在结构化程序设计中,主要有顺序、分支和循环三种基本结构,它们可以相结合使用,实现更复杂的功能。
首先,顺序结构是将一个任务分解成一系列步骤,按照一定顺序执行,每一步骤之间用流
程控制语句连接起来,组成一个完整的程序片段。
传统的程序实现大都依赖于这种结构,
它是最常用的编程基础,任何程序都要以它为主,以它为核心。
其次,分支结构可以让程序实现一种“判断并选择”的功能,它根据某种条件的真假来决
定程序的执行路径,有不同的分支结构,如IF-THEN-ELSE,SWITCH-CASE等等,它可以增强程序的复杂性。
最后,循环结构可以实现对一系列操作重复执行的功能,它通过循环控制语句对某些操作
重复执行,与此同时,循环控制语句也包含了循环终止的条件以及保证总有终止点的机制。
常见的循环结构有FOR,WHILE等,它们可以让程序更高效、更有弹性。
综上所述,结构化程序设计的三种基本结构分别为顺序结构、分支结构和循环结构,可以实现程序从简单到复杂的结构和功能,交织组合上述三种结构可以随意实现更加具体的程序功能。
所以,这三种基本结构,无论在程序设计的原理还是实际的应用中,都是至关重
要的!。
结构化程序设计的基本结构随着计算机技术的不断发展,程序设计也逐渐成为了现代社会不可或缺的一部分。
在程序设计的过程中,结构化程序设计是一种被广泛使用的设计方法。
它以清晰、简洁、易于理解和维护的代码为目标,被广泛应用于各种类型的软件开发中。
本文将介绍结构化程序设计的基本结构,以及如何使用它来编写高效的程序。
一、结构化程序设计的概念结构化程序设计是一种程序设计方法,它通过将程序分解成小的模块,然后按照一定的结构组合这些模块,从而构建出一个完整的程序。
结构化程序设计的目标是编写高效、可读性强、可维护性好的程序。
结构化程序设计的核心思想是分而治之。
将一个大的问题分解成多个小的问题,然后使用适当的算法解决这些小的问题。
这种方法可以使程序更加清晰、易于理解和维护。
同时,结构化程序设计还强调程序的模块化,也就是将程序分解成多个模块,每个模块只完成一个特定的任务。
二、结构化程序设计的基本结构结构化程序设计的基本结构包括三种控制结构:顺序结构、选择结构和循环结构。
1.顺序结构顺序结构是指程序按照编写的顺序依次执行每个语句。
程序从程序的入口开始执行,依次执行每个语句,直到执行完所有语句为止。
例如:```a = 10b = 20c = a + bprint(c)```以上代码中,程序按照编写的顺序执行每个语句,先给变量a 赋值,然后给变量b赋值,然后计算a和b的和,最后输出结果c。
2.选择结构选择结构是指程序根据条件选择执行不同的语句。
选择结构有两种形式:if语句和switch语句。
(1)if语句if语句的基本形式如下:```if condition:statementelse:statement```其中,condition是一个条件表达式,statement是要执行的语句。
如果condition为True,则执行if后面的语句;否则执行else后面的语句。
例如:```a = 10b = 20if a > b:print('a > b')else:print('a <= b')```以上代码中,如果a大于b,则输出'a > b';否则输出'a <= b'。
第二章程序设计基础2.1程序设计方法与风格程序设计是一门艺术,需要相应的理论、技术、方法和工具来支持。
就程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向对象程序设计阶段。
除了好的程序设计方法和技术外,程序设计风格也是很重要的。
因为程序设计风格会深刻地影响软件的质量和可维护性,良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护,因此程序设计风格对保证程序的质量是很重要的。
一般来说,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。
程序是由人来编写的,为了测试和维护程序,往往还要阅读和跟踪程序,因此程序设计的风格总体而言应该强调简单和清晰,程序必须是可理解的。
可以认为,著名的“清晰第一,效率第二”的论点已成为当今主导程序设计风格。
要形成良好的程序设计风格,主要应注重和考虑下述一些因素。
1、源程序文档化源程序文档化应考虑如下几点:(1)符号名的命名:符号名的命名应具有一定实际意义,以便于对程序功能的理解。
(2)程序注释:正确的注释能够帮助读者理解程序。
注释一般包括序言性注释和功能性注释。
序言性注释通常位于每个程序的开头部分,它给出程序的整体说明,主要描述内容包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。
功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。
(3)视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。
2、数据说明的方法在编写程序时,需要注意数据说明的风格,以便使程序中的数据说明更易于理解和维护。
一般应注意以下几点:(1)数据说明的次序规范化。
鉴于程序理解、阅读和维护的需要,使数据说明次序固定,可以使数据的属性容易查找,也有利于测试、排错和维护。
(2)说明语句中变量安排有序化。
当一个说明语句说明多个变量时,变量按字母顺序排列为好。
(3)使用注释来说明复杂数据的结构。
第6章构造化程序设计根底在VFP交互方式下,除了通过命令窗口、系统菜单和工具对VFP进展操作外,还可以通过程序方式执行较复杂的数据处理任务。
VFP程序设计包括构造化程序设计和面向对象程序设计。
构造化程序设计是传统的程序设计方法,是面向对象程序设计的根底。
6.1 构造化程序样例分析程序是指可以完成一定任务的一组有序命令的集合。
程序中的命令也称为语句。
程序以文件形式保存在外部存储器中。
与命令方式相比,程序方式有如下优点:便于保存、编辑和运行:以程序文件形式保存一组语句;每次启动VFP后,不需要重复输入程序中的语句,只要翻开程序文件就可以对其进展修改;运行相应的程序文件就是执行程序中的相关语句,并且可以屡次执行一个程序。
层次明晰、功能模块化:允许在一个程序中调用其他子程序,构成程序系统,以便完成更复杂的处理任务。
【例 6.1 】编写求数N的阶乘程序,存于文件E6_1.PRG中。
操作步骤为:首先,在命令窗口中输入:Modify Command E6_1命令翻开程序编辑器。
然后,输入以下语句〔不输入行号〕,如图6.1。
1〕 * 求数N的阶乘,即 S=1×2×……×(N-1)×N2〕 Input 〞输入整数:〞To N && 执行程序时,用户输入的数保存在变量N中3〕 If N<1 && 假设N小于1,那么执行第4和 5行语句;否那么,转到第7行继续执行4〕? '输入的数:',N,'不能小于1'5〕Cancel6〕 EndIf7〕 Store 1 To M,S8〕 Do While M<=N && 当M小于或等于N时,执行第9和第10行语句&& 直到M大于N时,转到第12行继续执行9〕 S=S*M10〕 M=M+111〕 EndDo12〕 ? N,〞的阶乘是:〞,S图6.1 程序编辑器最后,单击“运行〞常用工具。
简述结构化程序设计方法的基本要点一、什么是结构化程序设计方法?结构化程序设计方法是一种软件开发的方法论,旨在通过划分问题为一系列小而简单的模块,从而使得程序更易于理解、维护和修改。
其基本思想是将程序划分为若干个逻辑上独立的模块,并采用模块化、自顶向下、逐步求精等技术手段进行程序设计和实现。
二、结构化程序设计方法的基本要点1. 自顶向下设计自顶向下设计是指从整体到部分的过程,即先考虑整个系统的框架和功能,再将其细分为多个子功能,并逐层细化直至最小单元。
这种方式可以使得整个系统更加清晰明了,便于后期开发和维护。
2. 模块化编程模块化编程是指将一个大型程序划分为多个独立的小模块,每个模块都有自己特定的功能,并且可以独立编译和测试。
这种方式可以提高代码重用性和可读性,减少出错概率。
3. 顺序、选择和循环三种基本结构顺序结构是指按照代码书写的顺序依次执行语句;选择结构是指根据条件判断执行不同的语句;循环结构是指重复执行一段代码直到满足某个条件。
这三种基本结构是编程中最常用的,也是结构化程序设计方法的基础。
4. 输入、处理和输出三个基本模块输入模块是指从外部获取数据的过程;处理模块是指对数据进行处理的过程;输出模块是指将处理结果输出到外部的过程。
这三个基本模块相互独立,可以分别设计和测试,便于程序开发和维护。
5. 数据流图和结构图数据流图和结构图是结构化程序设计方法中常用的两种图形化表示方式。
数据流图主要用于表示系统中数据流动和转换关系,而结构图则主要用于表示系统中程序模块之间的调用关系。
6. 程序测试和调试程序测试和调试是软件开发过程中必不可少的环节。
在采用结构化程序设计方法时,应尽可能地将各个模块独立开发、测试和调试,并且在整合时进行全面测试和调试,以确保系统能够正常运行。
三、如何实践结构化程序设计方法?1. 划分功能模块首先需要根据需求对整个系统进行功能划分,并将其拆分为多个逻辑上独立的模块。
每个模块应该具有明确的输入、处理和输出功能,并且应该尽可能地遵循单一职责原则。
结构化程序设计的基本单元标题:结构化程序设计的基本单元:深度解析与实践一、引言在计算机科学中,结构化程序设计是一种以逻辑控制结构为基础的编程方法。
这种方法强调程序的清晰性和可读性,通过使用顺序、选择和循环等基本控制结构,将复杂的任务分解为一系列简单的步骤来实现。
本文将深入探讨结构化程序设计的基本单元,包括其定义、类型、应用以及如何利用这些基本单元进行有效的程序设计。
二、结构化程序设计的基本单元定义结构化程序设计的基本单元,是指构成程序的基本元素或组件,主要包括以下三种:1. 顺序结构:这是最简单的结构,程序按照从上到下的顺序依次执行每一条指令。
2. 选择结构(分支结构):根据某个条件是否满足来决定程序的执行路径。
常见的选择结构包括if语句和switch语句。
3. 循环结构:重复执行一段代码,直到满足特定的结束条件。
常见的循环结构包括for循环、while循环和do-while循环。
这三种基本单元构成了结构化程序设计的核心,它们可以组合在一起,形成复杂而强大的程序。
三、结构化程序设计的基本单元类型1. 顺序结构:在顺序结构中,程序按照代码的书写顺序逐行执行。
例如,一个简单的顺序结构可能包括变量声明、赋值操作和输出操作。
2. 选择结构:选择结构用于处理具有多种可能结果的情况。
例如,我们可以使用if语句来检查一个数是否为正数,如果是,则输出“这是一个正数”,否则输出“这不是一个正数”。
3. 循环结构:循环结构用于重复执行某段代码,直到满足特定的结束条件。
例如,我们可以使用for循环来计算一个数的阶乘。
四、结构化程序设计的基本单元应用在实际编程中,我们常常需要结合使用这三种基本单元来解决问题。
以下是一个简单的例子,该程序用于计算一个数的阶乘:pythondef factorial(n):if n < 0:return "输入的数值不能为负数"elif n == 0 or n == 1:return 1else:result = 1for i in range(1, n+1):result *= ireturn result在这个例子中,我们首先使用了选择结构来判断输入的数值是否合法,然后使用了循环结构来计算阶乘,最后返回结果。
程序设计基础1.程序设计方法与风格语句的结构:程序应该简单易懂,语句构造应该简单直接。
应该注意的是:在一行内只写一条语句。
程序编写应优选考虑清晰性。
除非对效率有特殊要求,程序编写要清晰第一、效率第二。
首先要保证程序正确,然后要求提高速度。
避免使用临时变量而使程序可读性下降。
避免不必要的转移。
尽可能使用库函数。
避免使用复杂的条件语句。
尽量减少使用“否定”条件的条件语句。
数据结构要有利于程序的简化。
要模块化,使模块功能尽可能单一化。
利用信息隐藏,确保每一个模块的独立性。
从数据出发去构造程序。
不要修补不好的程序,要重新编写。
2.结构化程序设计(1)结构化程序设计的原则自顶向下:设计程序时先考虑总体,后考虑细节;逐步求精:对复杂问题,逐步细化;模块化;限制使用GOTO 语句。
(2)结构化程序的基本结构与特点采用结构化程序设计方法编写程序,可使程序结构良好,易读、易理解、易维护。
结构化程序设计可用三种基本结构就可实现。
顺序结构;选择结构:又称分支结构;重复结构:又称为循环结构。
(3)结构化程序设计原则的应用在结构化程序设计的具体实施中,要注意把握如下要素。
使用程序设计语言中的顺序、选择、循环等控制结构表示程序的控制逻辑。
选用的控制结构只准许有一个入口和一个出口。
程序语句组成容易识别的程序专项,每块只有一个入口和一个出口。
复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现。
语言中所没有的控制结构,应该采用前后一致的方法来模拟。
严格控制GOTO 语句使用。
3.面向对象的程序设计方法面向对象的程序设计是通过对类、子类和对象等的设计来体现的,类和对象是面向对象程序设计技术的核心。
(1)面向对象的几个基本概念类(Class):是定义了对象特征以及对象外观和行为的模板,是同种对象的集合与抽象。
类是一种抽象数据类型。
对象(Object):对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。
一个对象由一组属性和对这组属性进行操作的一组服务组成。
结构化程序设计结构化程序设计结构化程序设计(Structured Programming)是一种编程方法学,旨在通过使用控制结构和模块化的方式来提高程序的可读性和可维护性。
它强调程序应该被分解为小而独立的、可重用的块,并且应该使用清晰的控制结构来组织代码。
结构化程序设计通过减少代码中的跳转和条件语句来降低程序的复杂性,使得程序更易于理解和调试。
1. 控制结构在结构化程序设计中,主要有三种基本的控制结构:1.1 顺序结构顺序结构是最简单的控制结构,程序按照顺序执行语句,没有任何条件或循环。
例如,下面是一个简单的顺序结构的伪代码示例:pythonStep 1: 读取输入Step 2: 处理数据Step 3: 输出结果1.2 选择结构选择结构用于根据特定条件选择不同的路径执行代码。
通常使用`if`语句或`switch`语句来实现选择结构。
例如,下面是一个使用`if`语句实现的选择结构的伪代码示例:pythonif 条件1:执行语句1elif 条件2:执行语句2else:执行语句31.3 循环结构循环结构用于重复执行一段代码,直到满足特定条件才停止。
通常使用`for`循环或`while`循环来实现循环结构。
例如,下面是一个使用`while`循环实现的循环结构的伪代码示例:pythonwhile 条件:执行语句2. 模块化设计模块化设计是结构化程序设计的另一个关键概念,它将程序分解为相互独立的模块,每个模块负责完成特定的任务。
模块化设计可以提高代码的可重用性和可维护性,并且使得程序更易于理解和测试。
在模块化设计中,每个模块应该具有清晰的输入和输出接口,尽量减少模块之间的依赖关系。
模块之间的通信可以通过参数传递、全局变量或回调函数等方式实现。
例如,一个计算矩形面积的模块可以设计如下:pythondef calculate_area(length, width):area = length widthreturn area在上述示例中,`calculate_area`是一个独立的模块,它接收矩形的长度和宽度作为参数,并返回计算的面积。
2011年全国计算机等级考试二级公共基础知识总结:程序设计基础2.1 程序设计设计方法和风格"清晰第一、效率第二"已成为当今主导的程序设计风格。
形成良好的程序设计风格需注意:1、源程序文档化;2、数据说明的方法;3、语句的结构;4、输入和输出。
注释分序言性注释和功能性注释。
语句结构清晰第一、效率第二。
2.2 结构化程序设计结构化程序设计方法的四条原则是:1、自顶向下;2、逐步求精;3、模块化;4、限制使用goto语句。
结构化程序的基本结构及特点:(1)顺序结构:一种简单的程序设计,最基本、最常用的结构;(2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;(3)循环结构:又称重复结构,可根据给定条件,判断是否需要重复执行某一相同或类似的程序段。
结构化程序设计的特点:只有一个入口和出口2.3 面向对象的程序设计面向对象方法的优点:(1)与人类习惯的思维方法一致;(2)稳定性好;(3)可重用性好;(4)易于开发大型软件产品;(5)可维护性好。
对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
面向对象的程序设计方法中,对象是由数据的容许的操作组成的封装体,是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
操作描述了对象执行的功能,是对象的动态属性,操作也称为方法或服务。
对象的基本特点:(1)标识惟一性;(2)分类性;(3)多态性;(4)封装性;(5)模块独立性好。
类是指具有共同属性、共同方法的对象的集合。
类是关于对象性质的描述。
类是对象的抽象,对象是其对应类的一个实例。
消息是一个实例与另一个实例之间传递的信息。
对象间的通信靠消息传递。
它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
继承是使用已有的类定义作为基础建立新类的定义技术,广义指能够直接获得已有的性质和特征,而不必重复定义他们。
第2 章程序设计基础1.程序设计方法与风格2.2 结构化程序设计一、结构化程序设计的原则结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto 语句。
1、自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。
不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2、逐步求精:对复杂问题,应设计一些子目标作过渡,逐步细化。
3、模块化:一个复杂问题,肯定是由若干稍简单的问题构成。
模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。
4.限制使用goto 语句二、结构化程序的基本结构与特点1、顺序结构:顺序结构是简单的程序设计,它是最基本、最常用的结构,所谓顺序执行,就是按照程序语句行的自然顺序,一条语句一条语句地执行程序程序。
2、选择结构:选择结构又称为分支结构,它包括简单选择和多分支选择结构,这种结构可以根据设定的条件,判断应该选择哪一条分支来执行相应的语句序列。
3、重复结构:重复结构又称为循环结构,它根据给定的条件,判断是否需要重复执行某一相同的或类似的程序段,利用重复结构可简化大量的程序行。
分为两类:一是先判断后执行,一是先执行后判断。
优点:一是程序易于理解、使用和维护。
二是编程工作的效率,降低软件开发成本。
对象有如下一些基本特点:(1)标识惟一性。
指对象是可区分的,并且由对象有的内在本质来区分,而不是通过描述来区分。
(2)分类性。
指可以将具有相同属性的操作的对象抽象成类。
(3)多太性。
指同一个操作可以是不同对象的行为。
(4)封装性。
从外面看只能看到对象的外部特性,即只需知道数据的取值范围和可以对该数据施加的操作,根本无需知道数据的具体结构以及实现操作的算法。
对象的内部,即处理能力的实行和内部状态,对外是不可见的。
从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。
《2.1 结构化程序设计基础》1. 目标概述[3分钟] (2)2. 回顾[5分钟] (2)3. 课程知识点讲解 (2)3.1. 算法[60分钟] (2)3.2. 结构化程序设计思想[20分钟] (8)4. 小结[2分钟] (9)5. 考核点 (9)6. 作业答案 (9)7. 扩展练习 (10)8. 学生问题汇总 (10)9. 教学后记 (10)本节目标⏹本节中将讲述如下主要内容:✧算法的概念✧常用流程图符号的介绍✧顺序结构、选择结构、循环结构的图形描述✧结构化程序设计思想⏹通过教学使学生理解结构化程序设计思想、掌握逻辑流程图的使用。
本节重点⏹算法的概念⏹常用流程图符号的介绍⏹顺序结构、选择结构、循环结构的图形描述⏹结构化程序设计思想本节难点⏹逻辑流程图的使用授课课时⏹2课时教法建议1.目标概述 [3分钟]本章主要讲述结构化程序设计基础概念、运用。
本节主要讲述结构化程序设计思想、逻辑流程图的使用。
2.回顾 [5分钟]回顾上一章的相关内容。
3.课程知识点讲解3.1.算法[60分钟]引入:什么是算法?主题:从第一章的学习中,我们已经看到编制一个程序,我们不仅要解决“做什么”的问题,更重要的是要明确指明具体的步骤,也就是“怎么做”的问题,同时还需要保证其正确性和高效性,这是程序设计方法学中“算法”要解决的问题。
在古代,人们把采用算术的方法求解未知问题的运算过程称为算法。
在近代,人们把采用科学的方法完成某项事务的执行过程称为算法。
在现代,特别是计算机诞生之后,人们把计算机解题步骤称为计算机算法。
[算法的描述]对于算法,需要选择一种合适的表达方式进行描述,现在常用的描述工具有:自然语言、流程图、伪代码、N-S图、PAD图等。
1. 用自然语言描述算法描述算法人们首先想到就是某种自然语言(如:汉语)。
使用自然语言描述算法的优点是描述自然、灵活和多样,其缺点是易产生二义性。
因此,在算法设计中应少用或不用自然语言描述算法。
有时在设计初步算法时可适当采用自然语言描述,然后用其它描述工具细化算法描述。
下面给出几个用自然语言描述的算法例子。
示例讲解:示例2.1.1接受一个数并使它加1,显示其结果,用自然语言描述其过程。
示例2.1.2到图书馆借书,用自然语言描述其过程。
示例2.1.3泡一杯茶,设计并用自然语言描述其过程。
示例2.1.4计算并输出1+2+3+ … +100之和,设计并用自然语言描述其算法。
[通过示例简单讲述用自然语言描述算法的使用]2.用流程图描述算法流程图是采用图形的方法来描述算法的一种算法描述工具,通常称框图。
流程图是目前使用较为普遍的算法描述工具,其优点是描述简洁、清晰、直观,缺点是由于转移箭头的无限制使用,影响算法的可靠性。
通过规范图形符号和对转移箭头的限制使用可削弱流程图的缺点,提高算法的可靠性。
由于流程图优点突出,所以至今仍是程序设计人员普遍采用的算法描述工具。
本书的后续章节均将采用流程图来描述问题的解决过程,以帮助大家熟悉流程图的使用。
使用流程图描述工具,应采用比较标准的图形符号,最好采用国家或国际标准。
下面我们将介绍一些常用的流程图符号。
示例讲解:用流程图描述顺序结构从上例中可以发现整个算法从开始符依次执行直到结束为止,我们把这种各框按顺序执行的线性结构称为顺序结构。
这是算法描述中最简单和最基本的结构,其流程图的基本形态如右图所示,语句的执行顺序为A→B→C。
练习:练习2.1.1:接受某一类型书的单价和数量,计算并显示其总价,请用流程图描述其过程(算法)。
解决:用流程图描述分支结构具体见P61练习:练习 2.1.2输入一个任意的年份,判定是否是闰年,并输出,用流程图描述其过程。
(提示:闰年的年份是可以被4整除,但不可以被100整除;或者是可以被400整除的整数)解决:用流程图描述循环结构示例2.1.7用流程图来描述示例2.1.3泡一杯茶的过程我们用循环结构来描述现实生活中这种重复执行某种动作的情况。
循环结构是三种基本结构中的最后一种,也是最复杂的一种,可以分为三种类型:当型循环、直到型循环、计数型循环。
当型循环:当条件成立时,重复执行某种动作,直到条件不满足时为止。
这类型的循环首先判断循环条件是否成立,再执行某种动作,并在执行过程中改变和影响条件,直到条件不成立,则结束循环。
直到型循环:先执行循环操作,直到条件满足时止。
此类型的循环和当型循环最大的区别有两点,一是当型循环先执行条件判断,再执行循环操;而直到型循环先执行循环操作,再执行条件判断。
二是当型循环通常是条件满足时(即为真时)执行循环操作,而直到型循环则是不满足条件时(即为假时)执行循环操作。
计数型循环:前面两种循环结构都是事先无法预知循环次数时使用的循环结构,在事先可以知道循环操作执行的确切次数时,我们使用计数型循环。
此类型循环通常有一个循环计数器,用于计算循环操作执行的次数,一旦达到事先设定的循环资料则结束循环。
练习:练习2.1.3用流程图描述示例2.1.4计算并输出1+2+3+ … +100之和的算法解决:3.用伪代码描述算法用流程图描述的算法直观易懂,但缺点是图形绘制比较费时费事,图形修改比较麻烦,所以图形工具也不是最理想的描述工具。
为了克服图形描述工具的缺点,现在也开始流行采用伪代码描述工具描述算法。
伪代码简称伪码,也称过程描述语言(PDL-Procedure Describe Language)。
伪代码是介于自然语言和高级程序设计语言之间的一种文字和符号描述工具,它不涉及图形,类似于写文章一样,一行一行,自上而下描述算法,书写方便,格式紧凑,言简意明,可实现半自动化描述。
伪代码自上而下顺序执行,算法判断结构和循环结构都有对应的伪代码描述语句。
伪代码算法描述工具的优点是:●可作为注释直接插入到源程序中间,能保持文档和程序的一致性●可用正文编辑器或文字处理器完成伪代码的书写和编辑工作●可借助软件自动生成程序代码示例讲解:示例2.1.8用伪代码描述示例2.1.4计算并输出1+2+3+ …+100之和的算法[详细讲述算法与算法的描述]3.2.结构化程序设计思想[20分钟]引入:在结构化程序设计方法出现以前,使用非结构化程序设计方法开发的软件往往无章可循,且常常带有强烈的个人色彩,程序可读性差,编写、调试和维护工作困难。
为了提高程序的可读性和程序质量,降低开发成本,荷兰教授Dijkstra在1969年首次提出了结构化程序设计的概念,强调从程序的结构上和风格上来研究程序设计方法,提倡利用三种基本结构进行规范化程序设计,使程序具有良好的结构框架。
主题:1.结构化程序设计的基本概念随着程序规模的扩大和复杂性的提高,程序的可读性、可维护性变得越来越重要,提高程序易读性、易维护性的途径之一是按照模块化、层次化的方法来设计程序,即结构化程序设计方法,这里的结构化主要体现在以下2个方面。
●自顶向下、逐步求精即从需要解决的问题出发,将复杂问题逐步细化成一个个相对简单的子问题,每个子问题可以再进一步细化,步步深入,逐层细分,直到问题简单到可以很容易地解决不再需要细化为止,细化的结果通常可以得到一个树型层次结构图。
第一次细化称为“顶层设计”,第二次,第三次细化则依次称为第二层、第三层设计。
●语句结构化结构化程序设计要求,每一个程序应该由顺序、分支和循环三种流程结构的语句组成,而不允许有goto之类的转移语句。
这三种流程结构的共同特点是:每种结构只有一个入口和一个出口,这对于保证程序的良好结构、检验程序正确性是十分重要的。
结构化程序设计方法可以提高程序编写的效率和质量。
自顶向下、逐步求精可以尽可能地在每一个抽象级别上保证设计过程的正确性及最终程序的正确性。
模块化的结构可以使得程序具有良好的可读性,从而提高程序的可维护性。
2.结构化程序设计的基本过程结构化程序设计一般需要两个基本过程:自顶向下、逐步求精的分析过程和自底向上、逐步实现的综合过程。
分析过程是指通过对需要解决的问题的详细分析,不断地将其进行分解,每分解一次都是对问题的进一步细化。
最后将较复杂的问题分解为几个相对简单、相对独立的子问题,并用不同的模块分别描述它们的求解过程。
实现过程与之相反,它从底层模块开始,每个模块都由顺序、选择、循环三种结构实现,底层模块同时也成为实现上层模块的基础。
示例讲解:示例2.1.9某班有50名学生,求不及格学生人数与90分以上学生人数之比值,并输出,用结构化程序设计方法设计算法。
(假定至少有一个学生的成绩在90分以上)解答:具体见P65练习:练习2.1.4用结构化的程序设计方法设计示例2.1.4计算并输出1+2+3+ (100)和的算法,要求要体现出自顶向下,逐步精化的过程。
解决:4.小结 [2分钟]通过本节的学习,您了解了算法的概念,掌握了描述算法的方法,初步理解了结构化程序设计的概念与方法,为后面的学习奠定了基础。
下面将本节主要内容归纳如下:1.算法的概念算法描述了解决问题的具体步骤,是程序设计的基础和精髓,算法的描述通常有以下几种方式:自然语言方式、流程图方式、伪代码方式。
2.结构化程序设计方法结构化程序设计方法指在设计上采用自顶向下,逐步求精的设计思路,在具体实现中只使用顺序,选择和循环三种基本结构来构成程序,以保证程序的可读性,可维护性的一种程序设计方法。
5.考核点考核点1:算法的基本概念和描述方式考核点2:结构化程序设计思想6.作业答案1:算法的描述可以有哪些基本方法?答:算法的描述通常有以下几种方式:自然语言方式、流程图方式、伪代码方式。
2:在结构化程序设计方法中,程序都可以由__顺序__、_选择_、__循环__三种基本结构组成。
3:结构化程序设计一般分为_自顶向下_、_逐步求精_两个基本过程。
4:输入学生成绩,评价成绩的优、良、中、及格和不及格,并输出。
成绩大于等于90分为优,成绩小于90分且大于等于80分为良,成绩小于80分且大于等于70分为中,成绩小于70分且大于等于60分为及格,成绩小于60分为不及格。
用流程图描述其算法。
答:5:求2到100之内的素数,并输出。
素数是只能被1和自身整除的数。
用流程图描述其算法。
答:6:统计1900年至2100年中闰年的年份,将具体的年份打印出来。
闰年的条件是:能被4整除,但不能被100整除的年份是闰年,或者能被100整除又能被400整除的年份也是闰年。
以结构化的程序设计方法,画出其流程图。
答:7:输入一个班30名学生的成绩,求其平均分、最高分、不及格人数和不及格率。
以结构化的程序设计方法,画出其流程图。
答:7.扩展练习8.学生问题汇总(注:汇总学生在学习过程中容易出现的问题)9.教学后记(注:在此写上个人在授课过程中所遇到的教案中所没有涉及到的特殊问题及其解决方法或解决方案,也可以总结自己的授课体会,课程体系、教材的不足等。