第一篇:Delphi之动态数组使用总结
Delphi之动态数组使用总结
传统的Pascal 语言其数组大小是预先确定的,当你用数组结构声明数据类型时,你必须指定数组元素的个数。专业程序员也许知道些许动态数组的实现技术,一般是采用指针,用手工分配并释放所需的内存。
Delphi 4中增加了非常简单的动态数组实现方法,实现过程效仿我前面讲过的动态长字符串。与长字符串一样,动态数组的内存动态分配并且引用记数,不过动态数组不支持 copy-on-write 技术。这不是个大问题,因为你可以把变量值设置为nil释放数组内存。
这样你就可以声明一个不指定元素个数的数组,并用SetLength 过程给数组分配一个特定大小的内存,SetLength 过程还可以改变数组大小而不影响其内容,除此外还有一些字符串过程也可用于数组,如Copy 函数。
以下摘录的代码突出了一点,这就是:定义数组后必须先为它分配内存,然后才能开始使用:
procedure TForm1.Button1Click(Sender: TObject);var Array1: array of Integer;begin Array1 [1] := 100;// error SetLength(Array1, 100);Array1 [99] := 100;// OK...end;如果你只定义一个数组元素个数,那么索引总是从0开始。Pascal 中的普通数组既能用不为零的下标,也能用非整数的下标,但动态数组均不支持这两种下标。象普通数组一样,你可以通过Length、High和Low 函数了解到动态数组的状况,不过对于动态数组,Low 函数返回值总是0,High函数返回数组大小减1,这意味着空的动态数组其函数High返回值是-1,这是一个很怪的值,因为它比Low的返回值还小。
图 8.1: 例 DynArr 窗体
以上作了简短的介绍,现在举个简例,例名DynArr,见图8.1。例子实在是很简单,其实动态数组没有什么特别复杂地方。我想通过该例说明几个程序员可能犯的错误。程序中声明了两个全程数组并在OnCreate 事件中初始化了第一个数组:
var Array1, Array2: array of Integer;procedure TForm1.FormCreate(Sender: TObject);begin // allocate SetLength(Array1, 100);end;这样就把数组所有值设置为0。完成这段代码你马上就能读写数组元素的值,而不用害怕内存出错,当然条件是你没有试图访问超过数组上界的元素。为了更好地初始化,程序中添加了一个按钮,执行数组元素赋值操作: procedure TForm1.btnFillClick(Sender: TObject);var I: Integer;begin for I := Low(Array1)to High(Array1)do
Array1 [I] := I;end;Grow 按钮用于修改数组大小,但并不影响数组内容。单击Grow 按钮后,你可以用Get value按钮进行检验:
procedure TForm1.btnGrowClick(Sender: TObject);begin // grow keeping existing values SetLength(Array1, 200);end;procedure TForm1.btnGetClick(Sender: TObject);begin // extract Caption := IntToStr(Array1 [99]);end;Alias 按钮的OnClick 事件代码稍复杂些,程序通过 := 算子把一个数组拷贝给另一个数组,从而有效地创建了一个别名(一个新变量,但引用内存中同一数组)。从中可见,如果你改变了其中一个数组,那么另一个同样也会改变,因为它们指向同一个内存区:
procedure TForm1.btnAliasClick(Sender: TObject);
begin // alias Array2 := Array1;// change one(both change)Array2 [99] := 1000;// show the other Caption := IntToStr(Array1 [99]);
在btnAliasClick 事件中增加了两部分操作内容。第一部分是数组等同测试,不过并不是测试实际的数组元素,而是测试数组所引用的内存区,检测变量是不是内存中同一数组的两个别名:
procedure TForm1.btnAliasClick(Sender: TObject);begin...if Array1 = Array2 then
Beep;// truncate first array Array1 := Copy(Array2, 0, 10);end;btnAliasClick 事件的第二部分内容是调用Copy 函数。该函数不仅把数据从一个数组移到另一个数组,而且用函数创建的新数组取代第一个数组,结果变量Array1 所引用的是11个元素的数组,因此,按Get value 和Set value 按钮将产生一个内存错误,并且触发一个异常(除非你把范围检查range-checking 选项关掉,这种情况下,错误仍在但屏幕上不会显示异常)。虽然如此,Fill 按钮仍能正常工作,因为需要修改的数组元素由数组当前的下标范围确定。
自从有了动态数组,链表除了在教科书里出现外,已经很少在实际编程中被使用了,事实也是如此,数组的确比传统链表快得多,而且也方便的多。
从 Delphi4起,开始了内建各种类型的动态数组支持。但是,对我们来说动态数组支持似乎做的不够彻底,因为Delphi竟然连删除、插入、移动连续元素的函数都没有提供,让人使用起来总觉得不够爽!!J。作为一名程序员,我们当然要有自己解决问题的能力,下面就让我们简单介绍一下Delphi 下的动态数组。
在Delphi中,数组类型有静态数组(a : array[0..1024] of integer)、动态数组(var a : array of integer)、指针数组(即指向静态数组的指针)和开放数组(仅用于参数传递)。静态数组、指针数组有速度快的好处,动态数组有大小可变的优势,权衡之下就有了折衷的办法,那就是定义的动态数组在必要时转换为指针。
动态数组声明之后,只有下面几个函数可┎僮鳎?o:p>
1.设置数组大小,可以任意缩减或增加数组大小
Procedure SetLength(var S;NewLength : integer);
2.取出连续元素,复制给另一个数组变量
Function Copy(s;Index,Count : integer): array;
3.取得数组大小及上下限
Function Length(s):integer;
Function High(x):integer;
Function Low(x):integer;
值得注意的是,不加const或var修饰的动态数组会被作为形参传递,而动态数组用const修饰并不意味着你不能修改数组里的元素(不信你可以字自己在程序中试试。还有一点是High函数调用了Length 函数,所以我们在获取数组上限时最好直接用 Length(s)函数。
动态数组在内存空间中占用4个字节.动态数组在内存中的分配表如下:
偏移量
内容
32-bit 引用计数
32-bit 数组长度
0..数组长度 *(元素尺寸)4)^;// 变量的长度,偏移量-4
if index >= len then //要删除的位置超出范围,退出
Exit;
MaxDelete := len-index;// 最多删除的数量
Count := Min(Count, MaxDelete);// 取得一个较小值
if Count = 0 then // 不要求删除
Exit;
Dec(len, Count);// 移动到要删除的位置
MoveMemory(PChar(P)+index*elSize , PChar(P)+(index + Count)*elSize ,(len-index)*elSize);//移动内存
Dec(P);//移出 “数组长度”位置
Dec(P);//移出“引用计数” 位置
//重新再分配调整内存,len 新的长度.Sizeof(Longint)* 2 = 2*Dec(P)
ReallocMem(P, len * elSize + Sizeof(Longint)* 2);
Inc(P);// 指向数组长度
P^ := len;// new length
Inc(P);// 指向数组元素,开始的位置
PLongint(A):= P;end;
对上面的例子,我们需要注意的是 elSize 参数,它必须是 SizeOf(DyArray_Name),表示元素所占用的字节数。
相信看了上面的例子后,对于动态数组的拷贝,移动想必也可以自己实现了吧 J
后续:
其实,Delphi 对许多类型的内存分配都很相似,比如 string 类型,其实它和动态数组是很相似的,我们完全可以把它拿来当成动态数组。实质上 string 是 Pchar 的简易版本。不管怎么说,了解一些内存的分配对我们这些开发人员来说还是有一些好处的。
第二篇:学习使用PHP数组
如果你有很大的一个数组,而所要完成的仅是找出一个存在的给定值,你可以使用in_array()以返回true 或 false。如下代码将输出“Not found in this array”——因为你将在$namesArray中寻找一个并不存在的“Alber ”。
$namesArray = array(“Joe”, “Jane”, “Bob”, “Mary”, “Paul”, “Eddie”, “John”)$lookingFor = “Albert” if(in_array($lookingFor, $namesArray)){ echo “You've found it!” } else { echo “Not found in this array!” ?> 如果你改变了$lookingFor的值,将其变为“Mary”,你将得到消息“You've found it!”——因为“Mary”是$namesArray的一部分。如果希望对数组元素计数,你可以使用count()函数:
$namesArray = array(“Joe”, “Jane”, “Bob”, “Mary”, “Paul”, “Eddie”, “John”)$count = count($namesArray);?> $count值将为7。
你可以对任何数组添加元素,无论是在已存在数组的开始或末尾。你也可以使用函数以创建一个包含两个或多个数组元素的新数组。合并时每个数组将按需要的顺序排列。如果你的数组已经有内部的排序,你需要对新的合并数组重排序。让我们从对已存在数组的末尾增添元素开始,使用函数array_push(): /* 创建原始数组 */ $fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”)/* 加入到原始数组中 */ array_push($fruitArray, “grape”, “pineapple”, “tomato”)/* 通过其键值列出每个元素*/ while(list($key,$value)= each($fruitArray)){ echo “$key : $value
” ?> 这将显示: 0 : apple 1 : orange 2 : banana 3 : kiwi 4 : pear 5 : grape 6 : pineapple 7 : tomato 当你需要对数组开头添加元素时,代码非常类似。不同处只是函数名:array_unshift()而不是array_push()。 /* 创建原始数组 */ $fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”)/* 加入到原始数组中 */ array_unshift($fruitArray, “grape”, “pineapple”, “tomato”)/* 通过其键值列出每个元素*/ while(list($key,$value)= each($fruitArray)){ echo “$key : $value
” ?> 这将显示: 0 : grape 1 : pineapple 2 : tomato 3 : apple 4 : orange 5 : banana 6 : kiwi 7 : pear 函数array_merge()合并两个或更多的数组。 /* 创建原始数组 */ $fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”) /* 创建第二个数组 */ $vegArray = array(“carrot”, “green beans”, “asparagus”, “artichoke”, “corn”)/* 合并为一个数组 */ $goodfoodArray = array_merge($fruitArray, $vegArray)/* 通过其键值列出每个元素*/ while(list($key,$value)= each($goodfoodArray)){ echo “$key : $value
” ?> 这将显示: 0 : apple 1 : orange 2 : banana 3 : kiwi 4 : pear 5 : carrot 6 : green bea 7 : asparagu 8 : artichoke 9 : cor 现在已经对数组进行了增加元素和合并,现在来练习删除元素函数。你可以使用函数array_pop()从一数组末尾删除一个元素。如果使用函数 array_shift(),则从一数组开头删除一个元素。而实际上当你从数组删除元素时,此元素对你而言仍然可用——当你从已存在的数组中对元素进行 pop 或 shift时。使用array_pop()函数从数组末尾删除一个值: /* 创建一数组*/ $fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”)/* 在末尾弹出某值 */ $popped = array_pop($fruitArray)/* 列出新数组内容,以及弹出的值*/ while(list($key,$value)= each($fruitArray)){ echo “$key : $value
” echo “
and finally, in $popped: $popped” ?> 这将显示: 0 : apple 1 : orange 2 : banana 3 : kiwi and finally, in $popped: pear Next, delete an element from the end of an array: ??????????? 下面,从数组末尾删除某值: /* 创建一数组*/ $fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”)/* 从数组头部移出某值 */ $shifted = array_shift($fruitArray)/* 列出新数组的内容以及移出的值*/ while(list($key,$value)= each($fruitArray)){ echo “$key : $value
” echo “
and finally, in $shifted: $shifted” ?> 这将显示: 0 : orange 1 : banana 2 : kiwi 3 : pear and finally, in $shifted: apple 有很多函数可以帮助你对数组元素排序。但我将会演示基本的排序以帮助你了解其过程:
/* 创建原始数组 */ $fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”)/* 排序 */ ort($fruitArray)/* 对其重设以正确从头到尾显示数组 */ /* 通过其键值列出每个元素*/ while(list($key,$value)= each($fruitArray)){ echo “$key : $value
” ?> 这将显示: 0 : apple 1 : banana 2 : kiwi 3 : orange 4 : pear
第三篇:数组总结
王家沟小学
2012~2013学第一学期数学教研组工作总结
本学期以来,我们以现代教育思想、现代教育理念为指导,认真贯彻落实小学数学新课程标准为契机,认真贯彻落实学校本期工作意见,以学校办学目标为指针,以“创造适合教师发展的管理”和“创造适合学生发展的教育”为目标,以培养学生良好的学习习惯和浓厚的兴趣为重点,着眼于教师和学生创新意识的提高,着力于教师和学生自主发展机制的建立,加强数学教学流程管理,深化数学课堂教学改革,健全质量调控机制的建立,切实提高数学教学质量。
一、本期的工作目标:
1、继续抓好教育教学理论的学习,创设浓郁的学术氛围,不断提高教师的自身素质;
2、重点抓好教学常规管理与校本教研,进一步增强教师的自主创新意识,全面提高教育教学质量,提高学校的知名度;
3、组织学生开展丰富多彩的数学课外实践活动,使学生在实践活动中形成一定的数学能力,创新意识和实践能力;
4、改进教研活动的形式,方法和内容,切实提高教师教学科研能力,力争办“研有特色”的小数教研组。
三、本期的主要工作做法。
(一)、认真学习,大胆实践,深入推进自主参与式课堂教学模式的改革实验。
1、深化数学课堂教学改革,大胆实践探索。要确立以活动促发展的意识,通过举办不同层面的课堂教学展示研讨活动,多评议切磋,多交流碰撞,在活动中发现、研究、解决所遇问题。要切实转变学生学习的方式,将充分的自主学习、有效的合作学习、适度的探究学习紧密结合起来,重视兴趣的激发、独特体验的激活和动手作用的发挥。上课既要有课前的预设,又要开放地纳入弹性灵活的生成。对于师生互动中出现的创造火花,教师应敏锐地抓住它,并予以引燃,使不同的体验发散共享,从而超越预设的目标。课改要认真扎实地开展探索实践,注意积累典型课案和经验;也要用课改理念指导和改革课堂教学,深入领会教材修订的指导思想、编写思路、结构、体系以及教学要求的变化,用新观念、新教法去教老教材,懂得灵活处理与运用好教材。
2、认真学习《数学课程标准》等教育文件,转变观念。要潜心研究了解数学课程改革背景、指导思想、改革目标,熟悉课程标准的目标、内容和要求。继续注意转变以下教育观念和课程观:从“文本”走向“体验”;教学观,从“传道、授业、解惑”走向“教学相长”;人才观,从“封闭”走向“开放”;目标观,从单一目标走向三维整合的目标。要继续努力将教改基本理念转化为数学教学过程的具体行为,整合优化教学过程。
3、加强课改过程管理。教师要积极切磋教法学法,积极上好课改实践课、研究课,开展评课交流,及时反思、提炼和总结经验。充分发挥校内骨干教师的导航、引领作用,同时要努力将教研组建设为学习型组织,重视组内和组际之间的团队学习和合作学习,加强教研组信息化建设步伐,整体促进教研组业务水平的提高。
4、本学期按“备课――上课――说课――评课――结课”的程序,逐步完善主题式教研氛围,促进学校数学薄弱环节的发展 前期每人一节公开课,后期有目的地安排示范课、观摩课、汇报课等。坚持每人说课一次,中高年级教师上好一节公开课。专题交流、探讨,把实践上升为理论。
5、在学习教育理论基础上,及时总结、及时撰写论文,积极参加各种教研活动,展示自己的教研成果,在最短的时间内,尽量提高本组员的教学水平。
(二)、悉心指导,优化服务,规范数学教学常规管理。
1、注重培养学生的数学兴趣。充分调动他们的学习兴趣及学习积极性。让他们的天性和个性得以自由健康的发挥。让学生在视、听、触觉中培养了创造性思维方式,变“要我学”为“我要学”,极大地活跃了课堂气氛,相应提高了课堂教学效率。
2.重视学生良好学习习惯的养成。特别要重视上课专心听讲、按时完成作业、审题、读题、写字等习惯的养成,采取切实的措施经常抓,反复抓,为学生可持续发展打下良好的基础。
3.加强教学质量监控。教研组将配合教导处多次、小范围地进行随机质量调测,及时分析反馈调控。同时加强各类素质竞赛,以促进学生素质全面发展。
(三)、加大力度,催长骨干,积极推进名师工程。
1、加强教师的培训。教研组将在教导处指导下定期开展多层次的校本培训,切实转变教师观念,进一步推进课堂教学结构、内容、方法和手段的改革。同时,配合学校管理制度,组织教师多写并写好随笔与反思。
2、重视学科骨干、教学能手的跟踪培养和使用工作,注意做好推荐公开课、讲学培训活动。同时也要重视发挥非骨干、非青年教师在数学课改中不可低估的作用,注意教师的均衡性发展,落实教学管理中以人为本的理念,真正促进教师队伍建设。
3.不仅要求教师立足自己的实践平台进行课题研究,还要求每一位教师认真阅读各办公室自订的有益报刊杂志等书籍,及时写好读书笔记,及时完成教案和教学随笔,并鼓励教师向学区网投稿。认真组织参加各级各类教学评优活动,为青年教师的脱颖而出提供更多的机会。
第四篇:数组总结
王家沟小学
2009~2010第一学期数学教研组工作总结
本学期以来,我们以现代教育思想、现代教育理念为指导,认真贯彻落实小学数学新课程标准为契机,认真贯彻落实学校本期工作意见,以学校办学目标为指针,以“创造适合教师发展的管理”和“创造适合学生发展的教育”为目标,以培养学生良好的学习习惯和浓厚的兴趣为重点,着眼于教师和学生创新意识的提高,着力于教师和学生自主发展机制的建立,加强数学教学流程管理,深化数学课堂教学改革,健全质量调控机制的建立,切实提高数学教学质量。
一、本期的工作目标:
1、继续抓好教育教学理论的学习,创设浓郁的学术氛围,不断提高教师的自身素质;
2、重点抓好教学常规管理与校本教研,进一步增强教师的自主创新意识,全面提高教育教学质量,提高学校的知名度;
3、组织学生开展丰富多彩的数学课外实践活动,使学生在实践活动中形成一定的数学能力,创新意识和实践能力;
4、改进教研活动的形式,方法和内容,切实提高教师教学科研能力,力争办“研有特色”的小数教研组。
三、本期的主要工作做法。
(一)、认真学习,大胆实践,深入推进数学课程改革实验。
1、深化数学课堂教学改革,大胆实践探索。要确立以活动促发展的意识,通过举办不同层面的课堂教学展示研讨活动,多促发展的意识,通过举办不同层面的课堂教学展示研讨活动,多评议切磋,多交流碰撞,在活动中发现、研究、解决所遇问题。要切实转变学生学习的方式,将充分的自主学习、有效的合作学习、适度的探究学习紧密结合起来,重视兴趣的激发、独特体验的激活和动手作用的发挥。上课既要有课前的预设,又要开放地纳入弹性灵活的生成。对于师生互动中出现的创造火花,教师应敏锐地抓住它,并予以引燃,使不同的体验发散共享,从而超越预设的目标。课改要认真扎实地开展探索实践,注意积累典型课案和经验;也要用课改理念指导和改革课堂教学,深入领会教材修订的指导思想、编写思路、结构、体系以及教学要求的变化,用新观念、新教法去教老教材,懂得灵活处理与运用好教材。
2、认真学习《数学课程标准》等教育文件,转变观念。要潜心研究了解数学课程改革背景、指导思想、改革目标,熟悉课程标准的目标、内容和要求。继续注意转变以下教育观念和课程观:从“文本”走向“体验”;教学观,从“传道、授业、解惑”走向“教学相长”;人才观,从“封闭”走向“开放”;目标观,从单一目标走向三维整合的目标。要继续努力将教改基本理念转化为数学教学过程的具体行为,整合优化教学过程。
3、加强课改过程管理。教师要积极切磋教法学法,积极上好课改实践课、研究课,开展评课交流,及时反思、提炼和总结经验。充分发挥校内骨干教师的导航、引领作用,同时要努力将教研组建设为学习型组织,重视组内和组际之间的团队学习和合作学习,加强教研组信息化建设步伐,整体促进教研组业务水平的提高。
4、本学期按“备课――上课――说课――评课――结课”的程序,逐步完善主题式教研氛围,促进学校数学薄弱环节的发展 前期每人一节公开课,后期有目的地安排示范课、观摩课、汇报课等。坚持每人说课一次,中高年级教师上好一节公开课。专题交流、探讨,把实践上升为理论。
5、在学习教育理论基础上,及时总结、及时撰写论文,积极参加各种教研活动,展示自己的教研成果,在最短的时间内,尽量提高本组员的教学水平。
(二)、悉心指导,优化服务,规范数学教学常规管理。
1、注重培养学生的数学兴趣。充分调动他们的学习兴趣及学习积极性。让他们的天性和个性得以自由健康的发挥。让学生在视、听、触觉中培养了创造性思维方式,变“要我学”为“我要学”,极大地活跃了课堂气氛,相应提高了课堂教学效率。
2.重视学生良好学习习惯的养成。特别要重视上课专心听讲、按时完成作业、审题、读题、写字等习惯的养成,采取切实的措施经常抓,反复抓,为学生可持续发展打下良好的基础。
3.加强教学质量监控。教研组将配合教导处多次、小范围地进行随机质量调测,及时分析反馈调控。同时加强各类素质竞赛,以促进学生素质全面发展。
(三)、加大力度,催长骨干,积极推进名师工程。
1、加强教师的培训。教研组将在教导处指导下定期开展多层次的校本培训,切实转变教师观念,进一步推进课堂教学结构、内容、方法和手段的改革。同时,配合学校管理制度,组织教师多写并写好随笔与反思。
2、重视学科骨干、教学能手的跟踪培养和使用工作,注意做好推荐公开课、讲学培训活动。同时也要重视发挥非骨干、非青年教师在数学课改中不可低估的作用,注意教师的均衡性发展,落实教学管理中以人为本的理念,真正促进教师队伍建设。
3.不仅要求教师立足自己的实践平台进行课题研究,还要求每一位教师认真阅读各办公室自订的有益报刊杂志等书籍,及时写好读书笔记,及时完成教案和教学随笔,并鼓励教师向校园网投稿。认真组织参加各级各类教学评优活动,为青年教师的脱颖而出提供更多的机会。
第五篇:小数组总结
项 蕊
2010年6月29小学数学教研组工作总结
日
在忙忙碌碌中,一个学期很快就过去了。总体来看,全体数学教师认真执行学校教学工作计划、转变思想、积极探索、改革教学。在继续推进我校“自主、创新”课堂教学模式的同时把构建有效课堂落实到教学中来,收到了很好的效果。具体总结如下:
一、加强业务学习,提高教学水平。
本着“多学、常思考”的宗旨。本学期我组各位教师除了经常阅读有关的专业资料信息外,每周三教研组还组织开展“数学研讨活动”,针对某一级的某堂课采取集体备课,依据新的教学理念、研讨出全新的教学设计、有效的教学方法,并公开试讲,听、评,将学到的专业知识应用到平时的教学中来,以提高我们的整体教学水平。
二、创建有效课堂,提高课堂效率。
我们每位教师都是课堂教学的实践者。为了创建有效课堂,我们把课堂教学作为有利于学生主动探索数学学习环境。把学生在获得知识和技能的同时,在情感、态度价值观等方面都能够充分发展作为教学改革的基本指导思想,把数学教学看成是教师之间、学生之间交往互动,共同发展的过程。本着这一原则,本学期我组老师自发多次上公开课,多讲既能提高教师的自身水平,又有利于教师之间的优势互补,从而整体提高课堂效率,达到自主、创新、高效的教学效果。
三、抓实常规、保证教育教学任务全面完成。本学期我组多次开展教研活动,每次活动都坚持以教学为中心,教师们互相交流教学经验,切磋教法,学情分析、反思心得、集体备课,以此来矫正疏漏,取长补短,达到共同提升的目的。常规检查两周一次,本学期数学组教师平均每人听课15节以上,学习笔记10000字。通过检查发现大家都备课认真,作业批改仔细,扎扎实实做好常规工作,做好教学的每一件事,真正做到了课前有准备、课后有反思。
四、认真落实培优补差,激励促进学生全面发展。培优补差对于数学学科而言既是重点也是难点。每个数学教师在这方面付出了大量的时间和心血。由于我们学校每个学期都有插班生,再加上家庭等各方面的原因,学困生很多,学校又没有给我们安排补差的时间,而我们数学教师大多带两个班的主课。有的还兼带了班主任或跨年级教学,教学任务很重作业批改量大。所以数学教师们只有利用课余时间给学生补差,特别是临近期末考试这段时间。很多教师利用早读及放学休息时间给差生补课,确实很辛苦,也很难得。不过工夫不负有心人,相信在这次期末考试中这些学生都会有较大的进步。
一份耕耘,一份收获。教学工作苦乐相伴,我们全体数学教师将本着“勤学、善思、实干”的准则,一如既往、再接再厉,力争把工作做得更好!