《c语言程序设计基础》第一章_第1页
《c语言程序设计基础》第一章_第2页
《c语言程序设计基础》第一章_第3页
《c语言程序设计基础》第一章_第4页
《c语言程序设计基础》第一章_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础Programming Fundamentals,授课教师: 联系电话: Email:,教学目标 掌握程序设计的基本知识 数值问题分析 初步的程序设计能力 学习方法 自主学习 公共邮箱:密码:123456 重视上机实践 上机工具 Visaul C+ 6.0(Windows平台) Turbo C+ 3.0(命令行状态),程序设计基础,为什么选择C语言?,思维需要借助某种可视的工具进行表达 C是一种传统的程序设计工具,1970sNow! CC+VC+JAVA、C#等 C对于信息类专业后续课程学习十分重要 面向对象程序设计 数据结构 操作系统 通信协议 单片机、ARM编程,教材和参考书,

2、教材 何钦铭,颜晖. C语言程序设计. 高等教育出版社,2008 参考 谭浩强. C程序设计(第三版). 清华大学出版社,2005 钱能. C+程序设计教程. 清华大学出版社,1999 百度贴吧:C语言吧 网络资源 C语言程序示例之黑客帝国数字雨,Ch1 引 言,1.1 一个C语言程序 1.2 程序与程序设计语言 1.3 C语言的发展历史与特点 1.4 实现问题求解的过程,本章要点,什么是程序?程序设计语言包含哪些功能? 程序设计语言在语法上包含哪些内容? 结构化程序设计有哪些基本的控制结构? C语言有哪些特点? C语言程序的基本框架如何? 形成一个可运行的C语言程序需要经过哪些步骤? 如何用

3、流程图描述简单的算法?,1.1 一个C语言程序,例1-1 求阶乘问题。输入一个正整数n,输出n!。 问题分析: 阶乘即给定一个数n,计算从1n的连乘的乘积 需要考虑: 如何通知计算机要计算阶乘的这个数是多少? 计算的结果怎么反馈出来? 计算机是如何进行计算的?,输入! scanf( ),输出! printf( ),编程! 自定义函数,1.1 一个C语言程序,#include /* 编译预处理命令 */ int main(void) /* 主函数 */ int n; /* 变量定义 */ int factorial(int n); /* 函数声明 */ scanf(%d, ,结论: C程序由函数

4、组成; 有且只有一个主函数main 变量需先定义后使用,占用一定内存空间,几个需了解的概念: 变量、函数、控制结构,scanf(),printf()使用的基本方法,1.2 程序与程序设计语言,程序 Niklaus Wirth: Algorithm + Data Structures = Programs 算法+数据结构=程序 算法:处理问题的策略 数据结构:问题的数学模型 表现形式:采用某种程序设计语言所编写的一组代码 程序设计语言 提供一组编写程序的规范(语法) 提供了一种表达数据与处理数据的功能,1.2 程序与程序设计语言,程序与指令 指令:计算机处理数据的基本单元 完成一个数据处理的基本

5、功能,如实现一次加法运算或实现一次大小的判别 指令系统:计算机所能实现的指令的集合 程序:计算机指令的有序组合,计算机表示数据的基本单元: 8位二进制位组成的字节,约定某计算机指令系统定义有如下7条指令: 指令1:Input X 将当前输入数据存储到内存的X单元 指令2:Output X 将内存X单元的数据输出 指令3:Add X Y Z 将内存X单元的数据与Y单元的数据相加并将结果存储到Z单元 指令4:Sub X Y Z 将内存X单元的数据与Y单元的数据相减并将结果存储到Z单元 指令5:BranchEq X Y P 比较X与Y,若相等则程序跳转到P处执行,否则继续执行下一条指令 指令6:Ju

6、mp P 程序跳转到P处执行 指令7:Set X Y 将内存Y单元的值设为X,1.2 程序与程序设计语言,程序与指令,利用上述指令系统,输入3个数A, B和C,求A+B+C的结果 Input A; Input B; Input C; Add A B D; Add C D D; Output D;,1.2 程序与程序设计语言,程序与指令,输入第1个数据到存储单元A中 输入第2个数据到存储单元B中 输入第3个数据到存储单元C中,将A、B相加并将结果存在D中 将C、D相加并将结果存在D中,输出D的内容,输入2个数A和B,求A*B的结果 思考:指令系统中无乘法运算,怎么办? 1Input A; 2In

7、put B; 3Set 0 X; 4Set 0 Z; 5BranchEq X B 9; 6Add Z A Z; 7Add 1 X X; 8Jump 5; 9Output Z;,1.2 程序与程序设计语言,程序与指令,输入2个数分别保存到存储单元A和B中,将X设为0,X统计A累加的次数 将Z设为0,Z存放A*B的结果,XB?相等则表明A已累加B次,程序跳到9,输出结果,Z = Z + A X = X + 1,程序跳回5,循环执行第6、7条指令,输出Z的值,该值等于A*B,数据表达 如何将数据表示成计算机可以理解的形式 数据包括数值数据和非数值数据 流程控制 如何控制数据的处理,1.2 程序与程序

8、设计语言,程序设计语言的功能,数据表达 根据数据的特点将数据归类为若干类型 数据类型 具有共同特点的数据集合的总称 包含两个方面的含义: 定义域:表示数据的范围 运算:针对该类型的数据可以执行哪些操作 例如:整数类型 包含的数据:,-2,-1,0,1,2, 作用在整数上的运算:+ 、 - 、 * 、 /等,1.2 程序与程序设计语言,程序设计语言的功能数据表达,C语言提供的数据类型 基本数据类型 程序设计语言事先定义的,直接使用的,如整型(int)、实型(float)、字符型(char)等 构造类型 自定义的:数组、结构、文件、指针等 常量与变量 常量(Constant):数值常量(3.14)

9、、符号常量(PI) 变量 (Variable):int i; float A; char ch;,1.2 程序与程序设计语言,程序设计语言的功能数据表达,流程控制 数据处理的过程控制,是对逻辑思维(思路)的一种表达 结构化程序设计方法 将复杂程序划分为若干个相互独立的模块 模块:一条语句(Statement)、一段程序或一个函数(子程序)等 单入口、单出口,1.2 程序与程序设计语言,程序设计语言的功能流程控制,基本控制结构 顺序结构 分支结构 循环结构,1.2 程序与程序设计语言,程序设计语言的功能流程控制,程序设计语言(Programming Language) 人与计算机之间进行交流的一

10、种工具,讲什么?怎么讲?必须有一套严格的语法规则,规定可以使用哪些词,词怎么组成一条语句,多条语句怎么组成一段程序。通常包含: 数据:如何描述交流的内容?(数据类型) 运算:对这些数据可以进行哪些处理?(数据操作) 控制:这些处理是怎么完成的?(控制结构) 传输:人与计算机之间如何进行数据的传递?(输入输出) 发展历程:机器语言汇编语言高级语言,1.2 程序与程序设计语言,程序设计语言的语法,C语言基本词元 标识符 由字母、数字以及下划线组成,且第一个字符必须是字母或下划线 保留字(关键字) C语言规定的有特定含义和专门用途的标识符 自定义标识符 用户根据需要在程序中定义的变量名、数据类型名、

11、函数名以及符号常量名。有意义的英文单词 常量 12312.34A“abcde” 运算符 执行数据操作的符号,由系统预先定义。如,+(加)、(减)、*(乘)、/(除)、%(求余)、(大于),1.2 程序与程序设计语言,程序设计语言的语法C语言,C语言的主要语法单位 表达式: 2 +a * 4a=b+3i+ 变量定义 int ichar ch1, ch2float f 语句: 表达式语句:a=b+3;i+; 控制语句:if () elsefor ( ; ; ) 复合语句:x=x+1; x+ 函数: 系统函数:printf(), scanf(), abs(), sqrt() 自定义函数:factor

12、ial(),1.2 程序与程序设计语言,程序设计语言的语法C语言,编译(Compile) 将源程序(Source Codes)转换为计算机指令的过程 编译器(Compiler) 对源程序进行编译的软件,按高级语言所规定的语法对源程序进行词法分析、语法和语义分析,生成二进制表示的目标程序,可检查出源程序的语法错误 编程环境 提供程序的编程(Edit)、编译、调试(Debug)、执行(Run)等 学习方法 熟悉编程环境,按照语法完成数据的表达和处理,实现程序的控制,1.2 程序与程序设计语言,程序的编译与编程环境,C 语言上机过程,1.2 程序与程序设计语言,程序的编译与编程环境,1.3 C语言的

13、发展历史与特点,历史 1972年:贝尔实验室的Dennis Ritchie在B语言的基础上设计并实现了C语言 1978年:B.W.Kernighan和D.Ritchie(简称K 重复累加,用循环语句实现,在循环过程中: (1) 判别 i 是不是偶数:用分支控制语句来实现。 (2) 对循环次数进行控制:通过 i 值的变化,思路 确定算法 算法:一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止 算法的描述: 自然语言 伪代码 流程图:算法的图形表示法,1.4 实现问题求解的过程,问题分析与算法设计,算法描述流程图,1.4 实现问题求解的过程,#include int main(void) int i, sum = 0; for(i = 1; i = 100; i+) if (i%2 = 0) su

温馨提示

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

评论

0/150

提交评论