第六章 软件设计基础
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例:求y/x之值的程序
用计算机语言描述的算法
C程序
#include "stdio.h" void main( ) {float x,y,z; /*类型说明*/ scanf("%f%f",&x,&y); if(x==0) printf("Data error!\n"); else { z=y/x; printf("z=%f\n",z); } }
入口 成立 A 条件 不成立 B 成立 A 入口 条件 不成立
出口
出口
双分支结构
单分支结构
7、循环语句
1)Loop循环是让一组指令(或动作)重 复执行有限次。 2)While循环首先进行条件判断,条件 为真,执行循环指令,直到条件为假,退 出循环。 入口
不成立
条件 成立 循环体
出口
8、函数
函数是用来计算得到一个结果(或者一个数值) 例如:求最大值函数、平均数函数等。函数不是一 个独立的指令,总是嵌套在指令中使用。 9、方法的参数
自然语言
传统流程图 N-S图 伪代码 计算机程序设计语言
流程图:描述算法的图形工具,即用 一些约定的几何图形来描述算法。
传统流程图的符号及意义
起止框 输入输出框 判断框 处理框 流程的开始或结束 输入或输出 判断是否满足条件 各种处理功能
流程线
流程的路线
三种基本结构:顺序、选择、循环。
解释并执行
高级语言的两种翻译方式比较
编译方式 解释方式
翻译整个源程序 源程序只需翻译一次便 可重复执行
每次只翻译一个源程序的 指令 每次执行程序时,需要再 次翻译源程序
由于目标程序可存储起 由于不会产生目标程序, 来,在重复执行时并不 每次执行时都需要源程序。 需要源程序。
执行效率较高
执行效率较低
6.2 Alice程序设计初步
1、Alice系统简介
Alice系统是一个以学习者为中心, 支持面向对象程序设计的三维虚拟动 画教学系统。有以下特点:
具有高级语言的特征;
可视化的面向对象程序设计;
三维虚拟动画设计;
2、面向对象的基本概念
1)对象(object)是面向对象程序设计的 核心,可泛指现实世界中具体的人、事、 物。对象拥有属性与方法。 2)类(class)是创建对象实例的模板,是 同种对象的集合与抽象,它包含所创建 对象的属性描述和行为特征的定义。
A
条 件
成立
不成立
B
A
B
顺序结构
当条件成立时继续
循环体
选择结构
循环体 直到条件成立时结束
当型循环
直到型循环
传统流程图
开始 输入x,y
N-S流程图
Y
x=0
N z=y/x 输出z
输入x和y x=0 Y 输出错误 信息 N z=y/x
输出错误信息
输出z
结束
例:求y/x之值的算法流程图
伪代码
Begin Read(x,y) If x=0 write(出错信息) Else { y/x→z Write(z) } End
逻辑型常量ture或false等等。
2)变量:没有固定值,可以改变的数;
变量三要素:变量名、变量类型、变量值。
例如C语言中赋值语句:x=6;
3)表达式:用运算符将常量、变量和函数连 接起来的式子。
算术表达式
例如:+
-
*
/
关系表达式
例如:> < >= <= == !=
逻辑表达式:运算结果只有Ture(真)和
第六章 软件设计基础
【本章内容】
6.1 算法与程序
6.2 Al
6.1 算法与程序
程序=算法+数据结构
1、算法的基本概念 算法就是解决问题的方法和步骤。 算法的特征: 可行性 确定性 有穷性 输入 输出
2、算法的表示
顺序结构
选择结构
入口 成立 A 不成立 B
A B
条件
出口
当型循环
入口 不成立 条件 成立 循环体
直到型循环
入口
循环体
条件 不成立 出口 反复执行循环体,直到 条件不成立时结束。
成立
出口 当条件成立时,就反复 执行循环体,直到条件不 成立时结束。
N-S图与传统的流程图相比,N-S图不 带有流程线,整个算法完全写在一个大矩 形框中。
3)属性:用来表示类或对象的静态特征。
4)方法:类或对象能完成的行为与操作。 Alice中常见的方法有move、turn等。
3、程序设计的一般过程
1)问题描述 2)算法设计 3)代码编制 4)调试运行
5)编写程序文档
4、常量、变量与表达式
1)常量:在运算过程中保持不变的值;
例如数值型常量 123,字符串常量“hello”,
结束
3、算法设计的基本方法:
列举法 归纳法 递归法
分治法
回溯法
4、算法的评价:
正确性、可读性、健壮性、复杂性。
5、程序与程序设计语言
程序是使用程序设计语言编写的完成
一定任务的有序指令序列。
程序设计语言是人和计算机都能识别
的特定语言。编写程序的工作称为程 序设计。
程序设计语言的分类
运行 命令
可执 行程 序 .EXE 运行 结果
编译 程序 高级 语言 源程 序 编译 目标 程序 .OBJ
链接 程序 连接
编译的过程:词法分析、语法分析、语义分析、中间 代码生成、优化、代码生成。
解释程序:解释程序是另一类翻译程序,
它同时处理源程序和数据,对源程序解释 执行而不生成目标程序。
解释程序 高级语言 源程序 结 果
事件驱动的程序设计是现代程序设计的
主要思想。
11、继承 继承使得程序员可以在一个基类(也 称父类)的基础上生成一个派生类(也称 子类),子类继承了父类的所有属性和方 法;同时子类可以拥有新的属性和方法。 继承的目的是实现代码重用。
一个程序可以由多个方法组成,每个方法都包 含一个指令集,当方法被调用时会执行特定的任务; 参数是用来与方法进行通信的,一个方法可以被多 次调用,调用时的参数不同,可以得到不同的结果。
10、事件
对象的事件是指由系统事先设定的、能
被对象识别和响应的动作。
事件驱动:当一个事件发生时,程序对 其做出响应,用来响应该事件的方法称为事 件处理方法。
目标程序
翻译程序
Object Code
机器码
Machine Code
用高级语言编写的程序叫做高级语言 源程序,必须翻译成机器语言目标程序才能 被计算机执行。
汇编程序:源语言是汇编语言,目标语言
是机器语言,则翻译程序称为汇编程序。
编译程序 : 源语言是高级语言,目标语言是机
器语言 /汇编语言,则翻译程序称为编译程序。
机器语言
汇编语言
高级语言
面向过程语言如:BASIC、FORTRAN、 PASCAL、C语言等。 面向对象语言与可视化语言如: VISUAL BASIC、VISUAL FOXPRO、 DELPHI、VC++、JAVA等。
3)语言的翻译
源程序
Source Code (由程序员编 写的程序)
False(假) 例如:and(与)or(或)not(非)
5、程序结构——顺序执行与同步执行 顺序执行结构(Do in order): 是指按顺序执行指令。
同步执行结构(Do together):
是指能同时执行若干条指令。
6、条件执行控制语句
If/Else语句可以实现双分支结构;若在 Else部分包含Do nothing可以实现单分支结 构。
VFP程序 input to x input to y if(x=0) ?"Data error!" else z=y/x; ?"z=",z endif return
例3 用传统流程图描述求1+2+3+…+100之 和的算法。如图所示。
开始 sum=1 i=2 否 i<=100
是 sum=sum+i i=i+1 输出sum 的值;