文档库 最新最全的文档下载
当前位置:文档库 › 算法与程序设计

算法与程序设计

本人精心整理的文档,文档来自网络
本人仅收藏整理
如有错误
还请自己查证!
算法与程序设计
第一章:计算机和算法
计算机解决问题的一般过程:
分析问题→设计算法→编写程序→运行程序→调试程序→问题解决
指令、程序、软件的区别:
指令:计算机执行某一操作的命令
程序:指令的有序集合
程序首先存储在计算机的内存中
程序由 指令部分(操作码) 和 数据部分(地址码)组成
软件:程序+相关的文档资料
算法:解决问题的方法和步骤
算法是程序设计的"灵魂"
克劳斯·沃思:算法+数据结构=程序
算法的特点:
1、 有穷性 2、确定性 3、可行性 4、有0个或多个输入 5、有一个或多个输出
算法的3种描述:
1、 自然语言 2、流程图 3、伪代码 或 程序语言
流程图基本图框:

算法的三种模式(结构):
顺序模式(顺序结构)、选择模式(分支结构)、重复模式(循环结构)









循环结构:"当型"可以不执行循环体
"直到型"至少执行一次循环体

变量:存储单元
区别 "变量名" 和 "变量值"
变量的特点:取之不尽、赋值即覆盖、先赋值后使用(取不尽、挤得掉、加得进)
变量的类型: 数值型 和 字符型(特征:有 " ")
字符串型的比大小:"9">"100000";"AbC">"ABC"都为 真(true或1)
解释:从第一个字符开始比
如果大则大
不管后面
如果一样
再比较第二个字符以此类推

变量的赋值 赋值号 : "=" 或者 "←"
解释:先计算"赋值号"右边的值
再将值赋给"赋值号"左边的变量
变量的交换 (关键看第二步知道哪两个变量交换)
例如:a=3
b=2交换两个变量:
① temp=a
② a=b
③ b=temp(首尾呼应
承上启下)
运算符:
类别 运算符 结果 优先级 算术运算符 +、-、*、/、mod、^ 数值 ①^ ②*、/、mod
③+、- 字符串运算符 + 字符串(有双引号) 关系运算符 >、<、>=、 <=、<> true或false 相同 逻辑运算符 not 、and、or true 或 false ①not②and③or 优先级:
(1) 算术和字符串运算符>关系运算符>逻辑运算符(由高到低)
(2) 括号可以改变优先级次序
(3) 同一优先级 自左向右
函数 功能 Abs(x) 求x的绝对值 Sqrt(x)或Sqr(x) 求x的算术平方根 Int(x) 求不大于x的最大整数
例如:Int(3.5)=3 Int(-3.5)=-4 函数:供程序设计者直接使用的小程序
表达式:
例如:, x=(-b+sqr(b*b-4*a*c))/(2*a) 别忘了分母加括号
计数器、累加器、累乘器:
计数器的初值、终值(判断框一般为<=时)、步长

通过公式:循环次数=[(终值-初值)/ 步长]+1
项目 累加器s 累乘器sum 初始值 0 1 表达式(计数器用i) s=s+i sum=sum*i



注意

:这里的初始值为一般情况


第二章:基本算法实例
解析算法
用解析的方法找出表示问题的前提条件(已知条件)与结果之间的数学表达式
分段函数的算法过程 属于解析法
枚举算法
用计算机一 一 列举、逐个检验
选出满足条件数据的算法称之为"枚举算法"
枚举法的步骤
(1)确定列举范围
(2)明确检验条件
(3)确定循环控制方式和列举方式(循环嵌套分支):
"一 一 列举"为循环结构
"逐个检验"为分支结构
循环嵌套循环时
循环次数n为
外循环i的次数 × 内循环j的次数
即 n= i*j
数组:
(1)数组它是个特殊的变量
(2)它在内存中的开辟连续的存储单元
(3)每一个存储单元对应一个数组元素
(4)数组是用来存储一批类型、作用相同的数据;数组元素可以参与赋值和运算
(5)数组的规模:容纳数组元素的个数

数组名为d
规模为5
有时数组元素名d[1]写成d(1)
如图可知:d[1]=1, d[4]=d[2+2]=61
d[5]=(d[3]-d[2])-2*d[1]
排序与查找
排序:冒泡排序和选择排序
查找:顺序查找和对分查找
排序:把杂乱无章的数据变为有序数据过程
冒泡排序:通过"从后往前或者从下而上"的逐遍加工
采用相邻2个元素互换位置的方法来调整最大值或最小值
选择排序:(不是插队而是交换位置)
对于n个数的选择排序

第一次遍历原始数据
将最值数据与1号位置的数据位置进行交换

第二次遍历时
只需观察接下来n-1个数中的最值与2号位置的数据进行交换

第三次遍历时
只需观察接下来n-2个数中的最值 与3号位置的数据进行交换...以此类推
归纳:
冒泡排序:对于n个数冒泡排序
最多需要n-1趟完成排序

选择排序:它比冒泡排序更加优化
执行效率高
区别在于减少了交换的次数
有n个元素
最多也要n-1趟完成排序
顺序查找:对于n个数的查找
最差情况要查找n次
对分查找(二分法查找):首先被查找的数据必须是有序的
对于n个数
最差情况要查找 [log2n]+1次
[]为向下取整


选择排序:原始数据:7,6,3,9,2 从小到大

顺序查找:

对分查找:

由于规模为5
故二分法第一次查找d()=d(3)
第二次查找d()=d(4)
注:向下取整
第三次查找d(5)

第三章 程序设计基础
根据流程图用VB语言写出部分程序代码辅导

一. 选择语句(分支结构)
1. If...Then语句(单分支结构)











例如:







2.If...Then...Else语句(双分支结构)


例如:


















3.If...Then...ElseIf语句(多分支结构
分段函数应用)













例如:













二.循环语句(循环结构)
1.For循环语


一般用于控制循环次数预知的循环结构;






例如:














2. Do...Loop循环语句
一般用于控制循环次数未知的循环结构
形式1:(当型循环) 上例用Do...Loop循环语句可表示为:







 形式2:(直到型循环)





2010学业考试相关试题:
1. 根据以下流程图
利用你学习过的程序设计语言(如VB、C、PASCAL等)
写出实现流程图虚线框部分的程序代码


你使用的程序设计语言名称: VB
程序代码



2. 根据以下流程图
利用你学习过的程序设计语言(如VB、C、PASCAL等)
写出实现流程图虚线框部分的程序代码


你使用的程序设计语言名称: VB
程序代码



??

??

??

??







1






相关文档
相关文档 最新文档