前面我们已经分享了信息学奥赛项目参与的基本流程。
五大学科竞赛之信息学奥林匹克竞赛,一旦入门就会上瘾的竞赛项目
01高考案例
在学习今天的内容之前,先来看一看两道最新的全国高考试题。第一题是年全国高考二卷文科数学第7题,考察信息学中的循环语言。
原题是:执行右面的程序框图,若输入的k=0,a=0,则输出的k为()。
第二题是年高考数学江苏试卷第5题,考察简单的条件判断。
原题是:右图是一个算法流程图,若输出y值为-2,则输入x的值是()。
从问题和图示看,除了考察信息学中编程语言的经典结构(循环和条件结构)外,其算法就是以流程图的形式呈现的。要学习流程图,首先要了解什么是算法?
02算法
信息学中主要的课程是编程语言、数据结构和算法。信息学竞赛也是以算法竞赛为主。算法=计算方法+编程语言+数据结构。
所谓算法,就是解决问题的具体思路和步骤。比如:著名表演艺术家赵本山和宋丹丹曾经演过的一个小品里,有这样一个情节,问:把大象装冰箱需要几步?
第一步:打开冰箱门;第二步:把大象装进去;第三步:把冰箱门关上。
宋丹丹的回答曾经是被当做笑话来听的。但事实上,这其实就是解决上述问题的一个具体的方法或可实施的操作步骤。
算法的特点:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
有穷性:由有限的步骤完成;确定性:每一步的任务非常明确,必须有具体的结果输出;有效性:每一步的结果对下一步的任务都有影响,环环相扣;有零个或多个输入:指前置条件或者没有,或者多个;比如:小学数学是零基础入门,而初中数学则需要有小学的基础才可以,这个就是前置条件。有一个或多个输出:指后置结果;比如:小学毕业后升入初中、拿到小学毕业证等都是结果。
信息学奥赛课课通(C++)京东月销量好评率99%无理由退换京东配送官方店¥59.8购买03流程图
描述算法的形式有很多种,可以是口述、文字、伪代码等等很多方式。而流程图是描述算法的一种图形化表示方式,它直观、清晰,更有利于人们设计、理解与交流算法。
流程图使用一组预定义的符号来说明如何执行特定的任务。一共有六个符号:
椭圆:表示开始或结束菱形:表示判断或分支矩形:表示处理过程平行四边形:表示输出或输出圆圈:表示连接符,一般复杂的流程图在一页纸上绘制不完,需要连接符进行多页纸连接带箭头的连接线:表示连接线
04案例应用
比如:计算长方形的面积。
我们都知道长方形的面积公式:长X宽。具体如何让计算机来完成这样的任务呢?
如果用文字描述算法,可以这样写:
接收用户输入的长方形长度和宽度两个值;判断长度和宽度的值是否大于零;如果大于零,将长度和宽度两个值相乘得到面积,否则显示输入错误;显示面积。如果用流程图描述算法,可以这样画:
具体到代码实现:
05小结
通过流程图的绘制,可以让学习者对具体问题的实现思路更加清晰明了。
前文回顾:C++入门基础系列:走进信息学奥赛,什么是布尔类型?
有关流程图的知识,你都掌握了吗?在平时其他科目的学习中,大家也可以尝试使用流程图的方式来绘制解决方案,试试吧。