APP下载

高中数学程序框图与算法及其在编程中的应用

2018-09-03

数字通信世界 2018年8期
关键词:程序框图实根代码

李 信

(河北省实验中学,石家庄 050000)

1 引言

信息时代的来临以及中国在互联网领域的飞速发展都对我们的日常生活产生了很大的影响,尤其是在大数据、人工智能纷纷被列入国家重点扶持的专业之后,对于高中数学的学习也产生了很大的引导作用。进入信息科技时代,尤其是数学与计算机技术的结合,使得数学的作用与意义更加凸显出来,其解决实际问题的应用也越来越被明确。而高中数学学习过程中的程序框图部分,更是这一理念的直观体现。它展现了算法的直观意义,是解决数学与实际问题的重要载体。通过借助程序框图的表现,可以将一些实际情景中的问题转化为数学问题,从而表示数学问题的思维与逻辑过程,通过将实际问题以程序框图的模式化语言表示出来,进而可以移植到计算机上操作。程序框图、算法的初步知识都是未来计算机语言、编程基础的简化体现。程序框图及算法在当前快速发展的新科技时代有着非常重要的作用,渗透至我们日常生活的很多方面,其代表的数学思想也成为当下新一代必备的素养[1]。

2 算法

其实,算法(algorithm)这个词最早出现于12世纪,最初指的是用阿拉伯数字进行算数运算的过程。它是由一系列明确和有限的计算步骤组成的。我们知道,利用计算机处理问题时,程序是必不可少的。因此,我们必须事先明确计算的方法,条件判断和处理过程,这个以计算为中心的algorithm可称为算法。

其实,简单的来讲,在数学中的解方程的步骤方法就是一个算法的具体体现,在日常生活中我们也可以参考某些产品的使用说明书,其实也可称为广义的算法。总的来说,算法指的是在解决问题时按照某种机械程序步骤,则一定可以达到某种结果的处理过程。而这种步骤也必须是明确的、有效的和有限的[2]。

3 算法的表达形式与程序框图

目前,算法的主要表达形式有三种,这三种形式都各具特点,其优缺点可简要总结为下述几点:

(1)算法的自然语言表示:即使用我们日常用语来描述某个算法。其优点为:字面易于理解,先后顺序表述的较为直接。但这一表述方法的缺点也同样明显:即表达冗长,容易造成大量文字叙述,且在重复操作、分情况处理等方面无法清楚表述。

(2)算法的程序框图表示:通过框图和流程线并辅以文字说明从而更加形象、直观的表示算法。使用程序框图的优点在于,能够简洁形象表述问题,并且步骤执行方向十分明确。

如常见的例子:“判断一元二次方程ax2+bx+c=0是否存在实数根”,用程序框图可表示为:

(3)算法的代码或程序表示:使用能够被计算机所识别的低级或高级语言将自然语言或者框图所表述的解决问题的步骤进行表述的方法。其主要特点就是能够在计算机上执行,但同时对于格式有着更严格的要求。

如上述问题:“判断一元二次方程ax2+bx+c=0是否存在实数根”,使用自然语言表述为:

第一步,输入方程系数:a,b,c;

第二步,计算Δ=b2-4ac的值;

第三步,判断Δ与0的关系,如Δ≥0则输出“方程有实根”;若Δ<0则输出“方程无实根”。

算法结束。

如果用计算机程序(此处选用basic语言)进行表示,则为:

INPUT“a,b,c”;Δ=b2-4ac

IF Δ≤0THEN

PRINT“有实根”

ELSE PRINT“无实根”

END IF

END.

4 编程方式数学算法

当前,各类软件应用的开发都是依赖于计算机编程的途径进行的。而对于编程而言,数学算法是其中最基本同时也是最关键的部分。对于数学算法的合理应用,能够很大程度提高计算机编程效率,保证软件开发的成功率。随着当前信息科技的迅速发展创新,算法对于计算机编程的影响进一步深化,数学算法逐渐成为程序员需要具备的基本素养之一。

计算机编程以计算机语言作为根本,通过对计算机语言的研究和翻译工作,从而能够实现多种类型不一的计算机功能,即软件功能。本质上,计算机诞生的目的就是为了能够帮助人们借助于大量的数学计算,为人们提供精确的计算结果,以达到解决问题的目的。而算法的内核就在于其与当前计算机信息技术的紧密衔接与整合,其自身就具有程序性的特点,算法与计算机编程之间是存在相辅相成关系的。通过算法和程序框图能够帮助我们更好的了解和认识计算机语言及编程的基础,而通过编程也可以让我们更深入的了解算法的内核以及验证算法的知识。

5 程序框图与代码分块方法的应用

传统的程序框图可以通过清晰的表示事物之间的路基关系,通过框图和流程线以及文字说明简单明了的体现了程序或者结构件的相互联系。而根据现有的技术基础,我们也容易得到源码与流程图之间的工具转换,得到一个能够矫正逻辑结构正确性的流程图[3]。

另一方面,通过将部分代码实现的功能进行整合形成代码块,进而结合程序框图实现代码的简化表达,从而实现模块化编程。这种编程方式,将一个完整的程序按照不同的功能划分成了若干个小程序模块,每一个小程序可以实现一个确定的功能,再通过类似程序框图的逻辑结构在这些模块间建立起必要的联系,从而能够通过各个模块的相互协作完成整改功能的一种程序设计方案[4]。这种模块化程序的设计基本思路是由顶层向下、逐步分解,各模块之间相对独立、功能单一、结构清晰、接口简单。它具有多方面优点:(1)控制了程序设计的复杂性。(2)提高了代码的重用性。(3)易于维护和功能扩充。(4)有利于团队开发。[5]这样的变成形式目前在基础程序学习领域已经得到了较为广泛的应用,其实这种应用就是程序框图和复杂编程的结合,既降低了学习编程的门槛,同时可以帮助学习者较为清晰的认识编程的过程,是值得我们更深一步去开发完善,并广泛应用于中学编程学习过程之中。

猜你喜欢

程序框图实根代码
“顺势而下”破解程序框图
解一元二次方程中的误点例析
算法与程序框图常考类型
创世代码
创世代码
创世代码
创世代码
程序框图问题的精彩交汇
实根分布问题“新”研究
程序框图题盘点