1、1.1 程序的概念程序的概念1.2程序设计语言程序设计语言1.3 初识初识C程序程序1.4 C程序的基本语法程序的基本语法1.5 C程序设计方法程序设计方法1.6常见常见C程序的错误程序的错误 程序(program):是用某种程序设计语言编写指示计算机完成特定功能的命令序列的集合,如: IE浏览器iexplore.exe程序 网络聊天qq.exe程序 洗衣机洗衣程序 程序是人类驾驭计算机的手段 谷歌围棋人工智能程序AlphaGo Mobike &OFO 程序设计语言 是计算机能够理解和识别的一种语言体系,用于描述程序中操作过程的命令、规则的符号集合,是进行程序设计的工具。 编程 设计一组控制计
2、算机的命令集的过程,需要人们事先经过缜密的思考和设计,程序强调严谨的逻辑和结构。 程序设计语言的发展机器语言汇编语言高级语言例:例:要使两个存储单元中的数的相加,最后结果存放在要使两个存储单元中的数的相加,最后结果存放在其中一个其中一个单元中单元中MOV SI,10HMOV AL,SIINC SIADD AL,SIMOV SI,ALint x=6,y=7;y=x+y; 高级语言:独立于机器,表达方式更接近于被描述的问题,而不需要去关心与机器相关的实现细节 第一个高级语言 1954年,FORTRAN 影响较大的高级语言 FORTRAN、ALGOL、COBOL、BASIC、LISP、Pascal、
3、VB、C、C+、C#、Delphi、JAVA、Python、PHP 等 面向过程程序设计语言 以函数为基本程序结构单位,程序的设计以过程为核心。先用函数实现解决问题所需要的每个步骤, 再根据既定的功能依次调用函数。 程序=算法+数据结构+程序设计语言+语言环境 如:C、Pascal等 面向对象程序设计语言 以类为基本程序结构单位,程序的设计以类为核心,数据及操作封装在类中。 程序=类+类+类 类=数据结构+算法+程序设计语言+语言环境 如:C+、JAVA、Python等 高级语言的翻译 高级语言不能被计算机直接执行,必须先由一种翻译程序将这些程序翻译成能被计算机识别和执行的机器语言 翻译程序的
4、种类 编译程序 解释程序1.3.1 C语言概述语言概述1.3.2 数值计算的数值计算的C程序程序1.3.3简单游戏的简单游戏的C程序程序1.3.4 C程序的实现过程程序的实现过程 C语言演变 BCPL=B = C = C+ C可作为系统程序的设计语言 如编写Windows、Linux、嵌入式等操作系统 C可作为应用程序的设计语言 如编写计算器、游戏、图像处理等 C 是最受欢迎的、应用最广泛的编程语言之一 2017年2月TIOBE编程语言排行榜 实现“鸡兔同笼”问题穷举法的C程序/* 功能:已知鸡兔的总头数和总脚数,求解鸡兔的数量各有多少*/#includeint main()/主函数 int
5、head,feet; /head 为鸡兔头的总数、feet为鸡兔脚的总数 int chicken, rabbit; /chicken为鸡的数量、rabbit为兔的数量 scanf(%d %d,&head,&feet); /获取键盘输入的头数与脚数 /*反复穷举可能符合条件的解法,直到获得求解结果结束*/ for(chicken=1;chicken=head;chicken+) rabbit=head-chicken;if(chicken*2+rabbit*4=feet) break; printf(nchicken=%d,rabbit=%d,chicken,rabbit);/屏幕输出鸡兔的数量
6、 return 0; 执行结果简单的“走迷宫”小游戏的C程序功能是:已知一个6*6阶的迷宫、实现让小球从起点走出迷宫*/#include #include #include #include move.h int main() /迷宫图,大写字母O为小球起始位置,#字符为迷宫栅栏 char m67=#, #O # , # # #, # # #, # #, #; int i,x,y,exitX,exitY; char ch; x=1,y=1,exitX=1,exitY=5;/x,y为小球初始位置,exitX,exitY为迷宫出口位置简单的“走迷宫”小游戏的C程序 for(i=0;i6;i+) p
7、uts(mi);/初始迷宫图输出到屏幕 /小球没走到迷宫出口,根据迷宫状态选择一个方向移动while(x!=exitX | y!=exitY) ch=getch();move(m,ch,&x,&y);/小球在用户指定方向移动一步system(cls);/清屏for(i=0;i6;i+) puts(mi);/小球移动一步后的迷宫图输出到屏幕 printf(Congratulations on winning the maze !);Sleep(5000);/暂停5秒钟左右return 0; 简单的“走迷宫”小游戏的执行结果 C程序实现的4个过程: 编辑(EDIT) 编译(COMPILE) 连接(
8、Link) 执行(EXECUTE) C程序的集成开发环境 集编辑(EDIT)、编译(COMPILE)、 连接(Link)、)、执行(EXECUTE)与一体,并提供调试(debug)手段和帮助(help)的开发软件。 几种常用的C语言集成开发工具开 发 工 具运 行 环 境各工具的差异基 本 特 点Turbo CDOS不能开发C+语言程序(1)符合标准C(2)各系统具有一些扩充内容(3)能开发C语言程序(集程序编辑、编译、连接、调试、运行于一体)Borland CDOSMicrsoft CDOSVisual C+Windows能开发C+语言程序(集程序编辑、编译、连接、调试、运行于一体)Dev
9、C+WindowsBorland C+DOS、WindowsVisual StudioWindowsCodeBlocksWindows、Mac1.4.1 C程序的基本结构程序的基本结构1.4.2 C程序的基本元素程序的基本元素1.4.3 C程序的编程风格程序的编程风格/*功能:已知x与y的值,把x除以y的结果放到z中,并在屏幕上打印输出*/#include int main()int x,y; double z; x=20; y=5; z=(double)x/y;printf(z=%.1fn,z); /输出两个整数相除的结果return 0; 从宏观上讲,C程序的基本结构包括:编译预处理命令、
10、函数定义。main函数定义函数定义编译预处理命令 从微观上看,一个C程序也可以被看成是由若干行组成的,而每一行由字符的序列构成的。1. 基本字符集: 大写英文字母:AZ 小写英文字母:az 阿拉伯数字:09 28个标点符号和运算符 下划线(_)、空格符、制表符和换行符2. 标识符 用来命名如语句的种类、变量的名称、函数的名称等的各种程序元素,应满足以下规则: 以字母(不论大小写)或下划线(_)开头; 随后可以跟若干个(包括0个)字母、数字、下划线。2. 标识符 关键字:C语言的编译系统已经给予固定意义的标识符. 数据类型名:int 、double 语句的种类:if、 for 程序元素的其他性质
11、:define、static 标准标识符:C语言的程序设计环境中,已经被给予指定意义的标识符 printf 格式化输出库函数的函数名 scanf 格式化输入库函数的函数名 INT_MAX 整数类型的最大数据2. 标识符 用户定义的标识符 除了关键字和标准标识符之外的其他标识符。在不混淆的情况下,把“用户定义的标识符”简单地说成“标识符”。 通常用来命名程序中的变量、函数或其他程序元素。 合法的用户定义标识符如:x y2 _imax ELSE X A_to_B 非法的用户定义标识符如:5x else #No sum two re-input main3. 注释 注释的一般形式是: /* 一行或多
12、行注释 */ / 当前行注释 良好的编程风格(1)代码形成锯齿形书写格式。(2)为增加程序的可读性,程序的主要语句要有适当注释。(3)标识符命名尽量做到“见名知意”的原则。(4)一行只写一个语句。(5)为使程序的结构更清晰,可使用空行或空格。(6)输入数据前要有适当的提示,输出结果时要有说明。1.5.1问题分析问题分析1.5.2算法设计算法设计1.5.3程序编写程序编写1.5.4运行调试运行调试编程工具确定后,程序设计的四个步骤: 问题分析的过程包括 问题的定义 明确解决问题需要考虑的已知信息,和需要达到的目标。 (1)已知什么 (2)求什么。 如:已知同笼中鸡兔的头数与脚数,求鸡兔各有多少只
13、 问题的解决方案。 根据已知条件,寻求结果的方法和途径 如:鸡兔同笼问题的“穷举法” 算法:解决问题所需的有限步骤 算法设计:就是设计程序执行步骤,这些步骤都应该是明确定义、可以执行的,而且每个步骤的执行顺序是确定的,并且能够在有限步骤内执行完毕。 求三个整数中的最大值的算法举例:第1步:输入三个正整数a,b,c;第2步:如果a大于b,则将a的值赋给max, 否则将b的值赋给max;第3步:如果c大于max,则将c的值赋给max;第4步:打印:“最大值为”max 编程问题的最基本的算法设计可归结为以下三步:(1)获得数据(2)执行计算(3)显示结果 算法的描述: 自然语言 伪代码 流程图 流程
14、图几种基本图形 C语言的三种控制结构用流程图 求三个数中的最大值问题的流程图 C程序=数据+操作 数据:即确定数据的存储方式 已知信息的数据 计算过程产生中间数据 待求结果的数据 操作:即算法,用语句实现 符合程序语言的语法规则 发现错误 设计测试用例 错误的定位 设置断点 单步跟踪 观察变量的值1.6.1语法错误语法错误编译错误编译错误1.6.2语法错误语法错误连接错误连接错误1.6.3逻辑错误逻辑错误结果不正确结果不正确1.6.4逻辑错误逻辑错误运行时错误运行时错误 认识程序错误语法错误 编译错误 连接错误逻辑错误 运行结果不正确 运行时错误 是指不符合C语言定义的语法书写规则 编译时能自
15、动检查出语法错误,只需根据错误提示进行修改 程序语句末缺少分号“;”的编译错误示例缺少分号“输出”窗口 C语言的错误信息的形式 双击上述错误信息,修改 编译错误修改提示: 错误信息往往只能起提示作用,不是特别精确反映错误产生的原因,更不会告诉你如何修改。 根据提示能快速反应错误产生的原因需要经验的积累。 一条语句错误可能会产生若干条错误信息,只要修改了这条错误,其他错误会随之消失。 特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即重新编译程序,如果还有很多错误,再一个一个地修改。 即每修改一处错误要重新编译一次程序。 连接
16、错误,是编译成功后,连接器连接外部程序的时候产生的错误。 系统函数printf错写成print后的连接错误示例 连接错误修改提示: 连接错误不提示出错行数,但小程序的定位也比较简单,一般是函数和外部变量的名称出错,只需根据错误提示的字符串去寻找可能出现的位置 。 常见语法错误 字符串“ ”不完整 ()不匹配 缺少; 函数名写错 逻辑错误是程序设计上或逻辑上的错误指程序已生成可执行文件,但运行出错或不能得到正确的结果,这可能是由于算法中问题说明不足,解法不完整或不正确所造成的。 逻辑错误的检查需要事先设计的测试用例。 逻辑错误出错位置需要程序员对程序代码进行分析,一般会借助一些调试手段,如单步跟踪,设置断点,监视窗口观测变量等 结果不正确示例:测试用例一:输入:x=20 y=5 期望 输出:z=4.0测试用例二:输入:x=5 y=2 期望输出:z=2.5实际结果为2.0 运行错误是指程序经编译连接生成可执行文件后,在运行的过程中系统报错,没有运行结果。 常见的运行错误有:除数为0;死循环;指针出错等等。 运行时错误往往是逻辑错误引起的。 当除数为0时的运行时错误示例:此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!