博文
第四章 企业文化 第一节 组织文化的构造及形成(2008-08-15 12:35:00)
摘要:一、组织文化的构造
组织文化的构造可分为三个层次(levels)。最上面的是可观察的文化(observable culture),下面为共同的价值(shared values),最下面一层为共同的假设(common assumptions)。可观察的文化,包括了独特的故事、仪式、公司典礼等。共同的价值乃提供成员激励的机制(mechanism)。例如实体象征(material symbols)、共同的意义(shared meanings)。而共同的假设例如有形的语言,肢体语言等。
二、组织文化的创始
组织文化通常开始于创办人。因为组织发展之初,人数尚少,其创办人自然拥有最大的影响力。最早雇用的员工受到耳濡目染。后来陆续进入的成员,或是迎合创始人的想法,或是意见不合的也陆续求去。自然会把自开头起可以获致成功的方式保留下来。于是处处可见创办人的个人影响力。例如星云法师之于佛光山、证严法师之于慈济功德会、施振荣先生之于宏基关系企业、王永庆先生之于台塑关系企业、亨利福特(Henry Ford)之于福特汽车公司、松下幸之助对于松下集团。
三、组织文化的维持
一旦形成组织文化之后,在实务上会建立起一套行为准则供员工遵循。包括:新进人员的甄选标准、考核绩效的评价标准、报酬的制度、教育训练及生涯发展的推行。
1. 新人的甄选
甄选的目的既然在,找出并雇用一些具备专业知识及技能的应征者。可是这些专业条件只是“必须”条件而已。没有这些专业技能固然机会渺小,可是具备了也不一定被录用。沙拉曼(Salaman, G., 1974)发现,最后的决定,端视决策者“认为”哪一位最符合组织文化的要求。不论有意或无意,雇用的人多具有相似于该组织所抱持的价值观或至少是大部分的价值观。
在甄选的过程当中,应征者也会探询组织运作上的大致情况。当知觉到自己的价值观和该组织明显的冲突时,他们也会考虑退出甄选的行列。
所以新人的甄选实为一种双方向的相互了解过程。只要有一方觉得不妥,便可能随时中止面试的继续。透过此一程序,可筛除那些可能动摇或危及组织文化的应征者,使得其文化得以维护下去。
美国大学毕业生若想进入实咸公司(Procter & Gamble),在校园里便要接受两次面谈以及一次一般知识测验。合格的继续接受总公司一对一的面谈三次,以及一次面对主管群体......
C++ 第2章 数据类型与表达式【7】 C++的运算符(2008-08-15 12:16:00)
摘要:
2.5.3 表达式中各类数值型数据间的混合运算
在表达式中常遇到不同类型数据之间进行运算,如
10+′a′+1.5-8765.1234*′b′
在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图2.7所示。
假设已指定i为整型变量,f为float变量,d为double型变量,e为long型,有下面表达式:
10+′a′+i*f-d/e
运算次序为: ①进行10+′a′的运算,先将′a′转换成整数97,运算结果为107。②进行i*f的运算。先将i与f都转换成double型,运算结果为double型。③整数107与i*f的积相加。先将整数107转换成双精度数(小数点后加若干个0,即107.000…00),结果为double型。④将变量e转换成double型,d/e结果为double型。⑤将10+′a′+i*f的结果与d/e的商相减,结果为double型。
上述的类型转换是由系统自动进行的。
2.5.4 自增和自减运算符
在C和C++中,常在表达式中使用自增(++)和自减(--)运算符,他们的作用是使变量的值增1或减1,如
++i(在使用i之前,先使i的值加1,如果i的原值为3,则执行j=++i后,j的值为4)
--i (在使用i之前,先使i的值减1,如果i的原值为3,则执行j=--i后,j的值为2)
i++ (在使用i之后,使i的值加1,如果i的原值为3,则执行j=i++后,j的值为3,然后i变为4)
i--(在使用i之后,使i的值减1,如果i的原值为3,则执行j=i--后,j的值为3,然后i变为2)
++i是先执行i=i+1后,再使用i的值;而i++是先使用i的值后,再执行i=i+1。
正确地使用++和--,可以使程序简洁、清晰、高效。
请注意:
(1) 自增运算符(++)和自减运算符(--)只能用于变量,而不能用于常量或表达式。
(2) ++和--的结合方向是“自右至左”,见附录B。
(3) 自增运算符(++)和自减运算符(--)使用十分灵活,但在很多情况下可能出现歧义性,产生“意想不到”的副作用。
(4) 自增(减)运算符在C++程序中是经常......
C++ 第2章 数据类型与表达式【6】 C++的运算符(2008-08-15 12:12:00)
摘要:
C++的运算符十分丰富,使得C++的运算十分灵活方便。例如把赋值号(=)也作为运算符处理,这样,a=b=c=4就是合法的表达式,这是与其他语言不同的。C++提供了以下运算符:
(1) 算术运算符
+(加)-(减) *(乘) /(除) %(整除求余)++(自加) --(自减)
(2) 关系运算符
>(大于)<(小于) ==(等于)>=(大于或等于)<=(小于或等于)!=(不等于)
(3) 逻辑运算符
&&(逻辑与) ||(逻辑或) !(逻辑非)
(4) 位运算符
<<(按位左移) >>(按位右移) &(按位与) |(按位或) ∧(按位异或) ~(按位取反)
(5) 赋值运算符 (=及其扩展赋值运算符)
(6) 条件运算符 (?:)
(7) 逗号运算符 (,)
(8) 指针运算符 (*)
(9) 引用运算符和地址运算符 (&)
(10) 求字节数运算符(sizeof)
(11) 强制类型转换运算符( (类型) 或类型( ))
(12) 成员运算符 (.)
(13) 指向成员的运算符 (->)
(14) 下标运算符 ([ ])
(15) 其他 (如函数调用运算符())
在本章中主要介绍算术运算符与算术表达式,赋值运算符与赋值表达式,逗号运算符与逗号表达式,其他运算符将在以后各章中陆续介绍。
2.5 算术运算符与算术表达式
2.5.1 基本的算术运算符
+(加法运算符,或正值运算符。如3+5,+3)
-(减法运算符,或负值运算符。如5-2,-3)
* (乘法运算符。如3*5)
/(除法运算符。如5/3)
%(模运算符,或称求余运算符,%两侧均应为整型数据,如7%4的值为3)。
需要说明,两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定的。例如,-......
C++ 第2章 数据类型与表达式【5】 变量(2008-08-15 12:11:00)
摘要:
为变量赋初值
允许在定义变量时对它赋予一个初值,这称为变量初始化。初值可以是常量,也可以是一个有确定值的表达式。如
float a,b=5.78*3.5,c=2*sin(2.0);
表示定义了a,b,c为单精度浮点型变量,对b初始化为5.78*3, 对c初始化为2*sin(2.0),在编译连接后,从标准函数库得到正弦函数sin(2.0)的值,因此变量c有确定的初值。变量a未初始化。
如果对变量未赋初值,则该变量的初值是一个不可预测的值,即该存储单元中当时的内容是不知道的。例如,若未对a和b赋值,执行输出语句
cout<<a<<″ ″<<b<<″ ″<<c<<endl;
输出结果可能为
1.48544e-38 15 1.81858 (各次运行情况可能不同)
初始化不是在编译阶段完成的(只有在第4章中介绍的静态存储变量和外部变量的初始化是在编译阶段完成的),而是在程序运行时执行本函数时赋予初值的,相当于执行一个赋值语句。例如,
int a=3;
相当于以下两个语句 :
int a; // 指定a为整型变量
a=3; // 赋值语句,将3赋给a
对多个变量赋予同一初值,必须分别指定,不能写成
float a=b=c=4.5;
而应写成
float a=4.5,b=4.5,c=4.5;
或
float a,b,c=4.5;
a=b=c;
2.3.5 常变量
在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量(constant......
C++ 第2章 数据类型与表达式【4】 变量(2008-08-15 12:09:00)
摘要:
2.3.1 什么是变量
其实在前面的例子中已经多次用到了变量。在程序运行期间其值可以改变的量称为变量。一个变量应该有一个名字,并在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意区分变量名和变量值这两个不同的概念,见图2.6。
2.3.2 变量名规则
先介绍标识符的概念。和其他高级语言一样,用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列称为标识符(identifier)。简单地说,标识符就是一个名字。变量名是标识符的一种,变量的名字必须遵循标识符的命名规则。
C++规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。下面列出的是合法的标识符,也是合法的变量名:
sum, average, total, day, month, Student_name, tan, BASIC, li_ling
下面是不合法的标识符和变量名:
M.D.John, $123, #33, 3G64, Ling li, C++, Zhang-ling, U.S.A.
注意,在C++中,大写字母和小写字母被认为是两个不同的字符。因此,sum和SUM是两个不同的变量名。一般地,变量名用小写字母表示,与人们日常习惯一致,以增加可读性。应注意变量名不能与C++的关键字、系统函数名和类名相同。在国外软件开发工作中,常习惯在变量前面加一个字母以表示该变量的类型,如iCount表示这是一个整型变量,cSex表示这是一个字符型变量。
C++没有规定标识符的长度(字符个数),但各个具体的C编译系统都有自己的规定。有的系统取32个字符,超过的字符不被识别。
2.3.3 定义变量
在C++语言中,要求对所有用到的变量作强制定义,也就是必须“先定义,后使用”,如例2.2和例2.3那样。定义变量的一般形式是
变量类型 变量名表列;
变量名表列指的是一个或多个变量名的序列。如
float a,b,c,d,e;
定义a,b,c,d,e为单精度型变量,注意各变量间以逗号分隔......
.NET Framework 3.5 SP1正式发布(2008-08-14 11:27:00)
摘要:.NET Framework 3.5 SP1改进: 1.ADO.NET Dynamic Data:允许我们快速构建一个可定制的、数据驱动的应用程序;2.ASP.NET AJAX改进:ASP.NET AJAX将会支持浏览器的历史以及在脚本加载方面的改进;3.ADO.NET Data Services;4.ADO.NET Entity Framework……
期待已久的.NET Framework 3.5 SP1和Visual Studio 2008 SP1终于发布,增加了非常多的新特性。
.NET Framework 3.5 SP1改进:
1.ADO.NET Dynamic Data:允许我们快速构建一个可定制的、数据驱动的应用程序。
2.ASP.NET AJAX改进:ASP.NET AJAX将会支持浏览器的历史以及在脚本加载方面的改进。
3.ADO.NET Data Services:ADO.NET Data Services提供了一种新的基于REST风格的数据服务。
4.ADO.NET Entity Framework:微软下一代的数据访问实体框架。
Visual Studio 2008 SP1改进:
1.WPF和可视化设计器的改进,在不改变任何代码的前提下,基于WPF的应用的性能会提高20-45%。
2.对Visual Studio Team System 2008的改进,通过更加清晰的“Add to Source Control(添加到源代码控制)”改进了用户体验,源代码控制浏览器对拖拽提供了支持,一个更容易使用的“Workspace(工作空间)”对话框为文件夹的映射提供更好的支持。
3.TFS支持SQL Server 2008。
4.ADO.NET实体框架设计器
更多新的特性,大家可以访问这里。
下载地址一览表:
Microsoft Visual Studio 2008 Service Pack 1 (iso)
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=27673c47-b3b5-4c67-bd99-84e525b5ce61
Visual Studio 2008 Tea......
献给汇编语言初学者[转](2008-08-14 04:39:00)
摘要: 汇编语言到底怎么学习?汇编语言难学吗?学习汇编语言要什么基础吗?汇编语言的学习从哪里入手?最好是看什么样的入门书籍?(这里以80X60汇编为基础)这些都是汇编语言初学者的普遍疑问,也都是普遍想知道的问题。
引用:
计算机程序设计语言分为三个层次:机器语言、汇编语言和高级语言。
机器语言是用0和1的二进制串表示机器指令代码的语言,不同的CPU,机器语言是不同的。
由于机器语言指令很难记,程序员用机器语言只在计算机诞生的早期出现过。汇编语言用一些助记符来代替机器语言指令代码,与机器语言指令代码是一一对应的,因此也是面向机器的,助记符是帮助人们记忆的符号,方便程序员进行编程。
汇编语言程序设计一般用于对硬件的控制,编程效率较低,但设计出的程序工作效率较高。高级语言接近自然语言,容易学习,编程效率较高。
汇编语言到底怎么学习?汇编语言难学吗?学习汇编语言要什么基础吗?汇编语言的学习从哪里入手?最好是看什么样的入门书籍?(这里以80X60汇编为基础)
这些都是汇编语言初学者的普遍疑问,也都是普遍想知道的问题。有的初学者带着这些问题,利用丰富的网络资源进行搜索,也许由于网络上大部分都是高手,或者本来就是有相当基础的,所以大部分也说不出很明确的答案。为什么这么说了,因为我在刚进行学习的时候,也是在网络上铺天盖地的搜索答案,都没有找到理想的,还是一片茫然。
我写这篇文章的目的(以后会把自己的学习经验和方法慢慢都写出来,可能会当作日记或者“教程”来发布到自己的博客上,说是教程有点托大了,呵呵!)是想以自己的亲身体验来帮助初学者,同时也为自己的学习留个笔记。
其实网络上有很多这方面的高手和专业人士,他们写的文章相当好,但是这些东西对于高手和已经入门的朋友很有用,对于从来没接触过的朋友不太适合,看不太明白。我两年前刚开始学习的时候也是什么基础都没有,因为我并不是计算机专业的,可以说我的专业和计算机风牛马不相及。那时候来学习这些东西,一个是因为对计算机比较感兴趣,玩电脑也有10多年了(也只能说是玩,玩游戏倒是比较可以的);另外一个原因说出来有点不好意思了,由于有一段时间喜欢买彩票,但是很多比较好点的彩票软件都是收费软件,要注册的,网络上也找不到破解版的,为了免费用软件,不得不去学习破解。(现在想起来当时的想法真垃圾)学破解的基础就是汇编语言,但是,为了尊重软件制......
C++ 第2章 数据类型与表达式【3】 常量(2008-08-14 03:37:00)
摘要:
常量的值是不能改变的,一般从其字面形式即可判别是否为常量。常量包括两大类,即数值型常量(即常数)和字符型常量。如12,0,-3为整型常量,4.6,-1.23为实型常量,包含在两个单撇号之间的字符为字符常量,如′a′,′x′。这种从字面形式即可识别的常量称为“字面常量”或“直接常量”。
(1) 一个整数,如果其值在-32768~+32767范围内,认为它是short int型,它可以赋值给short int型、int型和long int型变量。
(2) 一个整数,如果其值超过了上述范围,而在-2147483648~+2147483647范围内,则认为它是long int型,可以将它赋值给一个int或long int型变量。
(3) 如果某一计算机系统的C++版本(例如Visual C++)确定int与long int型数据在内存中占据的长度相同,则它们能够表示的数值的范围相同。因此,一个int型的常量也同时是一个long int型常量,可以赋给int型或long int型变量。
(4) 常量无unsigned型。但一个非负值的整数可以赋值给unsigned整型变量,只要它的范围不超过变量的取值范围即可。
2.2.2 数值常量
数值常量就是通常所说的常数。在C++中,数值常量是区分类型的,从字面形式即可识别其类型。
1. 整型常量(整数)的类型
在上一节中已知道: 整型数据可分为int,short int,long int以及unsigned int,unsigned short,unsigned long等类别。整型常量也分为以上类别。为什么将数值常量区分为不同的类别呢?因为在进行赋值或函数的参数虚实结合时要求数据类型匹配。
那么,一个整型常量怎样从字面上区分为以上的类别呢?
一个整型常量可以用3种不同的方式表示:
(1) 十进制整数。如1357,-432,0等。在一个整型常量后面加一个字母l或L,则认为是long int型常量。例如123L,421L,0L等,这往往用于函数调用中。如果函数的形参为long int,则要求实参也为long int型,此时用123作实参不行,而要用123L作实参。
(2) 八进制整数。在常数的开头......
C++ 第2章 数据类型与表达式【2】(2008-08-14 03:35:00)
摘要:
(3) 在整型符号int和字符型符号char的前面,可以加修饰符signed(表示“有符号”)或unsigned(表示“无符号”)。如果指定为signed,则数值以补码形式存放,存储单元中的最高位(bit)用来表示数值的符号。如果指定为unsigned,则数值没有符号,全部二进制位都用来表示数值本身。例如短整型数据占两个字节 ,见图2.2。
有符号时,能存储的最大值为215-1,即32767,最小值为-32768。无符号时,能存储的最大值为216-1,即65535,最小值为0。有些数据是没有负值的,可以使用unsigned,它存储正数的范围比用signed时要大一倍。
(4) 浮点型(又称实型)数据分为单精度(float)、双精度(double)和长双精度(long double)3种,在Visual C++ 6.0中,对float提供6位有效数字,对double提供15位有效数字,并且float和double的数值范围不同。对float分配4个字节,对double和long double分配8个字节。
(5) 表中类型标识符一栏中,方括号[ ]包含的部分可以省写,如short和short int等效,unsigned int和unsigned等效。
......
C++ 第2章 数据类型与表达式(2008-08-14 03:32:00)
摘要:
2.1 C++的数据类型
计算机处理的对象是数据,而数据是以某种特定的形式存在的(例如整数、浮点数、字符等形式)。不同的数据之间往往还存在某些联系(例如由若干个整数组成一个整数数组)。数据结构指的是数据的组织形式。例如,数组就是一种数据结构。不同的计算机语言所允许使用的数据结构是不同的。处理同一类问题,如果数据结构不同,算法也会不同。例如,对10个整数排序和对包含10个元素的整型数组排序的算法是不同的。
C++可以使用的数据类型如下:
数据类型 基本类型 整型 短整型(short int)
整型(int)
长整型(long int)
字符型(char)
浮点型 单精度型(float)
双精度型(double)
长双精度型(long double)
布尔型(bool)
构造类型 枚举类型(enum)
数组类型
结构体类型(struct)
共用体类型(union)
类类型(class)
指针类型
引用类型
空类型(void)
布尔型就是逻辑型,空类型就是无值型。
C++的数据包括常量与变量,常量与变量都具有类型。由以上这些数据类型还可以构成更复杂的数据结构。例如利用指针和结构体类型可以构成表、树、栈等复杂的数据结构。
C++并没有统一规定各类数据的精度、数值范围和在内存中所占的字节数,各C++编译系统根据自己的情况作出安排。书中表2.1列出了Visual C++数值型和字符型数据的情况。
说明:
(1) 整型数据分为长整型(long int)、一般整型(int)和短整型(short int)。在int前面加long和short分别表示长整型和短整型。
(2) 整型数据的存储方式为按二进制数形式存储,例如十进制整数85的二进制形式为1010101,则在内存中的存储形式如图2.1所示。
......