2.9程序设计思维
程序是什么?
生活中的程序:
(1)宿舍报修:填写保修单→上报宿舍管理员→联系物业→找维修师傅→上门维修→反馈;
(2)银行开户:客户填写开户申请单→提交证件资料→审核资料真实性(1.本人、资料真实齐全则通过;2.其他人代办、由委托书、资料真实齐全则通过;3.不满足这些条件则拒绝)→录入系统开户→设置密码→发放卡、存折。
解决生活中问题的步骤(流程)描述。
计算机中的程序:
解决问题的步骤描述,但用的是计算机语言描述。
程序 | 执行者 | 描述语言 | 执行速度 |
生活中的程序 | 人 | 自然语言 | 相对慢 |
计算机中的程序 | 计算机 | 计算机语言(比如js) | 非常快 |
当今公布的运行速度最快的计算机是中国“神威·太湖之光”计算机系统,运行速度超过10亿亿次/秒的超级计算机,峰值性能高达12.54亿亿次/秒,持续性能达到9.3亿亿次/秒。
什么是编程?
根据业务需要,制定或编制解决问题的流程。编制程序的人应该是非常熟悉或精通业务。
如果编制计算机程序的要求:
(1)精通业务
(2)精通计算机语言
明确我们的学习内容和方向:
(1)解决问题的思路
(2)计算机语言
(3)思维方式的转变
重点是解决问题的思路,而思路和计算机语言是没有关系的。所以虽然我们学习的是js,但更多更重要的又并不是js的内容。
难点是思维方式的转变,也就是说,需要站在计算机的角度去思考和描述问题。
计算一个三位数的个位数之和,比如415的各位之和就是4+1+5=10
415→ 10
<script>
/*解决问题的思路:
(1)提示并结束用户输入一个三位数,存放在num中
(2)计算百位b100,除以100取整
(3)计算十位b10,对100求余,除以10取整
(4)计算个位b1,对10求余
(5)计算b100+b10+b1
(6)输出结果
* */
var num = prompt("请输入一个三位数");
var b100 = Math.floor(num/100);
var b10 = Math.floor((num % 100)/10);
var b1 = num % 10;
var sum =b100 + b10 +b1;
alert(sum);
</script>
通过这个案列,我们学到程序设计的套路:
(1)程序设计分为两个步骤:思路、编码
(2)思路可以使用自然语言,流程图等一切能描述清楚解决方案的形式来描述
(3)将思路翻译成对应的代码
案例:根据三角形的三边长计算三角形的面积
/*
* 1.提示并接受输入三角形的三边长a,b,c
* 2.p=(a+b+c)/2
* 3.根据海伦公式计算
* 4.输出结果
* */
var a = Number(prompt("请输入第一边长"));
var b = Number(prompt("请输入第二边长"));
var c = Number(prompt("请输入第三边长"));
var p = (a+b+c)/2;
// 计算周长的一半
var s = Math.sqrt(p*(p-a)(p-b)(p-c));
// 海伦公式
alert(s);
Prompt函数输入的数据是字符串类型,比方“345”,注意“345”和345的区别;
如果你想输入345,那么应该强制类型装换,虽然js有时候会帮助我们自动转换,但有时不靠谱。
案例:话费计算器,根据通话时长(单位为秒)计算话费,字费标准为0.5元/分钟。