长安大学C语言课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.什么是结构化程序? 结构化程序设计,它的基本思想是象玩积 木游戏那样,只要有几种简单类型的结构, 可以构成任意复杂的程序。这样可以是程序 设计规范化,便于用工程的方法来进行软件 生产。基于这样的思想,1966年意大利的 Bobra和Jacopini提出了三种基本结构,由这 三种基本结构组成的程序,就是结构化程序 (Structured Program)。
2015-3-31
$1.4 用流程图表示算法
流程图,亦称框图,它是用一些几何框图、流程线和文字说明表示各种类型的操作。 直观形象,易于理解。ANSI规定了一些常用的流程图符号,如图1.3所示。
开始/结束框 (表示流程开始或结束)
输入/输出框 (表示输入或输出)
处理框 (表示基本处理功能的描述)
流程线 (表示流程的路径和方向)
2015-3-31
$1.3 算法和算法的表示
一.什么是算法 计算机解决问题的方法和步骤,就是计算机的算法。
下面举几个简单例子,以说明计算机算法。 [例1.1] 将两个变量X和Y的值互换。设X=5,Y=10。 问题分析:两人交换座位,只要各自去坐对方的座位就行了,这是直接交换。 一瓶酒和一瓶醋互换,就不能直接从一个瓶子往另一个瓶子倒。必须借助于一个 空瓶子,先把酒倒入空瓶,再把醋倒入已倒空的酒瓶,最后把酒倒入已倒空的醋 瓶,这样才能实现酒和醋的交换,这是间接交换。 计算机中交换两个变量的值不能用两个变量直接交换的方法,而必须采用间 接交换的方法。因此,设一中间变量为Z。 算法表示如下: S1 将Y值存入中间变量Z: Y→Z。 S2 将X值存入变量Y中: X→Y。
3. 循环结构
A
A
A块 条件? N B Y
A 块 N 条件? Y B
(a) 当型循环结构
图1.12 循环结构
2015-3-31
学习方法:搞清概念,多上机操作
学习本课程的目的: • 熟悉计算机的基本原理、C语言特点和C语言的发 展; • 了解和熟悉C语言程序开发的环境; • 掌握各种常用算法; • 会用C编写程序并上机调试; • 能阅读、分析现有的C程序; • 解决自己专业领域的应用问题。
2015-3-31


2015-3-31
[例1.3] 计算函数M(x)的值。函数M(x)为:
M ( x)
bx 2 a
x<=a
a (c x ) c 2 x>a
问题分析:该题是一个数值运算问题。其中M代表要计算的函数值, 有两个不同的表达式,根据x的取值决定采用哪一个算式。因此,可用以 下算法实现。 S1 将a、b、c和x的值输入到计算机。 S2 判断x≤a?若条件成立,执行第3步S3, 否则,往下执行S4。 S3 按表达式bx2+a计算出M(x)结果,然后执行S5。
N<=5? N 输出S 结束
图1.4 交换变量流程图
图1.5 求5个自然数和流程图
2015-3-31
下面是用流程图表示例1-例4的算法。
开始 输入a,b,c,x Y x≤a? N 开始
输入M,N R=M % N
M=N,N=R
bx2+a→m
a(c-x)+c2→m
N R=0? Y 输出M
输出m 结束 结束 图1.7 求最大公约数流程图 图1.6 求函数值流程图
2015-3-31
二. 程序设计
一个简单的程序设计一般包含以下四个步骤: 1.分析问题,建立数学模型。 2.确定数据结构和算法。 3.编制程序。 4.调试程序。 由此可见,一个完整的程序要涉及四个方面的问 题:数据结构、算法、编程语言和程序设计方法。这 四个方面的知识都是程序设计人员所必须具备的。
2015-3-31
计算机怎样理解高级语言? 借助“翻译”
通常有两种“翻译”做法,即编译方式和解释方式。 编译方式是:事先编好一个称为编译程序的机器指令程 序,并放在计算机中,把用高级语言编写的源程序输入计算 机,编译程序便把源程序整个地翻译成用机器指令表示的目 标程序。然后执行该目标程序,得到计算结果。 解释方式是:事先编好一个称为解释程序的机器指令程 序,并放在计算机中,把用高级语言编写的源程序输入计算 机,它并不是象编译方式那样把源程序整个地翻译成用机器 指令表示的目标程序,而是逐句地翻译,译出一句立即执行, 即边解释边执行。这种方式比编译方式多费机器时间,但可 少占计算机的内存。
S4 按表达式a(c-x)+c2计算出M(x)结果,然后执行S5。
S5 输出结果M(x)的值。
2015Байду номын сангаас3-31
[例1.4] 求两个自然数M和N的最大公约数。
问题分析:最大公约数就是能同时整除M和N的最大正整数,这是一个古老的 算术问题,这里介绍两种算法。 算法1:欧几里得(Euclid)算法。 S1 输入两个自然数M和N。 S2 求M除以N的余数R(0<R<N)。 S3 置换:N→M, R→N。 S4 判断:当R≠0,返回第2步S2;当R=0,顺序执行第5步S5。 S5 输出结果,M为所求最大公约数。 算法2: S1 输入两个自然数M和N。 S2 若M>N,则N→R,否则M→R。 S3 若M除以R的余数等于0并且N除以R的余数也等于0,则执行S5,否则顺 序执行下一步。 S4 R-1→R,转S3. S5 输出R,R为所求最大公约数。
判断框 连接点 (根据条件是否满足,在几个可以 (表示两个具有同一标记的 选择的路径中,选择某一路径) “连接点”应连接成一个点) 图1.3 流程图中的符号
2015-3-31
下面是用流程图表示例1-例4的算法。
开始 开始 S=0,N S=S+N N=N+1 Y
输入X,Y Y→Z X→Y Z→X 输出X,Y 结束
第1章 程序设计基本知识
$1.1 $1.2 $1.3 $1.4 $1.5 $1.6
2015-3-31
计算机的工作原理 程序语言与程序设计 算法和算法的表示 用流程图表示算法 用结构化流程图表示算法 结构化程序设计方法
$1.1 计算机的工作原理
一.计算机的指令系统
• 电子计算机存储的信息是以二进制形式存储的,人们要计 算机处理信息,就要给计算机规定一些最基本的操作,并用 0和1表示这些操作,这就构成一条一条的指令。所有的指令 称之为指令系统(即instruction set)。不同型号的计算机, 指令系统也不相同。 • 一条指令由操作码( opcode)和操作数( oprand)两部分 构成,例如在Z80中有这样一条指令: 00000110 00000101 11000110 00000110 操作码 操作数 00001011 操作码11000110表示加法操作, 操作数是00000110。 图1.1 执行过程 2015-3-31 执行这条指令的过程如图1.1
2015-3-31
各种语言程序的比较
机器语言 00010010 00001011 00010011 00100001 汇编语言 LD A, (2BH) LD HL, 2CH ADD A,(HL) LD (2DH),A 高级语言 main( ) {int i,j,k; scanf(“%d%d”,&i,&j); k=i+j; printf(“%d%d%d”,i,j,k); }
二.计算机的解题过程
设计算法----算题的方法
编写程序----告诉计算机算题的步骤
例:5+6 解题步骤的集合,称之为程序 机器指令构成的有序集合,就称为机器语言程序。计算机 的工作就是按规定顺序执行程序。人们使用计算机就要为它 编制程序,我们称为程序设计。
2015-3-31
• 程序:完成既定任务的一组指令序列。 • 指令:计算机执行某种操作的命令,由计算机直 接识别。一条指令由操作码和操作数地址码组成。 • 工作原理:把编好的程序连同有关数据,通过输 入设备顺序送入计算机的存储器中,计算机工作 时CPU负责从存储器中取出指令,分析指令,执 行指令,完成一条指令的执行周期。CPU这样周 而复始地工作,直到一个程序执行结束。 • 存储程序原理-------冯•诺依曼1946年提出的。
S3 将中间变量Z的值存入X中:Z→X。
2015-3-31
[例1.2] 求5个自然数的和(即S=1+2+3+4+5) 问题分析:该题有两个特点:(1)重复执行加法,每加一个数,总和的值都在 变;(2)加数是一个有规则的等差数列,第1项是1,以后每加一次,加数就增加1, 因此,可以用以下算法实现。 算法1: S1 设一存放累加和的变量S,初值置0,即0→S;设一计数变量N,初值置 0,即0→N。 S2 计算和S+N→S,并把计数变量增值N+1→N。 在这个算法里,出现了重复求和的操作,称为 S3 判断:当N≤5时,返回第2步S2,再次求和;当N>5时,顺序执行下一 步S4。 ,这种循环必须用条件加以限制,让它进行有限 S4 输出结果,S为所求之和。 次数就停止,否则,成为死循环。上述算法 1的S3 算法2: 是条件判断,求和的操作是先执行,后判断;算法 2 S1 0→S,1→N(同算法1)。 S2 判断: 当N≤5时,顺序执行下一步S3;当N>5时,跳过S3、S4,执行第 的 S2 是条件判断,求和的操作是先判断,后执行。 5步S5。 S3 S+N→S,N+1→N(同算法1)。 S4 返回第2步S2。 S5 输出结果,S为所求之和。
2.程序与程序语言
程序:是计算机指令的序列,编制程序的工作就是为计算机安排指令序列。 程序语言:指令是二进制编码,用它编制程序既难记忆,又难掌握,所以, 计算机工作者就研制出了各种计算机能够懂得、人们又方便使用的计算机语言, 程序就是用计算机语言来编写的。因此,计算机语言通常被称为“程序语言”, 一个计算机程序总是用某种程序语言书写的。 计算机语言按使用方式和功能可分为低级语言和高级语言。低级语言包括 机器语言和汇编语言。
长安大学计算机基础教学部
任课教师:王润农
2015-3-31
教材、参考书与课时安排
– 教材
C语言程序设计 武雅丽等编著 清华大学出版社
– 参考书
C语言程序设计教程 C高级实用程序设计 授课:48学时 实验:12学时 谭浩强 王士元 高等教育出版社 清华大学出版社
– 课时安排60学时1—15周
2015-3-31
2015-3-31
二.算法的特性
(1). 算法中执行的步骤总是有限次数的,不能无 休止地执行下去。称为有穷性。 (2). 算法中的每一步操作的内容和顺序必须含义 确切。 这称之为确切性。不能有二义性。 (3). 算法中的每一步操作都必须是可执行的,这 称之为有效性。 (4). 要有数据输入。算法中操作的对象是数据, 因此,应在操作前提供数据。 (5). 要有结果输出。
课程要求
– 课前请做好预习 – 保持课堂安静,头脑清醒,思维活跃 – 认真、独立、按时完成并提交作业 – 重视上机实践,有效利用宝贵的上机时间
– 所有作业必须独立完成 – 作业必须经上机调试通过 – 上课考勤3次缺席,按不及格处理 – 发现上机时间上网,按缺席一次处理 – 平时:20%,期末:80%
2015-3-31
流程图的优点和缺点
• 流程图的优点是形象直观,清晰明了,所 以它很早就被广泛采用在各种高级语言的 程序设计中,常常称之为传统的流程图。 • 缺点是对于较复杂的问题,占面积大,而 且由于使用流程线,使流程任意转移,容 易使人弄不清流程的思路。
2015-3-31
$1.5用N—S结构化流程图表示算法
2015-3-31
二.三种基本结构
1. 顺序结构
A Y A块 B 块 A 块 B 图1.9 单选择结构 A 条件? 1 A1 块 B B 2 …… A2 块 n An 块 条件? N
2. 选择结构
A
B 图1.8 顺序结构 A Y N
条件?
A 块
B 块
图1.10 双选择结构
图1.11 多选择结构
2015-3-31
2015-3-31
三.计算机的工作原理: 存储程序原理
$1.2 程序语言与程序设计
一. 计算机语言与程序语言
1. 计算机语言
定义:人和人交流用的是双方都能听懂和读懂的自然语言,同样,人和计算 机交流也要用人和计算机都容易接受和理解的语言,这就是计算机语言。 目的:用自然语言讲述和书写,目的是给另外的人传播信息。使用计算机语 言把我们的意图表达给计算机,目的是使用计算机。 特点:它简单易学。更多地表现了说一不二,表现了“规则”的严谨。
相关文档
最新文档