happypzl

2007年10月7日

安装bugzilla,要先获得一些软件的支持,可以通过网上下载获得。
一:下载相关软件:
1。ActivePerl-5.6.1(最好不要用最新版本,否则在安装相应模块时会有些小问题, 这个版本我试过,可以用,)下载地址:[url]http://www.activestate.com/store/download.aspx? prdGUID=81fbce82-6bd5-49bc-a915-08d58c2648ca[/url],有三种格式,我选择的是.tar.gz。
2。mysql : (rpm格式)下载地址:[url]www.rpmfind.net[/url]或者[url]www.mysql.org[/url]
   下载清单:MySQL-client-4.0.21-0.i386.rpm  MySQL-devel-4.0.21-0.i386.rpm  MySQL-server-   4.0.21-0.i386.rpm
3。bugzilla (bugzilla-2.18rc2.tar.gz)
4。web服务器,这里用apache (httpd-2.0.55.tar.gz)
5。perlmodules(模块) 下载地址:[url]www.cpan.org[/url](可以直接用模块名搜索,也可以以其他方式)
二:安装步骤。
1。安装mysql。
# cd /
# mkdir mysql
# cd mysql
(将所需文件放在此目录下,可通过挂载光驱输入,也可利用scrt上传,至于scrt使用方法,不作讲述)
# rpm -ivh MySQL-server-4.0.21-0.i386.rpm
# rpm -ivh MySQL-client-4.0.21-0.i386.rpm
# rpm -ivh MySQL-devel-4.0.21-0.i386.rpm
2.安装apache
# cd /
# mkdir apache
# cd apache
(将安装文件放在此目录下)
# tar zvxf http-2.2.0.tar.gz
# ./configure
# make
# make insatll
# vi /etc/httpd/conf/httpd.conf(修改ServerName这行后面部分为本机IP地址,如:
     ServerName 192.168.1.65:80)
# /usr/sbin/apachectl start (启动acpache)
3.安装bugzilla(在根目录下新建bugzilla目录)
# cd bugzilla
# tar zvxf bugzilla-2.18rc2.tar.gz
# mv bugzilla-2.18rc2 /var/www/html/bugzilla(将bugzilla-2.18rc2改名放在apache默认安装目录下
4.安装perl.(在根目录下新建perl目录)
# cd perl
# rpm -ivh ActivePerl-5.6.1.638-i686-linux.rpm
5.安装perl模块
(1)模块Appconfig
# cd perl
# tar zxvf Appconfig-1.56.tar.gz
# cd Appconfig-1.56
# perl Makefile.PL
# make
# makeinstall
(2)安装CGI
(3)TimeDate
(4)DBI
(5)DBD::mysql(此模块一定要在DBI之后安装)
(6)Template-toolkit
6.进入bugzilla目录,修改localconfig
cd    /var/www/html/bugzilla
./checksetup.pl(检查模块的安装情况)
vi    localconfig
把$db_pass=’   ’;中填入一个数据库的密码(自己一定要记住,如这里输入xxx)
7、 进入mysql 中创建我们自己的数据库
#cd    /var/www/html/bugzilla
Mysql>mysql –u root
Mysql>create database bugs;
Mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO [email=bugs@localhost]bugs@localhost[/email]
IDENTIFIED BY 'xxx';(此处填我们在上一步操作中的密码)
mysql> FLUSH PRIVILEGES;
mysql> quit;
8、 输入管理员的邮箱、用户名、密码
./checksetup.pl
9、 修改bugzilla的权限、属主和属组
1、cd /var/www/html
2、chmod 777 bugzilla
3、chown –R apache.apache bugzilla
10、 配置apache
(1)、vi /etc/httpd/conf/httpd.conf
(2)、去除这行的注释增加.pl:AddHandler cgi-scrīpt  .cgi  .pl
(3)、在这行增加index.cgi   DirectoryIndex  index.cgi  index.html  index.html.var
(4)、在未尾增加以下几行
<Directory “/var/www/html/bugzilla”)
Options +Indexes +ExecCGI
AllowOverride Limit
</Directory>
(5)、进入bugzilla页面
[url]http://192.168.1.65/bugzilla[/url]
posted @ 2007-10-07 22:05 蓝天 阅读(421) | 评论 (0)编辑 收藏

2007年9月19日

什么是Bugzilla?
Bugzilla是一个臭虫的数据库。它让用户报告软件的臭虫而且把它们转给合适的开发者。开发者能使用bugzilla保持一
个要做的事情的优先表,还有时间表和跟踪相关性。

不是所有的"bugs"都是臭虫。一些数据库中的内容是作为增强的请求(RFE)。一个RFE是一个严重级别字段被设为
"enhancement"的"臭虫".人们常说"bug",实际上意思是Bugzilla中的记录,所以RFEs经常被称作bug。根据客户的加强
的请求来安排你的工作,Bugzilla会帮助你跟踪它们而且允许其它人看到你会作些什么.如果其它人看到了你的计划,他
们就会避免重复你的工作而且可能帮助你解决或反馈给你。

一个臭虫的解剖

臭虫和RFEs由许多字段组成。下面有一些介绍。
Component
Mozilla应用由许多不同的部分组成如网络库函数,java脚本和版面设计引擎。
Status Whiteboard
用来写简短的bug标注
Keyword
用来存储一些关键字。
Target Milestone
由负责这个bug的人来设置
Dependency
如果一个bug在另一个bug修复之后才能被修复,就是相关性。
Attachment
增加一个附件上去会非常有用。测试事件、屏幕显示和log记录等可以有助于查明bug以及帮助开发者重新产生它。如果你
修复了bug,要附带bug的补丁程序上去。由于它让他人很容易的找到和测试,所以这是较好的方法来跟踪补丁。

一个臭虫的存活周期
对头一次被举报bug作些什么由是谁报告的决定。新的Bugzilla帐户由缺省建立而并没被证实-这就是指QA部门需要在把
它转变成一个"新"bug之前找到并证实它的存在。如果你已经使用Bugzilla一段时间,相信你知道如何创建一个"新
"bug。当一个bug变成"新",开发者可能会研究这个bug,或者接受或者把它转给别人。
如果这个BUG一周内一直没被处理过。Bugzilla就会一直用email骚扰它的属主,直到采取行动。无论何时一个bug被重新
指定或内容变化,它的状态被设置回"new"。"new"状态表示这个bug被重新加到一个特殊的开发者的工作中,并不是这个
bug被重新报告了。
那些有权限的人可以修改一个bug的所有的记录(缺省,你只能修改一些)。每当你修改了一个bug,你最好加一些评论来解
释你正在做些什么和你为什么做。每当你作了些事,如修改了内容、重新分配了bug、建立附件、增加了相关性和对某些
人作了备份,应作个标注。每当一些人修改了bug报告或加了一个评论,他们将会被加到CC列表中,bug报告中的改变会显
示在要发给属主、写报告者和CC列表中的人的电子邮件中。

当一个bug被修复它会被标记上RESOLVED并且会有以下的决定。
FIXED
这个bug的修补已经被写到数据库中而且被测试过的人标记成FIXED
INVALID
描述的的问题不是一个bug,或不是Mozilla的bug.
WONTFIX
描述的的问题将永远不会被修复。
LATER
描述的的问题将不会在产品的这个版本中解决
REMIND
描述的的问题可能不会在产品的这个版本中解决,但是也许也会。
DUPLICATE
描述的的问题是一个存在的bug的复件。标记bug为复件需要复件bug的bug号码而且将会加一个评论和bug号码到bug复件
的描述字段中去。
WORKSFORME
所有要重新产生这个bug的企图是无效的。如果有更多的信息出现,请重新分配这个bug,而现在只把它归档。
MOVED
这个bug是对于一个特殊的以Mozilla为基础的版本,而不影响mozilla.org的代码。这个bug被转移到影响Mozilla起源的
发布者的数据库中去。

QA查找解决了问题的bugs并且确保已经采取了正确的手段。如果他们同意,这个bug被标记成VERIFIED.在产品出来之前
bugs保持这个状态,之后被标记成CLOSED。Bugs可以又回来而变成REOPENED。
当改变其他人的bugs时要注意。通常最好是把你打算改变的做个标记,作为一个注释让bug的属主看到这个而自己去修
改。例如,如果你认为一个bug是另一个的重复,在Additional Comments部分作个标注。
如果你对一些人的bugs作了大量有用的注释,他们可能相信你的判断力从而要你去自己直接修改它们,但是除非他们愿
意,你最好小心而且只作注释。

Bugzilla是开放源代码的软件。它的源代码遵循Mozilla Public License.




如果你的机器已经有了MySQL和MySQL-related perl packages,那么安装起来是非常直接的.如果还没有安装这些基本的
软件,那么你需要做的第一件事情就是安装它们.后面的事情就是建立一个web服务器来运行cgi脚本.
如果想要bugzilla正确运行,你需要安装以下软件:
1.MySQL服务器和客户端软件.
2.Perl(5.004或更高版本).
3.DBI perl 模块.
4.Data::Dumper perl 模块.
5.MySQL related perl module collection.
6.TimeDate perl module collection.
7.GD perl 模块(1.18或更高版本)
8.Chart::Base perl 模块(0.99或更高版本).
9.你选择的web服务器软件
1.1下载和建立MySQL数据库.
大部分的linux版本缺省都安装有MySQL数据库,这里就不多讲了.但是如果你需要mysqld接收大64K长的包,在启动mysqld
时候加上"-O max_allowed_packet=1M".
1.2Perl(5.004或更高版本)
一样,不多讲了.
1.3DBI perl 模块
DBI模块是由其它数据库相关Perl模块使用的一般性Perl模块.下载了这个模块以后.
1.解包到一个目录中.
2.输入以下命令:
perl Makefile.PL
make
make test
make install
对于绝大多数的perl模块安装都是这样,如果没有错误,那么再往下.
1.4Data::Dumper perl 模块
这个模块为Perl提供数据结构一致性.下载后安装过程同上.
1.5MySQL related perl module collection
安装同上,注意只选MySQL,不选mSQL.
1.6TimeDate perl module collection
安装同上.
1.7GD perl 模块(1.18或更高版本)
下载GD模块的同时别忘了下载gd-1.8.3,解包后把GD包中的path_gd.pl拷备到gd-1.8.3目录中,并执行perl
path_gd.pl,然后先在gd-1.8.3中编译
#./configure --enable-jpeg --enable-freetype --enable-xpm
# make
# make install
然后再到GD的目录中,象以上编译Perl模块一样的过程.
1.8Chart::Base perl 模块(0.99或更高版本)
下载后DBI模块编译过程一样.
1.9HTTP服务器程序设置.
把bugzilla的程序解包到一个目录中,在HTTP服务器设置中,的srm.conf中加入ScriptAlias /bugzilla
"/home/httpd/bugzilla/",在access.conf中,此bugzilla目录应该有Options ExecCGI选项.
2.安装Bugzilla文件
你应该把bugzilla文件解包到一个可以让缺省web服务器的属主(可能是nobody)可以写的目录中.
3.建立MySQL数据库
Bugzilla经常以用户"bugs"登录,而且没有密码,MySQL的权限维护是一个复杂的事情,我把它们关掉了,如果你也想这么
做,用下面的命令(其中的HOSTNAME用运行mysql的机器名来代替)
#mysql mysql
DELETE FROM host;
DELETE FROM user;
INSERT INTO host VALUES ('localhost','%','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO host VALUES (HOSTNAME,'%','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES
('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES (HOSTNAME,'','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES
(HOSTNAME,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES
('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

"Y"的数量和版本有关,3.22.23b的版本没问题.运行完后,运行mysqladmin reload来重新装载许可列表.下面你就可以运
行神奇的checksetup.pl脚本,非常感想Holger
Schurig 写了这个脚本,它会合理的设置权限,并建立"data"目录,第一次运行时它会建立一个叫"localconfig"的文件,
你可能要检查并修改它.重新运行这个脚本它就会真正的工作了.如果没有成功建立数据库,你可能要手工创建数据库,并用
bugzilla目录下面的mysql目录下的脚本建立表了.(可能会有一点小问题,相信如果你懂一些SQL语句,会很容易解决的)
如果这些都成功了,那么你就可以用web浏览了.你要先注册(最先的11个用户为特殊用户,有改参数,添加项目等功能),输
入你的e-mail地址,它会调用sendmail(这就是说你需要装有sendmail,要不然你就要改程序了)把你的密码发到你的信箱
中,以后你就用这个密码来登录.还有,这个for mysql的bugzilla可是从redhat下载的,你如果要用,还要自己改一改它的
界面哟,关于mysql的安全你也要考虑哟,这里我就不讲了.
以上测试是在Turbolinux workstation 6.1上完成的。心动不如行动,下面是下载的网址.


Appendix A. Required Software Download Links

All of these sites are current as of February 17, 1999. Hopefully
they'll stay current for a while.

MySQL: http://www.mysql.org

Perl: http://www.perl.org

CPAN: http://www.cpan.org

DBI Perl module: ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/DBI/

Data::Dumper module:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Data/

MySQL related Perl modules:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Mysql/

TimeDate Perl module collection:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Date/


GD Perl module: ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/GD/

Chart::Base module:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Chart/



RedHat Bugzilla:ftp://people.redhat.com/dkl/
posted @ 2007-09-19 21:30 蓝天 阅读(387) | 评论 (0)编辑 收藏

2007年7月27日

字符串常量

   字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program: , "$12.5" 等都是合法的字符串常量。字符串常量和字符常量是不同的量。它们之间主要有以下区别:

   1.字符常量由单引号括起来,字符串常量由双引号括起来。

   2.字符常量只能是单个字符,字符串常量则可以含一个或多个字符。

   3.可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量。

   这是与BASIC 语言不同的。但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。
4.字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0"(ASCII码为0)。这是字符串结束的标志。例如,字符串 "C program"在内存中所占的字节为:C program\0。字符常量'a'和字符串常量"a"虽然都只有一个字符,但在内存中的情况是不同的。

   'a'在内存中占一个字节,可表示为:a
   "a"在内存中占二个字节,可表示为:a\0符号常量

   符号常量

   在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:

#define 标识符 常量

   其中#define也是一条预处理命令(预处理命令都?quot;#"开头),称为宏定义命令(在第九章预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。

#define PI 3.14159
void main(){
  float s,r;
  r=5;
  s=PI*r*r;
  printf("s=%f\n",s);
}


   由宏定义命令定义PI 为3.14159 s,r定义为实数 5->r PI*r*r->s

   显示程序结果 float s,r; r=5; s=PI*r*r; 本程序在主函数之前由宏定义命令定义PI 为3.14159,在程序中即以该值代替PI 。s=PI*r*r等效于s=3.14159*r*r。应该注意的是,符号常量不是变量,它所代表的值在整个作用域内不能再改变。也就是说,在程序中,不能再用赋值语句对它重新赋值。

   变量的初值和类型转换

   变量赋初值

   在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法,在定义时赋以初值的方法,这种方法称为初始化。在变量说明中赋初值的一般形式为:

   类型说明符 变量1= 值1,变量2= 值2,……; 例如:

int a=b=c=5;
float x=3.2,y=3f,z=0.75;
char ch1='K',ch2='P';

   应注意,在说明中不允许连续赋值,如a=b=c=5是不合法的。

void main(){
int a=3,b,c=5;
b=a+c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
a<---3,b<--0,c<---5
b<--a+c



   显示程序运行结果

   变量类型的转换

   变量的数据类型是可以转换的。转换的方法有两种, 一种是自动转换,一种是强制转换。

   自动转换

   自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:

   1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。

   2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。

   3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。

   4.char型和short型参与运算时,必须先转换成int型。

   5.在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 丢失的部分按四舍五入向前舍入。下面程序段表示了类型自动转换的规则。

void main(){
float PI=3.14159;
int s,r=5;
s=r*r*PI;
printf("s=%d\n",s);
} PI<--3.14159
s<--0,r<--5
s<--r*r*PI


   显示程序运行结果:

float PI=3.14159;
int s,r=5;
s=r*r*PI;



   本例程序中,PI为实型;s,r为整型。在执行s=r*r*PI语句时,r和PI都转换成double型计算,结果也为double型。但由于s为整型,故赋值结果仍为整型,舍去了小数部分。

   强制类型转换

   强制类型转换是通过类型转换运算来实现的。其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (float) a 把a转换为实型(int)(x+y) 把x+y的结果转换为整型在使用强制转换时应注意以下问题:

   1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。

   2.无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

main(){
float f=5.75;
printf("(int)f=%d,f=%f\n",(int)f,f);
}
f<--5.75


   将float f强制转换成int f float f=5.75;printf("(int)f=%d,f=%f\n",(int)f,f); 本例表明,f虽强制转为int型,但只在运算中起作用, 是临时的,而f本身的类型并不改变。因此,(int)f的值为 5(删去了小数)而f的值仍为5.75。
http://edu.100down.com/it/program/C/index.html

posted @ 2007-07-27 23:49 蓝天 阅读(225) | 评论 (0)编辑 收藏
 
C语言基础(二)数据运算及类型转换规则
 
 

21 运算符和表达式

C语言中有丰富的运算符:赋值运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符等

表达式是由运算对象和运算符组合起来的式子,且必须符合C语言的语法规则

表达式求值时应根据运算符的优先级和结合性

211赋值运算符及赋值表达式

赋值运算符:=

赋值表达式:变量 = 表达式 [由赋值运算符连接的式子,把右边表达式的值赋给左边的变量]

例如:

   int i, j, k;

    i= 0;

    j =i +1;

说明:赋值运算符具有右结合性,表达式可以连续赋值。

例如:i = j = k 就等价于 j = k; i = j;这两条语句。

212算术运算符及算术表达式

C语言提供了如下算术运算符:加(+)、减或取负(-)、乘(*)、除(/)、取模或求余(%)、自增(++)和自减(――)7种。

算术表达式:由算术运算符连接起来的表达式称为算术表达式。

其中加(+)、减或取负(-)、乘(*)三种运算和一般数学中的运算规则一样;

除(/):当除数和被除数都是整型数据时,其结果只能是整型。

例如:7/2=3;而不是 7/2=3.5;[只有当除数或被除数中有一个是实型时,其结果才是实型]

取模或求余(%):只能对整型数据进行运算。

自增(++)和自减(――):

1)只能对简单变量类型进行运算,常量和表达式不能做这两种运算。

如5――,(xy)++都是不合法的;

2)既可以出现在变量的右边,又可以 出现在变量的左边。必须注意它们的差别:

x++:在使用变量x之后再将x的值加1;

++x:在使用变量x之前先将x的值加1;

x――:在使用变量x之后再将x的值减1;

――x:在使用变量x之前先将x的值减1;

例如:int x = 1,y;

      y = ++x;

      printf(“\nx=%d,y=%d”,x,y);

运行结果是:

    x = 2,y = 2

213关系运算符及关系表达式

C语言中有如下关系运算符:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(= =)、不等于(!=

关系表达式:用关系运算连接几来的式子。

说明:

1)关系运算就是通过对操作数的值进行比较来判定是否符合条件,所以,关系表达式的结果只有两种即“真”和“假”,其中“真”用“1”表示、“假”用“0”表示。

  2)一般字符的比较依据为字符的ASCII码。

例如:int a=(>); 结果:a=

214逻辑运算符及逻辑表达式

C语言提供了3种逻辑运算符:逻辑与(&&)、逻辑或(||)、逻辑非(!)。

逻辑表达式:用逻辑运算符连接起来的式子。

说明:

1)逻辑与(&&)、逻辑或(||)是双目运算,具有左结合性,逻辑非(!)是单目运算符,具有右结合性。

2)在逻辑表达式中,是根据形式逻辑的原理,通过逻辑运算符来对操作数的“真”(即非0值)“假”(即0值)值进行组合,其结果仍为逻辑“真”或“假”。

3)逻辑运算符的求值规则:

  i      j         i&&j            i|| j            !i

 非0  非0    1      1      0

 非0  0     0      1      0

 0   非0    0      1      1

 0   0     0      0      1

 

    例如:int m = 2, n = 3;

m&&n的值为1;

m | | n的值为1

m的值为0。

215条件运算符及条件表达式

条件运算符:?:

它是C语言中唯一的一个三目运算符,用来对条件求值,具有右结合性。

条件表达式:用条件运算符连接起来的式子。

其形式如下:

   表达式1?表达式2:表达式3

运算规则:先计算表达式1,如果结果为真,则计算表达式2,并把表达式2的值作为整个表达式的值。否则,如果表达式1的值为假,则计算表达式3,并把表达式3的值作为整个表达式的值。

例如:要得到变量ab之间的最小值,可以表示成:

   min = (a < b) ? a : b; //如果a < b,则mina,否则a>=b,则minb

216逗号运算符及逗号表达式

逗号表达式是用逗号(,)把多个表达式连接起来组成一个表达式,求值时按从左到右的顺序。其形式为:

表达式1,表达式2,……,表达式n

执行过程为:先对表达式1求值,再对表达式2求值,……再对表达式n求值,并把表达式n的值作为整个逗号表达式的值。

优先级:逗号运算符在所有运算符中的优先级最低,具有从左到右的结合性。

特别说明:逗号并不是在任何地方出现都是逗号表达式,它也可以作为分隔符,要注意分清。

2.2运算符的优先级和结合性

[当一个表达式由多个运算符组成时,如何能得到正确结果,这就是运算符的优先级和结合性问题]

2.2.1数据类型转换规则

[不同的基本数据类型的变量混合运算时,怎样确定该表达式的数据类型,这就是如何进行类型转换的问题]

数据类型转换分自动转换和强制转换两类。

1)自动转换:这类转换由C编译系统自动完成;其原则是保证数据的精度不降低,所以,数据转换按数据存储长度增长的方向进行。

2)强制转换:将结果转换为自己所希望的数据类型。形式为:

(类型名)(表达式)——即可将表达式的类型转换为指定的(类型名)

说明:强制转换只对本次运算有效,并不改变变量本身定义时所规定的类型。

例如:float x = 4;

      int y = 2;

    进行运算:(intx / y 其结果为2;但运算后x的类型仍为实型,而不会变成int型。
[声明:本资源来自网络,如有侵权,请告知!]
posted @ 2007-07-27 23:45 蓝天 阅读(2740) | 评论 (0)编辑 收藏

2007年7月23日

魏书生的六步教学法 2003-07-23 作者(来源):魏书生书籍 我国著名教育改革家,全国特级劳动模范魏书生老师在教改实践中,在新的教育思想指导下以培养学生自学能力为中心,重观科学与民主,创造出一系列新的教学方法。六步教学法就是其中之一。六步教学法的基本内容包括以下六点。 一、定向。就是确定这一课的学习重点。例如讲《桃花源记》一课,生字有哪几个;词,虚词“焉”的用法,“妻子”“阡陌交通”古今词意的不同;句,这一课的省略句式比较突出,列为重点;译,哪一段是重点。还要理解作者在这篇文章里所表达的政治理想以及这种思想的局限性。 二、自学。学生把课文通读一遍,逐段翻译。不懂的地方,留待下一步解决。 三、讨论。前后左右每四人为一组,把自学中不懂的地方提出来,互相讨论;讨论也不能解决的问题,留待答题去解决。 四、答题。也是立足于由学生自己去解答疑难问题。由每个学习小组承担回答一部分问题,如第一组回答第一段中的疑难问题,第二组回答第二段。这样,疑难之处越来越少。然后由教师回答解决剩下的疑难问题。 五、自测。根据定向指出的重点、难点,以及学习后的自我理解,由学生拟出一组十分钟的自测题,由全班学生回答,自己拿出红笔来评分,自己检查学习效果。 六、日结。下课前,每个学生在自己座位上口头总结一下这节课的学习过程和主要收获,再不同类型的学生中选一两名单独总结,使学生接受的信息得到及时的反馈。 六步教学法以知、情、行、恒相互作用的规律为依据,重点培养学生的自学能力。 知,就是使学生认识求知的重要,唤起求知的欲望。 情,就是让学生体验获得知识的欢乐和幸福。 行,是让学生了解自身学习活动的方向和规则,提高效率。魏书生同志总结出的“四遍八步读书法”包括:第一遍,跳读。第一步记梗概,第二步记主要人、事、物或观点。这一遍的阅读速度,是每分钟1500字。第二遍,速读。第三步复述内容,第四步理清结构。这一遍的阅读速度是每分钟1000字。第三遍,细读。要完成理解和掌握字词句,圈点摘要,归纳中心这样三步任务。这一遍的阅读速度是每分钟200字左右。第四遍,精读。完成第八步分析写作特点的任务,速度不限。四遍八步读书法,旨在培养初中学生的阅读和思维能力。 恒,就是在学习中要有恒心,坚持到底,不半途而废。 (回到本文目录) 情景教学法 “情景教学法”是教师根据课文所描绘的情景,创设出形象鲜明的投影图画片,辅之生动的文学语言,并借助音乐的艺术感染力,再现课文所描绘的情景表象,使学生如闻其声,如见其人,仿佛置身其间,如临其境;师生就在此情此景之中进行着的一种情景交融的教学活动。因此,“情景教学”对培养学生情感,启迪思维,发展想象,开发智力等方面确有独到之处,起到传统的语文教学方法所不能起到的作用。 采用“情境教学”,一般说来,可以通过“感知——理解——深化”三个教学阶段来进行。 一、感知——创设画面,引入情境,形成表象。 小学语文第五册27课《古诗二首》的“绝句”描写了诗人杜甫的住处——成都外浣花溪草堂的明媚秀丽景色。教学时,根据这首诗的每一行写一个景色的特点,创设出形象鲜明,色彩鲜艳,富于美感的投影片。这幅图的景象是:两个黄鹤在翠绿的柳林枝头上鸣叫;一行白鹭正在蔚蓝的天空中飞翔;依窗可以看见西岭常年不化的积雪;门外停泊着要到万里之外东吴去的船只。随着画面的出示,教师作启迪性的发问:作者以住处为中心,写他屋子周围的景色,大家仔细看看写了哪些景色?让学生观察,思考。为了渲染气氛,激发情感,借助音乐的艺术功能,同时播放“绝句”的配乐诗朗诵录音。随着悠扬的乐曲声,又操作黄鹤在柳林枝头欢歌跳跃和一行自驾飞上蓝天的复合片。这样化静为动,化虚为实,学生仿佛置身于美丽的草堂,感受到课文所描写的情景。 二、理解——深入情景,理解课文,领会感情 讲读时,抓住图文相通之处,从图导文,把课文与图意融为一体,加深对草堂四周景色的印象。让学生产生真情实感。讲演“两个黄鹂鸣翠柳”时,教师一边借助生动的文学语言描述:两只羽毛鲜艳,小巧玲珑的黄鹂,它们在柳树枝头,时而轻快地跳跃,像在欢乐舞蹈,逗人有趣;时而纵情地歌唱,以弹琴奏乐,悦耳动听。这时间学生:“诗中哪一行描写了这种情景呢?”对话音刚落,学生齐声回答:“两个黄鹂鸣翠柳。”为了加深对诗句的领会,教师向学生提出要求:谁能用一句话把这一行意思讲出来,要说得清清楚楚。一个学生说:“两个黄鹂在柳林上唱歌。”教师肯定这位学生说得好,接着教师又提出:“谁能说得再好一点呢?另一个学生马上说道:“两个黄鹂在翠绿的柳枝上,唱着悦耳、动听的歌。”教师加以表扬:“说得真好!这个景色实在太美了。好,把这很美的景色读出来”。随后,教师指导学生读好这首诗。这样,从图导文,启发学生想象,逐步加深了对诗句的领会、理解。 三、深化——再现情境,丰富想象,深化感情 《古诗二首》的“早发白帝城”这首诗把壮丽的长江三峡,雄伟的气势用28个字写出来了。教完讲文后,教师安排了两项练习,一是读,二是说。教师要求学生一边看幻灯片,一边把它读出来;这时,教师操作舟行三峡的投影连续片,学生边看、边读,随着投影片的迁移学生读道:朝辞白帝彩云间, 千里江陵一日还……。 之后,要求学生一边看幻灯,一边把它描述出来。一个学生随投影片的移动,对不同的场景用自己的话描述出来: 早晨,离开了仿佛在云彩中的的白帝城; 千里之外的江陵一天就可以回来, 听到两岸不停啼叫的猿声, 轻快的小舟已经过了很多很多座山了。 采用情景教学是否会削弱“双基”教学呢?体会是:运用的得当,更有利于进行字、行、句、篇的教学和听、说、读、写的训练,特别是在古典文学作品的教学中收效尤甚,关键在于教师精心设计画面,备好情景教学课,切忌粗制滥用,或画蛇添足。 (回到本文目录) “学导式”教学法 下面我们来介绍一下“学导式”教学法,“学导式”教学法的基本结构如下: 1.学生略读课文、讲义,尝试练习,初步体验一下所要求的操作,发现新知识和疑难之处,反映给教师(这一步可以在上课之前的课前预习阶段完成。如果每节课以45分钟计算,也可以在这一堂课的、头3~5分钟进行;或者在前一次课的后面3~5分钟进行这一步)。教师在收集了学生的疑难问题,了解了学生的预习和自学情况、初步操练的体验之后,再有针对性地向学生提示要领,交代重点思考的问题或作出示范操作,供学生模仿。同时,可向学生提出简明扼要的有关这一学习单元或这一堂课的基本要求(教师的这些工作内容,可用3~5分钟进行,也可以在前一次课上利用下课之前的部分时间完成),要求学生独立去获取答案。 2.学生明确了这一堂课的学习目的与要求各自带着思考题去深入自学或操练,第二次提出自己经过一定思考仍然不得要领的问题或疑难之处(这些也可以在课前预习时进行),向同学请教或反映给教师(一般可用3~5分钟时间)。 3.学生在教师的组织下,按前后坐位或4~6人一个小组。互相讨论研究,交流心得体会,教师巡视并听取学生遇到的疑难问题,注意学生的思路(一般可用3~5分钟时间)。解决不了的疑难第三次向教师提出或由教师就近随时个别辅导答疑。这时的疑难问题已为数甚少,确实是学生经过了一定努力仍然难以独立解决的重大难题或关键环节。 4.教师抓住关键性的重大难点和本课的教学重点,加以精讲,再把学生正在掌握的知识、技能、技巧与开发智能的进展情况加以讲评。对一些最基本的概念、定理、公式,教师要讲清它的来源,说明它的性质,并举例说明它们的应用。对并列的概念,可以只讲清一个,以便引导学生去举一反三。避免“抱着学生走路”。同时,交代并引导学生在课后去阅读必要的课外参考资料,这是教师在以45分钟为例的一节课中,集中讲解重点内容,解除学生的疑难问题进行示范演示的阶段。这一阶段一般可用10~15分钟。如果加上在上课的开头阶段教师提示要领,交代重点思考的问题或作示范操作,提出这一节课的目的要求所用的3~5分钟。“学导式”教学法要求教师在一节45分钟的课上面向全体学生所占用的时间一般不超过20分钟。主要由教师或学生分别占用课堂时间的比例大体为四比五,也就是说,主要由学生进行独立活动的时间一定要多于主要由教师进行引导、讲授、示范的时间。同时,在教师进行引导,讲解和示范的时间里,也要伴随着每个学生的注意观察,认真思考,记忆,想象的智力活动和简易的模拟动作,教师也要着眼于教会学生学习,教会学生以尽量饱满的情绪和正确的学习态度去开发自己的智能。学生在听讲的过程中也必然伴随情感、意志等相应能力的发展。 5.教师有计划、有重点、有选择的提问,检查学生当堂理解知识、掌握技能的情况,作出必要的评定;学生在教师指导下改掉错误,正确领会完成课后作业的要领和方法,进一步加深理解,达到记忆、巩固和熟练的目的(一般可用5~10分钟时间)。 “学导式”教学法有广泛的适应领域和适应性能,而且完全能够根据不同的教学需要和教学条件灵活变通的发挥效能。当然,这不是说可以把“学导式”教学法作为僵化的模式套用,要根据教学内容和学生的年龄特征、知识水平的变化而变化。也就是说要采用灵活多样的“变式”才能达到不同的教学目的。值得注意的是,采用“学导式”教学法,要经过一番逐渐过渡和师生双方逐渐适应的过程。 六步教学法 我国著名教育改革家,全国特级劳动模范魏书生老师在教改实践中,在新的教育思想指导下以培养学生自学能力为中心,重观科学与民主,创造出一系列新的教学方法。六步教学法就是其中之一。六步教学法的基本内容包括以下六点。 一、定向。就是确定这一课的学习重点。例如讲《桃花源记》一课,生字有哪几个;词,虚词“焉”的用法,“妻子”“阡陌交通”古今词意的不同;句,这一课的省略句式比较突出,列为重点;译,哪一段是重点。还要理解作者在这篇文章里所表达的政治理想以及这种思想的局限性。 二、自学。学生把课文通读一遍,逐段翻译。不懂的地方,留待下一步解决。 三、讨论。前后左右每四人为一组,把自学中不懂的地方提出来,互相讨论;讨论也不能解决的问题,留待答题去解决。 四、答题。也是立足于由学生自己去解答疑难问题。由每个学习小组承担回答一部分问题,如第一组回答第一段中的疑难问题,第二组回答第二段。这样,疑难之处越来越少。然后由教师回答解决剩下的疑难问题。 五、自测。根据定向指出的重点、难点,以及学习后的自我理解,由学生拟出一组十分钟的自测题,由全班学生回答,自己拿出红笔来评分,自己检查学习效果。 六、日结。下课前,每个学生在自己座位上口头总结一下这节课的学习过程和主要收获,再不同类型的学生中选一两名单独总结,使学生接受的信息得到及时的反馈。 六步教学法以知、情、行、恒相互作用的规律为依据,重点培养学生的自学能力。 知,就是使学生认识求知的重要,唤起求知的欲望。 情,就是让学生体验获得知识的欢乐和幸福。 行,是让学生了解自身学习活动的方向和规则,提高效率。魏书生同志总结出的“四遍八步读书法”包括:第一遍,跳读。第一步记梗概,第二步记主要人、事、物或观点。这一遍的阅读速度,是每分钟1500字。第二遍,速读。第三步复述内容,第四步理清结构。这一遍的阅读速度是每分钟1000字。第三遍,细读。要完成理解和掌握字词句,圈点摘要,归纳中心这样三步任务。这一遍的阅读速度是每分钟200字左右。第四遍,精读。完成第八步分析写作特点的任务,速度不限。四遍八步读书法,旨在培养初中学生的阅读和思维能力。 恒,就是在学习中要有恒心,坚持到底,不半途而废。 (回到本文目录) 情景教学法 “情景教学法”是教师根据课文所描绘的情景,创设出形象鲜明的投影图画片,辅之生动的文学语言,并借助音乐的艺术感染力,再现课文所描绘的情景表象,使学生如闻其声,如见其人,仿佛置身其间,如临其境;师生就在此情此景之中进行着的一种情景交融的教学活动。因此,“情景教学”对培养学生情感,启迪思维,发展想象,开发智力等方面确有独到之处,起到传统的语文教学方法所不能起到的作用。 采用“情境教学”,一般说来,可以通过“感知——理解——深化”三个教学阶段来进行。 一、感知——创设画面,引入情境,形成表象。 小学语文第五册27课《古诗二首》的“绝句”描写了诗人杜甫的住处——成都外浣花溪草堂的明媚秀丽景色。教学时,根据这首诗的每一行写一个景色的特点,创设出形象鲜明,色彩鲜艳,富于美感的投影片。这幅图的景象是:两个黄鹤在翠绿的柳林枝头上鸣叫;一行白鹭正在蔚蓝的天空中飞翔;依窗可以看见西岭常年不化的积雪;门外停泊着要到万里之外东吴去的船只。随着画面的出示,教师作启迪性的发问:作者以住处为中心,写他屋子周围的景色,大家仔细看看写了哪些景色?让学生观察,思考。为了渲染气氛,激发情感,借助音乐的艺术功能,同时播放“绝句”的配乐诗朗诵录音。随着悠扬的乐曲声,又操作黄鹤在柳林枝头欢歌跳跃和一行自驾飞上蓝天的复合片。这样化静为动,化虚为实,学生仿佛置身于美丽的草堂,感受到课文所描写的情景。 二、理解——深入情景,理解课文,领会感情 讲读时,抓住图文相通之处,从图导文,把课文与图意融为一体,加深对草堂四周景色的印象。让学生产生真情实感。讲演“两个黄鹂鸣翠柳”时,教师一边借助生动的文学语言描述:两只羽毛鲜艳,小巧玲珑的黄鹂,它们在柳树枝头,时而轻快地跳跃,像在欢乐舞蹈,逗人有趣;时而纵情地歌唱,以弹琴奏乐,悦耳动听。这时间学生:“诗中哪一行描写了这种情景呢?”对话音刚落,学生齐声回答:“两个黄鹂鸣翠柳。”为了加深对诗句的领会,教师向学生提出要求:谁能用一句话把这一行意思讲出来,要说得清清楚楚。一个学生说:“两个黄鹂在柳林上唱歌。”教师肯定这位学生说得好,接着教师又提出:“谁能说得再好一点呢?另一个学生马上说道:“两个黄鹂在翠绿的柳枝上,唱着悦耳、动听的歌。”教师加以表扬:“说得真好!这个景色实在太美了。好,把这很美的景色读出来”。随后,教师指导学生读好这首诗。这样,从图导文,启发学生想象,逐步加深了对诗句的领会、理解。 三、深化——再现情境,丰富想象,深化感情 《古诗二首》的“早发白帝城”这首诗把壮丽的长江三峡,雄伟的气势用28个字写出来了。教完讲文后,教师安排了两项练习,一是读,二是说。教师要求学生一边看幻灯片,一边把它读出来;这时,教师操作舟行三峡的投影连续片,学生边看、边读,随着投影片的迁移学生读道:朝辞白帝彩云间, 千里江陵一日还……。 之后,要求学生一边看幻灯,一边把它描述出来。一个学生随投影片的移动,对不同的场景用自己的话描述出来: 早晨,离开了仿佛在云彩中的的白帝城; 千里之外的江陵一天就可以回来, 听到两岸不停啼叫的猿声, 轻快的小舟已经过了很多很多座山了。 采用情景教学是否会削弱“双基”教学呢?体会是:运用的得当,更有利于进行字、行、句、篇的教学和听、说、读、写的训练,特别是在古典文学作品的教学中收效尤甚,关键在于教师精心设计画面,备好情景教学课,切忌粗制滥用,或画蛇添足。 (回到本文目录) “学导式”教学法 下面我们来介绍一下“学导式”教学法,“学导式”教学法的基本结构如下: 1.学生略读课文、讲义,尝试练习,初步体验一下所要求的操作,发现新知识和疑难之处,反映给教师(这一步可以在上课之前的课前预习阶段完成。如果每节课以45分钟计算,也可以在这一堂课的、头3~5分钟进行;或者在前一次课的后面3~5分钟进行这一步)。教师在收集了学生的疑难问题,了解了学生的预习和自学情况、初步操练的体验之后,再有针对性地向学生提示要领,交代重点思考的问题或作出示范操作,供学生模仿。同时,可向学生提出简明扼要的有关这一学习单元或这一堂课的基本要求(教师的这些工作内容,可用3~5分钟进行,也可以在前一次课上利用下课之前的部分时间完成),要求学生独立去获取答案。 2.学生明确了这一堂课的学习目的与要求各自带着思考题去深入自学或操练,第二次提出自己经过一定思考仍然不得要领的问题或疑难之处(这些也可以在课前预习时进行),向同学请教或反映给教师(一般可用3~5分钟时间)。 3.学生在教师的组织下,按前后坐位或4~6人一个小组。互相讨论研究,交流心得体会,教师巡视并听取学生遇到的疑难问题,注意学生的思路(一般可用3~5分钟时间)。解决不了的疑难第三次向教师提出或由教师就近随时个别辅导答疑。这时的疑难问题已为数甚少,确实是学生经过了一定努力仍然难以独立解决的重大难题或关键环节。 4.教师抓住关键性的重大难点和本课的教学重点,加以精讲,再把学生正在掌握的知识、技能、技巧与开发智能的进展情况加以讲评。对一些最基本的概念、定理、公式,教师要讲清它的来源,说明它的性质,并举例说明它们的应用。对并列的概念,可以只讲清一个,以便引导学生去举一反三。避免“抱着学生走路”。同时,交代并引导学生在课后去阅读必要的课外参考资料,这是教师在以45分钟为例的一节课中,集中讲解重点内容,解除学生的疑难问题进行示范演示的阶段。这一阶段一般可用10~15分钟。如果加上在上课的开头阶段教师提示要领,交代重点思考的问题或作示范操作,提出这一节课的目的要求所用的3~5分钟。“学导式”教学法要求教师在一节45分钟的课上面向全体学生所占用的时间一般不超过20分钟。主要由教师或学生分别占用课堂时间的比例大体为四比五,也就是说,主要由学生进行独立活动的时间一定要多于主要由教师进行引导、讲授、示范的时间。同时,在教师进行引导,讲解和示范的时间里,也要伴随着每个学生的注意观察,认真思考,记忆,想象的智力活动和简易的模拟动作,教师也要着眼于教会学生学习,教会学生以尽量饱满的情绪和正确的学习态度去开发自己的智能。学生在听讲的过程中也必然伴随情感、意志等相应能力的发展。 5.教师有计划、有重点、有选择的提问,检查学生当堂理解知识、掌握技能的情况,作出必要的评定;学生在教师指导下改掉错误,正确领会完成课后作业的要领和方法,进一步加深理解,达到记忆、巩固和熟练的目的(一般可用5~10分钟时间)。 “学导式”教学法有广泛的适应领域和适应性能,而且完全能够根据不同的教学需要和教学条件灵活变通的发挥效能。当然,这不是说可以把“学导式”教学法作为僵化的模式套用,要根据教学内容和学生的年龄特征、知识水平的变化而变化。也就是说要采用灵活多样的“变式”才能达到不同的教学目的。值得注意的是,采用“学导式”教学法,要经过一番逐渐过渡和师生双方逐渐适应的过程。 (http://www.whedu.net/cms/data/html/doc/2003-07/23/27650/index.html)
posted @ 2007-07-23 12:05 蓝天 阅读(207) | 评论 (0)编辑 收藏
仅列出标题  

导航

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜