资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,程序设计基础,学时:48学时 (理论38+上机10),上课时间:周二:5、6节,周五:7、8节,授课班级:190406,主讲教师:孙暘,E-mail:sylq,程序设计基础学时:48学时 (理论38+上机10),1,IMPORTANT,Enjoy Studying -快乐学习,Be Honest to Yourself-对自己诚实,Attitude is Everything-态度决定一切,Harmonious Class-和谐课堂,Back to Basic-回归基本,Execute to Excellent-卓越执行,Down to Detail-落实到细节,IMPORTANTEnjoy Studying -,2,授课形式 &学习方法,教师讲授:“不愤不启 不悱不发”论语,课堂讨论:“TEAM”,课后作业:相关题目的验证+综合而成的笔记,上机验证:理论知识的验证+创新知识的形成,考核方式:考试课,授课形式 &学习方法,3,第一章 引言,第一章 引言,4,Chap 1 引 言,一个C语言程序,程序与程序设计语言,C语言的发展历史与特点,实现问题求解的过程,Chap 1 引 言一个C语言程序,5,本章要点,什么是程序?程序设计语言包含哪些功能?,程序设计语言在语法上包含哪些内容?,结构化程序设计有哪些基本的控制结构?,C语言有哪些特点?,C语言程序的基本框架如何?,形成一个可运行的C语言程序需要经过哪些步骤?,如何用流程图描述简单的算法?,本章要点什么是程序?程序设计语言包含哪些功能?,6,1.1 一个C语言程序,例1-1求阶乘问题。输入一个正整数n,输出n!。,#include /* 编译预处理命令 */,int,main,(void),/* 主函数 */,int n; /* 变量定义 */,int,factorial,(int n); /* 函数声明 */,scanf,(%d, /* 输入一个整数 */,printf,(“%dn”, factorial(n); /* 调用函数计算阶乘 */,return 0;,int,factorial,(int n) /* 定义计算 n! 的函数 */,int i, fact = 1;,for(i = 1; i (大于),程序设计语言的语法 C语言的主要“单词”,24,程序设计语言的语法,C语言的主要语法单位,(1)表达式: 运算符与运算对象组合就形成了表达试。如,2 + 3 * 4,(2)变量定义: 变量也有数据类型,所以在定义变量时要说明相应变量的类型。如: int i;,(3)语句: 语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现的。,(4)函数定义与调用,程序设计语言的语法 C语言的主要语法单位,25,程序设计语言的语法,其中,(3)语句:,表达式语句:表达式加分号“;”,分支语句:实现分支控制过程,if (a b) x = a;,else x = b;,循环语句:实现循环控制的过程,sum = 0; /* 初始化sum和i */,i = 1;,while (i = 100) /* while循环语句 */,sum = sum + i;,i = i + 1;,复合语句:用一对“ ”,将若干语句顺序组合在一起就形成了一个程序段。,程序设计语言的语法其中,(3)语句:,26,程序设计语言的语法,其中,(4)函数定义与调用,函数是完成特定任务的独立模块,函数的使用最主要涉及到函数的定义与调用。,输入输出:,C语言没有输入输出语句,用库函数printf、scanf等实现。,程序设计语言的语法其中,(4)函数定义与调用,27,程序的编译与编程环境,程序的编译,编译器,程序 计算机直接能理解的指令序列,编译器:对源程序进行词法分析、语法与语义分析,生成可执行的代码。,直接指出程序中的语法错误,编程环境,包括编辑程序(Edit)、编译(Compile)、调试(Debug)等过程。,掌握程序设计语言:根据语言的语法,用语言表达数据、实现程序的控制,并会使用编程环境。,程序的编译与编程环境 程序的编译,28,C 语言上机过程,源程序,test.cpp test.obj,可执行代码,test.exe,编译,连接,运行,C 语言上机过程编译连接 运行,29,1.3 C语言的发展历史与特点,历史,1972年:贝尔实验室的Dennis Ritchie在B语言的基础上设计并实现了C语言。,1978年:B.W.Kernighan和D.Ritchie(简称K & R)合著的The C Programming Language是各种C语言版本的基础,称之为旧标准C语言。,1983年:美国国家标准化协会(ANSI)制定了新的C语言标准,称ANSI C。,1.3 C语言的发展历史与特点 历史,30,C语言的特点,1C语言是一种结构化语言,2C语言语句简洁、紧凑,使用方便、灵活,32个关键字,9种控制语句,程序书写形式自由。,3C语言程序易于移植,C语言将与硬件有关的因素从语言主体中分离出来,通过库函数或其他实用程序实现它们。,4C语言有强大的处理能力,5生成的目标代码质量高,运行效率高,C语言的特点 1C语言是一种结构化语言,31,C语言的特点,6数据类型检查不严格,表达式出现二义性,不具备数据越界自动检查功能,运算符的优先级与结合性对初学者难于掌握。,C 语言中大小写字母代表不同含义,C语言的特点,32,利用计算机解决问题的基本过程,做什么 怎么做 告诉计算机做 检查计算机做的对否分析问题 建立数学模型 编码 调试运行,分析结果 选择算法 写出程序的文档,1.4 实现问题求解的过程,利用计算机解决问题的基本过程做什么 怎么做,33,1.4 实现问题求解的过程,问题:求1100间所有偶数的和。,1问题分析与算法设计,求在一定范围内(1100)、满足一定条件(偶数)的若干整数的和,求累加和。,思路:设置一个变量(sum),其初值为0,然后在1100的数中(i)寻找偶数,将它们一个一个累加到sum中。,一步累加:sum = sum + i;,重复累加,用循环语句实现,在循环过程中:,(1) 判别 i 是不是偶数:用分支控制语句来实现。,(2) 对循环次数进行控制:通过 i 值的变化,1.4 实现问题求解的过程 问题:求1100间所有偶数,34,问题分析与算法设计,思路 确定算法,算法:一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止。,算法的描述:,自然语言,伪代码,流程图:算法的图形表示法,问题分析与算法设计 思路 确定算法,35,算 法,问题的求解方法与步骤,不允许存在二义性,算法设计过程是逐步求精的,常使用流程图描述算法,数据与数据结构,数据:程序操作的对象,数据结构:数据对象之间的相互关系及构造方法,与算法关系密切,良好的数据结构可使算法更简单,恰当的算法可使数据结构更易理解,算 法,36,sum = 0,i = 1,i = 100,i 是偶数?,sum=sum+i,i=i+1,输出sum,真,真,假,假,sum = 0i = 100i 是偶数?sum=sum+i,37,实现问题求解的过程,2编辑程序,生成程序的源文件,C语言源文件的后缀为 .c / .cpp,#include ,int main(void),int i, sum = 0;,for(i = 1; i = 100; i+),if (i%2 = 0),sum = sum + i;,printf(%d, sum);,return 0;,实现问题求解的过程2编辑程序,38,实现问题求解的过程,3程序编译连接,编辑程序后,用该语言的编译程序对其进行编译,以生成二进制代码表示的目标程序(.obj),与编程环境提供的库函数进行连接(Link)形成可执行的程序(.exe)。,编译程序指出语法错误,语法错误VS逻辑错误,实现问题求解的过程3程序编译连接,39,实现问题求解的过程,4运行与调试,经过编辑、编译、连接,生成执行文件后,就可以在编程环境或操作系统环境中运行该程序。,如果程序运行所产生的结果不是你想要的结果,这是程序的语义错误(逻辑错误)。,调试:在程序中查找错误并修改错误的过程。,调试的方法,设置断点,单步跟踪,调试是一个需要耐心和经验的工作,也是程序设计最基本的技能之一。,实现问题求解的过程4运行与调试,40,开始,结果,语法,错误,源程序,.c / .cpp,目标程序,.obj,可执行程序,.exe,编辑,编译,连接,运行,连接,错误,运行,错误,C语言程序的调试、运行步骤,开始结果语法源程序目标程序可执行程序编辑编译连接运行连接运行,41,软件、程序、算法、数据结构之间的关系,软件=程序+文档 程序=算法+数据结构 算法=逻辑+控制,软件、程序、算法、数据结构之间的关系,42,语法错误(如何纠正) 如果违背了语法规则,程序将不能被执行。相反,编译器将在屏幕上显示出错的消息,指出程序中出错的行,并给出出错的简明描述。,语法错误(如何纠正) 如果违背了语法规则,程序将,43,逻辑错误 随着程序越来越复杂,很多时候能够正确编译,但得不到我们希望的正确结果。因为该程序没有语法错误,所以可以通过编译 当程序不能如用户所愿工作时,它就包含了逻辑错误,当程序中包含一个逻辑错误时,必须试图找到并纠正该错误的原因。去除逻辑错误的过程称为调试,在本书的后边部分将将到几个在程序中寻找错误的技巧。但现在最好的办法是打印一份源程序。并逐行进行检查,直到找出错误为止。逐行检查程序称为桌面检查。,逻辑错误 随着程序越来越复杂,很多时候能够正,44,
展开阅读全文