程序设计初步课件

上传人:1ta3****9ta1 文档编号:252736389 上传时间:2024-11-19 格式:PPT 页数:54 大小:252.05KB
收藏 版权申诉 举报 下载
程序设计初步课件_第1页
第1页 / 共54页
程序设计初步课件_第2页
第2页 / 共54页
程序设计初步课件_第3页
第3页 / 共54页
资源描述:

《程序设计初步课件》由会员分享,可在线阅读,更多相关《程序设计初步课件(54页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,,,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第四章 程序设计初步,,程序文件,程序的控制结构,多模块程序,,,第四章 程序设计初步 程序文件,1,第一节 程序文件,程序:,是计算机能够分析执行的指令集合。,程序文件:,程序以文本文件的形式保存。,扩展名为:,.,prg,程序执行的过程就是程序中所有指令执行的过程。,,,第一节 程序文件程序:是计算机能够分析执行的指令集合。,2,一、建立,,1、命令方式:,,格式:,modify command [,程序文件名|?],2、菜单方式:,文件/新建/程序,,3、在[项目管理器]中:,代

2、码/程序/新建,,,一、建立,3,二、编辑,,1、命令方式:,格式:,modify command [,程序文件名|?],2、菜单:文件/打开,在[打开]窗口中选择要编辑的文件名,确定,。,3、在 [项目管理器]中,代码/选择要修改的程序/修改。,,,,二、编辑,4,三、运行,1、命令方式:,,格式:,do <,程序文件名>,2、菜单方式:,程序 / 运行 在[运行]窗口中选择要运行的程序文件名,单击“运行”。,3、在 [项目管理器]中:,代码 / 选择要运行的程序/运行。,,,三、运行,5,四、程序书写规则,1、命令分行:,每条命令都以回车键结尾,一行一条命令,可用“;“分行。,2、

3、命令注释:,注释行以“*“开头,命令后以“&&“开头。,例:显示表文件,SP,中的品名,,*本程序用于显示表文件,SP,中的品名,,use sp,&&,打开表文件,?,品名,&&显示品名,,return,&&,结束语句,,,四、程序书写规则*本程序用于显示表文件SP中的品名,6,五、程序文件中的专用命令,1、程序结尾命令,return:,结束执行程序,并返回到调用它的上级程序继续执行。允许缺省。,cancel:,程序运行终止,清除程序的私有变量,返回到命令窗口。,quit:,程序终止运行后返回到,Win。,,,五、程序文件中的专用命令,7,2、输入类语句,赋值语句,格式:<内存变量,> =

4、<,表达式>,store <,表达式>,to,,功能:给内存变量赋值,例:,A=1,B=A+1,C=A*B,I=I+1,STORE 0 TO X,Y,Z,,,2、输入类语句,8,交互式语句,,,INPUT [,提示信息<提示信息,>] TO <,内存变量>,可输入,N、C、L、D,型数据。,ACCEPT [<,提示信息>],TO <,内存变量>,只能输入,C,型数据。,功能:系统执行命令时暂停,等待用户从键盘上输入信息给内存变量后,继续执行。,,,交互式语句,9,例:求任意半径的圆面积,Input “,半径为:”,to r,S=pi()*r*r,? “,面积为:” ,,s,? “,

5、面积为:” ,,alltrim(str (s)),,,例:求任意半径的圆面积,10,例2、在,xsda.dbf,中按姓名查找某学生的记录。,程序:,,(,在此例中说明,input,和,accept,的用法),解1、,use xsda,input,‘,请输入学生姓名’,to a,loca all for,姓名=,a,disp,解2、,use xsda,accept,‘,请输入学生姓名’,to a,loca all for,姓名=,a,disp,,,例2、在xsda.dbf中按姓名查找某学生的记录。解1、us,11,例3、编写程序,在,xsda,中查找指定日期以后出生的学生记录。,Us

6、e xsda,Clear,Set stri to 0,Input ',请输入日期:',to rq,Sele * from xsda where,出生日期>,rq,Use,return,,,例3、编写程序,在xsda中查找指定日期以后出生的学生记录。,12,3、输出类语句,非格式输出语句,格式1:? <内存变量名表,>,格式2:?? <内存变量名表,>,显示内存变量、常量或表达式的值。,格式输出语句,格式:@ <行,列,> SAY <,表达式>,文本输出语句,格式:,TEXT,<,输出显示内容>,,ENDTEXT,,,3、输出类语句,13,例4、给出三角形的底和高,编程求

7、三角形的面积。,设三角形的底为,a,,高为,h,,面积为,s.,S=a*h/2,Input ‘,请输入,a,值:’,to a,Input ‘,请输入,h,值:’,to h,s=a*h/2,? s,return,Input ‘,请输入,a,值:’,to a,Input ‘,请输入,h,值:’,to h,s=a*h/2,? ‘s=‘,s,return,,,例4、给出三角形的底和高,编程求三角形的面积。Input ‘,14,例5、鸡兔同笼,已知鸡兔的总头数为,H,,总脚数为,F,,求鸡兔各有多少只?,算法:,Input ‘,请输入,H,值:’,to h,Input ‘,请输入,F,值

8、:’,to f,X=(4*h-f)/2,Y=(f-2*h)/2,? ‘x=‘,x,? ‘y=‘,y,return,Input ‘,请输入,H,值:’,to h,Input ‘,请输入,F,值:’,to f,X=(4*h-f)/2,Y=(f-2*h)/2,@ 10,10 say ‘x=‘,@ 10,12 say x,@ 12,10 say ‘y=‘,@ 12,12 say y,return,,X=(4H-F)/2,Y=(F-2H)/2,得出:,,X+Y=H 2X+4Y=F,,,例5、鸡兔同笼,已知鸡兔的总头数为H,总脚数为F,求鸡兔各有

9、,15,实验:程序设计,一、实验目的:,1、掌握程序文件的建立、编辑、及执行的方法。,2、掌握程序设计中的常用的输入、输出语句。,,二、实验内容,: (编程),1、在,xsda.dbf,中:,显示并统计入学成绩在400分以上的学生记录。,要求能按指定的出生日期查找学生的记录。,2、在,xscj.dbf,中:,要求能按姓名查找学生的记录。,分别求男、女同学总分的平均分,统计总分在200分以上的人数。,,,实验:程序设计一、实验目的:,16,3、在,SP,表中:,要求能按指定的品名显示出“品名、单价、数量、生产单位“。,要求能按“进口“显示“货号、编号、开单日期“。,4、编程求半径为,R,的圆面

10、积,S。,分别用?和@格式输出面积,S,值。,,,3、在SP表中:,17,输入输出语句,@ <行,列,> [SAY <,表达式1>] [,GET <,变量名>] [,DEFAULT <,表达式2>],说明:,SAY,子句用来输出数据,,GET,子句用来输入及编辑数据。,GET,子句的变量必须具有初值。,GET,子句的变量必须用,READ,命令来激活。,,,输入输出语句,18,例6:编程,能根据,记录号,来修改,SP,中某商品的单价、数量、开单日期、生产单位。,use sp,@ 2,10 say ',请输入记录号:',get jih,default 1,read,go jih,@ 4,10

11、say,',请修改第'+,str(jih,2)+',个商品的记录',@ 5,10,say ',单价',get,单价,@ 6,10,say ',数量',get,数量,@ 7,10,say ',开单日期',get,开单日期,@ 8,10,say ',生产单位',get,生产单位,read,use,,,例6:编程,能根据记录号来修改SP中某商品的单价、数量、开单,19,例7:编程,能根据商品的,品名,来修改此商品的单价、数量及开单日期。,use sp,pm=‘ ‘,@ 2,10 say ',请输入品名',get pm,read,loca for,品名=,pm,@ 4,10 say,'

12、,请修改'+,pm+',的记录',@ 5,10,say ',单价',get,单价,@ 6,10,say ',数量',get,数量,@ 7,10,say ',开单日期',get,开单日期,read,use,,,例7:编程,能根据商品的品名来修改此商品的单价、数量及开单日,20,,问题:,编程在,XSCJ,中要求能按姓名查找学生的记录,若查到则显示此记录,若查不到此记录,则显示“无此记录”。,use xscj,accept ',请输入学生姓名:',to xm,loca for,姓名=,xm,if .not.eof(),disp,else,? ',无此记录',endif,use,,,,问题:编程在X

13、SCJ中要求能按姓名查找学生的记录,若查到则,21,第二节 程序的控制结构,一、分支结构,(一) 单分支,:,,IF,<,逻辑表达式>,,ELSE,<,语句序列2>,ENDIF,,,,第二节 程序的控制结构一、分支结构(一) 单分支:,22,第一种解法:,use xscj,accept ',请输入学生姓名:',to xm,loca for,姓名=,xm,if .not.eof(),disp,else,,? ',无此记录',endif,use,第二种解法:,use xscj,accept ',请输入学生姓名:',to xm,loca for,姓名=,xm,if found(),disp,el

14、se,,wait ',查无此人',window,endif,use,,,第一种解法:第二种解法:,23,@5,10,say ',请输入表名:',get bm default space(10),read,bm=alltrim (bm) &&,删除字符串前后的空格,if file('&bm..dbf'),use &bm,brow,else,wait ‘,该文件不存在!’,window,endif,use,宏代换函数:&,&<字符型内存变量,> [.<,字符表达式>],替换出字符型内存变量的值。,注意:不能直接用变量名表示表名。如:,USE bm,但可用:,USE &bm,,或:,

15、USE (bm),,,@5,10 say '请输入表名:'get bm defau,24,(二,),多分支:,DO CASE,CASE <,逻辑表达式1>,,,CASE <,逻辑表达式2,>,<,语句序列2,>,……,CASE <,逻辑表达式,n>,<,语句序列,n>,ENDCASE,,,(二) 多分支:,25,例8:计算分段函数值:,2,x-1,(x>0),3x+5,(0<=x<3),X+1,(3<=x<5),5X-3,(5<=x<10),7X+2,(x>=10),f(x)=,,input “,输入,X,值:“,to x,do case,,case x<0,f=2*x-1,,case

16、 x<3,f=3*x+5,,case x<5,f=x+1,,case x<10,f=7*x+1,,otherwise,f=7*x+2,endcase,? “f(“,x,”)=“,f,return,,,例8:计算分段函数值:2x-1 (x>0)f(x)=i,26,例9:编写显示当前季节程序,yue=month(date()),do case,case inlist (yue,3,4,5),&&yue,是否在3,4,5中,jj=‘,春’,,case inlist(yue,6,7,8),jj=‘,夏’,case inlist(yue,9,10,11),jj=‘,秋’,case inlist(y

17、ue,12,1,2),jj=‘,冬’,endcase,wait jj window,return,,,例9:编写显示当前季节程序yue=month(date()),27,二、循环结构,(,一) 条件循环,DO WHILE <,逻辑表达式>,<语句序列>,ENDDO,,,二、循环结构(一) 条件循环DO WHILE <逻辑表达式,28,例10、编程,在,SP.dbf,中显示中某种品名的商品的记录。,clear,use sp,accept ‘,请输入商品的品名:’,to pm,do while .not.eof(),&&,记录指针是否在表尾,if,品名=,pm,disp,endif,ski

18、p,enddo,use,,,例10、编程,在SP.dbf中显示中某种品名的商品的记录。c,29,例11、在,SP,中,单价按1千元以下、1千元至5千元以下,5千元以上三个分档统计商品的个数。,设三个单价档次商品的个数分别为:,S1、S2、S3,store 0 to s1,s2,s3,use sp,do while .not.eof(),,do case,,,case,单价<1000,,s1=s1+1,case,单价<5000,,s2=s2+1,otherwise,s3=s3+1,,endcase,,skip,enddo,? '1,千元以下商品个数:',,s1,? '1,千至5千元以下商品个数:

19、',,s2,? '5,千元以下商品个数:',,s3,use,,,例11、在SP中,单价按1千元以下、1千元至5千元以下,5千,30,(,二) 步长循环,FOR X=,初值,TO,终值,SETP,步长值,,NEXT,例12、编程,求,s=1+2+3+…+100,的值。,clear,s=0,for i=1 to 100 setp 1,s=s+1,next,? ‘s=’,s,,,(二) 步长循环FOR X=初值 TO 终值 SETP,31,(,三) 扫描循环,SCAN [,范围] [,FOR<,逻辑表达式1>],[,WHILE <,逻辑表达式2>],,ENDSCAN,此语句一般用于处理表中

20、记录,针对当前表进行循环。,,,(三) 扫描循环SCAN [范围] [FOR<逻辑表达式1,32,例13、编程,显示在,SP,中单价大于1000元的商品品名。,clear,use sp,scan for,单价>1000,? 品名,endscan,use,,,例13、编程,显示在SP中单价大于1000元的商品品名。cl,33,clea,use sp,scan for year(,开单日期)>1996,? " ",品名,endscan,use,例14、编程,显示在,SP,中开单日期在1996年以后的商品的品名。,,,clea例14、编程,显示在SP中开单日期在1996年以后的,34,

21、,,(,四) 循环辅助语句,LOOP,语句,EXIT,语句,DO WHILE <,逻辑表达式>,.,.,.,,LOOP,.,.,.,ENDDO,DO WHILE <,逻辑表达式>,.,.,.,,EXIT,.,.,.,ENDDO,,,,,(四) 循环辅助语句 DO WHILE ,35,例15、编程计算,s=1+2+3+…+100,,并求1~100之间的偶数之和。,clear,store 0 to i,s,t,do while i<100,i=i+1,s=s+i,if int(i/2)i/2,,loop,endif,t=t+i,enddo,? '1+2+3+...+100=',s,?

22、'1~100,的偶数和为:',,t,,,例15、编程计算s=1+2+3+…+100,并求1~100之,36,小结:,一、分支结构,单分支,:,IF,<,逻辑表达式>,,ELSE,<,语句序列2>,ENDIF,多分支:,DO CASE,CASE <,逻辑表达式1>,,,CASE <,逻辑表达式2,>,<,语句序列2,>,……,CASE <,逻辑表达式,n>,<,语句序列,n>,ENDCASE,,,小结:单分支:多分支:,37,二、循环结构,DO WHILE <,逻辑表达式>,<语句序列>,ENDDO,FOR X=,初值,TO,终值,SETP,步长值,,NEXT,SCAN [,范围][,F

23、OR<,逻辑表达式1>],[,WHILE <,逻辑表达式2>],,ENDSCAN,条件循环,步长循环,扫描循环,,,二、循环结构DO WHILE <逻辑表达式>FOR X=初,38,实验:程序设计(分支结构、循环结构,),目的:掌握分支结构、循环结构程序的设计方法。,内容:,1、求5!+10!+15!+20!的值。,2、给一个百分制的成绩,要求输出成绩的等级,优、良、中、及格、不及格,。,90,分以上为“优”,80—89分为“良”,70—79分为“中”,60—69分为“及格”,59分以下为“不及格”,,,实验:程序设计(分支结构、循环结构),39,3、编程在,SP,中要求能按开单日期查找商品

24、的记录,若查到则显示此记录,若查不到此记录,则显示“无此记录”。,4、编程在,XSDA,中显示入学成绩高于某个分数段的学生记录,并统计其人数。,5、编程,显示在,SP,中某种品名的商品的记录。,6、编程,显示在,XSDA,中1983年以后出生的学生的记录。,7、从键盘上输入任意三个数,从大到小排序。,,,,3、编程在SP中要求能按开单日期查找商品的记录,若查到则显示,40,例2、编程:求10!的值。,设,t=1*2*3*…*10,t=1,for j=1 to 10,t=t*j,next,? ‘t=’,t,return,例1、编程:求5+10+15+20的值。,设,s=5+10+15+20

25、,clear,s=o,for i=5 to 20 step 5,s=s+i,next,? ‘s=’,s,return,,,例2、编程:求10!的值。t=1例1、编程:求5+10+15,41,1、求5!+10!+15!+20!的值。,解:,s=0,for i=5 to 20 step 5,t=1,,for j=1 to i,t=t*j,,next,s=s+t,next,? ‘s=’,s,return,,,外循环求累加,s,内循环求阶乘,t,,,1、求5!+10!+15!+20!的值。 s=0外循环,42,2、给一个百分制的成绩,要求输出成绩的等级,优、良、中、及格、不及格,。,90,

26、分以上为“优”,80—89分为“良”,70—79分为“中”,60—69分为“及格”,59分以下为“不及格”,input ',请输入分数:',to fs,do case,case fs>=90,cj=',优',,case fs>=80,cj=',良',,case fs>=70,cj=',中',,case fs>=60,cj=',及格',,otherwise,cj=',不及格',endcase,? ',分数为:',,alltrim,(,str,(fs)),',成绩为:',,cj,,,2、给一个百分制的成绩,要求输出成绩的等级优、良、中、及格、,43,3、编程在,SP,中要求能按开单日期查找商品

27、的记录,若查到则显示此记录,若查不到此记录,则显示“无此记录”。,clea,use sp,input ',请输入所要查找的开单日期:',to kdrq,loca for,开单日期=,kdrq,if .not.eof(),disp,endif,wait ',无此记录!',window,use,,,3、编程在SP中要求能按开单日期查找商品的记录,若查到则显示,44,clea,use sp,input ',请输入所要查找的开单日期:',to kdrq,loca for,开单日期=,kdrq,if eof(),wait ',无此记录!',window,endif,do while .not.eof()

28、,,if,开单日期=,kdrq,disp,,endif,skip,enddo,use,若显示所有满足要求的记录。,,,clea若显示所有满足要求的记录。,45,4、编程在,XSDA,中显示入学成绩高于某个分数段的学生记录,并统计其人数。,clea,use xsda,m=0,input ',请输入所要查找的入学分数:',to fs,do while .not.eof(),,if,入学成绩>,fs,disp,m=m+1,,endif,skip,enddo,? ',人数为:',,alltrim(str(m)),use,,,4、编程在XSDA中显示入学成绩高于某个分数段的学生记录,并,46,5、编程,

29、显示在,SP,中某种品名的商品的记录。,use sp,accept ',请输入商品的品名:',to pm,loca for,品名=,pm,if eof()=.t.,? ',无此记录',else,,Do while .not.eof(),,if,品名=,pm,disp,,endif,skip,,enddo,endif,use,,,5、编程,显示在SP中某种品名的商品的记录。use sp,47,6、编程,显示在,XSDA,中1983年以后出生的学生的记录。,clea,use xsda,scan,for,year(,出生日期)>1983,,disp,endscan,use,在此题中说明,for,

30、与,while,的区别,,,6、编程,显示在XSDA中1983年以后出生的学生的记录。c,48,上机作业,1、编程计算 3*4+6*7+9*10+12*13+15*16的值。,2、,从键盘上输入10个数,显示出其中最大和最小的数。,3、,编程显示在,SP,中2001年以后开单日期的所有商品的记录。若没有则显示“无此记录“。,4、编程,在,xsda,中能根据的,姓名,来修改此学生的专业、入学成绩、出生日期。,(用@ <行,列,> say … get …,语句),,,,上机作业,49,1、编程计算 3*4+6*7+9*10+12*13+15*16的值。,s=0,for i=3 to 15 ste

31、p 3,s=s+i*(i+1),next,?’s=’,s,return,,,1、编程计算 3*4+6*7+9*10+12*13+15*1,50,2、,从键盘上输入10个数,显示出其中最大和最小的数。,input ',请输入第一个数',to a,stor a to ma,mi,for i=2 to 10,input ',请输入数值',to a,,if a>ma,ma=a,,else,,if a

32、0个数,显示出其中最大和最小的数。inpu,51,3、,编程显示在,SP,中1996年以后开单日期的所有商品的记录。若没有则显示“无此记录“。,clea,use sp,loca for year(,开单日期)>1996,if eof()=.t.,? ',无此记录',else,,do while .not.eof(),,if year(,开单日期)>1996,,disp,,endif,skip,,enddo,endif,use,,,3、编程显示在SP中1996年以后开单日期的所有商品的记录。,52,4、编程,在,xsda,中能根据的,姓名,来修改此学生的专业、入学成绩、出生日期。,clea

33、,use xsda,xm=" ",@ 5,10 say ',请输入学生姓名',get xm,read,loca for,姓名=,xm,@ 6,10 say ',请修改'+,xm+',的记录',@ 7,10,say ',专业名称',get,专业名称,@ 8,10,say ',入学成绩',get,入学成绩,@ 9,10,say ',出生日期',get,出生日期,read,use,,,4、编程,在xsda中能根据的姓名来修改此学生的专业、入学成,53,use xsda,@ 5,10 say ',请输入学生姓名',get xm defa space(6),read,loca for,姓名=,xm,if .not.eof(),@ 6,10 say ',请修改'+,xm+',的记录',@ 7,10,say ‘,专业名称’,get,专业名称,@ 8,10,say ‘,入学成绩’,get,入学成绩,@ 9,10,say ‘,出生日期’,get,出生日期,,read,else,wait ',无此学生记录!',window,endif,use,若无此姓名学生,,,则输出提示“无此学生记录!“,,,use xsda若无此姓名学生,则输出提示“无此学生记录!“,54,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!