版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2021年8月3日第1页 一、自我介绍一、自我介绍 l姓名:张克新姓名:张克新 l办公室:计算机控制技术教研室办公室:计算机控制技术教研室 l电话:电话:84036141(办)(办) l手机:手机lEmail: C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2021年8月3日第2页 二、课程介绍二、课程介绍 l1、C语言程序设计语言程序设计是很多高等院校计是很多高等院校计 算机、电子信息类专业一门重要的专业基算机、电子信息类专业一门重要的专业基 础课程。础课程。 l 2、该课程的特点是理论与实践紧密
2、结合,、该课程的特点是理论与实践紧密结合, 将实例穿插与理论授课之中。将实例穿插与理论授课之中。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2021年8月3日第3页 l专业需要专业需要 现在的很多硬件产品、嵌入式系统(如现在的很多硬件产品、嵌入式系统(如 IC 卡、卡、 手机、单片机)的驱动和应用程序也都是用手机、单片机)的驱动和应用程序也都是用 C 语语 言编写,因为相对于传统的汇编语言来说,言编写,因为相对于传统的汇编语言来说,C语语 言更容易被编程者理解、接受和掌握,这一点是言更容易被编程者理解、接受和掌握,这一点是 很多的高级语言所无法企及的。大多数编程高手很多的高级语
3、言所无法企及的。大多数编程高手 也选用也选用 C 语言作为他们常用的开发和调试工具。语言作为他们常用的开发和调试工具。 可以说,可以说, C 语言在计算机应用中无处不在。所以,语言在计算机应用中无处不在。所以, 如果掌握了如果掌握了 C 语言,在以后其他计算机语言类课语言,在以后其他计算机语言类课 程的学习中就能够触类旁通,轻松学习。程的学习中就能够触类旁通,轻松学习。 l就业需要就业需要 为什么要学?为什么要学? C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2021年8月3日第4页 l课程学习课程学习 语法、规则语法、规则 设计思想设计思想 设计习惯设计习惯 l关键能力培养关键
4、能力培养 语言表达语言表达 团队合作团队合作 学习方法学习方法 学什么?学什么? C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2021年8月3日第5页 l充分利用各种资源充分利用各种资源 l抓抓“四点四点” 基本点、重点、注意点、难点基本点、重点、注意点、难点 l做好做好“三习三习”:“三习三习”是指课前的预习、是指课前的预习、 课上的学习和课后的复习。课上的学习和课后的复习。 怎么学?怎么学? C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2021年8月3日第6页 三、学习方式与考核方式三、学习方式与考核方式 l1、学习方式、学习方式:项目驱动式项目驱动式 l授课方
5、式:理论授课方式:理论+上机上机 l内容:课本内容内容:课本内容+全国计算机等级考试内容全国计算机等级考试内容 l2、考核方式、考核方式 l(1)平时成绩)平时成绩(作业、单元测验、实验、作业、单元测验、实验、 考勤考勤)20% l (2)期末考试占)期末考试占80% C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2021年8月3日第7页 四、教材与参考书四、教材与参考书 1、教材、教材 lC语言程序设计语言程序设计乌云高娃乌云高娃 高等教育出版社高等教育出版社 2、参考书、参考书 lC语言程序设计语言程序设计谭浩强,清华大学出版社谭浩强,清华大学出版社 l考纲考点考题透解与模拟(
6、二级考纲考点考题透解与模拟(二级C语言)语言)全全 国计算机等级考试新大纲研究组,清华大学出版国计算机等级考试新大纲研究组,清华大学出版 社社 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 第第1章章 C程序设计基础程序设计基础 学习目标学习目标 本章内容中我们将学习本章内容中我们将学习 1 C语言的产生、发展和特点;语言的产生、发展和特点; 2 C程序的结构和程序的结构和C程序的上机步程序的上机步 骤;骤; 3 程序算法基础和软件编程规范程序算法基础和软件编程规范 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 1、程序设计语言的发展、程序设计语言的发展 机器语言 汇编
7、语言 高级语言 面向过程 面向对象 CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减 用助记符号描述的指令系统 如 ADD A, B 面向机器的语言 程序设计是数据被加工的过程 客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系 程序设计关键是定义类,并由类派生对象 冯.诺依曼结构: 计算机 运算器 控制器 存储器 主机: I/O设备:键盘、显示器等 中央处理器CPU 1.1 C语言的产生和发展语言的产生和发展 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 产生背景 产生过程 时间:19721973
8、 地点:美国贝尔实验室 目的:UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie C标准 1978年K /*定义变量定义变量*/ printf(“输入圆半径:输入圆半径:”); /*输出提示输出提示*/ scanf(“%f”, /*输入半径输入半径*/ a=3.14*r*r; /*计算圆面积计算圆面积*/ printf(“圆面积圆面积=%fn”,a); /*输出圆面积输出圆面积*/ /*函数体终止符*/ 主主 函函 数数 函函 数数 体体 函数名函数名 说明部分说明部分 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 /* example1.2 c
9、alculate the sum of a and b*/ #include /* This is the main program */ main() int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %dn,sum); /* This function calculates the sum of x and y */ int add(int x,int y) int z; z=x+y; return(z); 运行结果: sum=34 函数 语句 预处理命令 注释 例例1.21.2 C语言程序设计语言程序设计 电子信息工程系电子信息工程系
10、 习惯用小写字母(符号都是英文半角符号) ,大小 写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式 main( ) . . . . . . . main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;jy?x:y; l printf(max=%dn,max); l l解决办法很简单,请读者自己思考。 (2) 如果函数不需要变量,也可以缺省变量定义语句。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 编辑 链接 编译 执行 C程序开发步骤 开 始 编 辑 编 译 连 接 执 行 有错? 结果正确? 结 束
11、 有 源程序 file.c 目 标 程 序 file.obj 库 函 数 和 其 它 目 标 程序 可执 行 目标 程 序 无 正确 不正确 file.exe 程序代码的录入, 生成源程序*.c 语法分析查错,翻译 生成目标程序*.obj 与其它目标程序或库 链接装配,生成可执行 程序*.exe 源程序目标程序可执行程序 内容程序设计语言机器语言机器语言 可执行不可以不可以可以 文件名后缀.c.obj.exe 1.4 C程序的上机步骤程序的上机步骤 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 1.4.1 Turbo C的介绍的介绍 lTurbo C是在微机上广泛使用的编译程序,它
12、具有方便、 直观、易用的界面和丰富的库函数。它向用户提供一个集 成环境,把程序的编辑、编译、连接、运行与调试等操作 全部集中在一个界面上进行,使用十分方便。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 1.4.2 运行一个语言程序的一般过程运行一个语言程序的一般过程 lTurbo 是用菜单驱动的集成软件环境。运行一个C语言 程序的一般过程如下: l(1) 启动Turbo C,进入Turbo C集成环境。 l(2) 编辑(或修改)源程序。 l(3) 编译。如果编译成功,则可进行下一步操作;否则, 返回(2)修改源程序,再重新编译,直至编译成功。 l(4) 连接。如果连接成功,则可进
13、行下一步操作;否则, 根据系统的错误提示,进行相应修改,再重新连接,直至 连接成功。 l(5) 运行。通过观察程序运行结果,验证程序的正确性。 如果出现逻辑错误,则必须返回(2)修改源程序,再重新编 译、连接和运行,直至程序正确。 l(6) 退出Turbo C集成环境,结束本次程序运行。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 1.5 程序算法基础程序算法基础 1.5.1 程序设计基本概念程序设计基本概念 1、程序、程序 人们应用计算机求解问题,首先必须有程人们应用计算机求解问题,首先必须有程 序且要存入计算机,它才能快速准确地提供预序且要存入计算机,它才能快速准确地提供预
14、期结果或信息。期结果或信息。在学术界,程序有严格的定义。在学术界,程序有严格的定义。 通俗地说,程序是问题求解的指令序列,包括通俗地说,程序是问题求解的指令序列,包括 处理对象和操作的描述。处理对象和操作的描述。程序员编写的、有明程序员编写的、有明 确目的机器指令序列是程序。程序员用高级语确目的机器指令序列是程序。程序员用高级语 言编写的、有明确目的语句序列也是程序。言编写的、有明确目的语句序列也是程序。 程序是人们与计算机沟通思想的工具。程序是人们与计算机沟通思想的工具。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2、算法、算法 一个一个C C程序包含两方面描述:对数据描述和
15、对操作描程序包含两方面描述:对数据描述和对操作描 述。数据描述是指程序中数据的数据类型和数据组织述。数据描述是指程序中数据的数据类型和数据组织 形式,称为数据结构形式,称为数据结构(date structure)(date structure)。操作描述是。操作描述是 指问题求解方法和步骤,称为算法指问题求解方法和步骤,称为算法(algorithm)(algorithm)。 编程前必须先分析问题,建立数据模型,设计算法编程前必须先分析问题,建立数据模型,设计算法, , 然后才能进行编程。然后才能进行编程。没有正确的算法,编不出正确的没有正确的算法,编不出正确的 程序。计算机科学家沃斯(程序。计
16、算机科学家沃斯(Niklaus WirthNiklaus Wirth)提出一)提出一 个经典公式:个经典公式: 算法算法+ +数据结构数据结构= =程序程序 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 3 3、程序设计语言、程序设计语言 人们为了交流思想,产生了多姿多彩的自然语言。同样,人们为了交流思想,产生了多姿多彩的自然语言。同样, 人们在与计算机打交道中也创造和发展了多种多样的人们在与计算机打交道中也创造和发展了多种多样的“语言语言”。 这种特殊的这种特殊的“语言语言”称程序设计语言,用来编写计算机程序。称程序设计语言,用来编写计算机程序。 程序设计语言的基础是一组记号和一
17、组规则。记号常常是程序设计语言的基础是一组记号和一组规则。记号常常是 指词汇,规则是指语法。词汇是由基本字符构成的,而程序又指词汇,规则是指语法。词汇是由基本字符构成的,而程序又 是由词汇按规则构成的。是由词汇按规则构成的。 在程序设计语言发展过程中产生了种类繁多的语言。但是,在程序设计语言发展过程中产生了种类繁多的语言。但是, 其一般成分都包含有:其一般成分都包含有: 数据数据成分成分 描述程序中所涉及的描述程序中所涉及的数据。数据。 运算成分运算成分 描述程序中所涉及的运算。描述程序中所涉及的运算。 控制成分控制成分 描述程序中的控制结构。描述程序中的控制结构。 传输成分传输成分 描述程序
18、中的描述程序中的数据传数据传输。输。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 (1 1) 机器语言机器语言 最早,程序员只能用最原始的计算机指令编程。最早,程序员只能用最原始的计算机指令编程。 计算机的指令系统称计算机的指令系统称机器语言机器语言, ,它是唯一能被计算机它是唯一能被计算机 直接识别和运行的语言直接识别和运行的语言。每条机器指令都是由一串二每条机器指令都是由一串二 进码表示,执行一种操作。进码表示,执行一种操作。 各类计算机的指令系统各类计算机的指令系统 差异很大。例如求差异很大。例如求 7+107+10,可写出如下机器语言程序:,可写出如下机器语言程序: 10
19、11 0000 0000 0111 1011 0000 0000 0111 0000 0100 0000 1100 0000 0100 0000 1100 1111 01001111 0100 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 (2 2)汇编语言)汇编语言 汇编语言是计算机指令符号化。例如,求汇编语言是计算机指令符号化。例如,求 7+107+10,可,可 写出如下汇编程序:写出如下汇编程序: MOVE AL,7MOVE AL,7 ADD AL,10ADD AL,10 HLTHLT 第一条是取数指令第一条是取数指令将立即数将立即数 7 7 送累加器送累加器ALAL。 第二
20、条是加法指令第二条是加法指令将立即数将立即数1010与累加器与累加器ALAL中的中的7 7 相加,结果保留在累加器相加,结果保留在累加器ALAL中。中。 第三条是停机指令第三条是停机指令运行结束,停机。运行结束,停机。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 用汇编语言编写的程序称汇编语言源程序,简称用汇编语言编写的程序称汇编语言源程序,简称 汇编程序。计算机不能直接识别汇编程序,必须先将汇编程序。计算机不能直接识别汇编程序,必须先将 它翻译成机器语言才能运行。图它翻译成机器语言才能运行。图1.211.21是汇编程序的汇是汇编程序的汇 编编( (即翻译即翻译) )和运行过程。
21、和运行过程。 汇编语言源程序汇编语言源程序汇编汇编目标程序目标程序 汇编程序汇编程序执行执行 汇编语言与机器语言是一一对应关系,特性汇编语言与机器语言是一一对应关系,特性 相似。它仅仅改进了指令表示方法,比机器语言相似。它仅仅改进了指令表示方法,比机器语言 易记、易读、易写。汇编语言和机器语言统称为易记、易读、易写。汇编语言和机器语言统称为 低级语言,与计算机硬件系统有关。低级语言,与计算机硬件系统有关。 图图1.21 1.21 汇编程序的汇编和运行过程汇编程序的汇编和运行过程 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 3.3.算法语言算法语言 自自19461946年第一台计算
22、机问世后年第一台计算机问世后, ,直到直到19561956年,第一个算法年,第一个算法 语言语言FORTRANFORTRAN版本才宣布研发成功。这是程序设计语言发展史版本才宣布研发成功。这是程序设计语言发展史 上的一个里程碑。此后,算法语言如同雨后春笋般迅速发展。上的一个里程碑。此后,算法语言如同雨后春笋般迅速发展。 算法语言与计算机硬件系统无关,是接近自然语言和数学语言算法语言与计算机硬件系统无关,是接近自然语言和数学语言 的一种专用语言,用于描述算法。算法语言又称高级语言,它的一种专用语言,用于描述算法。算法语言又称高级语言,它 克服了低级语言的缺点。克服了低级语言的缺点。FORTRANF
23、ORTRAN、PASCALPASCAL、C C、C+C+、JavaJava等等 都是高级语言。例如,求都是高级语言。例如,求7+107+10,可写出如下,可写出如下C C程序:程序: / /* * 求求7+107+10的和的和 * */ / #include #include void main()void main() printf( printf(”7+10=%dn7+10=%dn”,7+10);,7+10); 程序运行结果输出,其形式:程序运行结果输出,其形式: 7+10=177+10=17 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 用高级语言编写的源程序,计算机也不能直
24、用高级语言编写的源程序,计算机也不能直 识别它,必须先将它编译识别它,必须先将它编译( (即翻译即翻译) )成机器语言成机器语言 后才能运行。图后才能运行。图1.221.22是高级语言编译和运行过是高级语言编译和运行过 程。程。 高级语言源程序高级语言源程序编译编译目标程序目标程序 编译程序编译程序执行执行 图图1.22 1.22 高级语言编译的编译和运行过程高级语言编译的编译和运行过程 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 1.5.2 算法的特性算法的特性 算法特性:算法特性: l(1)有穷性)有穷性 l(2)确定性)确定性 l(3)有效性)有效性 l(4)输入)输入 l
25、(5)输出)输出 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 1.5.3 算法的描述算法的描述 算法的描述方法很多,常见的有自然语言、算法的描述方法很多,常见的有自然语言、 传统流程图、传统流程图、N-S图、伪代码、图、伪代码、PAD图等。图等。 1、用自然语言描述、用自然语言描述 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2、流程图、流程图 流程图是采用图形符号、数学语言和自然语言结流程图是采用图形符号、数学语言和自然语言结 合的方法表示算法。合的方法表示算法。常用的图形符号如图常用的图形符号如图1.61.6所示。所示。 图图1.6 1.6 图形符号图形符号 算
26、法可用算法可用顺序结构、选择结构和重复结构顺序结构、选择结构和重复结构等三种等三种 基本程序结构描述。基本程序结构描述。C C语言是结构化程序设计语言,具语言是结构化程序设计语言,具 有与这三种基本程序结构相对应的语句。有与这三种基本程序结构相对应的语句。 A 起止框起止框输入输出框输入输出框处理框处理框判断框判断框 for框框函数框函数框流程线流程线连接点连接点 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 (1 1)顺序结构)顺序结构 顺序结构顺序结构是一种最简单的结是一种最简单的结 构。它以图构。它以图1.71.7中的步骤顺序执中的步骤顺序执 行,即先执行行,即先执行A A,
27、再执行,再执行B B。在。在C C 语言中对应的语句是表达式语语言中对应的语句是表达式语 句和函数语句。句和函数语句。 A A B B 入口入口 出口出口 图图1.7 1.7 顺序结构顺序结构 例例1.1 1.1 描述交换描述交换a a和和b b两整数的算法。两整数的算法。 交换交换a和和b两整数就像交换一杯白酒和一杯红酒一样。用自然语言和流程图两整数就像交换一杯白酒和一杯红酒一样。用自然语言和流程图(图图 1.8)两种方法描述如下:两种方法描述如下: 第一步第一步 读读 入数据存入入数据存入a,ba,b。 第二步第二步 交换交换a,ba,b。实现交换,见图。实现交换,见图1.81.8。 第三
28、步第三步 输出输出a,ba,b。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 交换交换 流程图流程图 1 1 5 a a b b ? temptemp (1) 1 1 5 1 temptemp a a b b 1 (2) 5 5 1 a a b b temptemp 2 (3) 5 1 1 temptemp a a b b 3 (4) 图图1.8 1.8 例例1.11.1流程图流程图 输入输入a,ba,b 开始开始 结束结束 输出输出a,ba,b Temp=a a=b b=temp 11 22 33 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 (2) 选择结构选择结
29、构 选择结构是判断条件选择结构是判断条件p(p(表达式值表达式值) )是否成立来选定执是否成立来选定执 行一种操作或一组操作的结构。行一种操作或一组操作的结构。它有一选一、二选一、它有一选一、二选一、 多选一等三种基本形式。多选一等三种基本形式。 1 1一选一选择结构一选一选择结构 图图1.91.9是一选一选择结构。是一选一选择结构。 若条件若条件p(p(表达式值为表达式值为1 1或非或非 0)0)成立时执行成立时执行A A,否则不做,否则不做 操作。然后结束选择结构。操作。然后结束选择结构。 p A 入口入口 出口出口 图图1.9 1.9 一选一选择结构一选一选择结构 非非0 00 0 C语
30、言程序设计语言程序设计 电子信息工程系电子信息工程系 (2) 选择结构选择结构 选择结构是判断条件选择结构是判断条件p(p(表达式值表达式值) )是否成立来选定执是否成立来选定执 行一种操作或一组操作的结构。行一种操作或一组操作的结构。它有一选一、二选一、它有一选一、二选一、 多选一等三种基本形式。多选一等三种基本形式。 1 1一选一选择结构一选一选择结构 图图1.91.9是一选一选择结构。是一选一选择结构。 若条件若条件p(p(表达式值为表达式值为1 1或非或非 0)0)成立时执行成立时执行A A,否则不做,否则不做 操作。然后结束选择结构。操作。然后结束选择结构。 p A 入口入口 出口出
31、口 图图1.9 1.9 一选一选择结构一选一选择结构 非非0 00 0 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 (2) 选择结构选择结构 选择结构是判断条件选择结构是判断条件p(p(表达式值表达式值) )是否成立来选定执是否成立来选定执 行一种操作或一组操作的结构。行一种操作或一组操作的结构。它有一选一、二选一、它有一选一、二选一、 多选一等三种基本形式。多选一等三种基本形式。 1 1一选一选择结构一选一选择结构 图图1.91.9是一选一选择结构。是一选一选择结构。 若条件若条件p(p(表达式值为表达式值为1 1或非或非 0)0)成立时执行成立时执行A A,否则不做,否则不做
32、 操作。然后结束选择结构。操作。然后结束选择结构。 p 入口入口 出口出口 图图1.9 1.9 一选一选择结构一选一选择结构 0 0 A 非非0 0 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 例例1.2 1.2 描述当描述当a ab b时时, , 交换交换a a 和和b b两整数的算法。两整数的算法。 用自然语言和流程图用自然语言和流程图( (图图1.10)1.10) 两种方法描述如下:两种方法描述如下: 开始开始 输入输入a,ba,b ab Temp=a a=b b=temp 输出输出a,ba,b 结束结束 非非0 00 0 第一步第一步 读入数据存入读入数据存入a,ba,b
33、。 第二步第二步 判断判断 如果如果ab, ab, 交换交换a a和和b b; 否则不交换否则不交换a a和和b b。 第三步第三步 输出输出a,ba,b。 图图1.10 1.10 例例1.21.2流程图流程图 输入输入a,b:1 5 a,b:1 5 输出输出a,b:1 5a,b:1 5 输入输入a,b:9 5 a,b:9 5 输出输出a,b:5 9a,b:5 9 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 例例1.2 1.2 描述当描述当a ab b时时, , 交换交换a a 和和b b两整数的算法。两整数的算法。 用自然语言和流程图用自然语言和流程图( (图图1.10)1.1
34、0) 两种方法描述如下:两种方法描述如下: 开始开始 输入输入a,ba,b ab Temp=a a=b b=temp 输出输出a,ba,b 结束结束 非非0 00 0 第一步第一步 读入数据存入读入数据存入a,ba,b。 第二步第二步 判断判断 如果如果ab, ab, 交换交换a a和和b b; 否则不交换否则不交换a a和和b b。 第三步第三步 输出输出a,ba,b。 图图1.10 1.10 例例1.21.2流程图流程图 输入输入a,b:1 5 a,b:1 5 输出输出a,b:1 5a,b:1 5 输入输入a,b:9 5 a,b:9 5 输出输出a,b:5 9a,b:5 9 C语言程序设计
35、语言程序设计 电子信息工程系电子信息工程系 1 1二选一选择结构二选一选择结构 图图1.111.11是一选一选择结是一选一选择结 构。若条件构。若条件p(p(表达式值为表达式值为1 1 或非或非0)0)成立时执行成立时执行A A,不执,不执 行行B;B;否则执行否则执行B,B,不执行不执行A A。 然后结束选择结构。然后结束选择结构。 p A 入口入口 出口出口 图图1.11 1.11 二选一选择结构二选一选择结构 非非0 00 0 B 例例1.31.3 描写下述功能的算法:当描写下述功能的算法:当x0 x0时时, y=1, y=1;否则,;否则,y=-1y=-1。 用自然语言和流程图用自然语
36、言和流程图( (图图1.12)1.12)两种方法描述如下:两种方法描述如下: 第一步第一步 读入数读入数 据存入据存入x x。 第二步第二步 判断。如果判断。如果x0, x0, y y置为置为1 1;否则;否则y y置为置为-1-1。 第三步第三步 输出输出y y。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2 2二选一选择结构二选一选择结构 图图1.111.11是一选一选择结是一选一选择结 构。若条件构。若条件p(p(表达式值为表达式值为1 1 或非或非0)0)成立时执行成立时执行A A,不执,不执 行行B;B;否则执行否则执行B,B,不执行不执行A A。 然后结束选择结构。
37、然后结束选择结构。 p A 入口入口 出口出口 图图1.11 1.11 二选一选择结构二选一选择结构 非非0 00 0 B 例例1.31.3 描写下述功能的算法:当描写下述功能的算法:当x0 x0时时, y=1, y=1;否则,;否则,y=-1y=-1。 用自然语言和流程图用自然语言和流程图( (图图1.12)1.12)两种方法描述如下:两种方法描述如下: 第一步第一步 读入数读入数 据存入据存入x x。 第二步第二步 判断。如果判断。如果x0, x0, y y置为置为1 1;否则;否则y y置为置为-1-1。 第三步第三步 输出输出y y。 C语言程序设计语言程序设计 电子信息工程系电子信息
38、工程系 开始开始 输入输入x x x=0 y=1y=1 输出输出y y 结束结束 非非0 00 0 图图1.12 1.12 例例1.31.3流程图流程图 y=-1y=-1 x x y y -1-1 1 1 输入输入x:17.5 x:17.5 输出输出y:1y:1 输入输入x:-17 x:-17 输出输出y:-1y:-1 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 开始开始 输入输入x x x=0 y=1y=1 输出输出y y 结束结束 非非0 00 0 图图1.12 1.12 例例1.31.3流程图流程图 y=-1y=-1 x x y y -1-1 1 1 输入输入x:17.5
39、x:17.5 输出输出y:1y:1 输入输入x:-17 x:-17 输出输出y:-1y:-1 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 3 3多选一选择结构多选一选择结构 图图1.13 1.13 是多选一选择结构。它依次判断条件是多选一选择结构。它依次判断条件p p1 1、 p p2 2、 p pn-1 n-1,如果 ,如果p pi i成立时执行成立时执行i i。如果。如果p p1 1、p p2 2、 p pn-1 n-1均不成立,且有 均不成立,且有p pn n条件条件(其他其他)时执行时执行n n;而无;而无p pn n条件条件 (其他其他) 时则不执行任何操作。然后结束选
40、择结构。时则不执行任何操作。然后结束选择结构。 p 21in-1n p1p1p2p2pipi 入口入口 出口出口 图图1.13 1.13 多选一结构多选一结构 Pn-1Pn-1PnPn C语言程序设计语言程序设计 电子信息工程系电子信息工程系 3 3多选一选择结构多选一选择结构 图图1.13 1.13 是多选一选择结构。它依次判断条件是多选一选择结构。它依次判断条件p p1 1、 p p2 2、 p pn-1 n-1,如果 ,如果p pi i成立时执行成立时执行i i。如果。如果p p1 1、p p2 2、 p pn-1 n-1均不成立,且有 均不成立,且有p pn n条件条件(其他其他)时执
41、行时执行n n;而无;而无p pn n条件条件 (其他其他)时则不执行任何操作。然后结束选择结构。时则不执行任何操作。然后结束选择结构。 p 21in-1n p1p1p2p2pipi 入口入口 出口出口 图图1.13 1.13 多选一结构多选一结构 Pn-1Pn-1PnPn C语言程序设计语言程序设计 电子信息工程系电子信息工程系 3 3多选一选择结构多选一选择结构 图图1.13 1.13 是多选一选择结构。它依次判断条件是多选一选择结构。它依次判断条件p p1 1、 p p2 2、 p pn-1 n-1,如果 ,如果p pi i成立时执行成立时执行i i。如果。如果p p1 1、p p2 2
42、、 p pn-1 n-1均不成立,且有 均不成立,且有p pn n条件条件(其他其他)时执行时执行n n;而无;而无p pn n条件条件 (其他其他)时则不执行任何操作。然后结束选择结构。时则不执行任何操作。然后结束选择结构。 p 21in-1n p1p1p2p2pipi 入口入口 出口出口 图图1.13 1.13 多选一结构有多选一结构有p pn n条件条件( (其他其他) ) Pn-1Pn-1 PnPn C语言程序设计语言程序设计 电子信息工程系电子信息工程系 3 3多选一选择结构多选一选择结构 图图1.13 1.13 是多选一选择结构。它依次判断条件是多选一选择结构。它依次判断条件p p
43、1 1、 p p2 2、 p pn-1 n-1,如果 ,如果p pi i成立时执行成立时执行i i。如果。如果p p1 1、p p2 2、 p pn-1 n-1均不成立,且有 均不成立,且有p pn n条件条件(其他其他)时执行时执行n n;而无;而无p pn n条件条件 (其他其他)时则不执行任何操作。然后结束选择结构。时则不执行任何操作。然后结束选择结构。 p 21in-1 p1p1p2p2pipi 入口入口 出口出口 图图1.13 1.13 多选一结构无多选一结构无p pn n条件条件(其他其他) Pn-1Pn-1 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 例例1.4 描
44、写下述功能算法:当描写下述功能算法:当x0, y=1x0, y=1;x=0 x=0,y=0y=0; x0 x 0 x= 0 x 0 x= 0 x 0 x= 0 x 0 0 0 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 3 3、重复结构、重复结构 重复结构是判断条件是否成立来决定重复执行一种操作或一组操作的结构。重复结构是判断条件是否成立来决定重复执行一种操作或一组操作的结构。 它有它有whilewhile型、型、do whiledo while型和型和forfor型等三种基本结构。型等三种基本结构。 1. while1. while型重复结构型重复结构 图图1.15 1.15
45、是是whilewhile型重复结构。它重复判断条件型重复结构。它重复判断条件p p来来 决定是否进入和执行循环体;当每次判定条件决定是否进入和执行循环体;当每次判定条件p p成成 立时执行循环体一次,一旦条件立时执行循环体一次,一旦条件p p不成立,即刻退不成立,即刻退 出出whilewhile型重复结构。型重复结构。 在在whilewhile型重复结构外要给循环体中的某些变量赋型重复结构外要给循环体中的某些变量赋 初值,否则会造成不确定值参加运算。在循环体中初值,否则会造成不确定值参加运算。在循环体中 必须有修改必须有修改p p值的语句,使值的语句,使p p值从非值从非0 0改变为改变为0
46、0,否则,否则 会造成死循环。会造成死循环。 赋初值赋初值 p 循环体循环体 出口出口 入口入口 非非0 0 0 0 图1.15 while型重复结构 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 例例1.15 1.15 描写下述功能的算法描写下述功能的算法: :应用应用whilewhile型求型求sum=1+2+3+4 sum=1+2+3+4 +9+10+9+10的和。的和。 用自然语言和流程图用自然语言和流程图( (图图1.16)1.16)两种方法描述如下:两种方法描述如下: 第一步第一步 将存和单元将存和单元sumsum与存整数单元与存整数单元n n置置0 0,即即 sum=
47、0, n=0sum=0, n=0。 第二步第二步 执行执行whilewhile结构。如果结构。如果n10, n10, 执行循环体执行循环体 一次一次 第二步第二步(1)(1):n n加加1 1,即,即 n=n+1n=n+1。 第二步第二步(2)(2):sum加加n,即,即 sum=sum+n。 然后转至第二步。如果然后转至第二步。如果n n等于等于10,10,退出退出whilewhile结构,执结构,执行第三步。行第三步。 第三步第三步 输出输出sum中的值中的值(和保留在和保留在sum中中)。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 开始开始 n=0, sum=0 n10
48、n=n+1 Sum=sum+n 输输sumsum 结束结束 非非0 0 0 0 图图1.16 1.16 例例1.151.15流程图流程图 whilewhile重复过程重复过程 循环循环 n10 n=n+1 sum=sum+nn10 n=n+1 sum=sum+n 初始状态初始状态0 00 0 1 1 非非0 0 1 1 1 1 9 9 非非0 0 9 94545 10 10 非非0 0 10105555 11 011 0 1010 5555 2 2 非非0 0 2 23 3 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 2.do while2.do while型重复结构型重复结构
49、图图1.171.17是是do whiledo while型重复结构。型重复结构。 它先执行循环体一次,再重复它先执行循环体一次,再重复 判断条件判断条件p p来决定是否执行循环来决定是否执行循环 体;当每次判定条件体;当每次判定条件p p成立时执成立时执 行循环体一次,一旦条件行循环体一次,一旦条件p p不成不成 立,即刻退出立,即刻退出do whiledo while型重复型重复 结构。结构。 在在do whiledo while型重复结构外必须型重复结构外必须 给循环体中的某些变量赋初值给循环体中的某些变量赋初值 ( (为什么?为什么?) )。在循环体中必须。在循环体中必须 有修改有修改p
50、 p值的语句值的语句, ,使使p p值从非值从非0 0 改变为改变为0(0(为什么?为什么?) )。 赋初值赋初值 p 循环体循环体 出口出口 入口入口 非非0 0 0 0 图1.17 do while型重复结构 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 例例1.16 1.16 描写下述功能的算法:应用描写下述功能的算法:应用do whiledo while型求型求 sum=1+2+3+4 +9+10sum=1+2+3+4 +9+10的和。的和。 用自然语言和流程图用自然语言和流程图( (图图1.18)1.18)两种方法描述如下:两种方法描述如下: 第一步第一步 将存和单元将存
51、和单元sumsum和存数单元和存数单元n n置置0 0,即,即 sum=0, n=0sum=0, n=0。 第二步第二步 进入进入do whiledo while型重复结构型重复结构, ,执行循环体一次执行循环体一次 第二步第二步(1)(1):n n加加1 1,即,即n=n+1n=n+1。 第二步第二步(2)(2):sumsum加加n, n, 即即sum=sum+nsum=sum+n。 第三步第三步 判断。如果判断。如果n10, n10, 转至第二步,重复执转至第二步,重复执 行循环体一次。如果行循环体一次。如果n n等于等于10,10,退出退出do do while while型型重复结构,
52、转至第四步。重复结构,转至第四步。 第四步第四步 输出输出sumsum中的值中的值( (和保留在和保留在sumsum中中) )。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 开始开始 n=0, sum=0 n10 n=n+1 Sum=sum+n 输输sumsum 结束结束 非非0 0 0 0 图图1.18 1.18 例例1.161.16流程图流程图 do whiledo while重复过程重复过程 循环循环 n=n+1 sum=sum+nn=n+1 sum=sum+n n10 n10 初始状态初始状态 0 0 0 0 1 1 1 11 1非非0 0 2 2 2 23 3非非0 0
53、 9 9 9 94545非非0 0 10 10 10105555 0 0 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 3. for 3. for型重复结构型重复结构 图图 1.191.19是是forfor型重复结构。其中表达式型重复结构。其中表达式1 1,为循环体中的某些变量赋初值;表达式,为循环体中的某些变量赋初值;表达式 2 2,控制循环退出;表达式,控制循环退出;表达式3 3,修改循环体中的某些变量的值。,修改循环体中的某些变量的值。 循环体循环体 p1, p2, p3非 非0 0 0 0 forfor型重复结构的执行步骤如下:型重复结构的执行步骤如下: 第一步第一步 计算
54、表达式计算表达式1 1的值,为循环体中的值,为循环体中 的某些变量赋初值,只执行一次。的某些变量赋初值,只执行一次。 第二步第二步 计算表达式计算表达式2 2的值的值, , 如果其值为如果其值为 非非0 0,执行循环体一次,然后转至第三步;,执行循环体一次,然后转至第三步; 如果其值为如果其值为0 0,转至第四步。,转至第四步。 第三步第三步 计算表达式计算表达式3 3的值,转至第二步。的值,转至第二步。 第四步第四步 退出退出forfor型重复结构。型重复结构。 图图1.19 for 1.19 for 型重复结构型重复结构 入口入口 出口出口 C语言程序设计语言程序设计 电子信息工程系电子信
55、息工程系 例例 1.171.17 描写下述功能的算法:应用描写下述功能的算法:应用forfor型求型求sum=1+2+3+4 sum=1+2+3+4 +9+10+9+10的的 和。和。 用自然语言和流程图用自然语言和流程图( (图图1.20)1.20)两种方法描述如下:两种方法描述如下: 第一步第一步 计算表达式计算表达式1 1,为循环体中的某些变量赋初值,为循环体中的某些变量赋初值 (sum=0,n=0)(sum=0,n=0)。 第二步第二步 计算表达式计算表达式2 2,如果其值,如果其值(n=10)(n=10)为非为非0 0,执行,执行 循环体一次循环体一次(sum=sum+n)(sum=
56、sum+n)然后转至第三步;如然后转至第三步;如 果其值为果其值为0 0,转至第四步。,转至第四步。 第三步第三步 计算表达式计算表达式3(n=n+1)3(n=n+1)的值,转至第二步。的值,转至第二步。 第四步第四步 退出退出forfor型重复结构。型重复结构。 第五步第五步 输出输出sumsum中的值中的值( (和保留在和保留在sumsum中中) )。 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 p1; p2; p3 开始开始 sum=sum+nsum=sum+n 输出输出sumsum 结束结束 非非0 0 0 0 图图1.20 1.20 例例1.171.17流程图流程图 f
57、or for 重复过程重复过程 循环循环 n=10 sum=sum+nn=10 sum=sum+n n=n+1 n=n+1 初始状态初始状态0 01 1 1 1 非非0 0 1 1 2 2 9 9 非非0 0 45451010 10 10 非非0 0 55551111 11 011 0 55551111 2 2 非非0 0 3 33 3 n=1,sum=0; n=1,sum=0; n=10;n=n+1n=10;n=n+1 C语言程序设计语言程序设计 电子信息工程系电子信息工程系 将上述例将上述例1.151.15和例和例1.161.16的循环体改为:的循环体改为: sum=sum+nsum=su
58、m+n n=n+1 n=n+1 应如何修改算法?应如何修改算法? 应用重复结构,最关键的问题是构应用重复结构,最关键的问题是构 造造循环体循环体和确定退出循环的条件。和确定退出循环的条件。 ! ? ? C语言程序设计语言程序设计 电子信息工程系电子信息工程系 1.5.4 程序设计方法程序设计方法 随着计算机系统技术的发展和应用领域的扩展,随着计算机系统技术的发展和应用领域的扩展, 软件的需求量越来越大,质量要求越来越高,所解决软件的需求量越来越大,质量要求越来越高,所解决 的问题也越来越复杂,迫切要求软件生产从的问题也越来越复杂,迫切要求软件生产从“个体方个体方 式式”中摆脱出来,按中摆脱出来
59、,按“工程工程”的方法来组织软件生产。的方法来组织软件生产。 新的设计思想推动了设计方法的发展。新的设计思想推动了设计方法的发展。19681968年提出了年提出了 “软件工程软件工程” 概念,突出了软件生产中的科学方法。概念,突出了软件生产中的科学方法。 目前,常用的有结构化程序设计方法和面向对象程序目前,常用的有结构化程序设计方法和面向对象程序 设计方法两种。设计方法两种。 程序设计方法来自程序设计实践。本小节对程序程序设计方法来自程序设计实践。本小节对程序 设计方法作以简单综述,较详细内容分散在以后有关设计方法作以简单综述,较详细内容分散在以后有关 章节讨论章节讨论 。 C语言程序设计语言
60、程序设计 电子信息工程系电子信息工程系 1 1、结构化程序设计、结构化程序设计 结构化程序设计方法是在结构化程序设计方法是在“软件工程软件工程”原则下,从原则下,从 7070年代以来逐步形成的一种新的程序设计方法。年代以来逐步形成的一种新的程序设计方法。通俗通俗 地说,结构化程序设计方法,是要求程序员按照一定地说,结构化程序设计方法,是要求程序员按照一定 的规范、采用成熟的设计方法进行程序设计,而不允的规范、采用成熟的设计方法进行程序设计,而不允 许程序员随心所欲地编写程序。许程序员随心所欲地编写程序。它强调程序的风格,它强调程序的风格, 程序结构的规范化以及自顶向下、逐步细化和模块化程序结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度环保技术研发与推广合作合同3篇
- 二零二四年度建筑项目保险合同:保险范围、费用、权益等
- 2024年度互联网技术与开发合同
- 2024地产项目施工承包合同
- 二零二四年度建筑工程临时雇工合同协议书3篇
- 2024年新型环保冷库制冷设备采购协议版B版
- 2024年大数据中心建设合同
- 2024年企业订餐服务协议范本版B版
- 2024 年标准季度租赁合同书一
- 2024小学操场施工售后服务合同
- 商品售后服务认证实施规则
- 2022雅思考试顾家北100句
- 卷扬机受力计算书
- 人机工程设计原理吹风机
- 园林绿化施工讲解(ppt)课件
- 新默纳克电梯调试操作手册 :NICE900门机一体化控制器说明书
- 大型造纸厂施工组织设计
- 九年级组工作计划5篇
- 主动脉夹层PPTPPT课件
- 标识标牌制作工艺流程
- 多维阅读第17级 Superkid Heroes课件
评论
0/150
提交评论