程序设计基础知识
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键字外部语法
置max=a; if(b>max)then
置max=b; endif if(c>max)then
置max=c;
自然语言内部语法
endif
输出max;
stop
2020/2/29
计算机科学导论
7/30
4) 用程序实现
#include "stdio.h“
int max(int x,int y,int z) {
2020/2/29
计算机科学导论
15/30
⑥ 人工智能程序设计语言
适合于知识表示和逻辑推理。 常用人工智能程序设计语言
LISP
可以解决人工智能中的符号处理问题。
PROLOG
自动实现模式匹配、自动回溯这两种人工智能中常用的基本操 作。
2020/2/29
计算机科学导论
16/30
4.2.2 程序设计语言的机制
2020/2/29
计算机科学导论
9/30
① 机器语言
➢由二进制编码指令构成的语言。 ➢是一种依附于机器硬件的语言。 ➢机器语言程序可以直接执行。
机器语言程序片段
0001 0101 01101100 //把地址为01101100的内存单元中的数装入0101号寄存器
0001 0110 01101101 //把地址为01101101的内存单元中的数装入0110号寄存器 0101 0000 01010110 //把01101100和01101101中的数相加,结果存入0000号寄存器
2020/2/29
计算机科学导论
25/30
4.3 数据结构(与教材第8章相关)
4.3.1 数据结构与问题求解 4.3.2 数据结构的基本概念和术语 4.3.3 基本数据结构介绍
线性结构 树形结构 图状结构
2020/2/29
计算机科学导论
26/30
4.3.1 数据结构与问题求解
计算机求解问题的步骤是: (1)从具体问题抽象出一个数学模型; (2)设计解此数学模型的算法; (3)编出程序,直至得到最终的解答。
➢ 数据结构是非数值计算问题求解的基础。 ➢ 与程序设计语言课程相比,数据结构面向应用
2020/2/29
计算机科学导论
27/30
4.3.2 数据结构的基本概念和术语
1、数据:信息的载体,它能够被计算机识别、存储 和加工处理。
2、信息:数据的语义解释,它能被人理解。 3、数据项:数据不可分割的最小单位。数据项有名
/*大于等于60输出Passed*/
/*小于60输出Failed*/
2020/2/29
计算机科学导论
23/30
循环结构
➢程序示例:从键盘上输入10个整数,求其累加和并输出。
main( )
{
int i, num, sum;
/*定义变量*/
sum=0;
/*累加变量清零*/
for (i=1; i<=10;i++)
第4讲 程序设计基础知识
4.1 算法
了解什么是算法,算法的描述方式。
4.2 程序设计语言
以c语言为例,介绍高级程序设计语言的基本语 法、程序结构,以及程序设计的一般方法,应用 高级语言进行程序设计。
4.3 数据结构
为要解决的目标问题设计出高效的数据逻辑结 构和存储结构,保证算法和程序的效率;
2020/2/29
int m=x;
if (y>m) m=y;
if (z>m) m=z;
return m;
}
void main( )
{
int num1,num2,num3;
int maximum; printf(“\nEnter three integers: ”);
scanf("%d,%d,%d",&num1,&num2,&num3);
/*循环次数为10*/
{
printf("Enter a data:\n ");
/*显示提示信息*/
scanf("%d ",&num); /*通过键盘输入一个整数*/
sum=sum+num;
/*累加求和*/
}
printf(“\nsum=%d,sum); /*输出累加结果*/
}
2020/2/29
计算机科学导论
2020/2/29
计算机科学导论
19/30
4、子程序
(1)子程序:可独立编译的程序单元。 (2)子程序一般具备如下三种机制:
➢ 子程序说明,它给出子程序与其他程序单元的接口; ➢ 子程序体,它实现子程序的数据结构和控制结构; ➢ 调用方式。 (3)不同语言的子程序: ➢ C的基本程序单位是函数; ➢ PASCAL的基本程序单位的子程序(过程与函数); ➢ MODULA程序的组成单位是模块module; ➢ ADA的基本程序模块是程序包(package)。
PASCAL语言 C语言
2020/2/29
计算机科学导论
百度文库
14/30
⑤ 面向对象程序设计语言
➢ 将问题分解为对象。使人们对复杂系统的认识过程与程 序设计过程尽可能一致。
➢ 对象将自己的属性和方法封装成类。 ➢ 对象之间通过消息传递来相互联系。
常用面向对象程序设计语言 Simula 67 C++ Java
例如,求三个数的最大值的问题,可以描 述为:先比较前两个数,找到大的那个数,再 让其与第三个数进行比较,找到二者中大的数 即为所求。
2020/2/29
计算机科学导论
5/30
2)用传统流程图表示
处理A 处理B
真 处理A
假 条件
处理B
假 条件 真 处理 A
实例:
输入a,b,c 置max=a
(a) (b)
2020/2/29
计算机科学导论
20/30
5、控制结构
(1)最常见的控制转移语句是GOTO语句,其一般形式是: GOTO<语句标号>
一个fortran语言程序:求1~10的累加和。
integer x,sum x=0.0 sum=0.0 10 x=x+1 sum=sum+x if(x.lt.10)goto 10 print*,sum end
24/30
4.2.3 程序设计风格
主要体现在5个方面
➢ 标识符的命名要风格统一、见名知义。 ➢ 一般一行写一条语句,一条长语句可以写在多行上,但
尽量不要把多条语句写在一行上。 ➢ 采用缩进格式,即同一层次的语句要对齐,低层次的语
句要缩进若干个字符,增加程序的可读性。 ➢ 适当书写注释信息,有助于阅读者对程序的理解。 ➢ 尽量少用goto语句,否则容易导致程序结构混乱。
2020/2/29
计算机科学导论
21/30
(2)结构化语言控制结构
顺序结构
➢程序示例:通过键盘输入一个三角形的底和高,计算其 面积并输出。
main( )
{
float width,height,area;
/*定义变量*/
printf("\nEnter width and height:"); /*输出提示信息*/
0011 0000 01101110 //把0000号寄存器中的数存入地址为01101110的内存单元中
2020/2/29
计算机科学导论
10/30
② 汇编语言
➢由助记符指令构成的语言。 ➢也是一种依附于机器硬件的语言。 ➢汇编语言源程序需要汇编后才能执行。
汇编语言程序片段
MOV R5, X //把内存单元X中的数装入R5寄存器 ADD R5, Y //把R5中的数与Y单元中的数相加,结果存入R5 MOV Z, R5 //把R5中的数存入Z单元中
2020/2/29
计算机科学导论
11/30
③ 高级语言
➢由自然语言和数学公式表示的语言。 ➢是一种独立于机器硬件的语言。 ➢高级语言程序需要编译后才能执行。
高级语言程序片段
Z=X + Y
//把内存单元X中的数与Y中的数相加,结果存入Z单元
2020/2/29
计算机科学导论
12/30
影响较大的高级语言:
执行的一些命令的集合,是解决问题的 具体算法在计算机中的实现。
2020/2/29
计算机科学导论
3/30
4.1.3、算法的特点及评价标准
算法必须具有以下特性: ➢ 有穷性。 ➢ 确定性。 ➢ 有效性。 ➢ 输入及输出。
2020/2/29
计算机科学导论
4/30
4.1.4、算法的表示 (1)用自然语言表示
➢BASIC语言:BASIC是Beginner’s All-purpose Symbolic Instruction Code(初学者通用符号指令码) 的缩写。
2020/2/29
计算机科学导论
13/30
④ 结构化程序设计语言的特点
采用三种基本控制结构,程序结构清晰。 采用模块化程序设计方法。 常用结构化程序设计语言
2020/2/29
计算机科学导论
18/30
3、数据类型定义和检查
(1)什么是数据类型? 数据类型定义是一种抽象机制,它刻画了一组数据对象和
作用在数据对象上的一组操作。 抽象数据类型是数据类型的发展,它使用户可以引用复杂
的实体,而不必考虑这些实体的表示方法。 (2)数据类型的作用
数据类型检查是保证程序可靠性的一条有效途径,编译器 通过对操作中不同操作数类型的检查,确定操作的合法性。
2020/2/29
计算机科学导论
17/30
2、名字说明 预先说明程序中将要使用的对象(常量和变量)的名字,
有利于编译程序检查对象使用方式的合法性,帮助程序员发 现错误。
➢ 有些语言(如C语言)要求对象预先显示说明。 ➢ 某些语言(例如FORTRAN和BASIC)并不要求用户显式说
明程序中对象的名字,第一次使用的名字即被看作是 对这个名字的说明。
scanf(“%f,%f”,&width,&height); /*通过键盘输入底和高*/
area=(width*height)/2.0;
/*计算面积*/
printf("\nThe arae is :%f ",area);
/*输出面积的值*/
}
2020/2/29
计算机科学导论
22/30
分支结构
➢程序示例:根据输入的学生成绩对其进行判断处理,如 果成绩及格,则输出Passed,否则输出Failed。
1、字符集:每个语言都有一个基本字符集,程序是符合语 法的字符串。
以C语言为例: ① 英文字母(大、小写):A,B,C,… ,Z ;a,b ,c,… ,z ② 数字:0,1,2,…,9 ③ 特殊字符:+, ,*,/,%,=,_,(,)~,! ,◎,#,$,^,&等 ④ 转义字符:\n,\t,\v,\b,\r,\f,\a,\",\,\\, \ddd,\xhh等
(c)
真
假 if(b>max)
三种基本结构
置max=b
真 置max=c
假 if(c>max)
2020/2/29
计算机科学导论
6/30
begin
3) 用伪码表示
输入 a,b,c;
伪码是用一种介于自然语言 和计算机语言之间的文字和符 号来描述算法。接近计算机语 言,便于向计算机程序过渡。 比计算机语言形式灵活、格式 紧凑,没有严格的语法格式。
计算机科学导论
1/30
4.1算法与程序(教材第5章)
4.1.1算法的概念 为解决一个问题而采取得方法和步骤,称为算
法。 算法就是被精确定义的一组规则,规定先做什
么,再做什么,以及判断某种情况下做哪种操 作; 算法是步进式的完成所需任务的过程。
2020/2/29
计算机科学导论
2/30
4.1.2、程序的概念 程序是编程者写的、计算机能够理解并
和值之分,名是一个数据项的标识,值是它的一个 可能取值。
2020/2/29
计算机科学导论
28/30
4、数据元素:数据的基本单位。在不同的条件下,数据
元素又可称为元素、结点、顶点、记录等。
5、数据对象或数据元素类:具有相同性质的数据元素
main( ) {
float score; printf("\nEnter a score :"); scanf("%f",&score); if (score>=60.0)
printf("\nPassed "); else
printf("\nFailed "); }
/*定义变量*/ /*显示提示信息*/ /*通过键盘输入一个成绩*/
maximum=max(num1,num2,num3);
printf("\nMaximum is: %d ",maximum);
}
2020/2/29
计算机科学导论
8/30
4.2 程序设计语言(教材第6章)
4.2.1 程序设计语言的种类:
➢ 机器语言 ➢ 汇编语言 ➢ 高级语言 ➢ 结构化程序设计语言 ➢ 面向对象程序设计语言 ➢ 人工智能程序设计语言
➢FORTRAN语言:FORTRAN是FORmula TRANslator (公式翻译器)的缩写。
➢ALGOL语言:ALGOL是ALGOrithm Language(算法 语言)的缩写。
➢COBOL语言:COBOL是COmmon Business-Oriented Language(面向商业的通用语言)的缩写。
置max=a; if(b>max)then
置max=b; endif if(c>max)then
置max=c;
自然语言内部语法
endif
输出max;
stop
2020/2/29
计算机科学导论
7/30
4) 用程序实现
#include "stdio.h“
int max(int x,int y,int z) {
2020/2/29
计算机科学导论
15/30
⑥ 人工智能程序设计语言
适合于知识表示和逻辑推理。 常用人工智能程序设计语言
LISP
可以解决人工智能中的符号处理问题。
PROLOG
自动实现模式匹配、自动回溯这两种人工智能中常用的基本操 作。
2020/2/29
计算机科学导论
16/30
4.2.2 程序设计语言的机制
2020/2/29
计算机科学导论
9/30
① 机器语言
➢由二进制编码指令构成的语言。 ➢是一种依附于机器硬件的语言。 ➢机器语言程序可以直接执行。
机器语言程序片段
0001 0101 01101100 //把地址为01101100的内存单元中的数装入0101号寄存器
0001 0110 01101101 //把地址为01101101的内存单元中的数装入0110号寄存器 0101 0000 01010110 //把01101100和01101101中的数相加,结果存入0000号寄存器
2020/2/29
计算机科学导论
25/30
4.3 数据结构(与教材第8章相关)
4.3.1 数据结构与问题求解 4.3.2 数据结构的基本概念和术语 4.3.3 基本数据结构介绍
线性结构 树形结构 图状结构
2020/2/29
计算机科学导论
26/30
4.3.1 数据结构与问题求解
计算机求解问题的步骤是: (1)从具体问题抽象出一个数学模型; (2)设计解此数学模型的算法; (3)编出程序,直至得到最终的解答。
➢ 数据结构是非数值计算问题求解的基础。 ➢ 与程序设计语言课程相比,数据结构面向应用
2020/2/29
计算机科学导论
27/30
4.3.2 数据结构的基本概念和术语
1、数据:信息的载体,它能够被计算机识别、存储 和加工处理。
2、信息:数据的语义解释,它能被人理解。 3、数据项:数据不可分割的最小单位。数据项有名
/*大于等于60输出Passed*/
/*小于60输出Failed*/
2020/2/29
计算机科学导论
23/30
循环结构
➢程序示例:从键盘上输入10个整数,求其累加和并输出。
main( )
{
int i, num, sum;
/*定义变量*/
sum=0;
/*累加变量清零*/
for (i=1; i<=10;i++)
第4讲 程序设计基础知识
4.1 算法
了解什么是算法,算法的描述方式。
4.2 程序设计语言
以c语言为例,介绍高级程序设计语言的基本语 法、程序结构,以及程序设计的一般方法,应用 高级语言进行程序设计。
4.3 数据结构
为要解决的目标问题设计出高效的数据逻辑结 构和存储结构,保证算法和程序的效率;
2020/2/29
int m=x;
if (y>m) m=y;
if (z>m) m=z;
return m;
}
void main( )
{
int num1,num2,num3;
int maximum; printf(“\nEnter three integers: ”);
scanf("%d,%d,%d",&num1,&num2,&num3);
/*循环次数为10*/
{
printf("Enter a data:\n ");
/*显示提示信息*/
scanf("%d ",&num); /*通过键盘输入一个整数*/
sum=sum+num;
/*累加求和*/
}
printf(“\nsum=%d,sum); /*输出累加结果*/
}
2020/2/29
计算机科学导论
2020/2/29
计算机科学导论
19/30
4、子程序
(1)子程序:可独立编译的程序单元。 (2)子程序一般具备如下三种机制:
➢ 子程序说明,它给出子程序与其他程序单元的接口; ➢ 子程序体,它实现子程序的数据结构和控制结构; ➢ 调用方式。 (3)不同语言的子程序: ➢ C的基本程序单位是函数; ➢ PASCAL的基本程序单位的子程序(过程与函数); ➢ MODULA程序的组成单位是模块module; ➢ ADA的基本程序模块是程序包(package)。
PASCAL语言 C语言
2020/2/29
计算机科学导论
百度文库
14/30
⑤ 面向对象程序设计语言
➢ 将问题分解为对象。使人们对复杂系统的认识过程与程 序设计过程尽可能一致。
➢ 对象将自己的属性和方法封装成类。 ➢ 对象之间通过消息传递来相互联系。
常用面向对象程序设计语言 Simula 67 C++ Java
例如,求三个数的最大值的问题,可以描 述为:先比较前两个数,找到大的那个数,再 让其与第三个数进行比较,找到二者中大的数 即为所求。
2020/2/29
计算机科学导论
5/30
2)用传统流程图表示
处理A 处理B
真 处理A
假 条件
处理B
假 条件 真 处理 A
实例:
输入a,b,c 置max=a
(a) (b)
2020/2/29
计算机科学导论
20/30
5、控制结构
(1)最常见的控制转移语句是GOTO语句,其一般形式是: GOTO<语句标号>
一个fortran语言程序:求1~10的累加和。
integer x,sum x=0.0 sum=0.0 10 x=x+1 sum=sum+x if(x.lt.10)goto 10 print*,sum end
24/30
4.2.3 程序设计风格
主要体现在5个方面
➢ 标识符的命名要风格统一、见名知义。 ➢ 一般一行写一条语句,一条长语句可以写在多行上,但
尽量不要把多条语句写在一行上。 ➢ 采用缩进格式,即同一层次的语句要对齐,低层次的语
句要缩进若干个字符,增加程序的可读性。 ➢ 适当书写注释信息,有助于阅读者对程序的理解。 ➢ 尽量少用goto语句,否则容易导致程序结构混乱。
2020/2/29
计算机科学导论
21/30
(2)结构化语言控制结构
顺序结构
➢程序示例:通过键盘输入一个三角形的底和高,计算其 面积并输出。
main( )
{
float width,height,area;
/*定义变量*/
printf("\nEnter width and height:"); /*输出提示信息*/
0011 0000 01101110 //把0000号寄存器中的数存入地址为01101110的内存单元中
2020/2/29
计算机科学导论
10/30
② 汇编语言
➢由助记符指令构成的语言。 ➢也是一种依附于机器硬件的语言。 ➢汇编语言源程序需要汇编后才能执行。
汇编语言程序片段
MOV R5, X //把内存单元X中的数装入R5寄存器 ADD R5, Y //把R5中的数与Y单元中的数相加,结果存入R5 MOV Z, R5 //把R5中的数存入Z单元中
2020/2/29
计算机科学导论
11/30
③ 高级语言
➢由自然语言和数学公式表示的语言。 ➢是一种独立于机器硬件的语言。 ➢高级语言程序需要编译后才能执行。
高级语言程序片段
Z=X + Y
//把内存单元X中的数与Y中的数相加,结果存入Z单元
2020/2/29
计算机科学导论
12/30
影响较大的高级语言:
执行的一些命令的集合,是解决问题的 具体算法在计算机中的实现。
2020/2/29
计算机科学导论
3/30
4.1.3、算法的特点及评价标准
算法必须具有以下特性: ➢ 有穷性。 ➢ 确定性。 ➢ 有效性。 ➢ 输入及输出。
2020/2/29
计算机科学导论
4/30
4.1.4、算法的表示 (1)用自然语言表示
➢BASIC语言:BASIC是Beginner’s All-purpose Symbolic Instruction Code(初学者通用符号指令码) 的缩写。
2020/2/29
计算机科学导论
13/30
④ 结构化程序设计语言的特点
采用三种基本控制结构,程序结构清晰。 采用模块化程序设计方法。 常用结构化程序设计语言
2020/2/29
计算机科学导论
18/30
3、数据类型定义和检查
(1)什么是数据类型? 数据类型定义是一种抽象机制,它刻画了一组数据对象和
作用在数据对象上的一组操作。 抽象数据类型是数据类型的发展,它使用户可以引用复杂
的实体,而不必考虑这些实体的表示方法。 (2)数据类型的作用
数据类型检查是保证程序可靠性的一条有效途径,编译器 通过对操作中不同操作数类型的检查,确定操作的合法性。
2020/2/29
计算机科学导论
17/30
2、名字说明 预先说明程序中将要使用的对象(常量和变量)的名字,
有利于编译程序检查对象使用方式的合法性,帮助程序员发 现错误。
➢ 有些语言(如C语言)要求对象预先显示说明。 ➢ 某些语言(例如FORTRAN和BASIC)并不要求用户显式说
明程序中对象的名字,第一次使用的名字即被看作是 对这个名字的说明。
scanf(“%f,%f”,&width,&height); /*通过键盘输入底和高*/
area=(width*height)/2.0;
/*计算面积*/
printf("\nThe arae is :%f ",area);
/*输出面积的值*/
}
2020/2/29
计算机科学导论
22/30
分支结构
➢程序示例:根据输入的学生成绩对其进行判断处理,如 果成绩及格,则输出Passed,否则输出Failed。
1、字符集:每个语言都有一个基本字符集,程序是符合语 法的字符串。
以C语言为例: ① 英文字母(大、小写):A,B,C,… ,Z ;a,b ,c,… ,z ② 数字:0,1,2,…,9 ③ 特殊字符:+, ,*,/,%,=,_,(,)~,! ,◎,#,$,^,&等 ④ 转义字符:\n,\t,\v,\b,\r,\f,\a,\",\,\\, \ddd,\xhh等
(c)
真
假 if(b>max)
三种基本结构
置max=b
真 置max=c
假 if(c>max)
2020/2/29
计算机科学导论
6/30
begin
3) 用伪码表示
输入 a,b,c;
伪码是用一种介于自然语言 和计算机语言之间的文字和符 号来描述算法。接近计算机语 言,便于向计算机程序过渡。 比计算机语言形式灵活、格式 紧凑,没有严格的语法格式。
计算机科学导论
1/30
4.1算法与程序(教材第5章)
4.1.1算法的概念 为解决一个问题而采取得方法和步骤,称为算
法。 算法就是被精确定义的一组规则,规定先做什
么,再做什么,以及判断某种情况下做哪种操 作; 算法是步进式的完成所需任务的过程。
2020/2/29
计算机科学导论
2/30
4.1.2、程序的概念 程序是编程者写的、计算机能够理解并
和值之分,名是一个数据项的标识,值是它的一个 可能取值。
2020/2/29
计算机科学导论
28/30
4、数据元素:数据的基本单位。在不同的条件下,数据
元素又可称为元素、结点、顶点、记录等。
5、数据对象或数据元素类:具有相同性质的数据元素
main( ) {
float score; printf("\nEnter a score :"); scanf("%f",&score); if (score>=60.0)
printf("\nPassed "); else
printf("\nFailed "); }
/*定义变量*/ /*显示提示信息*/ /*通过键盘输入一个成绩*/
maximum=max(num1,num2,num3);
printf("\nMaximum is: %d ",maximum);
}
2020/2/29
计算机科学导论
8/30
4.2 程序设计语言(教材第6章)
4.2.1 程序设计语言的种类:
➢ 机器语言 ➢ 汇编语言 ➢ 高级语言 ➢ 结构化程序设计语言 ➢ 面向对象程序设计语言 ➢ 人工智能程序设计语言
➢FORTRAN语言:FORTRAN是FORmula TRANslator (公式翻译器)的缩写。
➢ALGOL语言:ALGOL是ALGOrithm Language(算法 语言)的缩写。
➢COBOL语言:COBOL是COmmon Business-Oriented Language(面向商业的通用语言)的缩写。