《VFox电子教案课件》由会员分享,可在线阅读,更多相关《VFox电子教案课件(21页珍藏版)》请在金锄头文库上搜索。
1、VFox 程序设计SWNU.WUDAIXIANVFox程序设计程序设计但愿她是你知识大厦的又一块基石。但愿她是你知识大厦的又一块基石。但愿她是开启你智慧的又一把钥匙!但愿她是开启你智慧的又一把钥匙! 张高亮电子教案电子教案1 1VFox电子教案VFox 程序设计SWNU.WUDAIXIAN目目 录录VFoxVFox基本知识基本知识控制结构及程序设计控制结构及程序设计应用举例应用举例2 2VFox电子教案VFox 程序设计SWNU.WUDAIXIANclears=0for i=1 to 100 s=s+iendfor? “s=”,sreturn 例例1 编程求编程求 1+2+3+100第一讲第一
2、讲 VFox VFox基本知识基本知识初始化部分初始化部分数据处理数据处理(循环循环)部分部分输出部分输出部分结束语句结束语句 程序:程序:是计算机能够分析执行的命令序列的集合。是计算机能够分析执行的命令序列的集合。 程序设计:程序设计:是计算机用户将解决某一实际问题所用是计算机用户将解决某一实际问题所用的命令按一定的逻辑顺序编制成程序,并以文件的形式的命令按一定的逻辑顺序编制成程序,并以文件的形式存放于磁盘的过程。执行程序时,计算机按顺序自动执存放于磁盘的过程。执行程序时,计算机按顺序自动执行程序文件中的命令。行程序文件中的命令。1.1 程序的概念程序的概念3 3VFox电子教案VFox 程
3、序设计SWNU.WUDAIXIAN字符型:字符型:英文、汉字、数字、空格和标点符等组成的一串字符英文、汉字、数字、空格和标点符等组成的一串字符 数值型:数值型:数值型:数值型:由数字由数字由数字由数字0-90-90-90-9以及正负号以及正负号以及正负号以及正负号(+(+(+(+和和和和-)-)-)-)和小数点和小数点和小数点和小数点(.)(.)(.)(.)组成。组成。组成。组成。 逻辑型:逻辑型:逻辑型:逻辑型:存入的值为真存入的值为真存入的值为真存入的值为真(T)(T)(T)(T)和假和假和假和假(F)(F)(F)(F)两种状态,长度固定为两种状态,长度固定为两种状态,长度固定为两种状态,
4、长度固定为1 1 1 1位位位位1.2 VFox语言基础语言基础数据类型数据类型数值型数值型数值型数值型( ( ( (常数常数常数常数) ) ) ):如如如如12121212、3.13453.13453.13453.1345、-6.78-6.78-6.78-6.78、5.87E125.87E125.87E125.87E12 。 字符型字符型( (字符串字符串) ):其表示方法用定界符将字符串括起来,定界其表示方法用定界符将字符串括起来,定界符有符有、 和和 。注意,这些定界符必须配对使用,。注意,这些定界符必须配对使用, 逻辑型:逻辑型:逻辑型:逻辑型:用用用用.Y.Y.Y.Y.、.y.y.y
5、.y.或或或或.T.T.T.T.、.t.t.t.t.表示逻辑真值,用表示逻辑真值,用表示逻辑真值,用表示逻辑真值,用.N.N.N.N.、.n.n.n.n.或或或或.F.F.F.F.、.f.f.f.f.表示逻辑假值,逻辑型数据只占一个字节。表示逻辑假值,逻辑型数据只占一个字节。表示逻辑假值,逻辑型数据只占一个字节。表示逻辑假值,逻辑型数据只占一个字节。 常量常量内存变量:内存变量:内存变量:内存变量:是一种临时变量,是在程序执行中用于存放临时数是一种临时变量,是在程序执行中用于存放临时数是一种临时变量,是在程序执行中用于存放临时数是一种临时变量,是在程序执行中用于存放临时数据据据据( ( ( (
6、中间结果或最终结果中间结果或最终结果中间结果或最终结果中间结果或最终结果) ) ) )的内存工作单元。他具有字符型、数的内存工作单元。他具有字符型、数的内存工作单元。他具有字符型、数的内存工作单元。他具有字符型、数值型、日期型、逻辑型和屏幕型值型、日期型、逻辑型和屏幕型值型、日期型、逻辑型和屏幕型值型、日期型、逻辑型和屏幕型5 5 5 5种数据类型。种数据类型。种数据类型。种数据类型。 数组变量:数组变量:数组变量:数组变量:具有相同名称而下标不同的一组有序内存变量。允具有相同名称而下标不同的一组有序内存变量。允具有相同名称而下标不同的一组有序内存变量。允具有相同名称而下标不同的一组有序内存变
7、量。允许定义一维和二维数组,数组在使用之前需要先定义。许定义一维和二维数组,数组在使用之前需要先定义。许定义一维和二维数组,数组在使用之前需要先定义。许定义一维和二维数组,数组在使用之前需要先定义。变量变量4 4VFox电子教案VFox 程序设计SWNU.WUDAIXIAN运算符:运算符:运算符:运算符:用来进行运算的符号;用来进行运算的符号;用来进行运算的符号;用来进行运算的符号;表表表表达达达达式式式式:是是是是指指指指用用用用运运运运算算算算符符符符将将将将变变变变量量量量、数数数数组组组组元元元元素素素素、常常常常量量量量、函函函函数数数数连连连连接接接接组组组组合合合合得得得得到到到
8、到的的的的一一一一组组组组有有有有物物物物理理理理意意意意义义义义的的的的式式式式子子子子。表表表表达达达达式式式式分分分分为为为为算算算算术术术术表表表表达达达达式式式式、字字字字符符符符表表表表达达达达式式式式、关关关关系系系系表表表表达达达达式式式式和和和和逻逻逻逻辑辑辑辑表表表表达达达达式式式式4 4 4 4类类类类。表表表表达达达达式式式式和和和和常常常常量量量量一一一一样样样样,是是是是具具具具有有有有数数数数据据据据类类类类型型型型的的的的数数数数据据据据( ( ( (求求求求值值值值之之之之后后后后) ) ) ),因因因因此此此此一一一一个个个个表表表表达达达达式式式式中中中中
9、的的的的各各各各项项项项必须具有相同类型。必须具有相同类型。必须具有相同类型。必须具有相同类型。运算符及表达式运算符及表达式算术运算符:算术运算符:算术运算符:算术运算符:( ) *( ) *( ) *( ) *或或或或 % % % % 模数模数模数模数( ( ( (除法的余数除法的余数除法的余数除法的余数) *) *) *) *、/ +/ +/ +/ +、- - - - 算术表达式:算术表达式:算术表达式:算术表达式:10+3*4-15 12*2 x3/y+a%510+3*4-15 12*2 x3/y+a%510+3*4-15 12*2 x3/y+a%510+3*4-15 12*2 x3/y
10、+a%5 表达式求值时,先按运算符的优先级别高低次序执行表达式求值时,先按运算符的优先级别高低次序执行表达式求值时,先按运算符的优先级别高低次序执行表达式求值时,先按运算符的优先级别高低次序执行. . . . 字符表达式:字符表达式:字符表达式:字符表达式:完全连接完全连接完全连接完全连接“+” “+” “+” “+” 不完全连接不完全连接不完全连接不完全连接“-” “-” “-” “-” 包含运算包含运算包含运算包含运算“$” “$” “$” “$” “I have a ” +“Book” “I have a ” +“Book” “计算机计算机计算机计算机 ”-“ ”-“ 世世世世 界界界界
11、 “ABC”$“abcdef”“ABC”$“abcdef” 关系运算符:关系运算符:关系运算符:关系运算符: = = = ,!=,# = = = ,!=,# = = = ,!=,# = = = ,!=,#关系表达式:关系表达式:关系表达式:关系表达式: 1244.33=a(2) abb A B1244.33=a(2) abb A B 逻辑运算符逻辑运算符逻辑运算符逻辑运算符: : : : !, NOT !, NOT !, NOT !, NOT 或或或或 .NOT. OR .NOT. OR .NOT. OR .NOT. OR 或或或或 .OR. AND .OR. AND .OR. AND .OR
12、. AND 或或或或 .AND. .AND. .AND. .AND.逻辑表达式:逻辑表达式:逻辑表达式:逻辑表达式: x5 OR y5 OR y5 OR y5 OR y10 .T.或者或者或者或者.F.F.F.F.,取决于,取决于,取决于,取决于x,yx,yx,yx,y的值的值的值的值5 5VFox电子教案VFox 程序设计SWNU.WUDAIXIAN取整函数:取整函数:取整函数:取整函数: INT( INT()功能:功能:功能:功能:将数值表达式的值去掉小数部分取其整数将数值表达式的值去掉小数部分取其整数将数值表达式的值去掉小数部分取其整数将数值表达式的值去掉小数部分取其整数( (只舍不入只
13、舍不入只舍不入只舍不入) )求余函数:求余函数:求余函数:求余函数: MOD(,) MOD(,)功能:功能:功能:功能:返回返回返回返回 1除以除以除以除以 2所得的余数。所得的余数。所得的余数。所得的余数。 取子串函数取子串函数取子串函数取子串函数: : SUBSTR(SUBSTR(, , ) )功能:功能:功能:功能: 从指定表达式值的指始位置取指定长度的字符串作为函从指定表达式值的指始位置取指定长度的字符串作为函从指定表达式值的指始位置取指定长度的字符串作为函从指定表达式值的指始位置取指定长度的字符串作为函数值。数值。数值。数值。字符串转换为数值函数:字符串转换为数值函数:字符串转换为数
14、值函数:字符串转换为数值函数: VAL( VAL()功能:功能:功能:功能: 将数字字符串将数字字符串将数字字符串将数字字符串( (包括正负号、小数点包括正负号、小数点包括正负号、小数点包括正负号、小数点) )转换为相应的数值转换为相应的数值转换为相应的数值转换为相应的数值型数据。型数据。型数据。型数据。数值转换成字符串函数:数值转换成字符串函数:数值转换成字符串函数:数值转换成字符串函数: STR( STR( , , ) )功能:功能:功能:功能: 将将将将 的值转换成字符串,转换时根据需要的值转换成字符串,转换时根据需要的值转换成字符串,转换时根据需要的值转换成字符串,转换时根据需要自动四
15、舍五入。自动四舍五入。自动四舍五入。自动四舍五入。常用函数常用函数6 6VFox电子教案VFox 程序设计SWNU.WUDAIXIAN补充补充: :随机函数随机函数RAND 格式:格式:RAND(N) 功能:功能:系统产生一个纯小数系统产生一个纯小数(01) N=0每次产生一个不同的纯小数每次产生一个不同的纯小数,默认为,默认为0 0N=1每次产生一个相同的纯小数每次产生一个相同的纯小数 例:随机生成一个例:随机生成一个60到到250内的整数。内的整数。 ? Int(60+rand()*190) 随机生成两个两位整数,并相减。随机生成两个两位整数,并相减。 a=(10+Int(rand()*9
16、0) b= (10+Int(rand()*90) ? a-b7 7VFox电子教案VFox 程序设计SWNU.WUDAIXIAN1.3 Vfox程序设计基本语句程序设计基本语句赋值语句赋值语句格式:格式:格式:格式: STORE STORE TO TO | 或:或:或:或: |= 赋值语句赋值语句格式格式格式格式 :DIME DIME ()1() ,(2(, ) ) 如:如:如:如:DIME A(2), B(2,2)DIME A(2), B(2,2) 表示数组表示数组表示数组表示数组A A有两个元素,分别是有两个元素,分别是有两个元素,分别是有两个元素,分别是A(1)A(1)和和和和A(2)A
17、(2)。数组。数组。数组。数组B B有有有有4 4个元个元个元个元素,分别为素,分别为素,分别为素,分别为B(1,1)B(1,1),B(1,2)B(1,2),B(2,1)B(2,1),B(2,2)B(2,2)。引用:引用:引用:引用:数组中每个有序变量构成数组的成员,称之为数组元素。数组中每个有序变量构成数组的成员,称之为数组元素。数组中每个有序变量构成数组的成员,称之为数组元素。数组中每个有序变量构成数组的成员,称之为数组元素。数组元素的名称使用数组名和用括号括起来的下标组成。数组元素的名称使用数组名和用括号括起来的下标组成。数组元素的名称使用数组名和用括号括起来的下标组成。数组元素的名称使
18、用数组名和用括号括起来的下标组成。数组下标可以是常量、变量和表达式,如数组下标可以是常量、变量和表达式,如数组下标可以是常量、变量和表达式,如数组下标可以是常量、变量和表达式,如A(l)A(l),A(b1)A(b1),A(a+b)A(a+b);数组的第一个下标是数组的第一个下标是数组的第一个下标是数组的第一个下标是1 1,也就是说数组下标是从,也就是说数组下标是从,也就是说数组下标是从,也就是说数组下标是从1 1开始的;开始的;开始的;开始的;数组定义语句数组定义语句格式:格式:格式:格式:?|? ?|? 功能:功能:功能:功能:先计算各表达式值先计算各表达式值先计算各表达式值先计算各表达式值
19、( (逗号间隔逗号间隔逗号间隔逗号间隔) )并按标准格式输出结果并按标准格式输出结果并按标准格式输出结果并按标准格式输出结果. .? 表示先显示输出,后回车换行;表示先显示输出,后回车换行;表示先显示输出,后回车换行;表示先显示输出,后回车换行;? ? 表示不回车换行输出;表示不回车换行输出;表示不回车换行输出;表示不回车换行输出;显示显示输出语句输出语句8 8VFox电子教案VFox 程序设计SWNU.WUDAIXIAN格式:格式:格式:格式:INPUT INPUT TO TO | 功能:功能:功能:功能:在屏幕上显示在屏幕上显示在屏幕上显示在屏幕上显示,并等待用户从键盘上输入,并等待用户从
20、键盘上输入,并等待用户从键盘上输入,并等待用户从键盘上输入表达式,再把表达式的值赋给指定的表达式,再把表达式的值赋给指定的表达式,再把表达式的值赋给指定的表达式,再把表达式的值赋给指定的 。说明:说明:说明:说明: 可接受任何类型的表达式的值。可接受任何类型的表达式的值。可接受任何类型的表达式的值。可接受任何类型的表达式的值。 选项选项选项选项省略时,屏幕上无提示信息而直接等待用户省略时,屏幕上无提示信息而直接等待用户省略时,屏幕上无提示信息而直接等待用户省略时,屏幕上无提示信息而直接等待用户的输入。例如:的输入。例如:的输入。例如:的输入。例如:PNamePName=“=“张三张三张三张三”
21、 ”INPUT “INPUT “请输入姓名为请输入姓名为请输入姓名为请输入姓名为” ”+ +PnamePname+“+“的学生成绩的学生成绩的学生成绩的学生成绩:” TO SCORE:” TO SCORE 若接收字符型常量,则需要把该常量两边的定界符同时输入。若接收字符型常量,则需要把该常量两边的定界符同时输入。若接收字符型常量,则需要把该常量两边的定界符同时输入。若接收字符型常量,则需要把该常量两边的定界符同时输入。若接收表达式,则得到的值为该表达式计算后的值。若接收表达式,则得到的值为该表达式计算后的值。若接收表达式,则得到的值为该表达式计算后的值。若接收表达式,则得到的值为该表达式计算后
22、的值。 INPUT输入语句输入语句格式:格式:格式:格式:ACCEPT ACCEPT TO TO | 功能:功能:功能:功能:在屏幕上显示在屏幕上显示在屏幕上显示在屏幕上显示,等待用户从键盘上输入,等待用户从键盘上输入,等待用户从键盘上输入,等待用户从键盘上输入,再把输入内容作为字符串常量赋值给指定的变量。再把输入内容作为字符串常量赋值给指定的变量。再把输入内容作为字符串常量赋值给指定的变量。再把输入内容作为字符串常量赋值给指定的变量。 只能接受字符型数据。只能接受字符型数据。只能接受字符型数据。只能接受字符型数据。 接受的字符型数据在输入时不需要加定界符。接受的字符型数据在输入时不需要加定界
23、符。接受的字符型数据在输入时不需要加定界符。接受的字符型数据在输入时不需要加定界符。 ACCEPT输入语句输入语句 其它语句其它语句 clear 清屏清屏 retrun返回返回 cancel 终止终止9 9VFox电子教案VFox 程序设计SWNU.WUDAIXIAN第二讲第二讲 控制结构及程序设计应用举例控制结构及程序设计应用举例程序流程图程序流程图:以特定的图形符号加以特定的图形符号加上说明,表示算法的图,称为上说明,表示算法的图,称为流程流程图图或或框图框图。规则:从上到下,从左到右。规则:从上到下,从左到右。符号及其意义:符号及其意义:流程线流程线处理框处理框判断框判断框I/O框框顺序
24、结构:顺序结构:就是计算机要按照程序中语句出现的先后次序依次就是计算机要按照程序中语句出现的先后次序依次执行各条语句的结构。顺序结构是程序设计中最常见、使用最执行各条语句的结构。顺序结构是程序设计中最常见、使用最多的结构。多的结构。 2.1 顺序结构顺序结构clearinput “请输入圆的半径:请输入圆的半径:” to r s=3.14159*r*r? “圆面积圆面积s=”, sreturn 例例2 编程求圆面积编程求圆面积AB入口入口出口出口1010VFox电子教案VFox 程序设计SWNU.WUDAIXIAN2.2 选择结构选择结构条件判断条件判断 双双(单单)分支选择格式:分支选择格式
25、:IF THEN ELSE EDNIF条件条件真真序列序列1假假序列序列2入口入口出口出口说明:说明:IF和和ENDIF必须成对出现,否必须成对出现,否则程序将无法执行。则程序将无法执行。在在IFELSEENDIF中,还可中,还可嵌套嵌套IFELSEENDIF命令。命令。例例3 3 判断某一年是否是润年。判断某一年是否是润年。clearinput “请输入年份请输入年份:” to yif y/4=int(y/4) .and. y/100int(y/100) .or. y/400=int(y/400) ?y,”是闰年是闰年”else ?y,”不是闰年不是闰年”endifcancel润年条件润年条
26、件: :如是润年则能被如是润年则能被4 4整除但不能被整除但不能被100100整除,整除,或能被或能被400400整除。整除。 1111VFox电子教案VFox 程序设计SWNU.WUDAIXIAN多分支选择格式:多分支选择格式:DO CASE CASE 逻辑表达式逻辑表达式1 命令序列命令序列1 CASE 逻辑表达式逻辑表达式2 命令序列命令序列2 CASE 逻辑表达式逻辑表达式n 命令序列命令序列N OTHERWISE 命令序列命令序列ENDCASE逻逻1真真序列序列1假假逻逻2真真序列序列2出口出口假假逻逻n真真序列序列N假假序列序列说明:说明:从第一个条件开始,当找到一个逻辑表达式的值
27、为从第一个条件开始,当找到一个逻辑表达式的值为.T.时,时,就执行紧跟其后的命令序列,直到下一个就执行紧跟其后的命令序列,直到下一个CASE或者或者ENDCASE语句为止,并跳出语句为止,并跳出DO CASE语句。语句。如果所有如果所有CASE语句后的逻辑表达式的值都为语句后的逻辑表达式的值都为.F.,此时,如果,此时,如果有有OTHERWISE子句,则执行子句,则执行OTHERWISE后面的命令序列。如后面的命令序列。如果没有果没有OTHERWISE子句,就退出该结构执行子句,就退出该结构执行EDNCASE语句后语句后面的语句,如图所示。面的语句,如图所示。1212VFox电子教案VFox
28、程序设计SWNU.WUDAIXIAN例例4 输入一个成绩,将百分制转化为五分制。输入一个成绩,将百分制转化为五分制。 CLEARINPUT “请输入学生成绩:请输入学生成绩:” TO scDO CASE CASE sc=90 ? “优秀优秀” CASE sc=80 ? “良好良好” CASE sc=70 ? “中等中等” CASE sc=60 ? “及格及格” OTHERWISE ? “不及格不及格”ENDCASEcancel1313VFox电子教案VFox 程序设计SWNU.WUDAIXIAN2.3 循环结构循环结构程序经常会重复执行某些相同的操作,如:程序经常会重复执行某些相同的操作,如:
29、求:求:s=1+2+3+4+100算法描述:算法描述:s=0;i=1;s+=i; i+;判断判断i是否小于等于是否小于等于100 如果如果i小于等于小于等于100,重复,重复; 否则,结束。否则,结束。 此类根据某个条件重复执行相同算法的结构,称为循环。此类根据某个条件重复执行相同算法的结构,称为循环。初始化部分循环体循环体,含有趋假的语句含有趋假的语句循环条件,循环应循环条件,循环应在有限次完成在有限次完成clears=0for i=1 to 100 s=s+iendfor? “s=”,sreturn 程序程序程序程序: : : :1414VFox电子教案VFox 程序设计SWNU.WUDA
30、IXIAN当循环当循环DO WHILE DO WHILE LOOP LOOP EXIT EXITENDDOENDDO功能:功能:根据根据 的值决定是否的值决定是否执行执行DO WHILEENDDODO WHILEENDDO之间的命令序列之间的命令序列(这个序列称为循环体),如果逻辑表(这个序列称为循环体),如果逻辑表达式的值为达式的值为.T.T.,则执行循环体,否则退,则执行循环体,否则退出循环,如图所示。出循环,如图所示。条件条件真真循环体语句循环体语句LOOPEXIT假假含有使条件含有使条件趋假的语句趋假的语句cleari=1s=0do while i=100 s=s+i i=i+1end
31、do? “s=”, sreturn 用当循环改写例用当循环改写例1程序程序1515VFox电子教案VFox 程序设计SWNU.WUDAIXIANFOR循环循环FOR TO STEP EXIT &无条件退出循环无条件退出循环 LOOP &无条件返回到无条件返回到FOR循环体的开始位置循环体的开始位置ENDFOR|NEXTii超过终值超过终值否否循环体循环体loopexiti=i+步长步长是是功能:功能:当当FORFOR后的后的 在在 和和 之间时,执行之间时,执行FORFOR与与ENDFORENDFOR之间的之间的循环体,如果循环体,如果 的值超过的值超过 时退出循环时退出循环;STEP;STE
32、P后的步长为后的步长为 的增加幅度,每执行一次循环,的增加幅度,每执行一次循环, 的值就自动增加一个步长,当的值就自动增加一个步长,当STEPSTEP省略时,默认步长为省略时,默认步长为1 1。当。当在执行在执行FORFOR循环体中的语句遇到循环体中的语句遇到LOOPLOOP时,时,无条件回到无条件回到FORFOR循环的开始位置,遇到循环的开始位置,遇到EXITEXIT时,无条件退出循环,执行时,无条件退出循环,执行ENDFORENDFOR后面的语句。后面的语句。 1616VFox电子教案VFox 程序设计SWNU.WUDAIXIAN例例5 5 输入输入10个自然数,统计其中偶数的个数及偶数值
33、。个自然数,统计其中偶数的个数及偶数值。clearis=0ic=0For i=1 to 10 input “请输入第请输入第”+str(i,2)+“个数个数:” to x if i%2=0 is=is+1 else ic=ic+1 endifendfor?”偶数个数为:偶数个数为:”, ic?”偶数之和为:偶数之和为:”, iscancel1717VFox电子教案VFox 程序设计SWNU.WUDAIXIAN例例6 求求100到到200之间的所有素数之间的所有素数(只能被只能被1和自身整除的数和自身整除的数)。clear?“100200间的素数有间的素数有:“ for k=101 to 200
34、 step 2 f=0 for j=2 to int(sqrt(k) if k % j=0 f=1 exit endif endfor if f=0 ? k endifendfor如:设置变量如:设置变量f用于记录是否用于记录是否为素数,为素数, f=0是素数;是素数; f=1不是素数。不是素数。在程序设计中,经常要记录一在程序设计中,经常要记录一些状态,作为判断的条件。因些状态,作为判断的条件。因此需要在程序中设置一些标志,此需要在程序中设置一些标志,通常标志是整型变量通常标志是整型变量。多重循环结构多重循环结构多重循环结构:多重循环结构:是指循环体中又包含其它循环的复杂程序结构。是指循环体
35、中又包含其它循环的复杂程序结构。 1818VFox电子教案VFox 程序设计SWNU.WUDAIXIAN排序算法排序算法例例7 选择排序选择排序程序程序(降序降序):clearinput “请输入数据个数:请输入数据个数: to ndime x(n)for k=1 to n input “请输入第请输入第”+str(k,2)+“个数据个数据: to x(k)endfor for i=1 to n-1 for j=i+1 to n if x(i)x(j) temp=x(i) x(i)=x(j) x(j)=temp endif endfor endfor ? ”排序后数据排序后数据:”for i=
36、1 to n ? x(i), endfor 外外层层循循环环i变变化化内内层层循循环环j变变化化比比较较交交换换排序排序是将一组随是将一组随机排放的数按机排放的数按从从大到小大到小或或从小到从小到大重新排列大重新排列。1919VFox电子教案VFox 程序设计SWNU.WUDAIXIAN选择排序的改进选择排序的改进选择排序的改进选择排序的改进 选择排序选择排序改改进算法的基本思进算法的基本思路,每轮排序将路,每轮排序将x(i)假定为极,假定为极,每次在每次在x(i)到到 x(max)中找出其中找出其极值,记录其位极值,记录其位置,最后让极值置,最后让极值位置的元素与位置的元素与x(i)交换。交
37、换。保证保证每轮排序只有一每轮排序只有一次交换,且为有次交换,且为有效的交换!效的交换!clearinput “请输入数据个数:请输入数据个数: to ndime x(n)for k=1 to n input “请输入第请输入第”+str(k,2)+“个数据个数据: to x(k)endfor for i=1 to n-1 k=i for j=i+1 to n if x(k)x(j) k=j endif endfor if ki temp=x(i) x(i)=x(k) x(k)=temp endif endfor ? ”排序后数据排序后数据:”for i=1 to n ? x(i), endf
38、or 排排序序循循环环假定最大值位置假定最大值位置循环比较找出最大值位置循环比较找出最大值位置与本次比较的第一个与本次比较的第一个元素交换元素交换2020VFox电子教案VFox 程序设计SWNU.WUDAIXIANcleastore 0 to max,mininput “请输入第一个数” to maxinput “请输入第二个数” to minIf maxmin then temp=min min=max max=tempendifdo while min 0 tempmin=min min=max % min max=tempmin enddo14,20 say “n,m的最大公约数是”+str(max)release allcancel例例例例8 8 求任意两个数的最大公约数。求任意两个数的最大公约数。求任意两个数的最大公约数。求任意两个数的最大公约数。通过求余数运算得到最大公约数通过求余数运算得到最大公约数通过求余数运算得到最大公约数通过求余数运算得到最大公约数如果如果如果如果maxmax小于小于小于小于minmin,通过交换,通过交换,通过交换,通过交换,使使使使maxmax为两数中较大的数为两数中较大的数为两数中较大的数为两数中较大的数用用用用minmin存储每次求得的余数存储每次求得的余数存储每次求得的余数存储每次求得的余数2121VFox电子教案