为了了解计算机是如何工作的,我学习了一下计算机原理(国防科技大学)的一些课程。最深的感悟是:数据的存取是程序运行中最值得关注的地方。其次,虽然当代计算机几乎都是冯·诺依曼体系,但是在生产计算机的时候,每个生产商都有自己的实现想法,即不同的指令集,使得。
针对一个具体的计算机,它的指令集决定了它实际上能做哪些工作,应该 关注;二进制语言是它运行时的微观过程,不要去管它。
有个大牛说过:编程 = 算法 + 数据结构
其中算法在形式上可以分为:
- 流程(顺序、循环、递归)(先后性)
- 运算方式(处理方式:±*/%、函数)
数据结构在语言上就是数据类型:
以上的就是编程最基础的东西。所谓最基础的东西,是所有的程序都是按照这种方式执行的。高级的概念是后面发展出来的,一定要兼容这些基础的东西。
一个程序文件,如同一个办理业务时的表单。这个表单有表头,表中的提示内容,表中待写的内容。程序的各种配置如同表头,如何操作如同提醒内容,待写的内容如同数据,各表间的关系如同不同程序间的关系。
变量
变量是计算思维的核心概念之一。
其实质是给表示一定的意义的一个数据提供一个地址。如int price;表示新建一个地方,存放表示价格的数,这个数是int 类型,即只能是整数。
通过变量的本质特征可以知道它必须满足以下的性质:
- 唯一性,地址值相同则是同一个变量
- 必须有数据类型(因为语言的不同,在新建是可以规定或不规定【不规定的是因为语言内部自动判断了变量的约定类型】,但是执行时肯定是规定了数据类型)
- 起名一定要好懂、有实际意义、按约定俗成的规则起
- 地址不变,内容可变
- 数据包含
例子——猜数游戏
想一个0-100内的数字。
有六张表0-5,表中有一些数字。依次询问游戏者所想的数是否在表中,1为在,0为不在。
6次询问后,程序输出结果。
表如下:
以c++为例
#include<iostream>
using namespace std;
int main(){
int a, b, c, d, e, f;
cout <<"Please put in your number:" <<endl;
cin >>a >>b >>c >>d >>e >>f;
cout << a + b * 2 + c * 4 + d * 8 + d * 16 + e * 32 << endl;
return 0;
}
多说一句_为什么会出现这么多语言
一言以蔽之,要解决的问题领域不同。
- 平台操作系统的不同使完成工作要用的语言不同
- PHP擅长解决网络问题,Math擅长解决数学问题,这些是因为擅长解决的问题不同
- 执行方式不同,如编译型,如c;如解释器执行,如php;如混合式,如java.
多说一句_我要选什么语言
我的学习编程的目标之一,作为一个不算资深的游戏迷,是在财富自由之后,我想做游戏。这是我选择c++的原因。
但为了实现财富自由,我需要在java\python\PHP\数据库中选一门来就业.