我们是不是太关注于语法而忽略了算法

2021-09-20 08:13

阅读:935

标签:线性   法则   auto   ima   教程   goto   条件语句   衡量   tar   从启明星数学系统Math说起 最近做了一个数学系统(还没做完),中间使用了不少第三方开源插件,但是发现这些插件基本上都是国外的. 事实上这些插件基本上都使用Javascript开发,也并不会涉及太高深的JS知识,但是,这些插件对算法要求甚高。 (1)数学公式 数学公式使用Latex展示,但是把Latex解析为HTML是非常考验基本功的技术。   (2)SVG画图,看起来简单,但是做起来也不容易,这通常出现在习题里,例如"三角形ABC,D是BC上一点。。。"类似这样的题目   (3)几何图形,包括正弦,余弦,正切,余切,指数,对数,微积分,线性变化,圆,椭圆,双曲线等图形 这种图形适合教学,例如通过图形,很容易让学生知道正弦余弦的效果。  上面这些都是基本功,事实上,他是和语言无挂的。如果JS做不出,那么用NET/JAVA/GO/等仍然很难做出。 这就像使用AutoCAD进行机械制图,AutoCAD只是一个工具,如果你设计不同出图形,那么无论使用何种CAD,还是作不出。 因此,相比语法,算法可能更重要。   语法与算法 语法,这里特指计算机语法,是计算机语言规定的一套规则,不同的语言如Java,NET,甚至Javascript,Typescript都定义了自己的一套语言规则。 要使用该语言,必须符合该语言规则。 算法,是解决一件事情的方法,或者说是一系列解决问题的清晰指令,同样一个问题,可以有不同的方法解决,因此算法有好的算法也有不好的算法。 算法的优劣可以用空间复杂度与时间复杂度来衡量。 软件=语法+算法。一个软件的运行需要“语法+算法”两则缺一不可。   计算机只要三个语法即可 事实上,早期,人们编写程序发现,计算机只要三个流程即可:正常的顺序流程,条件流程和循环流程。 顺序流程比较简单,代码一行一行执行,没什么可说明的。 条件流程就是 if 语句 循环流程就是while语句。 除此以外,其它语句都不是必须的,以.NET为例,其实net还提供了goto语句,但是后来人们发现,goto一方面破坏了程序的可读性,让程序跳来跳去, 一方面goto语句可以使用if和whilte替代,所以,goto使用率极低。 掌握了上面的三个流程,就可以写出程序。 顺序的语句 int a=1; int b=2; int c=a+b   if条件语句 int a=1; int b=2 if(a


评论


亲,登录后才可以留言!