面向对象的语言
出发点:更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。
特点:
是高级语言。
将客观事物看作具有属性和行为的对象。
通过抽象找出同一类对象的共同属性和行为,形成类。
通过类的继承与多态实现代码重用
面向对象的语言
优点:
使程序能够比较直接地反映问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。
面向过程的程序设计方法
设计思路
自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。
程序结构:
按功能划分为若干个基本模块,形成一个树状结构。
各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。
其模块化实现的具体方法是使用子程序。
面向过程的结构化程序设计方法
优点:
有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
面向过程的结构化程序设计方法
缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件
把数据和处理数据的过程分离为相互独立的实体。
当数据结构改变时,所有相关的处理过程都要进行相应的修改。
每一种相对于老问题的新方法都要带来额外的开销。
图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。
面向对象的方法
将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。
对同类型对象抽象出其共性,形成类。
类通过一个简单的外部接口,与外界发生关系。
对象与对象之间通过消息进行通信。
优点:
程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。
通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。
面向对象的软件工程是面向对象方法在软件工程领域的全面应用。
它包括:
面向对象的分析(OOA)
面向对象的设计(OOD)
面向对象的编程(OOP)
面向对象的测试(OOT)
面向对象的软件维护(OOSM)
计算机的数字系统
计算机采用的是二进制数字系统。
基本符号:0、1
进位原则:逢二进一
优点:
易于物理实现
二进制数运算简单
机器可靠性高
通用性强
缺点:对人来说可读性差
程序设计中常用的数制
不同进位记数制间的转换
——R 进制→十进制
各位数字与它的权相乘,其积相加。
例如:
(11111111.11)2=1×27+1×26+1×25+1×24
+1×23+1×22+1×21+1×20+1×2-1+1×2-2
=(255.75)10
(3506.2)8=3×83+5×82+0×81+6×80+2×8-1
=(1862.25)10
(0.2A)16=2×16-1+10×16-2=(0.1640625)10
不同进位记数制间的转换
——十进制→ R 进制
十进制整数转换成R进制的整数
“除R取余”法,例如:
2 68 余 数
2 34 ┄┄┄┄┄┄┄┄┄┄┄┄ 0 低位
2 17 ┄┄┄┄┄┄┄┄┄┄┄ 0
2 8 ┄┄┄┄┄┄┄┄┄┄┄ 1
2 4 ┄┄┄┄┄┄┄┄┄┄ 0
2 2 ┄┄┄┄┄┄┄┄┄┄ 0
2 1 ┄┄┄┄┄┄┄┄┄ 0
0 ┄┄┄┄┄┄┄┄┄ 1 高位
所以 6810=10001002
不同进位记数制间的转换
——十进制→ R 进制
十进制小数转换成R进制小数
“乘 R 取整”法,例如:
高位
0.3125 ×2 = 0 .625
0.625 ×2 = 1 .25
0.25 ×2 = 0 .5
0.5 ×2 = 1 .0
所以 0.312510 = 0.01012
信息的存储单位
位(bit,b):度量数据的最小单位,表示一位二进制信息。
字节(byte,B):由八位二进制数字组成(1 byte = 8 bit)。
千字节 1 KB = 1024 B
兆字节 1 MB = 1024 K
吉字节 1 GB = 1024 M
二进制数的编码表示:原码
"符号──绝对值表示"的编码
例如:
X=+0101011 [X]原= 0 0101011
X=-0101011 [X]原= 1 0101011
符号位
缺点:
零的表示不惟一:
[+0]原 =000...0 [-0]原 =100...0
进行四则运算时,符号位须单独处
理,且运算规则复杂。
二进制数的编码表示:补码
模数:
n位整数(包括一位符号位),则它的模数为 2n 。 n位小数,小数点前一位为符号位,则它的模数为 2。
补数:
一个数减去另一个数,或者说一个数加上一个负数,等于第一个数加上第二个数的补数。例:8+(-2)=8+10 ( mod 12 )
一个二进制负数可用其模数与真值做
加法 (模减去该数的绝对值) 求得其补
码。
二进制数的编码表示:反码
正数的反码与原码表示相同。
负数的反码与原码有如下关系:
符号位相同(仍用1表示),其余各位取反(0变1,1变0)。例如:
X=-1100110 [X]原 =11100110 [X]反 =10011001
X=+0000000 [X]原 =00000000 [X]反 =00000000
反码中零的表示也不惟一
X=-0000000 [X]原 =10000000 [X]反 =11111111
反码只是求补码的中间码
二进制数的编码表示:补码
负数的补码由该数反码的末位加 1 求得
对补码再求补即得到原码
补码运算规则
符号位可作为数值参加运算
减法运算可转换为加法运算:
加上一个负数等于加上该数的补码
补码运算的结果仍为补码
运算结果溢出:
负数之和得正数,或正数之和得负数
实数的表示方法
计算机中通常采用浮点方式表示实数
一个数 N 用浮点形式表示可以写成:
N=M×2E
E表示2的幂,称为数N的阶码。阶码确定了数N的小数点的位置,其位数影响该浮点数所表示的范围。
M表示数N的全部有效数字,称为数N的尾数。其位数影响数据的精度。
非数值信息的表示
西文字符:
ASCII码:用7位二进制数表示一个字符,最多可以表示27=128个字符
EBCDIC码:用8位二进制数表示一个字符,最多可以表示28=256个字符
汉字:"国家标准信息交换用汉字编码"(GB2312-80标准),简称国标码。是二字节码,用二个七位二进制数编码表示一个汉字。
算术表达式和赋值表达式
核心:表达式一定有数值!
1、算术表达式:+,-,*,/,%
注意:“/” 两边都是整型的话,结果就是一个整型。 3/2的结果就是1.
“/” 如果有一边是小数,那么结果就是小数。 3/2.0的结果就是1.5
“%”符号要注意是余数,最容易算成了除号。%符号两边要求是整数。不是整数就错了。[注意!!!]
2、赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。
3.复合语句一定用{};
4、自加表达式:
自加、自减表达式:假设a=5,++a(是为6), a++(为5);
运行的机理:++a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,
再放到变量a中。 进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了。
口诀:++在前先加后用,++在后先用后加。
5、逗号表达式:
优先级别最低。表达式的数值逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4。
z=(2,3,4)(整个是赋值表达式) 这个时候z的值为4。(有点难度哦!)
z= 2,3,4 (整个是逗号表达式)这个时候z的值为2。
补充:
1、空语句不可以随意执行,会导致逻辑错误。
2、注释是最近几年考试的重点,注释不是C语言,不占运行时间,没有分号。不可以嵌套!
3、强制类型转换:
一定是 (int)a 不是 int(a),注意类型上一定有括号的。
注意(int)(a+b) 和(int)a+b 的区别。前是把a+b转型,后是把a转型再加b。
4、三种取整丢小数的情况:
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
4.不丢小数办法,在相应的格式中加前缀.2保留2位,四舍五入
字符
1)字符数据的合法形式::
'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
一般考试表示单个字符错误的形式:'65' "1"
字符是可以进行算术运算的,记住: '0'-0=48
大写字母和小写字母转换的方法: 'A'+32='a' 相互之间一般是相差32。
2)转义字符:
转义字符分为一般转义字符、八进制转义字符、十六进制转义字符。
一般转义字符:背诵\0、 \n、 \’、 \”、 \\。
八进制转义字符: ‘\141’ 是合法的, 前导的0是不能写的。
十六进制转义字符:’\x6d’ 才是合法的,前导的0不能写,并且x是小写。