我们已经学习了用自然语言和流程图来描述算法,它们各有优缺点,对于自然语言不足:1.语言容易出现歧义;2.语句太长;3.所有语句都是串行或线性排列的,对构成选择、循环结构的算法不易清楚的显示出来对于流程图的缺点是灵活性不如自然语言,严密性不如程序设计语言,用计算机程序设计语言表示算法显得清晰、简明、一步到位,而且可以直接交给计算机处理.要使算法在计算机上实现,还得借助程序语言.程序语言的种类很多,但是,有一些基本语句是所有语言都要使用的,例如,输入语句、输出语句、赋值语句条件语句和循环语句。这些语句在程序语言中是最重要的和最基本的。输入输出语句很好理解,赋值语句前面已作了介绍,这一节主要介绍条件语句和循环语句。在算法中,顺序结构和选择结构是一种基本结构,条件语句是表达选择结构最常用的语句。下面通过实例说明条件语句的用法。例1:根据输入x的值,计算y的值221,2.51,2.5xxyxx写出算法步骤,并绘出流程图。步骤:(1)输入x;2.5x,则y:=21x输出y;(2)若(3)若2.5x,则y:=21x输出y.开始输入x2.5x2:1yx是2:1yx否输出y结束这里(2)、(3)步的选择部分可以用条件语句表示:2.5x,ifthen2:1yx,输出y;2:1yxelse,输出y.一般地,对于形如右方流程图的算法,都可以用下列语句来表示:假真条件语句2语句1if条件then语句1else语句2计算机在执行if-then-else语句时,首先判断条件,当条件成立时,执行then后的语句,如果条件不成立,就执行else后的语句广州市出租车公司规定:2.3公里及2.3公里以内为起步价7元,若超过2.3公里,超过部分按每公里2.6元收费,用语句描述一个乘客所付车费的算法,并画出流程图.输入x;ifx≤2.3,theny:=7,输出y;elsey:=7+2.6(x-3),输出y.开始输入xx≤2.3y:=7+2.6(x-3)y:=7输出y结束是否你了解当地的出租车行情吗?你知道你乘出租车要付多少钱吗?例2在音乐唱片超市里,每张唱片售价25元.顾客如果购买5张以上(含5张)唱片,则按照九折收费;如果顾客购买10张以上(含10张)唱片,则按照八五折收费.请用语句描述完成计费工作的算法,画出算法流程图.解假如用变量a表示顾客购买的唱片数,用变量C表示顾客要缴纳的金额.则这个算法可以表示为:1、输入a.2、对a进行判断:(1)若0a5,则C:=25a;(2)若5a10,则C:=22.5a;a(3)若10,则C:=21.25a.3、输出C.排除a5语句:输入a;if0a5,thenC:=25a;elseif10a,thenC:=22.5a;elseC:=21.25a;输出C.开始输入a5a10a输出C结束C:=25aC:=21.25a是否否是C:=22.5a实际上,对于上面的形式,用形如下面所示流程图描述的算法都可以用下面的复合if语句来表示:条件1条件2语句3语句2语句1假真真假if条件1then语句1elseif条件2then语句2else语句3符合条件语句一般含有两个或两个以上的条件结构中,编程时,要明确条件与语句之间的对应关系,最好先作流程图,理清判断的先后顺序,再编程开始4整除y100整除y输出y是闰年输出“y不是闰年”400整除y输出“y是闰年”输出“y不是闰年”结束否是是否输入y1.请试着用复合if语句表示闰年问题的算法.输入y;if4不能整除y,then输出y不是闰年;elseif100不能整除y,then输出y是闰年;elseif400能整除y,then输出y是闰年;else输出y不是闰年.2.一只公鸡5元,一只母鸡3元,三只小鸡1元,如果花100元钱买100只鸡,公鸡、母鸡和小小鸡各几只?分析:这就是一个求方程组的正整数解的问题消去z得y=(100-7x)/4,由于y0,所以x≤14,x从1变到14,检查y是否为整数,如果y是整数,检查100-x-y是否为正整数,如果是,那这组数就是一组解。解:x从1变到14,检查y是否为整数,如果y是整数,检查100-x-y是否为正整数,如果是,那这组数就是一组解,流程图如下所示:条件语句简单条件语句复合条件语句If条件then语句1else语句2If条件then语句If条件1then语句1elseif条件3then语句2else语句3作业:132页第二题更多资源