第1章程序设计基础讲解_第1页
第1章程序设计基础讲解_第2页
第1章程序设计基础讲解_第3页
第1章程序设计基础讲解_第4页
第1章程序设计基础讲解_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任亚茹2021年9⽉1⽇C语言程序设计—程序设计基础⼀切向前⾛,都不能忘记⾛过的路;⾛得再远、⾛到再光辉的未来,也不能忘记⾛过的过去,不能忘记为什么出发。——习近平总书记导语主

容课程导入1程序设计概述2结构化程序设计方法34算法-程序的灵魂⼀、课程导入(一)课程性质与任务《C语言程序设计》是汽车智能技术专业必修的一门公共基础课程。本课程的任务是介绍计算机程序设计的基础、程序设计的算法、C语言的语法、C语言结构化程序设计的方法,使学生了解程序设计的总体思路,提高学生程序设计和程序调试的能力,为以后的课程打下牢固的程序设计基础,将C语言程序设计的方法融合到后续课中,真正掌握程序设计的方法。本课程组织教学形式,理论知识教学主要采取教师利用多媒体等现代技术手段进行讲授,实践知识教学采取学生分组讨论、上机实验等多种形式组织。教学方法可根据不同的内容综合运用案例教学法、引导文法、小组讨论法、上机实验法、演示法、讲授法等多种教学方法。⼀、课程导入(二)学习目标1.知识目标(1)掌握C语言的基本概念和基本算法;(2)掌握C语言的基本语法及应用;(3)掌握C语言结构化程序设计的方法;(4)掌握C语言设计程序的总体思路和方法。2.能力目标(1)具有掌握使用基本算法的能力;(2)具有使用C语言进行简单程序设计的逻辑思维能力;(3)具有调试运行一般应用程序的能力。3.考核方式30%平时成绩+35%上机考试+35%闭卷考试⼀、课程导入请大家打开一款手机APP,思考什么是程序设计,设计一个程序是否离我们很遥远?/video/BV1uU4y1L7Sn?from=search&seid=13321135304825015191二、程序设计概述(一)概述(1)什么是程序:向执行系统发出的命令集成为程序。向计算机发出的命令集成为计算机程序。(2)什么是语言指令集的形式必须遵从某种规则,这种规则称之为语言。不同的语言有不同的规则(语法),手机、微波炉、电冰箱的指令集形式各不相同。讨论思考什么是语言(3)计算机科学知识体系是一个有层次的知识体系计算机科学知识的学习之分为三个层次二、程序设计概述二、程序设计概述(二)计算机语言的分类(1)机器语言计算机按二进制进行基本工作,只能识别二进制代码。例如:含义:将“地址1”和“地址2”是数据取出来进行加运算,并将结果放回到“地址1”中。机器语言格式:【指令码】【地址1】【地址2】。。。。特点:必须要对计算机的工作方式非常熟悉,熟背“密码本”及大量的与计算机工作原理密切相关的潜规则。a)难懂,不易理解和修改;b)可移植性差;c)执行效率高。二、程序设计概述(二)计算机语言的分类(2)汇编语言用助记符来代替二进制代码,提高了程序的易读性。例如:汇编语言书写的程序不能被计算机所理解,必须经过一个“翻译工具”进行处理,将它转换成二进制代码。

特点:a)初步解决了难懂的问题,程序的编写效率有所提高;b)可移植性差;c)执行效率高。二、程序设计概述(二)计算机语言的分类(3)高级语言用英语和数学表达式的方式来书写程序。例如:if(beta>=0)x=(-b+sqrt(beta))/(2*a)高级语言更接近于人类的自然语言,很容易理解。高级语言书写的程序更不可能被计算机所理解,必须经过更高级的“翻译”才能将它转换成二进制代码。特点:a)便于理解和修改,程序的编写效率最高;b)具有良好的可移植性;c)执行效率最低。二、程序设计概述(二)计算机语言的分类高级语言分类二、程序设计概述(三)通用计算机和嵌入式计算机C语言既是通用计算机软件设计的基础语言,也是当前嵌入式软件设计的主流语言。微型计算机具有很大的通用性,所以又称通用计算机。测控领域的计算机系统是嵌入到应用系统中,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、成本、体积、可靠性、功耗严格要求的专用计算机系统,即嵌入式计算机系统,简称嵌入式系统(EmbeddedSystem)。通俗地说,除了通用计算机(如台式计算机和笔记本计算机)外,所有包含CPU的系统都是嵌入式系统,其中以微控制器(MicroControllerUnit,MCU,国内也称为单片机)为核心的嵌入式系统应用最广泛。二、程序设计概述(三)通用计算机和嵌入式计算机1、MCU的基本结构MCU的基本含义:在一块芯片上集成了CPU、ROM、RAM、定时/计数器、中断系统、看门狗及通用输入输出(GPIO)、模-数(A-D)转换、数-模(D-A)转换、串行通信I/O等多种输入输出接口的比较完整的数字处理系统。CPU与其他部件交互是通过MCU内部总线实现的。二、程序设计概述(三)通用计算机和嵌入式计算机2、以MCU为核心的嵌入式系统的基本组成MCU的硬件集成度越来越高,使得嵌入式硬件设计难度不断降低,因此嵌入式软件设计在整个嵌入式系统开发中所占的分量越来越大。社会对嵌入式软件设计人才的需求量也越来越大,其就业薪酬高。嵌入式软件设计的主流语言是C语言。三、结构化程序设计方法(一)结构化程序设计结构化程序设计的核心是算法设计,基本思想是采用自顶向下、逐步细化的设计方法和单入单出的控制结构。自顶向下和逐步细化的设计方法是将一个复杂任务按照功能进行拆分,并逐层细化到便于理解和描述的程度,最终形成由若干独立模块组成的树状层次结构。单入单出的控制结构是指每个模块内部均用顺序、选择、循环三种基本结构来描述。a)顺序从上到下依次执行下来,中间没有任何分叉b)分支在执行过程中,根据条件成立与否产生了不同的操作c)循环当某一条件成立时,反复做相同的操作。三、结构化程序设计方法(二)方法原则①只采用三种基本的程序控制结构来编制程序,从而使程序具有良好的结构;②程序设计自顶而下;③用结构化程序设计流程图来表示算法。四、算法-程序的灵魂(一)算法的基本概念算法与程序设计以及数据结构密切相关,是解决一个问题的完整的步骤描述,是解决问题的策略、规则和方法。算法的描述形式有很多种,如传统的流程图、结构化流程图及计算机程序语言等。(1)算法的特性算法是为解决某一特定类型的问题而制定的一个实现过程,它具有下列特性:有穷性、确定性、可行性、输入、输出(2)算法的优劣衡量一个算法的好坏,通常从以下几个方面来分析:正确性、可读性、健壮性、时间复杂度与空间复杂度。四、算法-程序的灵魂(二)算法的描述算法包括算法设计和算法分析。算法设计主要研究怎么样针对某一特定类型的问题设计出求解步骤;算法分析则要讨论所设计出来的算法步骤的正确性和复杂性。计算机算法分为两大类:(1)数值运算算法:求数值解;通过运算得出一个具体值,如求方程的根等注:数值运算一般有现成的模型,算法较成熟。(2)非数值运算算法:用于事务管理,如图书检索、人事管理等。对于一些问题的求解步骤,需要一种表达方式,即算法描述。常用的方法有:①自然语言②传统流程图③结构化流程图④伪代码⑤PAD图四、算法-程序的灵魂(二)算法的描述常用简单算法(1)累乘即:1×2×3×4×5……×1001×2→S(结果)

S×3→S(结果)

S×4→S(结果)S×5→S(结果)

S×6→S(结果)┇

S×100→S(结果)四、算法-程序的灵魂(二)算法的描述常用简单算法(2)累加即:1+2+3+4+5……+1001+2→S(结果)

S+3→S(结果)

S+4→S(结果)

S+5→S(结果)

S+6→S(结果)┇

S+100→S(结果)四、算法-程序的灵魂(二)算法的描述常用简单算法(3)找最大值5,2,4,12,95→max(max放最大值,后面的数都和它比较)2>max不成立

4>max不成立

12>max成立:12→max9>max不成立注:该算法可扩展为在一批数据中,找某一个数四、算法-程序的灵魂(二)算法的描述1.自然语言自然语言就是人们日常用的语言,这种表示方式通俗易懂,下面通过实例具体介绍。【实例1】求n!。(1)定义3个变量i、n及mul,并为i和mul均赋初值为1。(2)从键盘中输入一个数赋给n。(3)将mul乘以i的结果赋给mul。(4)i的值加1,判断i的值是否大于n,如果大于n,则执行步骤(5),否则执行步骤(3)。(5)将mul的结果输出。四、算法-程序的灵魂(二)算法的描述1.自然语言自然语言就是人们日常用的语言,这种表示方式通俗易懂,下面通过实例具体介绍。【实例2】任意输入3个数,求这3个数中的最小数。(1)定义4个变量分别为x、y、z以及min。(2)输入大小不同的3个数分别赋给x、y、z。(3)判断x是否小于y,如果小于,则将x的值赋给min,否则将y的值赋给min。(4)判断min是否小于z,如果小于,则执行步骤(5),否则将z的值赋给min。(5)将min的值输出。四、算法-程序的灵魂(二)算法的描述2.流程图流程图是一种传统的算法表示法,它用一些图框来代表各种不同性质的操作,用流程线来指示算法的执行方向。由于它直观形象,易于理解,所以应用广泛,特别是在语言发展的早期阶段,只有通过流程图才能简明地表述算法。(1)流程图符号四、算法-程序的灵魂(二)算法的描述2.流程图(2)3种基本结构

Bohra和Jacopini为了提高算法的质量,经研究提出了3种基本结构,即顺序结构、选择结构和循环结构,因为任何一个算法都可由这3种基本结构组成。这3种基本结构之间可以并列,可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。整个算法都是由3种基本结构组成的,所以只要规定好3种基本结构的流程图的画法,就可以画出任何算法的流程图。四、算法-程序的灵魂(二)算法的描述2.流程图顺序结构顺序结构是简单的线性结构,在顺序结构的程序里,各操作是按照它们出现的先后顺序执行的,如图所示。在执行完A框所指定的操作后,接着执行B框所指定的操作,这个结构里只有一个入口点A和一个出口点B。四、算法-程序的灵魂(二)算法的描述2.流程图顺序结构【实例3】输入两个数分别赋给变量i和j,再将这两个数分别输出。本实例流程图可以采用顺序结构来实现,如图所示。四、算法-程序的灵魂(二)算法的描述2.流程图选择结构1选择结构也叫分支结构,如图所示。选择结构中必须包含一个判断框。图中所代表的含义是根据给定的条件p是否成立选择执行A框或者是B框。四、算法-程序的灵魂(二)算法的描述2.流程图选择结构2下图所代表的含义是根据给定的条件P进行判断,如果条件成立则执行A框,否则什么也不做。四、算法-程序的灵魂(二)算法的描述2.流程图选择结构【实例4】输入一个数,判断该数是否为偶数,并给出相应提示。本实例流程图可以采用选择结构来实现,如图所示。四、算法-程序的灵魂(二)算法的描述循环结构在循环结构中,反复地执行一系列操作,直到条件不成立时才终止循环。按照判断条件出现的位置,可将循环结构分为当型循环结构和直到型循环结构。当型循环是先判断条件P是否成立,如果成立,则执行A框;执行完A框后,再判断条件P是否成立,如果成立,接着再执行A框;如此反复,直到条件P不成立为止,此时不执行A框,跳出循环。直到型循环是先执行A框,然后判断条件P是否成立,如果条件P成立则再执行A;然后判断条件P是否成立,如果成立,接着再执行A框;如此反复,直到条件P不成立,此时不执行A框,跳出循环。四、算法-程序的灵魂(二)算法的描述2.流程图循环结构当型循环直到型循环四、算法-程序的灵魂(二)算法的描述循环结构【实例2.5】求1和100之间(包括1和100)所有整数之和。

四、算法-程序的灵魂(二)算法的描述3.N-S流程图N-S图是另一种算法表示法,是由美国人I.Nassi和B.Shneiderman共同提出的,其根据是:既然任何算法都是由前面介绍的3种结构组成,则各基本结构之间的流程线就是多余的,因此去掉了所有的流程线,将全部的算法写在一个矩形框内。N-S图也是算法的一种结构化描述方法,同样也有3种基本结构,下面分别进行介绍:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论