首页  前一页  后一页  末页
[185] [186] [187] [188] [189]
本留言簿共有493条记录, 现在时间2025-5-24 16:28:20,计算机地址:192.168.9.44
日期查询:
现在是第37页
一共有99页
Books库中表及结构信息 环境:一键安装 库表:Mysql.sql  xx3.sql xx4.sql 页面:Myphp.php   
序号 留言内容
189

D:2012-11-28
T:7:51:00
IP:192.168.8.40



作者:
张顺海

2012.11.28 星期三

教学内容:函数应用(三),转换函数

教学目的:掌握转换类的函数

教学重点:

教学难点:

教学时间:

教学方法:

教学过程:

一、复习、巩固、导入

二、新授

 1.STR(expN1,expN2,expN3) 

&&将N型的expN1转化成expN2个长度且保留expN3个小数的C型字符串,内容由expN1中的数字组成,转化过程中可能补空格,或者四舍五入。

A=123.45678   &&建立一个N型的变量,值为123.45678

? str(a)  &&省略后边自变量,默认转换成10个长度,前7个空格,0个小数,结果四舍五入123

? str(a,6,2)   &&结果为  123.46

?str(a,5,2)   &&结果为  123.5

?str(a,2)    &&结果为   **   宽度不足盛放变量a的整数位数时,输出*

?str(a,4,2)   &&结果为  123   其中,123前有一个空格,共4个长度,2没有效果

 

2.VAL(expC)  

&&将expC转换成N型,结果为N型,转换到第一个非数字结束,字母e除外。

CLEAR

STORE '12' TO A

STORE '13' TO B

? VAL(A) + VAL(B)  && 显示25.00

STORE '1.25E3' TO C

? 2 * VAL(C)  && 显示2500.00

? val(“  1234 5abc”) &&结果为1234.00

? val(“ 1234 e2”)    &&结果为1234.00

?val(“  1234e 2”)  &&结果为123400.00

?val(“  1234d 2”)  &&结果为1234.00  科学计数只承认字母e

?val(“ 1234.567.88”) &&结果为1234.57  默认保留2个小数,第三位四舍五入

3.CTOD(expC)、DTOC(expD)  &&C型数据与D型数据之间的转换。

Clea

SET CENTURY ON   && 显示世纪4位年份

Set date amer      &&设置当前的日期格式为美国格式

cDate="01/01/2003"

?CTOD(cDate)   &&显示D型的  01/01/2003

?GOMONTH(CTOD(cDate),12)  && 返回12个月后的日期01/01/2004

?CTOD(cDate)+12  && 显示12天后的日期  01/13/2003

 

B=date()   &&即获得今天的日期,前边说01/21/2011

? dtoc(b)  &&显示的结果为01/21/2011  这里是C型的01/21/2011

?”今天的日期:”+dtoc(b)  &&结果为  今天的日期:01/21/2011

?dtoc(b,1)  &&忽略set date所设置的日期格式,统一返回20110121格式的日期,没有分隔符,且采用yyyymmdd格式。

三、练习

四、总结

五、作业

六、反思

188

D:2012-11-26
T:7:44:00
IP:192.168.8.40



作者:
张顺海

2012.11.26 星期一

教学内容:函数应用(二)

教学目的:掌握函数的应用

教学时间:2课时

教学重点:函数处理过程中的程序设计控制(字符串处理)

教学难点:循环程序设计

教学方法:理时一体

教学过程:

 

一、复习、提问、导入

自从我们学习函数的应用以来,学习了哪些函数?(int、len、left、right、stuff、subs、replicate等等)

应用到了str、val、等,涉及到了双音节函数(leftc、rightc、substrc、lenc)等。

函数的组成、功能与格式调用:

组成:函数名、括号、自变量(数量区分、位置区分、类型区分)

功能:对自变量进行处理,返回函数的值

调用:函数名(自变量1,自变量2....)

这节我们学习函数的控制,简单程序的编辑。

二、新授

1.len()、substr()的使用回忆

2.题目:

建立一段程序,完成从键盘输入的任意字符串,并按字符的位置倒序输出。

3.分析

1)从键盘上获得一个任意字符串(即长度任意、内容任意),并保存到指写的变量里,比如A

2)想从倒序输出,得知道最后一个字符的位置,经过分析知道,最后一个位置,应该是字符串的长度,可由len完成,量取的结果保存到指定的变量里,比如N

3)从第N个位置上截取一个字符,截取位置由变量I保存,即I=N,可由函数subs()完成,截取的结果保存到指定变量里,比如B

4)输出B,即输出了最后一个字符

5)将位置I的值减1,则再由subs(A,I,1)截取,完成3)、4),形成循环

6)循环控制,根据的是获得字符串中字符的个数,即变量N的值确定循环次数

7)由for......endfor来控制循环(循环控制看下边)

9)程序结束

4.程序代码建立:

1)modi comm abc   &&建立一段程序的命令为:modify command <程序名>,扩展文件名默认为.prg

2)输出如下代码:

clear && 程序执行清屏

accept "请输入一个字符串" to A  &&通过命令accept,从键盘上接收一个字符串,结果保存到变量A中

N=len(a)  && 根据字符串变量A的长度(包含字符的个数),结果保存到变量N中

for i=n to 1 step -1  &&建立循环变量I,并赋初值、终值、步长;测试循环条件是否成立 ;根据条件成立与否,程序转向循环

B=subs(a,i,1)  &&截取字符串变量A中的第I个字符,结果保存在变量B中

?? b    &&输出变量B的内容,但不换行

endfor   &&循环变量加步长,程序转向

return  &&程序返回

 三、总结

程序控制:

1)命令格式

按指定的次数重复执行一组命令。

FOR Var = nInitialValue TO nFinalValue [STEP nIncrement]
   Commands
   [EXIT]
   [LOOP]
ENDFOR | NEXT

2)参数
Var
指定作为计数器的内存变量或数组元素。在 FOR ... ENDFOR 语句执行之前,此内存变量或数组元素不一定存在。
nInitialValue TO nFinalValue
nInitialValue 是计数器的初始值,而 nFinalValue 是计数器的最终值。
STEP nIncrement
nIncrement 是计数器递增或递减的步长。如果 nIncrement 为负,则计数器递减;如果省略 STEP 子句,计数器每次的增量为 1。
Commands
指定要执行的 Visual FoxPro 命令,Commands 可以包含任意数目的命令。
EXIT
在 FOR ... ENDFOR 循环中,将控件权传递给紧接在 ENDFOR 后面的命令。可以在 FOR 与 ENDFOR 之间的任何地方放置 EXIT。
LOOP
将控件权直接返给 FOR 子句,不再执行 LOOP 与 ENDFOR 之间的语句。计数器正常递增或递减,就象执行到 ENDFOR 一样。可以在 FOR 与 ENDFOR 之间的任何地方放置 LOOP。
备注
可以用内存变量或数组元素作为计数器,指定 FOR ... ENDFOR 循环中 Visual FoxPro 命令的执行次数。

在遇到 ENDFOR 或 NEXT 之前,始终执行 FOR 后面的 Visual FoxPro 命令。执行过程中,每循环一次,计数器 MemVarName 都会递增,增量为 nIncrement(如果省略 STEP 子句,则计数器每次的增量为 1),然后把计数器的值与 nFinalValue 作比较。如果计数器的值小于或等于 nFinalValue,将再次执行 FOR 语句后的命令;如果计数器的值大于 nFinalValue,则退出 FOR ... ENDFOR 循环,程序继续执行 ENDFOR 或 NEXT 之后的第一条命令。

3)注意   nInitialValue、nFinalValue 和 nIncrement 只能是初次读入的值。在循环过程中更改计数器 MemVarName 的值将影响循环的执行次数。
如果 nIncrement 为负,且初始值 nInitialValue 大于最终值 nFinalValue,则每经过一次循环,计数器都将递减。 

四、练习

从键盘上任意输入一个英文字母组成的字符串,按以下内容输出结果:

如:

1)

输入:ABCDEFG

输出:BCDEFGH

2)

输入:THIS

输出:UIJT

3)

输入:this

输出:uijt

代码:(请大家认真分析其中的代码,重点是思路及函数的应用)

clear

accept "请输入一个英文字母串" to A

N=len(a)

for i=1 to N

b=subs(a,i,1)

c=asc(b)+1

d=chr(c)

??d

endfor

return

五、作业

1.按要求输出如下图形:

    ××××××××××

   ××××××××××

  ××××××××××

 ××××××××××

2.按要求输出如下图形

   A

  ABC

 ABCDE

ABCEFGH

187

D:2012-11-21
T:8:15:00
IP:192.168.8.40



作者:
张顺海

2012.11.21  星期三

教学内容:函数应用(一)

教学目的:数值型函数及字符型函数的应用

教学重点:len、substr、at、replicate、stuff等

教学难点:replicate、stuff

教学过程:

 

一、复习导入

二、新授

1.LEFT(cExpression, nExpression)

从字符表达式最左边一个字符开始返回指定数目的字符。

 

2.SUBSTR(expC,expN1,expN2) 

截取一个字符串的一部分,返回一个字符串,是原串的子串。

3. AT(expC1,expC2[,expN]) 

判断第一个字符串,在第二个字符串左侧首次出再的位置,结果为N型值,expN为第几次出现的位置,省略默认为1。

三、实例

 1.substr函数

STORE 'abcdefghijklm' TO mystring

CLEAR

? SUBSTR(mystring, 1, 5)  && 显示 abcde

? SUBSTR(mystring, 6)  && 显示 fghijklm,省略第expN2,则从第6个到末尾。

相关函数:left(expC,expN),right(expC,expN),即左截取、右截取。

 SUBSTR(expC,expN1,expN2)  &&截取一个字符串的一部分,返回一个字符串,是原串的子串。

STORE 'abcdefghijklm' TO mystring

CLEAR

? SUBSTR(mystring, 1, 5)  && 显示abcde

? SUBSTR(mystring, 6)  && 显示fghijklm,省略第expN2,则从第6个到末尾。

相关函数:left(expC,expN),right(expC,expN),即左截取、右截取。

2.LEN函数

A=“abcdefg”

?len(a)    &&显示结果为7

?len(a)+2  &&显示结果为9,即函数值可参与运算

?len(a+a)  &&显示两个字符串的长度,结果为14

 

Accept “请输入一个字符串” to x   &&从键盘上获得一个字符串

Y=len(x)  &&将x中字符的个数,保存到变量y中。

For i=y to 1 step -1  &&从Y个循环至1,步长为-1

?? subs(x,i,1)   &&从X中截取第i个,顺序为:最后一个,倒数第二个…第一个。

Endfor           &&这个循环的结果就是

3.AT函数

STORE ‘河北省徐水县职教中心,是一所国家级职教中心。' TO gc

STORE '中心' TO zx

CLEAR

? AT(zx,gc)  && 显示17

? AT(zx,gc,2) && 显示39

? at(‘职业’,gc)   &&显示为0,因为没有存在‘职业’二字

 

Xm=”张宝康”

If at(‘张’,xm)=1  &&根据结果是不是出现的位置为1,判断是不是姓张。

  ? “姓张”

Else

  ? “不姓张”

Endif

4.stuff

STUFF( )返回一个字符串,此字符串是通过用另一个字符表达式替换现有字符表达式中指定数目的字符得到的。
STUFF(cExpression, nStartReplacement, nCharactersReplaced, cReplacement)
返回值,符型
 

参数
cExpression
指定要在其中进行替换的字符表达式。
nStartReplacement
在 cExpression 中开始替换的位置。
nCharactersReplaced
要替换的字符数目。如果 nCharactersReplaced 是 0,则替换字符串 cReplacement 插入到 cExpression 中。
cReplacement
用以替换的字符表达式。如果 cReplacement 是空字符串,则从 cExpression 中删除用 nCharactersReplaced 指定的字符数目。
示例
STORE 'abcdefghijklm' TO gcString1
STORE '12345' TO gcString2
CLEAR
? STUFF(gcString1, 4, 0, gcString2)     && 插入,结果是abc12345efghijklm
? STUFF(gcString1, 4, 3, gcString2)     && 替换,结果是abc12345ghijklm
? STUFF(gcString1, 4, 6, '')     && 删除,结果是abcjklm
? STUFF(gcString1, 4, 1, gcString2)     && 替换和插入,结果是abc12345efghijklm
? STUFF(gcString1, 4, 4, gcString2)     && 替换和删除,结果是abc12345hijklm
? STUFF(gcString1, 4, LEN(gcString1), gcString2)   && 替换, 删除剩余部分,结果是abc12345

四、总结

1.将电话号码由现在的7位,提升到8位,提升方法,是从现在的电话号码的第一位与第二位之间加一个数字“8”,比如,原来的电话号码为"8750263",按原则替换成"88750263"。

2.重复产生一个由30个下划线组成的字符串。

3.at函数的应用,可以判断一个字符串中是否含有另一个字符串,如,判断姓名中含有“娟”字,可以使用 at("娟",姓名)<>0,如果成立(表达式为真),则说明姓名中含有汉字娟,否则(表达式为假),则说明姓名中不含有汉字娟。

五、作业

1.应用字符串截取函数,完成截取一个数字的个位、十位、百位数字。

2.使用AT函数,判断一个表格中(如数据表xs1中)的姓名中是否含有汉字"


 

186

D:2012-11-19
T:8:21:00
IP:192.168.8.40



作者:
张顺海

2012.11.19 星期一

教学内容:函数应用(一)

教学目的:掌握函数的调用格式、函数格式、自变量要求、函数值的类型;

教学重点:函数的调用及应用

教学难点:函数自变量的要求、函数值的类型

教学时间:两课时

教学地点:微机58班教室

教学类型:理论+实践

教学方法:讲授法、归纳法、实例法

教学过程:

一、复习、巩固、导入

上节课我们对期中考试的试题及量型设计、变形进行了充分的讲解(用了一周的时间),从概念、定义、运用的角度进行了分析,也分析了大家容易出现的错记、错用的情况。

从这节课开始,学习函数的应用。之前,我们也运用到了不少的函数,但对函数的格式、要求、功能、调用没有进行深入的分析,我们大概用四周的时间来完成。

二、新授

1.大家回忆我们知道的函数

bof()、eof()、recn()、recc()、found()、file()、sele()等等,这些都是我们在学习使用数据表的时候用过的。

2.总结这些函数的‘长相’

函数名、一对括号、自变量,如recc(2),函数名为reccount,括号,自变量为2,意思是返回2号工作区中打开数据表的记录总条数。

3.函数的相关属性

1)函数名:代表函数的功能

2)一对括号:界定函数处理的数据(即自变量)

3)自变量:(根据自变量的值的不同,函数处理的数据不同,结果可能不同)(三个区分:个数区分、位置区分、类型区分)

4)函数值:每个函数根据其功能,返回一个功能值,做为函数值,函数值参与运算,要十分注意函数值的类型。

4.分析的第一个函数:int

1)格式及调用:

INT(expN)   &&只取括号内结果的整数部分,并不四舍五入。返回值为N型。

? INT(12.5) && 显示12
? INT(6.25 * 2) && 显示12
? INT(-12.5) && 显示-12
STORE -12.5 TO gnNumber
? INT(gnNumber) && 显示-12

2)功能:

A. 取值(见上边示例)

B. 取余

*取10的余数

x=125

?  x-int(x/10)*10          &&结果为5

*取2的余数

x=9

? x-int(x/2)*2     &&结果为1

C. 取位

*x=1234

? x-int(x/10)*10   &&结果为个位数 4

? int(x/10)-int(x/100)*10   &&结果为十位数3

 ?int(x/100)-int(x/1000)*10   &&结果为百位数2

? int(x/10^(n-1))-int(x/10^n)*10   &&结果为第n位,即n=1的时候,求个位,n=2的时候,求百位,以此类推。

三、练习

其他用法:

1.mod的使用

求个位:(想想为什么?)

? mod(int(x),10)  

2.条件判断,判断是不是偶数?

int(x/2)=x/2

3.对y的值四舍五入取整数

y=1234.567

? int(y)     &&结果为1234

? int(y+0.5)  &&结果为1235,分析一下为什么加0.5再取整能完成呢。

四、总结

1.函数的格式及调用、属性;

2.int函数的功能、调用;

3.int函数的实际用途。

五、作业

1.掌握函数的格式、调用及属性;

2.int函数的实际用法;

六、反思

对函数的深刻领会,才会在程序设计及命令执行过程中功能得到丰富,控制更加智能,效率更高。

185

D:2012-11-14
T:8:10:00
IP:192.168.8.40



作者:
张顺海

2012.11.14  星期三

试题讲解

一、上节课我们讲了选择题中的第1-16题,问题较多的有:

1.选择题5,对数据库与数据表的概念不清,打开命令与格式不清。

2.选择题6,计算循环次数不准。(循环终值-循环初值)/步长,取整,再加1。

3.选择题10,记录定位命令的格式记忆不准确,3、go 3、goto 3都是将指针定位于3号记录上,但go to中间没有空格,且用命令locate for recn()=3,也能完成go 3的功能。

4.选择题12,对SQL语句的分组(group by)与排序(order by)分析不清。

 

二、继续讲解

17建立一个合法的变量,应该遵循变量起名规则,以下不正确的变量名为(                   )

A.book

B.姓名

C.average

D.3ab

18. 记录删除相关的命令有哪四个:                

1.delete 2.recall 3.pack 4.zap 5.replace

A.1、2、4、5

B.1、2、3、5

C.1、3、4、5

D.1、2、3、4

19逻辑删除‘业务员’表中1966年以后出生(不包括1966年)的记录,应该使用的命令为:(表中有日期型的‘出生日期’字段)                

A.delete for year(出生日期)<1966

B.delete for year(出生日期)>1966

C.delete for出生日期>1966

D.delete for出生日期<1966

20 命令正确执行与索引相关的命令有:                

(1)find (2)seek (3) skip(4) total

A.(1)(2)(3)(4)

B.(2)(3)(4)

C.(1)(3)(4)

D.以上都不对

 


 

二、填空题(共5空,每空2分,计10分)

1. 在Visual FoxPro中,建立一个新的数据,包括.dbc文件,还有文件和  2 文件

2. 利用SQL语句的定义功能,建立一个学生表文件(xs.dbf),其中学号,C型,6个长度;姓名,C型,6个长度;出生日期,D型;身份证号,C型,18个长度;通讯地址,C型,50个长度。语句为:                           3                                 。3.写出默认范围为当前记录的两个指,      4                         5       

三、判断题(每题2分,共5题,计10分)

1. 一个表最多可以建立7个索引文件。(     ) 

2 .数据表只能属于一个数据库。(   ) 

3. DATE()+100表达式的功能是返回系统的当前日期100天前的日子。  (    )

4. 命令find和seek通用,都得用在索引文件上。(   )

5.vfp6.0是数据库管理系统(DBMS),可以编写程序,是一款面向过程的程序设计软件。(  )

四、写出下列程序要求的指令(每题5分,共2题,计10分)

已知:xxb.dbf文件的结构如下:

1xm c 6

2xb c 2

3xh c 3

4nl n 2

要求:

1.统计记录的条数,并将结果保存到变量zs中;

2.统计表格中的平均年龄,并将结果保存到变量zt中。

按要求写在下边的横线上:

1.                                                                           。

2.                                                                           。

三、主要问题

四、总结

五、反思

首页  前一页  后一页  末页
现在是第37页一共有99页