论文部分内容阅读
文章编号:ISSN1006—656X(2014)02-0140-01
“我甚至看不到代码。我看到的是金发美女,黑发美女,红发美女。”这是科幻影片《黑客帝国》中的一句台词。我们通过显示器看到的影像“金发美女,黑发美女,红发美女”,其实就是计算机01代码的组合通过上层高级语言表现出来的各种信息,01代码或者说物理实体中的高低电平就是我们看到影像的实质。
计算机语言不是计算机表达的方式而是我们与计算沟通的桥梁,所有的高级语言是要转换成低级语言进而转换成01代码,这样计算机才能懂。在计算机语言学习中有些学校是一开始就让学生们接触高级語言,一般是c语言,之后再接触低级语言像汇编语言。在c语言的学习中开始就是模仿教材的程序编写或者直接“依葫芦画葫芦”在编辑器(如tuerb c)上把课本的程序敲上,运行。运行正确,或不正确逐行查找看哪里敲错了。通过一段时间的学习逐步的了解到语句的含义,c语言中关键词与其英文意思相关联,这样便于我们“用词造句”。随着学习的进一步深入又掌握了不同的结构像循环,嵌套等等。接下来我们能运用所学写出能够实现一定功能,能够顺利运行的程序。如果我们要成为编程高手还要记忆大量的库函数,掌握很多的调用规则不断的积累经验。这是高级语言一般的学习历程,c语言是面向过程的,还有面向对象的高级语言像c++。
面向对象与面向过程是两个完全不同的概念。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。而对于初学者来说一般很难体会到面向对象的直观性往往是随着学习的深入慢慢掌握了解。举个例子,我们看一下面向对象与面向过程的区别:我们分别用c语言与c++实现两个数相乘。
c语言编写这个程序首先要考虑这两个参数的数据类型
#include
double chengfa1(double m,double n)
{
double q=m*n;
return q;
}
int chengfa2(int m,int n)
{
int q=m*n;
return q;
}
int main()
{
double d,e=3.1 f=4.4;
int h,a=5,b=6;
d=chengfa1(e,f);
h=chengfa2(a,b);
return 0;
}
不同的数据类型要对应不同的函数,不同的函数必须使用不同的名字,否则会出错。
下面用c++编写这个程序
#include
double chengfa(double m,double n)
{
double q=m*n;
return q;
}
int chengfa(int m,int n)
{
double q=m*n;
return q;
}
int main()
{
double d,e=3.1f=4.4;
int h,a=5,b=6;
d=chengfa(e,f);
h=chengfa(a,b);
return 0;
}
这个在c++中叫做重载,不同的函数可以用相同的函数名,但是这样我们还不能完全体会到面向对象的概念。那么我们用c++再次改进这个程序。
#include
template
G chengfa(G m,G n)
{
G q=m*n;
return q;
}
int main()
{
double d,e=3.1f=4.4;
int h,a=5,b=6;
d=chengfa(e,f);
h=chengfa(a,b);
return 0;
}
这个在c++中叫做模板,不需要关心数据是什么类型的,而主要关心怎么实现两个数的加法,不必在乎这两个数据是什么类型。面向对象就是把问题抽象成一个模型定义好了拿来就用。高级语言的语法、结构相对来说容易掌握,低级语言最接近机器语言,就不那么容易接受了。
我们学习低级语言之后就更加明白高级语言的基础和含义了。汇编语言是低级语言,参数常常调用具体的物理地址也就是计算机的硬件单元,虽然不是直接的01代码但是通过数制的换算很容易找到具体的物理地址或者高低电平。
计算机语言有着独特的魅力,不管是高级语言还是低级语言都是人与机器的交流,我们现在所处的阶段或许只是牙牙学语,不久得将来我们可能与机器有更深层的相互了解,黑客帝国终会实现吧!
“我甚至看不到代码。我看到的是金发美女,黑发美女,红发美女。”这是科幻影片《黑客帝国》中的一句台词。我们通过显示器看到的影像“金发美女,黑发美女,红发美女”,其实就是计算机01代码的组合通过上层高级语言表现出来的各种信息,01代码或者说物理实体中的高低电平就是我们看到影像的实质。
计算机语言不是计算机表达的方式而是我们与计算沟通的桥梁,所有的高级语言是要转换成低级语言进而转换成01代码,这样计算机才能懂。在计算机语言学习中有些学校是一开始就让学生们接触高级語言,一般是c语言,之后再接触低级语言像汇编语言。在c语言的学习中开始就是模仿教材的程序编写或者直接“依葫芦画葫芦”在编辑器(如tuerb c)上把课本的程序敲上,运行。运行正确,或不正确逐行查找看哪里敲错了。通过一段时间的学习逐步的了解到语句的含义,c语言中关键词与其英文意思相关联,这样便于我们“用词造句”。随着学习的进一步深入又掌握了不同的结构像循环,嵌套等等。接下来我们能运用所学写出能够实现一定功能,能够顺利运行的程序。如果我们要成为编程高手还要记忆大量的库函数,掌握很多的调用规则不断的积累经验。这是高级语言一般的学习历程,c语言是面向过程的,还有面向对象的高级语言像c++。
面向对象与面向过程是两个完全不同的概念。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。而对于初学者来说一般很难体会到面向对象的直观性往往是随着学习的深入慢慢掌握了解。举个例子,我们看一下面向对象与面向过程的区别:我们分别用c语言与c++实现两个数相乘。
c语言编写这个程序首先要考虑这两个参数的数据类型
#include
double chengfa1(double m,double n)
{
double q=m*n;
return q;
}
int chengfa2(int m,int n)
{
int q=m*n;
return q;
}
int main()
{
double d,e=3.1 f=4.4;
int h,a=5,b=6;
d=chengfa1(e,f);
h=chengfa2(a,b);
return 0;
}
不同的数据类型要对应不同的函数,不同的函数必须使用不同的名字,否则会出错。
下面用c++编写这个程序
#include
double chengfa(double m,double n)
{
double q=m*n;
return q;
}
int chengfa(int m,int n)
{
double q=m*n;
return q;
}
int main()
{
double d,e=3.1f=4.4;
int h,a=5,b=6;
d=chengfa(e,f);
h=chengfa(a,b);
return 0;
}
这个在c++中叫做重载,不同的函数可以用相同的函数名,但是这样我们还不能完全体会到面向对象的概念。那么我们用c++再次改进这个程序。
#include
template
G chengfa(G m,G n)
{
G q=m*n;
return q;
}
int main()
{
double d,e=3.1f=4.4;
int h,a=5,b=6;
d=chengfa(e,f);
h=chengfa(a,b);
return 0;
}
这个在c++中叫做模板,不需要关心数据是什么类型的,而主要关心怎么实现两个数的加法,不必在乎这两个数据是什么类型。面向对象就是把问题抽象成一个模型定义好了拿来就用。高级语言的语法、结构相对来说容易掌握,低级语言最接近机器语言,就不那么容易接受了。
我们学习低级语言之后就更加明白高级语言的基础和含义了。汇编语言是低级语言,参数常常调用具体的物理地址也就是计算机的硬件单元,虽然不是直接的01代码但是通过数制的换算很容易找到具体的物理地址或者高低电平。
计算机语言有着独特的魅力,不管是高级语言还是低级语言都是人与机器的交流,我们现在所处的阶段或许只是牙牙学语,不久得将来我们可能与机器有更深层的相互了解,黑客帝国终会实现吧!