- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据表达
数据表达: 数据表达:一般将数据抽象为若干类型 数据类型:对某些具有共同特点的数据集合及 数据类型 对某些具有共同特点的数据集合及 在其上定义的运算的总称
代表的数据(数据的值域) 代表的数据(数据的值域) 在这些数据上做些什么(即操作或称运算) 在这些数据上做些什么(即操作或称运算) 例如: 注意与数学上的整数不同,这里范围是有限的 例如:整数类型 (注意与数学上的整数不同 这里范围是有限的 注意与数学上的整数不同 这里范围是有限的) 包含的数据: , , , , , , 包含的数据:{…,-2,-1,0,1,2,…} 作用在整数上的运算: 作用在整数上的运算:+ , - , * , / 等
C语言程序设计 语言程序设计
2008版 版
C语言程序设计 语言程序设计
教学要求
掌握程序设计语言的基本知识 常用算法 初步的程序设计能力
学习方法
自主学习 重视上机实践
如何尽快学会用C语言进行程序设计 如何尽快学会用 语言进行程序设计
了解程序设计语言(C语言 了解程序设计语言 语言) 语言 模仿,改写,编写. 其实就是人类学习语 模仿,改写,编写.(其实就是人类学习语 言的方法) 言的方法 通过不断的编程实践, 通过不断的编程实践,逐步领会和掌握程 序设计的基本思想和方法. 序设计的基本思想和方法.
程序设计语言的功能
数据表达:表达所要处理的数据 什么数据 什么数据) 数据表达:表达所要处理的数据(什么数据 流程控制:表达数据处理的流程(怎么处理 怎么处理) 流程控制:表达数据处理的流程 怎么处理 作为一种实用的高级程序设计语言, 语言的 作为一种实用的高级程序设计语言,C语言的 数据表达和流程控制要比前面介绍的虚拟裸 机丰富,灵活,复杂得多. 机丰富,灵活,复杂得多.
数据表达
C语言提供的数据类型 语言提供的数据类型
基本数据类型:程序设计语言事先定义好, 基本数据类型:程序设计语言事先定义好,供 程序员直接使用,如整型,实型(浮点型), 程序员直接使用,如整型,实型(浮点型), 字符型等. 字符型等. 构造类型:由程序员构造,如数组,结构, 构造类型:由程序员构造,如数组,结构,文 语言程序 一个C语言程序
#include <stdio.h> int main(void){ int n; int factorial(int n); scanf("%d", &n); printf("%d\n", factorial(n)); return 0; } int factorial(int n){ int i, fact = 1; for(i = 1; i <= n; i++) fact = fact * i; return fact; }
程序设计语言的语法
用程序设计语言所写的程序必须符合相应 语言的语法 源程序(源代码)是一个字符序列, 源程序(源代码)是一个字符序列,这 字符序列 些字符序列按顺序组成了一系列" 些字符序列按顺序组成了一系列"单 单词" 词","单词"的组合就形成了语言有 语法单位, 意义的语法单位 意义的语法单位,一些简单语法单位的 组合形成更复杂的语法单位, 组合形成更复杂的语法单位,一系列语 法单位的有机组合最终构成程序 程序. 法单位的有机组合最终构成程序.
如实现一次加法运算或实现一次大小的判别
计算机的指令系统: 计算机的指令系统:计算机所能实现的指令 的集合 (汇编 程序:为完成特定任务编写的一系列 汇编)程序 汇编 程序: 计算机指令的有序组合
程序与指令
编写程序, 例1-2 编写程序,分别求和与乘积 一种简化的虚拟计算机的指令系统( 条指令 一种简化的虚拟计算机的指令系统(7条指令 )
程序与指令
输入2个数 和 , 输入 个数A和B,求A*B的结果 个数 的结果
1.Input A; . 输入第1个数据到存储单元 个数据到存储单元A中 输入第 个数据到存储单元 中 2.Input B; 输入第2个数据到存储单元 个数据到存储单元B中 . 输入第 个数据到存储单元 中 3.Set 0 X; 设为0,此处X用以统计 用以统计A累加的次数 . 将X设为 ,此处 用以统计 累加的次数 设为 4.Set 0 Z; 设为0,此处Z用以存放 用以存放A*B的结果 . 将Z设为 ,此处 用以存放 设为 的结果 5.BranchEq X B 9; 判别 与B是否相等;若相等说明 已 判别X与 是否相等 若相等说明A已 是否相等; . 累加了B次 程序跳转到第9条指令 条指令, 累加了 次,程序跳转到第 条指令,否则执行下一条指令 6.Add Z A Z; Z = Z + A . 7.Add 1 X X; X = X + 1 . 8.Jump 5; 程序跳转到第5条指令 条指令, . 程序跳转到第 条指令,判断条件 9.Output Z; 输出Z的值 该值等于A*B 的值, . 输出 的值,该值等于
流程控制
语句级控制: 种基本的控制结构 语句级控制:3种基本的控制结构 顺序控制结构 控制结构: 顺序控制结构:自然顺序执行 分支控制结构 选择结构): 控制结构( ):根据不同 分支控制结构(选择结构):根据不同 的条件来选择所要执行的模块 循环控制结构 控制结构: 循环控制结构:重复执行某个模块 单位级控制: 单位级控制:函数的定义与调用 处理复杂问题时, 处理复杂问题时 将程序分为若干个相对 独立的子程序(函数) 独立的子程序(函数)
结构化程序设计方法
软件危机—goto语句是有害的!结构化程序设计 语句是有害的! 软件危机 语句是有害的 的提出.工程化方法:自顶向下,逐步求精. 的提出.工程化方法:自顶向下,逐步求精. 将复杂程序划分为若干个相互独立的模块 模块:一条语句( ),一段程序或一 模块:一条语句(Statement),一段程序或一 ), 单入口,单出口的 个函数(子程序) 个函数(子程序)等,是单入口,单出口的 任何程序都可以将模块通过3种基本的控制结构 种基本的控制结构进 任何程序都可以将模块通过 种基本的控制结构进 行组合来实现
各种数据类型的常量与变量形式
常量(常数) 常量(常数)与变量
流程控制
程序设计最终得到的是指令序列(简单操作 , 程序设计最终得到的是指令序列 简单操作),从流程控 简单操作 制角度来看只有三种构件: 顺序操作, 制角度来看只有三种构件 顺序操作,无条件转移和 条件转移.指令序列是问题经多层次分析分解而得. 条件转移.指令序列是问题经多层次分析分解而得.
N-S结构化流程图-- I.Nassi & B.Shneiderman(U.S.A) 结构化流程图
A B
顺序结构
是
P
否
当P成立
A
B
A
(先判断)
A
直到P成立
(先执行)
分支结构
循环结构
流程图中带箭头的流程线很容易引诱设计者将控制 随意转向任意位置,从而违反结构化原则(有害的goto 随意转向任意位置,从而违反结构化原则(有害的goto 语句!) 1973年美国的两位学者提出了 !). 年美国的两位学者提出了N 语句!).1973年美国的两位学者提出了N-S结构化流程 如上图) 清除了"危险的"流程线,这样, 图(如上图),清除了"危险的"流程线,这样,你想设 计非结构化的程序都难.因而很快流行. 计非结构化的程序都难.因而很快流行.
Chap 1 引 言
一个C语言程序 一个 语言程序 程序与程序设计语言 C语言的发展历史与特点 语言的发展历史与特点 实现问题求解的过程
本章要点
什么是程序?程序设计语言包含哪些功能? 什么是程序?程序设计语言包含哪些功能? 程序设计语言在语法上包含哪些内容? 程序设计语言在语法上包含哪些内容? 结构化程序设计有哪些基本的控制结构? 结构化程序设计有哪些基本的控制结构? C语言有哪些特点? 语言有哪些特点? 语言有哪些特点 C语言程序的基本框架如何? 语言程序的基本框架如何? 语言程序的基本框架如何 形成一个可运行的C语言程序需要经过哪些 形成一个可运行的 语言程序需要经过哪些 步骤? 步骤? 如何用流程图描述简单的算法? 如何用流程图描述简单的算法?
程序设计语言
提供了一种表达数据与处理数据的功能 要求程序员按照语言的规范编程
1.2 程序与程序设计语言
程序与指令 程序设计语言的功能 程序设计语言的语法 程序的编译与编程环境
程序与指令
__ 二进制数字计算机
冯.诺伊曼机
指令:计算机能实现的最基本的操作 裸机 裸机) 指令:计算机能实现的最基本的操作(裸机
教材和参考书
C语言程序设计,何钦铭,颜晖主编,高等教育 语言程序设计,何钦铭,颜晖主编, 语言程序设计 出版社, 出版社,2008 C语言编程(第3版), 美]Stephen, G.Kochan, 语言编程( 语言编程 版),[美 , 张小潘译,电子工业出版社, 张小潘译,电子工业出版社,2006 C程序设计(第三版),谭浩强著,清华大学出 程序设计( ),谭浩强著 程序设计 第三版),谭浩强著, 版社, 版社,2005 C程序设计语言,[美]Brian W. Kernighan, 程序设计语言, 程序设计语言 美 Dennis M. Ritchie,徐宝文等译,机械工业出版 ,徐宝文等译, 社,2006 C程序设计 第二版 ,荣政等,西安电子科技大学 程序设计(第二版 程序设计 第二版),荣政等, 出版社. 出版社.2006
输入 4
求阶乘问题. 例1-1求阶乘问题.输入一个正整数 ,输出 . 输出 24 求阶乘问题 输入一个正整数n,输出n!.
/* 编译预处理命令 */ /* 主函数 */ /* 变量定义 */ /* 函数声明 */ 函数声明 /* 输入一个整数 */ /* 调用函数计算阶乘并输出 */ 调用函数计算阶乘并输出