吴文虎程序设计基础PPT第二讲.ppt
《吴文虎程序设计基础PPT第二讲.ppt》由会员分享,可在线阅读,更多相关《吴文虎程序设计基础PPT第二讲.ppt(59页珍藏版)》请在冰豆网上搜索。
1,第二章简单程序设计,2,了解C程序的基本格式,变量的定义和赋值,学习目标,变量与数据类型,C程序的基本结构,内容要点,3,上一章的内容仅仅是把计算机当作计算器来用,尽管这已经比一般计算器的功能强大多了,但是,从水平上看象是小学生干的事,是算术而不是代数,因为没有使用变量。
要编程序首先遇到的是掌握变量的概念和对变量进行操作。
程序是描述和实现算法的,算法中会遇到大量的各种各样的变量,变量的数据类型由编程者依算法的要求来选择。
4,王小二同学是一个聪明的孩子,他到超市去买东西看到电子计价算账很方便快捷,他就想编程模拟操作一下。
下面是他编的程序。
先请你看,然后我们再解释。
【例2.1】,5,/*/*程序名:
电子计价器*/*作者:
王小二*/*编制时间:
2002年7月7日*/*主要功能:
计算应付款*/*#include/预编译命令voidmain()/主函数/主函数开始floatApplePrice=3.5f;/对象1(苹果单价,3.5元/公斤)floatBananaPrice=4.2f;/对象2(香蕉单价,4.2元/公斤)floatAppleWeight=0.0f;/对象3(苹果重量,初始化为0)floatBananaWeight=0.0f;/对象4(香蕉重量,初始化为0)floatTotal=0.0;/对象5(总钱数,初始化为0)coutAppleWeight;/输入苹果重量coutBananaWeight;/输入香蕉重量Total=ApplePrice*AppleWeight+BananaPrice*BananaWeight;/计算应付款cout应付款Totalendl;/输出应付款/主函数结束,1,2,3,4,5,6,7,8,9,10,11,6,2.1C/C+程序的基本结构,图2.1简单C程序的基本结构,7,在读程序时,首先要看程序说明,因此,这件事十分重要,我们要求学生在编程序时要写出如下说明:
程序名称作者名称编制时间,修改时间程序的主要功能我们强调,没有说明的程序是不合格的程序,8,接下来是以“#”开头的预编译命令。
在这个例子中是将库中的输入输出流文件加至程序中。
其后是以main()为标识的主函数,这是每一个程序都必须有的标识。
本例中main()前的void是说明主函数的数据类型的。
这里void表示空类型,即main()没有函数值。
main()所起的作用仅只是执行一些操作步骤。
9,主函数main()的函数体由一对大括号括起,函数体包含两部分:
前面是声明部分,后面是执行部分。
规定声明在前,执行在后。
不声明者,不得执行。
在例2.1中声明了五个要操作的对象,每个对象都有一个变量名与之对应。
每个变量的取值都是单精度实数(后面详细解释)。
10,/*/*程序名:
电子计价器*/*作者:
王小二*/*编制时间:
2002年7月7日*/*主要功能:
计算应付款*/*#include/预编译命令voidmain()/主函数/主函数开始floatApplePrice=3.5f;/对象1(苹果单价,3.5元/公斤)floatBananaPrice=4.2f;/对象2(香蕉单价,4.2元/公斤)floatAppleWeight=0.0f;/对象3(苹果重量,初始化为0)floatBananaWeight=0.0f;/对象4(香蕉重量,初始化为0)floatTotal=0.0;/对象5(总钱数,初始化为0)coutAppleWeight;/输入苹果重量coutBananaWeight;/输入香蕉重量Total=ApplePrice*AppleWeight+BananaPrice*BananaWeight;/计算应付款cout应付款Totalendl;/输出应付款/主函数结束,1,2,3,4,5,6,7,8,9,10,11,11,对象1是苹果单价,变量名为ApplePrice;对象2是香蕉单价,变量名为BananaPrice;对象4是苹果重量,变量名为AppleWeight;对象4是香蕉重量,变量名为BananaWeight;对象5是总钱数,变量名为Total;,
(1)(5)是五项声明,具体为:
声明部分之后是对五个对象的操作,即执行部分。
12,(6)和(8)为显示至屏幕上的提示信息。
告诉程序的使用者下面准备用键盘输入苹果的重量、香蕉的重量。
这两语句用cout输出流。
(7)和(9)是用cin输入流将键盘敲入的实数分别放至AppleWeight(苹果重量)和BananaWeight(香蕉重量)这两个变量中。
13,(10)计算应付款,这是一条赋值语句,计算购买AppleWeight公斤香蕉应付的钱数,并把算出的数值赋给Total变量。
(11)显示出应付款Total的值例2.1是一个完整的例子,在讲过这个例子之后我们要讲有关变量的几个重要的概念和特点。
14,2.2变量和变量名,变量是相对常量而言的,在程序中经过操作其值允许改变和可以改变的量称之为变量。
变量在使用前必须加以定义(在声明中定义)。
每一个变量要有一个与其它变量不相同的合法的名字。
这个名字的第一个字符必须是字母或下划线,其后的字符只能是字母、数字和下划线,且所用的名字不得与C/C+语言系统所保留的关键字相同(见附录)。
建议:
你在给变量命名时考虑实际含义,以便提高程序的易读性。
比如上例中的苹果单价用ApplePrice。
15,2.3变量的数据类型,依数据类型变量可分为两大类。
第一类是基本数据类型,包括整型、浮点型和字符型;第二类是构造数据类型,包括数组、结构、联合、枚举等。
所谓构造数据类型,是指这种类型的数据,是由若干个基本数据类型的变量按特定的规律组合构造而成的。
计算机中的各种数据是存储在内存空间中的。
不同类型的数据占用大小不同的内存空间。
16,整型。
即整数类型,它又可分为4种:
int整型,占用2字节,数的表示范围是-3276832767unsignedint无符号整型,占用2字节,数的表示范围:
065535longint长整型,占用4字节,数的表示范围:
-21474836482147483647unsignedlongint无符号长整型,占用4字节,数的表示范围:
04294967295,2.3.1基本数据类型有:
17,符号位,占用2字节,数的表示范围是-3276832767,18,整型。
即整数类型,它又可分为4种:
int整型,占用2字节,数的表示范围是-3276832767unsignedint无符号整型,占用2字节,数的表示范围:
065535longint长整型,占用4字节,数的表示范围:
-21474836482147483647unsignedlongint无符号长整型,占用4字节,数的表示范围:
04294967295,2.3.1基本数据类型有:
19,20,整型。
即整数类型,它又可分为4种:
int整型,占用2字节,数的表示范围是-3276832767unsignedint无符号整型,占用2字节,数的表示范围:
065535longint长整型,占用4字节,数的表示范围:
-21474836482147483647unsignedlongint无符号长整型,占用4字节,数的表示范围:
04294967295,2.3.1基本数据类型有:
21,实型。
即实数类型,它又可分为3种:
float浮点型,占用4字节,数的表示范围:
,有效位为7位double双精度型,占用8字节,数的表示范围:
,有效位为15位longdouble长双精度型,占用10字节,数的表示范围:
有效位为19位,22,bool逻辑型,占用1字节,char字符型,占用1字节,23,void空类型type数组type*指针struct结构,2.3.2非基本数据类型指的是由用户自己定义的数据类型,有以下七种,union联合enum枚举class类,24,在主函数main()中的声明部分要对一些变量进行定义,提出合适的精度要求,指出这些变量是什么数据类型的,目的是为变量分配内存单元。
比如定义变量名为a的整型变量,inta=30;系统会根据这个精度的要求,安排2个字节的内存单元存放a变量的整数值。
变量名a是这个内存单元的符号地址。
图2.1表示变量定义与内存地址的关系。
2.4声明(定义)变量的作用,25,变量a变量值内存单元地址XXXX,30,图2.1变量的定义和内存地址的关系,26,在C/C+中赋值符号为“=”赋值表达式的一般格式为=举例PI=3.14159;/读作将表达式的值/3.14159赋给变量PIC=sin(PI/4);/读作将表达式/4的/正弦函数值赋给变量C,2.5赋值符号与变量赋值的特点,27,变量必须先定义再使用(思考为什么?
)在变量定义时就要赋初值,这叫变量的初始化。
对变量的赋值过程是“覆盖”过程,所谓“覆盖”是在变量地址单元中用新值去替换旧值。
读出变量的值,该变量保持不变,相当于拷贝一份出来。
参与表达式运算的所有变量都保持原来的值不变。
变量赋值的特点,28,inta=0,b=0,c=0;/声明a,b,c为整型变量/均初始化为0a=7;/a赋值为7,覆盖了原来的0b=a;/b赋值为a,a中的值覆盖了b中的值/但a中的值不变c=a+b;/将a+b的值赋给c,a+b的值为14/去覆盖c中的0,a与b保持7不变a=a+1;/将a+1的值赋给a,a+1的值为8/覆盖了原来的7,举例说明上述特点,说明:
a=a+1;可简化写作a+;下面来说明这五条语句的执行过程。
29,定义并初始化,变量赋值过程,执行b=a,0,执行c=a+b,0,执行a=7,执行a=a+1,8,0,7,14,7,a的地址单元b的地址单元c的地址单元,30,【练习】新年就要到了,假定你是一个班里的干部,要负责筹备一个晚会,当然少不了要采购一些瓜果花生之类。
现在请你设计一个采购程序,买什么由你定,但不得突破总钱数的限额100元。
编得好的程序将择优放到要出版的讲义中,31,第三章逻辑思维与计算机解题,32,将实际问题抽象为逻辑关系枚举法解题思路关系与关系表达式程序的循环结构与分支结构,学习目标,33,关系运算符与关系表达式人的思维到用计算机语言的表示枚举的概念与思路循环结构分支结构,内容要点,34,计算机强大的逻辑分析功能是由人通过程序赋给它的。
一些逻辑问题必须转换成计算机能够看得懂的数学表达式和一定的程序指令。
这一章我们通过例子来介绍如何将人对问题的思考转换为让计算机能解的数学表达式,同时给出一些通常要用到的程序结构和C/C+语句。
35,清华附中有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。
A说:
不是我。
B说:
是C。
C说:
是D。
D说:
他胡说。
已知三个人说的是真话,一个人说的是假话。
现在要根据这些信息,找出做了好事的人。
【任务3.1】“谁做的好事”,36,为了解这道题,我们需要学习如何通过逻辑思维与判断解这类问题的思路。
37,关系运算符有如下6个=大于等于大于=等于=小于等于小于!
=不等于,3.1关系运算符和关系表达式,为了讲解关系运算符和关系表达式,先请你在机器上建立和运行下列程序。
38,/*/*程序:
3_0.cpp*/*功能:
为讲解关系运算而编*/*编制人:
wuwh*/*时间:
2001年6月27日*/*,39,#includevoidmain()cout2的逻辑值是“2)=2的逻辑值是“=2)“,1为真“endl;cout“3=2的逻辑值是“(3=2)“,0为假“endl;cout“32的逻辑值是“(32)“,0为假“endl;cout“3=2的逻辑值是“(3=2)“,0为假“endl;cout“3!
=2的逻辑值是“(3!
=2)“,1为真“endl;,40,32的逻辑值是1,1为真3=2的逻辑值是1,1为真3=2的逻辑值是0