C语言程序设计-基于计算思维的培养 课件 第1章 C语言基本概念_第1页
C语言程序设计-基于计算思维的培养 课件 第1章 C语言基本概念_第2页
C语言程序设计-基于计算思维的培养 课件 第1章 C语言基本概念_第3页
C语言程序设计-基于计算思维的培养 课件 第1章 C语言基本概念_第4页
C语言程序设计-基于计算思维的培养 课件 第1章 C语言基本概念_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

第一章C语言基本概念目录/Contents计算机语言和程序算法、算法表示、算法优化C语言编程C程序的结构常量定义标识符问题的提出为什么要学习计算机语言?需求:人与计算机交流需要人和计算机双方都能接受和理解的语言。特点:规则和严谨,缺少灵活性。辗转相除法求最大公约数问题的提出什么是计算机程序?概念:被连续执行的一条条指令的集合称为计算机程序。功能:为完成某种工作,人们将其解题步骤用指令的形式描述出来,并把这些指令存放在计算机内存中,然后向计算机发出命令,计算机就会自动逐条顺序执行指令,执行完全部指令就能得到想要的结果。。问题的提出什么是程序?

程序是用特殊的编程语言写出来的表达如何解决问题的过程或步骤。它不是用编程语言和计算机交谈的,而是描述要求它如何做事情的过程或方法。编程语言的欢迎度为什么是C语言C语言仍然是编写操作系统的不二之选工业界最受欢迎的语言存在大量的函数库有些地方对程序的运行效率有苛求-设备驱动程序,高性能、实时中间件,嵌入式领域,并发程序设计等要继承和维护早期的C语言系统交流、笔试、面试时最常见的语言程序设计步骤程序要做什么?可执行文件扩展名为.exe的文件

需求分析(Analysis)设计(Design)编码(Write)编辑(Edit)编译(Compile)连接(Link)运行(Run)调试(Debug)程序怎么做?扩展名为.c的文件(对C语言而言)语法分析差错,翻译生成扩展名为.obj的文件设计算法编写程序源代码把自己的意图写入源代码编辑源程序编译和连接调试程序

直到改正了所有的编译错误和运行错误运行程序C程序开发步骤C程序编译环境VisualC++6.0Windows平台上最流行的C/C++集成开发环境之一Dev-C++,)是一个Windows环境下C&C++开发工具功能没有VisualC++6.0强大,但是体积小,轻便C程序编译环境-VisualC++C程序编译环境-VisualC++C程序编译环境-VisualC++C程序编译环境-VisualC++C程序编译环境-Dev-C++C程序编译环境-Dev-C++C程序编译环境-Dev-C++算法的概念算法:是计算机解决问题的核心和灵魂。1.概念:解决一个特定问题而采取的方法和步骤。

利用计算机解决问题就是告诉计算机如何进行计算的步骤,计算机所做的所有事情都叫计算。2.生活中的算法:乐谱、菜谱、订票、安检。例1:如何交换A瓶中的白酒和B瓶中的红酒?算法描述步骤:①准备一个空瓶C;②A倒入C;③B倒入A;④C倒入B。算法举例如何交换变量a=5,b=10的值?算法举例例2:计算正整数M、N(M>N)的最大公约数。算法描述步骤:①用N除M得整数R,R必须小于N;②若R=0,算法结束,输出结果为N;否则继续步骤③;③将M更新为N,N更新为R,并返回①继续进行算法的特征◆

有穷性:执行有限个操作后终止。◆确定性:算法中每一步的含义必须是明确的,不存在二义性。◆有效性:算法中每一步操作必须能有效执行,不能执行的操作是无效的。◆有零个或多个输入:执行算法时,从外界获得必要信息。◆有一个或多个输出:算法的解(结果)就是输出。

算法的性能评价时间复杂度:通常以算法中基本操作重复执行的频度n作为时间度量标准。 T(n)=O(f(n))空间复杂度:算法执行时存储空间需求的度量。S(n)=O(f(n))如何设计一个好的算法◆正确性:合法的输入数据都能得到满足要求的结果。◆可读性:算法应该易于阅读和理解。◆健壮性:当输入数据非法时,能作出反应或进行相应处理。◆高效和低存储空间:对于相同规模的问题,执行时间短,占用空间少。小结是计算机解决问题的核心和灵魂,设计正确的算法是计算机解决问题的前提。算法的表示方法算法的表示方法:◆自然语言◆流程图◆N-S图◆伪代码◆自然语言例1:求三个整数(a,b,c)中的最小数的算法?①比较前两个数;②将①中较小数与第三个数进行比较;③步骤②中较小数即为所求的数。◆流程图例2:用流程图表示两个数的交换的算法。算法的表示方法◆N-S图例3:用N-S图表示求三个数最大数的算法。算法的表示方法算法的表示方法◆伪代码ProcSumInputn0=>sumwhilei<=n{i+sum=>sumi+1=>i}PrintsumEnd流程图和N-S图基本图素开始与结束框输入/输出图框处理框图分支图框

N-S盒

流程图循环图框流程图和N-S图基本图素举例【例1.1】求ax2+bx+c=0之根(a<>0)◆自然语言表示①输入方程的3个系数a,b,c;②计算delta=b2-4ac,根据计算结果做出求解结果的判断和处理。若delta<0,执行⑥,若delta=0,执行⑤,否则delta>0,执行③。③根据求根公式计算两个实根x1,x2;④输出x1,x2;转⑦⑤输出两个相等实根;转⑦⑥打印“无实根”;⑦结束。◆流程图表示算法举例◆N-S图表示:举例【例1.2】输入年份,判断是否闰年。举例举例算法的优化【例1.4】将任意大小的三个数a,b,c按从大到小的顺序排序。问题的提出算法设计算法流程改进的设计算法流程◆判断次数:5次、3次◆输出语句个数:6:1算法比较◆算法是解题步骤,其设计取决于人的创造;◆实际问题需要首先对问题进行分析->抽象->建模,才能设计算法;◆算法有5个特征,设计时必须满足;◆基于计算机的问题求解和数学方法有很大不同,需要计算思维;◆算法需要用工程化的方法表达;◆算法有很大的优化空间,体现人的智慧而不是机器的智慧。算法小结结构化程序设计方法◆程序设计采用什么方法呢?结构化程序设计方法的主要内容:①为了使程序具有良好的结构,编程时只采用三种基本结构;②采用自顶向下的程序设计方法;③用流程图表示算法。结构化程序设计方法特征①以三种基本结构的组合来描述程序。②整个程序采用模块化结构。③限制使用转移语句。在迫不得已的情况下,也要十分谨慎,并且只能在一个结构内部跳转,不允许从一个结构跳到另一个结构。这样可缩小程序的静态结构和动态执行过程中之间的差异,避免人们误解程序的功能。④以控制结构为单位,每个结构只有一个入口、一个出口,各单位之间接口简单,逻辑清晰。⑤采用结构化程序设计语言编写程序,并采用一定的书写格式使程序结构清晰,易于阅读。⑥培养良好的程序设计风格。结构化程序设计方法总体思想采用模块化结构,自顶向下,逐步求精

模块化程序设计问题分析和求解:采用自上而下、逐步求精的设计方法。程序完成:采用自底向上、逐步集成的设计方法,将自顶向下分解的模块单独设计、调试、测试完成后,再组装成高级模块或更复杂模块,实现对复杂问题的自动化计算。方程根的算法可以分解成三个小问题:输入问题、求根问题、输出问题。这三个小问题就是求方程根的三个功能模块:输入模块M1、求根计算模块M2和输出模块M3。其中M1模块负责输入方程的系数,M2模块根据算法解方程求根,M3模块负责将所得结果显示或打印出来。分解出来的三个模块从总体上为顺序结构。结构化程序设计方法举例【例1.5】求一元二次方程ax2+bx+c=0的根。图1-22

M2模块的细化图图1-23

M22模块流程图结构化程序设计方法举例结构化程序设计方法举例图1-24求一元二次方程根的整体流程图C语言编程【例1.6】要求在屏幕上输出以下一行信息。

Hello,World!解题思路:

在主函数中用printf函数原样输出以上文字。#include<stdio.h>intmain(){

printf(”Hello,World!\n”);return0;}函数的名字,表示主函数C程序必须有一个main函数主函数类型C语言编程#include<stdio.h>intmain(){

printf(”Hello,World!\n”);return0;}

函数体输出函数输出语句C语言编程#include<stdio.h>intmain(){

printf(”Hello,World!\n”);return0;}

换行符当main函数执行结束前将整数0作为函数值表示语句结束用到函数库中的输入输出函数时C语言编程C语言编程C语言允许用两种注释方式://:单行注释可单独占一行可出现在一行中其他内容的右侧/*……*/:块式注释可包含多行C语言程序的结构特点C语言程序的结构特点:1.一个程序由一个或多个源程序文件组成小程序往往只包括一个源程序文件例1.6只有一个函数有的程序有两个以上函数只包括一个源程序文件一个源程序文件中可以包括三个部分:预处理指令全局声明函数定义#include<stdio.h>等在函数之外进行的数据声明每个函数用来实现一定的功能C语言程序的结构特点C语言程序的结构特点2.函数是C程序的主要组成部分一个C程序是由一个或多个函数组成的必须包含一个main函数(只能有一个)每个函数都用来实现一个或几个特定功能被调用的函数可以是库函数,也可以是自己编制设计的函数C语言程序的结构特点C语言程序的结构特点:3.一个函数包括两个部分:函数首部intmax(intx,inty)函数类型函数名参数类型参数名函数的第1行C语言程序的结构特点3.一个函数包括两个部分:函数首部intmax(intx,inty)若函数无参,在括弧中写void或空括弧intmain(void)或intmain()C语言程序的结构特点3.一个函数包括两个部分:函数体声明部分定义在本函数中所用到的变量对本函数所调用函数进行声明执行部分:由若干个语句组成,指定在函数中所进行的操作可以没有声明部分C语言程序的结构特点3.一个函数包括两个部分:函数体voiddump(){}可以是空函数C语言程序的结构特点4.程序总是从main函数开始执行5.C程序对计算机的操作由C语句完成C程序书写格式是比较自由的一行内可以写几个语句一个语句可以分写在多行上为清晰起见,习惯上每行只写一个语句C语言程序的结构特点6.数据声明和语句最后必须有分号7.C语言本身不提供输入输出语句8.程序应当包含注释,增加可读性程序设计的任务1.问题分析对于接手的任务要进行认真的分析研究所给定的条件分析最后应达到的目标选择解题的方法找出解决问题的规律1.问题分析2.设计算法

设计出解题的方法和具体步骤程序设计的任务1.问题分析2.设计算法3.编写程序4.对源程序进行编辑、编译和连接5.运行程序,分析结果结果错了,程序肯定错结果对了,程序未必对程序设计的任务1.问题分析2.设计算法3.编写程序4.对源程序进行编辑、编译和连接5.运行程序,分析结果6.编写程序文档程序设计的任务变量、表达式和赋值floatF; /*F表示华氏温度*/floatC; /*C表示摄氏温度*/intage; /*age表示人的年龄*/floatweight; /*weight表示人的体重*/F=50.0;age=18;weight=65.0;变量【例1.7】给定圆的半径,计算这个圆的面积和周长。/*circle.c*//*计算一个圆的面积和周长*/#include<stdio.h>

intmain(void){ floatradius=3.0,area,perimeter; /*变量radius、area和perimeter分别表示圆的半径、面积和周长*/ area=3.1415926*radius*radius; perimeter=2*3.1415926*radius; printf("area:%.2fperimeter:%.2f",area,perimeter);/*格式符%.2f表示保留小数点后两位有效数字或精确到0.01*/ return0; }变量、表达式和赋值表达式表达式从键盘读取输入scanf("%d",&a);scanf("%f",&radius);【例1.8】下面的程序是计算圆的面积和周长的改进版,允许用户自行输入圆的半径。/*Computestheareaandperimeterofacirclefrominputprovidedbytheuser*/#include<stdio.h>#definePI3.1415926intmain(void){ floatradius,area,perimeter; scanf("%f",&radius);/*从键盘输入圆的半径*/ area=3.1415926*radius*radius; perimeter=2*3.1415926*radius; printf("area:%.2fperimeter:%.2f",area,perimeter); return0; }scanf()从键盘读取输入常量定义宏常量【例1.9】下面的程序提示用户输入球的半径,然后输出球的体积。/*ball.c*//*Computesthevolumeofaballfrominputprovidedbytheuser*/#include<stdio.h>#definePI3.1415926 /*定义宏常量PI,它代表圆周率*/#defineSCALE_FACTOR(4.0/3.0)/

温馨提示

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

评论

0/150

提交评论