《基本算法语句与SCILAB-平台操作概要课件.ppt》由会员分享,可在线阅读,更多相关《基本算法语句与SCILAB-平台操作概要课件.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基本算法语句与基本算法语句与SCILABSCILAB平台操作平台操作王旭刚王旭刚算法的内容在我国高中数学教材中是第算法的内容在我国高中数学教材中是第一次出现一次出现每一个现有高中数学老师教好这一章不每一个现有高中数学老师教好这一章不存在困难存在困难下面我们对教材基本算法语句一节内容下面我们对教材基本算法语句一节内容作一分析作一分析一、算法的三种基本逻辑结构一、算法的三种基本逻辑结构和框图表示和框图表示顺序结构顺序结构判断结构(判断结构(IF-THEN-ELSE)循环结构(循环结构(DO-WHILE)已经证明,只用三种基本的逻辑结构就已经证明,只用三种基本的逻辑结构就能表示任何一个算法。能表示任
2、何一个算法。一、算法的三种基本逻辑结构一、算法的三种基本逻辑结构和框图表示和框图表示顺序结构顺序结构顺序结构描述的是最简单的算法结构,语顺序结构描述的是最简单的算法结构,语句与语句之间,框与框之间是按从上到下句与语句之间,框与框之间是按从上到下的顺序进行。的顺序进行。AB已知点已知点P0(x0,y0)和和直线直线l:Ax+By+C=0,求点求点P0(x0,y0)到到直线直线l的距离的距离d?开始开始输入输入x0,y0A,B,Cz1=Ax0+By0+C z2=A2+B2 d=|z1|/SQRT(z2)输出输出d结束结束一、算法的三种基本逻辑结构一、算法的三种基本逻辑结构和框图表示和框图表示条件分
3、支结构条件分支结构依据指定条件选择执行不同指令的控制结依据指定条件选择执行不同指令的控制结构,即根据要求构,即根据要求 进行逻辑判断,进行逻辑判断,并根据判断结果并根据判断结果 进行不同的处理进行不同的处理 的情况的情况PAB假假真真(2008宁夏、海南宁夏、海南)右面的程序框图,右面的程序框图,如果输入三个实数如果输入三个实数 a、b、c,要求输出要求输出这三个数中最大的这三个数中最大的数,那么在空白的数,那么在空白的判断框中,应该填判断框中,应该填入(入()A.c x B.x c C.c b D.b c一、算法的三种基本逻辑结构一、算法的三种基本逻辑结构和框图表示和框图表示循环结构循环结构
4、根据指定的条件是否根据指定的条件是否 重复执行一条或多条重复执行一条或多条 指令的控制结构指令的控制结构PA真真假假 (2007宁夏、海南宁夏、海南)如果如果执行右面的程序框图,执行右面的程序框图,那么输出的那么输出的S 的值为的值为()。(A)2 450 (B)2 500 (C)2 550 (D)2 652一、算法的三种基本逻辑结构一、算法的三种基本逻辑结构和框图表示和框图表示另一种形式的循环另一种形式的循环画出解一元二次方程画出解一元二次方程ax2+bx+c=0(a0)的程序框图的程序框图开始开始输入输入a,b,c计算计算=b2-4ac x1=(-b+1/2)/2a,x2=(-b+1/2)
5、/2a 输出输出x1,x2结束结束 0输入无实数解输入无实数解是是否否(2007广东)上面左图是某县参加广东)上面左图是某县参加2007年高年高考的学生身高条形统计图,从左到右的各条考的学生身高条形统计图,从左到右的各条形表示的学生人数依次记为形表示的学生人数依次记为A1,A2,A10(如如A2表示身高(单位:表示身高(单位:cm)()(150,155)内的学生人数)内的学生人数).右图是统计左图中身高在一右图是统计左图中身高在一定范围内学生人数的一个算法流程图定范围内学生人数的一个算法流程图.现要统现要统计身高在计身高在160180cm(含含160cm,不含不含180cm)的的学生人数,那么
6、在流程图中的判断框内应填学生人数,那么在流程图中的判断框内应填写的条件是(写的条件是()A.i6 B.i7 C.i8 D.i1 (3)f(x)=10,x10,x10,-1=x=1-10,x1 (2)if x1 f=10;f=10;else end f=0;end4.条件语句条件语句(3)if x1 f=10;elseif x-1 f=-10;else f=0;end4.条件语句条件语句例例 写出求一元二次方程写出求一元二次方程ax2+bx+c=0根的算法程根的算法程序。序。a=input(“a=”);b=input(“b=”);c=input(“c=”);d=b b-4 a c;if d0 d
7、isp(“no solution”);else t=sqrt(d);x1=(-b+t)/(2 a);x2=(-b-t)/(2 a)end5.循环语句循环语句有规律的重复计算或者在程序中需要对有规律的重复计算或者在程序中需要对某些语句进行重复的执行,这样就需要某些语句进行重复的执行,这样就需要用循环语句进行控制。用循环语句进行控制。5.循环语句循环语句格式:格式:for 循环变量循环变量=初值初值:步长步长:终值终值 循环体;循环体;end格式:格式:while 表达式表达式 循环体;循环体;end5.循环语句循环语句例例 S=0;for i=1:100 S=S+i;end例例 i=1;S=0;
8、while i=100 S=S+i;i=i+1;end 5.循环语句循环语句注意:注意:“for循环语句循环语句”是在循环次数已知时使用是在循环次数已知时使用的循环,在循环的次数未知时不能使用。的循环,在循环的次数未知时不能使用。“while循环语句循环语句”是在未知循环次数的条是在未知循环次数的条件下进行的循环,也可以在循环次数已知件下进行的循环,也可以在循环次数已知的循环中使用。的循环中使用。三、和基本算法语句的使用有三、和基本算法语句的使用有关的几个问题关的几个问题1.标点符号用法标点符号用法分号(;):输入、输出、赋值、执行分号(;):输入、输出、赋值、执行计算语句等语句结束时一般以分
9、号结尾,计算语句等语句结束时一般以分号结尾,作为语句的结束符号。执行计算语句用作为语句的结束符号。执行计算语句用分号结尾则不在屏幕上显示计算结果。分号结尾则不在屏幕上显示计算结果。规范写法:规范写法:如需输出变量值用如需输出变量值用print或或disp命令,不使命令,不使用不加标点方式。用不加标点方式。1.标点符号用法标点符号用法逗号(,):用来分隔函数参数、变量逗号(,):用来分隔函数参数、变量(常量)。(常量)。冒号(:):用来生成一列数。冒号(:):用来生成一列数。引号(引号():引用一个字符串。单引号):引用一个字符串。单引号还是矩阵转置运算符。还是矩阵转置运算符。2.帮助的使用帮助
10、的使用help+命令名。命令名。使用使用Scilab帮助帮助3.程序的编写与调试程序的编写与调试在编辑器在编辑器Scipad里编写程序里编写程序使用使用pause、return命令调试程序命令调试程序可视化的可视化的Scipad调试界面调试界面4.在程序中加入注释增加程序在程序中加入注释增加程序的可读性的可读性a=input(“a=”);b=input(“b=”);c=input(“c=”);/输入输入a,b,c的值的值d=b b-4 a c;/计算判别式计算判别式if d0 /如果如果d=0 y=x;else y=-x;endprint(%io(2),y);例例2 2 火车托运行李的收费方法
11、为:当行李的重量不大于火车托运行李的收费方法为:当行李的重量不大于2020kgkg时,按时,按每千克每千克0.350.35元收费;当行李的重量超过元收费;当行李的重量超过2020kgkg时,时,2020kgkg的部分按每公的部分按每公斤斤0.350.35元收费元收费,超出的部分则每公斤按超出的部分则每公斤按0.650.65元收费元收费.试编写程序试编写程序.解:算法解:算法S1 输入实数输入实数xS2 如果如果0 x20,则则 y=0.35x;否则否则y=0.3520+0.65(x 20);S4 输出输出y.程序语言程序语言x=input(x=);if x0&x9&x100 a=floor(x
12、/10);/floor向下取整向下取整 b=modulo(x,10);/modulo取余取余 x=10*b+a;end print(%io(2),x);例例4 4 已知现在人口总数为已知现在人口总数为1000010000,人口的增长率人口的增长率为为0.10.1,预测第预测第5 5年后人口的总数年后人口的总数?P=10000;R=0.1;T=5;t=1;while t=T I=P*R;P=P+I;t=t+1;endprint(%io(2),P);P=10000;R=0.1;T=5;for t=1:TP=P+P*Rendprint(%io(2),P);例例5 5 某玩具厂某玩具厂20062006
13、年的生产总值为年的生产总值为200200万元,如万元,如果计划今后每年的年增长率为果计划今后每年的年增长率为5%5%。计算最早能在。计算最早能在哪一年年生产总值超过哪一年年生产总值超过300300万元?写出算法程序。万元?写出算法程序。解:解:依题意,从依题意,从20062006年开始,经过年开始,经过x年后生年后生产总值为产总值为200(1+5%)200(1+5%)x.因此可以把因此可以把20062006年的年的生产总值赋给生产总值赋给a a,然后然后对其进行累乘,用对其进行累乘,用n n作作为计数变量,进行循为计数变量,进行循环直到环直到a a的值超过的值超过300300万元。万元。程序语
14、句程序语句n=2006;a=200;p=1.05;while a=300 a=a*p;n=n+1;enddisp(n);disp(a);例例6 6 计算计算程序语句程序语句 S=0;p=-1;for i=1:100 p=(-1)*p;/变号器变号器 S=S+p/i;end例例7 7 百钱买百鸡问题:用百钱买百鸡问题:用100元买元买100只鸡,其中公鸡每只鸡,其中公鸡每只只5元,母鸡每只元,母鸡每只3元,小鸡元,小鸡3只只1元,问能买多少只公鸡元,问能买多少只公鸡?多少只母鸡?多少只小鸡?多少只母鸡?多少只小鸡?解:设买解:设买x只公鸡,只公鸡,y只母鸡,则买小鸡只母鸡,则买小鸡的只数的只数z
15、=100-x-y。100元买公鸡最多元买公鸡最多买买20只,买母鸡最只,买母鸡最多买多买33只。只。for x=1:20 for y=1:33 z=100-x-y;if 5*x+3*y+(z/3)*1=100 print(%io(2),z,y,x);end endend例例8 8 设计函数设计函数的一个算法,的一个算法,使之任意输入一个使之任意输入一个n值,可得出相应的值,可得出相应的函数值。函数值。i=1;f=1;n=input(“n=”);while i1 f=10;elseif x-1 f=-10;else f=0;end endfunction for i=-2:2 fun(i)end
16、function f=f(n);if n=0 f=1;else f=n*f(n-1);endendfunction f(5)例例8 8 设计函数设计函数的一个算法,的一个算法,使之任意输入一个使之任意输入一个n值,可得出相应的值,可得出相应的函数值。函数值。例例9 9四、四、Scilab函数作图函数作图1.基本作图命令基本作图命令plot2d格式:格式:plot2d(x,y);功能:绘制函数功能:绘制函数y=f(x)的图象的图象示例:示例:(1)画单一函数图象)画单一函数图象 x=-2*%pi:0.1:2*%pi;plot(x,sin(x);1.基本作图命令基本作图命令plot2d(2)在同一
17、坐标系画多个函数图象)在同一坐标系画多个函数图象 x=-2*%pi:0.1:2*%pi;plot2d(x,sin(x)sin(2*x)sin(3*x)2.使用图形编辑器改变坐标系使用图形编辑器改变坐标系与图象属性与图象属性3.使用命令设置坐标系与图象使用命令设置坐标系与图象属性属性图形与坐标轴对象图形与坐标轴对象 当前坐标轴:当前坐标轴:gca()(shorcut for getcurrent_axes)当前图形:当前图形:gcf()(shortcut for get(current_figure)3.使用命令设置坐标系与图象使用命令设置坐标系与图象属性属性对象的操作对象的操作创建一个图形:创建一个图形:set(figure_style,new)/create a figure获得新建轴的句柄:获得新建轴的句柄:a=get(current_axes)/get the handle of the newly created axes3.使用命令设置坐标系与图象使用命令设置坐标系与图象属性属性 对象的属性对象的属性参见:参见:axes_properties,graphics_entities 谢谢!谢谢!
限制150内