程序设计基础(C语言入门及编程环境)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计基础(一)程序设计基础()
——算法
教学目的
•复习语言及程序
•了解算法的概念
•掌握结构化程序的三种基本结构及算法的表示方法
教学重点和难点
重点:算法的表示方法
难点:结构化程序的三种基本结构
11程序设计语言
1.1、程序设计语言
1.定义:
(1) 从用途上:人与计算机进行信息交流的工具。
(2) 从形式上:由计算机可以理解的符号系统。
()
2.程序
——完成某一功能的计算机指令的有序集合
3程序=数据结构+算法
3.程序设计
——设计、编制、调试程序的过程
11程序设计语言4 1.1、程序设计语言(1) 机器语言(CPU 指令系统4.
程序设计语言的发展:()()
a. 形式特点:由0,1序列组成的指令系统
b. 不需要任何翻译工作,执行效率高不需要任何翻译作执行效率高
c. 难记、难认、难理解,程序开发效率底,易出错、难调试
d d.
不同的计算机结构具有不同的指令系统(不同的机器具有不同的语言)
11程序设计语言
(2)
1.1、程序设计语言(2) 汇编语言(符号语言)a. 形式特点:由一套简单的助记符来表示不同的机器指令
ADD A, B SUB A B b. 需要相应的翻译机制(汇编系统)
SUB A, B
源程序
汇编系统
目标程序)(汇编语言)(机器语言) c. 抽象层次高一些,容易理解些,程序生产效率高d. 不同的计算机结构具有不同的汇编系统
(3)
(3) 面向过程的高级语言(算法语言)
a. 形式特点:更接近于人们通常数学计算公式的描述
b. 需要更高级的翻译系统(编译系统compler)
c. 表达能力强,编程效率高
c表达能力强编程效率高
d. 不依赖于具体的机器,依赖于不同机器上的编译
系统(不同机器上的编译系统是有差异的)
(4) 非过程化的高级语言
* 过程化语言:用语言描述怎样做的过程
*非过程化语言:只要告诉计算机做什么
* 其它方面的特点与面向过程的高级语言相同。
1.2 算法
12
算法的概念:
为解决一个问题而采取的方法和步骤,它是指
令令
令的有限序列,其中每一条指令表示一个或多个操作。
1:设有两个杯子A和B,分别盛放酒和醋,要求将它例设有两个杯子分别盛放酒和醋要求将它们互换。
S1:C←A
S2:A←B
S3:B←C
例2:求1~100的和
S1:
sum ←0,t ←1S2:
sum ←sum+1t t 1S3:
t ←t+1若t 100否则转到输出S4:若
t<=100,则转到S2,否则转到S5S5:输出sum,结束
算法的特性(P3)
1,有穷性
2,确定性
确定性
3,有零个或多个输入
有零个或多个输入
4,有一个或多个输出
有个或多个输出
5,可行性
算法的表示(P3)
1,用自然语言表示算法——通俗易懂,但有歧义
2,用传统流程图表示算法——直观、易懂
3,N—S流程图表示算法
4,用伪代码表示算法
5,用计算机语言表示算法
用计算机语言表示算法
算法的表示——传统流程图
输入输
起止框出框
处理框流程线
判断框连接点
注释框
算法的表示——传统流程图(P5)三种基本结构
1.顺序结构
A
B
流程图
算法的表示——传统流程图2.选择结构
真假
条件成立?
处理A处理B
算法的表示——传统流程图
3.循环结构
●当型(while型)循环结构
假P
真
A
直到型(til型)循环结构
●直到型(until型)循环结构
A
假
P
真
——N-S
算法的表示N S流程图1973年美国学者提出了一种新型流程图:N-S流程图
用N-S流程图表示的3种基本结构如下:
1,顺序结构
——N-S
算法的表示N S流程图2,选择结构
选择结构
算法的表示——N-S流程图3.循环结构
●当型(while型)循环结构
●直到型(until型)循环结构
直到型(til型)循环结构
13
1.3 程序设计及结构化程序设计方法
程序设计:借助计算机,使用计算机语言准确地描述
问题的算法,并正确进行计算的过程。
程序设计过程:
1,分析问题,确定问题的需求
分析问题建立数学模型
2,分析问题,建立数学模型
3,选择计算方法
4,设计算法,绘制框图
编写程序
5,编写程序
6,调试程序
7,整理资料和交付使用
结构化程序设计
结构化程序设计方法是公认的面向过程编程应遵循的基本方法和原则。结构化程序设计方法主要包括:
◆只采用三种基本的程序控制结构来编制程序,从
而使程序具有良好的结构
◆程序设计自顶向下
◆逐步细化
◆模块化设计
◆结构化编码