400 likes | 593 Views
第二章. 流程图与数据类型. 回顾. C 程序结构 算法 定义、特点、要求 VC6.0 使用. 目标. 了解算法实现 掌握流程图中使用的符号 熟练掌握使用 visio 绘制流程图 讨论变量 区分常量和变量 掌握变量的命名规则和定义 列出 C 语言程序中的 各种数据类型并使用它们. 流程图符号. 结构化程序的三种基本结构. 顺序结构:先执行 A 模块,再执行 B 模块。 选择结构:当条件 P 的值为真时执行 A 模块,否则执行 B 模块。 循环结构
E N D
第二章 流程图与数据类型
回顾 • C程序结构 • 算法定义、特点、要求 • VC6.0使用
目标 • 了解算法实现 • 掌握流程图中使用的符号 • 熟练掌握使用visio绘制流程图 • 讨论变量 • 区分常量和变量 • 掌握变量的命名规则和定义 • 列出C语言程序中的各种数据类型并使用它们
结构化程序的三种基本结构 • 顺序结构:先执行A模块,再执行B模块。 • 选择结构:当条件P的值为真时执行A模块,否则执行B模块。 • 循环结构 • 当型循环结构:当条件P的值为真时,就执行A模块,然后再次判断条件P 的值是否为真,直到条件P的值为假时才向下执行。 • 直到型循环结构:先执行A模块,然后判断条件P的值是否为真,若P为真 ,再次执行A模块,直到条件P的值为假时才向下执行。
两数相加的流程图 起止框:这里是程序的开始 Start INPUT 输入输出框:这里用来输入两个数 C=A+B 处理框:这里用来两个数相加 DISPLAY C 输入输出框:这里用来显示和 Stop 起止框:这里是程序的结束
IF结构 BEGIN INPUT num R=num MOD 2 If r=0 Display “number is even “ END IF END START INPUT num R=num MOD 2 否 R=0 是 DISPLAY “Number is ven” STOP
IF-ELSE结构 BEGIN INPUT num r=num MOD 2 IF r=0 DISPLAY " Even Number " ELSE DISPLAY " Odd Number " END IF END START INPUT num r=num MOD 2 否 是 r=0 DISPLAY “Number is Even” DISPLAY “Number is odd” STOP
使用 AND/OR连接多个条件 BEGIN INPUT yearsWithUs Input bizDone IF yearsWithUs>=10 AND bizDone>=5000000 DISPLAY “Classified as an MVS " ELSE DISPLAY " A little more effort required! " END IF END • 在现实生活中有大量的需要检查的情况,可以用AND/OR运算符可以很方便的将这些条件连接起来。
嵌套IF 结构2-1 BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10 IF bizDone >=5000000 DISPLAY " Classified as an MVS " ELSE DISPLAY " A little more effort required! " END IF ELSE DISPLAY " A little more effort required! " END IF END • 嵌套IF结构是指一个IF 语句中包含另一个IF语句,虽然没有AND,但功能一样
嵌套IF 结构2-2 START INPUT yearsWithUs INPUT bizDone 是 否 yearsWithUs>=10 DISPLAY A little… bzDone>5000000 否 是 DISPLAY"class.." DISPLAY“A little" STOP
循环结构 BEGIN cnt=0 WHILE (cnt < 1000) DO DISPLAY "Scooby" cnt=cnt+1 END DO END START cnt=0 cnt<1000 否 是 DISPLAY “scooby” cnt=cnt+1 STOP
visio操作 • 功能和版本 • 主界面分布 • 流程图的画法 • 常用快捷键 • 项目中主菜单功能流程图示例
变量 内存 数据15 通过变量,可以为内存中的位置提供一个有意义的名称 • 程序要为每一项数据分配内存,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。 • 需要多少内存 • 数据被存储在哪里 • 操作系统负责集注变量在内存中的地址 • 要引用内存空间中的值,只需指定变量名
常量 • 常量就是一个保持不变的值 • 示例 • 5 数字/整型常量 • 5.3数字/浮点常量 • “Black”字符串常量 • ‘C’ 字符常量 • 符号常量 #define COUNT 100 提高代码的可读性,还可以做到一改全改 • 使用const关键字 const int COUNT = 100;
符号常量的使用2-1 #include <stdio.h> int main(){ int score = -1; do { printf("please input chinese[0-100]:"); scanf("%d",&score); } while(score < 0 || score > 100); do { printf("please input math[0-100]:"); scanf("%d",&score); } while(score < 0 || score > 100); /*其它省略*/ return 0; }
符号常量的使用2-2 #include <stdio.h> #define MINSCORE 0 #define MAXSCORE 100 int main(){ int score =-1; do { printf("please input chinese[%d-%d]:",MINSCORE,MAXSCORE); scanf("%d",&score); } while(score < MINSCORE || score > MAXSCORE); do { printf("please input mtah[%d-%d]:",MINSCORE,MAXSCORE); scanf("%d",&score); } while(score < MINSCORE || score > MAXSCORE); return 0;}
标识符 • 变量、函数、标签和其他各种用户定义的对象的名称都称为标识符 • 正确的标识符名称 Arena、s_count、marks40、class_one • 不正确的标识符示例 1sttest、oh!god、start... end • 标识符的长度可以是任何合适的数值,但是各种编译器能够识别的变量中的字符数目有所不同 • C语言中的标识符区分大小写
关键字 • 在一个特定语言的上下文中有特殊意义的单词。是标识符的一个特殊的集合。在C语言中有预先定义好的特殊意义。不能用于其他任何目的。 • 所有的数据类型都是保留的关键字 • 所有的关键字小写 • C语言的关键字共32个:
系统内置的标识符 • 系统内置的标识符指的是系统函数名称、系统定义的结构体名称、系统定义的符号常量名称等 • 例如:printf、FILE、date、RED等 • 以上各种标识符不要用于用户定义的标识符上,防止发生不必要的错误
数据类型分类 • C语言中数据有常量和变量之分,它们分别属于以下这些类型
变量的声明2-1 • 数据类型描述了变量中将存放的数据的种类 • 数据类型位于变量名的前面 • 例如:数据类型 int将位于变量名 varName的前面 • 变量声明必须放在变量使用之前(先定义后使用) • 一般放在函数体的开头部分,可执行代码的前面 • 变量声明也可以放在代码块的前面 数据类型 变量名称; int varName;
变量的声明2-2 include <stdio.h> int main(){ int a = 10; if(a == 10){ int i = 12; /*变量i只允许在if内部使用,即两个{ }之间*/ } return 0; }
变量的初始化 • 程序中常常需要对一些变量预先设定初始值 • 定义时初始化变量 Datatype variablename = value; 例如:int num1,num2 = 12; • 定义后初始化变量 variablename = value; 例如:int num; num = 12; 给变量赋值,除了给一个直接的值以外,还可以通过计算获得。
基本数据类型 基本数据类型 int void float char double 单个或多个数字系列 没有任何类型的数据 存储含有小数位 存放一个字符 超出float类型大小的值
int类型2-1 • 存储数字数据,不能存储类似于“Alan”或“abc”等任何其他类型的数据 • 声明方式:int num; • 分配32位(4 个字节)的内存空间 • int类型在16位系统中和在32位系统中,所占用字节数是不一样的(TC2.0下占2个字节) 在同一语句中可以声明多个类型相同的变量: int page_number, copies, paper_width;
int类型2-2 • 十进制整型常量 没有前缀,0~9的数字组成 示例:12322、0、-232 • 八进制整型常量 以0打头,由0~7的数字组成 示例:023、0101 • 十六进制整型常量 以0X或0x打头,由0~9、A~F或a~f组成 示例:0xff、0X2A
float 类型 • 存储整数或包含小数位的值 • 声明方式:float num; • 有效数字是 6 位 • 分配32 位(4 个字节)的内存空间 示例:23.05、56.5、32.0、3.14159
double 类型 • 存储超出float类型大小的限制的值 • 声明方式: double num; • 有效数字是 17 位 • 分配64 位(8个字节)的内存空间 示例:123.45678901234567
char 类型2-1 • 存储一个字符信息 • 声明方式:char gender; gender = 'M'; • 分配8位(1个字节)的内存空间 示例:'a'、'm'、'$'、'%'、'1'、'5' • 实质是占一个字节的整型数(小整数)
void 类型 • 告诉编译器没有任何类型的值 • 不能像其它数据类型一样来声明变量 • 例如:void num; /*这是错误的声明*/ • 但是void 可以用在指针生命中 • void作用: • 在函数声明中使用,代表不返回任何值 • 与指针搭配使用
派生数据类型 通过修改四种基本数据类型以适应不同的 情况而产生的数据类型叫做派生数据类型 数据类型修饰符 基本数据类型 派生数据类型 只允许正数 int unsigned int unsigned short int 是int所占空间的一半 int short long int /long double long int/double 和int/double占的内存空间一样
signed和unsigned类型 • signed最重要的是修改char数据类型 • unsigned 类型指定变量只能接受正值 • unsigned int varNum; • varNum = 23123; • 加上unsigned前缀,正数的取值范围是原来的两倍 • 修饰符可以与 int 和 float 数据类型一起使用 • unsigned int 支持的范围是从 0 到 4,294,967,295
long和short类型 • 要求某个整数的长度比正常长度更长或更短时,使用long 和short • short int 占 16 位(2 个字节)的内存空间 • 允许的数字范围是从 -32768 到 32767 • long int 占 32 位(4 个字节)的内存空间 • 2,147,483,648 到 2,147,483,647 • long double 占 64 位(8 个字节)的内存空间
声明示例 #include <stdio.h> int main () { char sex = ‘F’; /*用M和F代表性别*/ float length = 13.5; /*声明length,长度可能带有小数位*/ double area; /*声明area */ double pay; /*money有角和分*/ short age = 89; /*人类的年龄现阶段不可能超过150*/ return 0; } /*选择数据类型时首先考虑变量用来存放什么类型值, 然后再根据存放值的最大值和最小值,进一步选择适当的类型和类型的 修饰符*/
总结 • 算法实现 • 流程图中使用的符号 • 使用visio绘制流程图 • 什么是变量 • 常量的定义 • 变量和常量的区别 • 什么是标识符 • 关键字 • 变量的声明和定义