作者:tuitu | 来源:互联网 | 2023-10-13 09:35
前戏1、什么是程序简单的说,程序主要用于描述完成某项功能所涉及的对象和动作规则。2、计算机程序的组成和特性(一)对数据的描述要指定预处理的数据类型和数据的组织形式,也就
前戏
1、什么是程序
简单的说,程序主要用于描述完成某项功能所涉及的对象和动作规则。
2、计算机程序的组成和特性
(一)对数据的描述
要指定预处理的数据类型和数据的组织形式,也就是数据结构。简单理解就是数据是如何放在电脑的,怎么去取用,如何组织都由程序来组织。。。。
(二)对操作的描述
即操作步骤,如“fileopen”为打开文件、“input”为读入数据、“if”为判断是否满足条件都是对操作的描述,这些动作的先后顺序以及它们所作用的数据要遵守一定的规则,即求解问题的算法。
计算机科学家沃思提出公式:程序=数据结构+算法
算法
1、什么是算法
程序的核心是算法,通俗的讲:算法就是解决问题的方法和步骤,解决问题的过程就是算法实现的过程。
算法并不是仅在计算机中的专业术语
2、算法的两个要素
例如:求1+......+100
实现算法步骤:
a:累加器sum=0,第一项t=1
b:重复执行下面的语句直到某项的值大于100,转到步骤c
i:求累加和sum=sum+t
ii:为下一项做准备:t=t+1
c:输出:显示sum
d:结束
思考通过该式子求pi的值:
第一要素:操作
(一)算数运算: + - * /
(二)关系运算:> < >= <= == !=
(三)逻辑运算:与and、 or或、 not非
(四)数据传送:输入、输出、赋值
第二要素:控制结构
(一)顺序结构
(二)选择结构
(三)循环结构(直到型、当型)
3、算法的特性
(一)有穷性
(二)确定性
(三)可行性
(四)输入:可以没有
(五)输出:必须要有
4、算法的分类
(一)数值型计算算法 例如:计算pi的值,高次方程的根
(二)非数值计算算法 例如:数据的排序、查找
算法的表示
1、自然语言
什么是自然语言,简单讲就是口水话就描述了,自然语言通俗易懂,但是存在以下缺陷
(一)易产生歧义,不太严格
(二)语句繁琐、冗长、并且很难清楚表达逻辑流程
2、流程图法
流程图是描述算法的常用工具,采用一些图框、线条、以及文字来形象、直观的描述算法。
美国国家标准化协会规定了一些常用的符号:
3、N-S图
用框图来描述算法
4、伪代码
伪代码:是一种介于自然语言和计算机语言之间的文字和符号来描述算法,有如下简单约定:
(一)每个算法用Begin开始、End结束;若仅表示程序中部分代码可以省略
(二)每一条指令占一行,指令后面不跟任何符号
(三)算法的输入输出以Input、Print后加入参数表形式表示
(四)“//”标志表示注释的开始一直到行尾
(五)用“<--”表示赋值
(六)用缩进表示代码结构,多条语句用{}括起来
(七)数组形式:数组名[下界............上界];数组元素:数组名[序号]
(八)一些函数的调用或者处理简单的任务可以用一句自然语言代替
1 Begin
2
3 i<-1
4 sum<-0
5
6 for i to 100
7 sum=sum+i
8
9 Print sum
10
11 End
5、机器语言
上面我们对算法的描述计算机是不能识别的,为了能让计算机能运行,我们就要用计算机能识别的语言来描述算法,后期我们将简单学习c语言代码
算法设计基本方法
(一)、枚举法
枚举法被称为穷举法或者试凑法。基本思想是把所有的情况都拿来,然后根据题目的意思逐一测试
例如:输出1-100之间即是3的倍数也是6的倍数
Begin
i<-1
For i to 100
If(i%3=0 And i%6=0)
Print i
End
思考问题1:有100元钱,购买100只鸡,小鸡0.5元,公鸡2元,母鸡3元,问有多少购买方案
思考问题2:有一种三位数,满足各位的三次方之和等于它的本生,这样的数称为水仙花数,求出满足条件的水鲜花数
(二)、迭代法
例题1:有一个猴子在一天内摘了若干个桃子,当天吃掉一半多一个,第二天又吃剩下的一半多一个,直到第7天上午,发现只有一个桃子了,问一共有多少个桃子
(三)、排序技术
(a)选择排序
(b)冒泡排序
(四)、查找技术
(a)二分查找
程序设计语言
1、概述
自然语言是人们的交流工具,不同的语言形式不同;而程序设计语言是人与计算机交流的工具,是用来书写计算机程序的工具,也可以有不同语言来描述。程序设计语言有几百种,常用的只有十几种,程序设计语言可以大概分为三类:
(一)机器语言
机器语言是由0和1组成的二进制代码按照一定规则组成的、能被机器直接理解和执行的指令集合。
机器语言中每一条语言实际是一条二进制形式的指令代码,格式如下:
操作码+操作数
操作码:指出该进行什么样的操作
操作数:指出参与操作的数的本身或在它内存的地址
例如:计算A=15+10的机器语言程序如下:
10110000 00001111 :把15放入累加期A中
00101100 00001010 :10与累加期A中的值相加,结果放入A中
11110100 :结束
由此可见,机器语言就像“天书”,编程工作量大,难学,难记,难理解,难修改,专业性太强,通用性差。当然机器语言也有优点,编写的程序不需要编译,因此所占空间小,执行速度快。现在没有人用机器语言编程了
(二)汇编语言
克服机器语言的缺点,引入助记符,代替机器语言中的指令和数据。例如ADD表示加,SUB表示减,JMP表示程序跳转,这种指令助记符的语言就是汇编语言,又称符号语言。例如上文计算A=15+10可以写成如下指令:
MOV A,15 :把15放入累加期A中
ADD A,10 :10与累加期A中的值相加,结果放入A中
HLT :结束
(三)高级语言
20世纪50年代程序终于研究出来了高级语言,高级语言是一种接近自然语言和数学公式的程序设计语言。所谓“高级”是指它使程序员不需要和计算机硬件打交道,可以不必了解计算机指令系统。通常机器语言和汇编语言统一称为低级语言。从计算机技术发展的角度来看,程序语言的目标是让计算机直接理解人的自然语言,不需要机器语言,但这是一个漫长的过程。