`
swiftma
  • 浏览: 769 次
社区版块
存档分类
最新评论

计算机程序的思维逻辑 (1) - 数据和变量

阅读更多

程序大概是怎么回事

 

计算机就是个机器,这个机器主要由CPU、内存、硬盘和输入输出设备组成。计算机上跑着操作系统,如Windows或Linux,操作系统上运行着各种应用程序,如Word, QQ等。

 

操作系统将时间分成很多细小的时间片,一个时间片给一个程序用,另一个时间片给另一个程序用,并频繁地在程序间切换。不过,在应用程序看来,整个机器资源好像都归他使,操作系统给他提供了这种假象。

 

对程序员而言,我们写程序,基本不用考虑其他应用程序,我们想好怎么做自己的事就可以了。

 

应用程序看上去能做很多事情,能读写文档,能播放音乐,能聊天,能玩游戏,能下围棋 ......

 

但本质上,计算机只会执行预先写好的指令而已,这些指令也只是操作数据或者设备。所谓程序,基本上就是告诉计算机要操作的数据和执行的指令序列, 即对什么数据做什么操作。

 

比如说:

  • 读文档,就是将数据从磁盘加载到内存,然后输出到显示器上

  • 写文档,就是将数据从内存写回磁盘。

  • 播放音乐,就是将音乐的数据加载到内存,然后写到声卡上。

  • 聊天,就是从键盘接收聊天数据,放到内存,然后传给网卡,通过网络传给另一个人的网卡,再从网卡传到内存,显示在显示器上。

基本上,所有数据都需要放到内存进行处理,程序的很大一部分工作就是操作在内存中的数据。

 

本文主要就说说这个"数据"。(以Java为例)

 

数据

 

数据是什么?数据在计算机内部都是二进制,不方便操作,为了方便操作数据,高级语言引入了"数据类型"和"变量"的概念。

 

数据类型

 

数据类型用于对数据归类,方便理解和操作,对Java语言而言,有如下基本数据类型:

 

  • 整数类型:有四种整型 byte/short/int/long,分别有不同的取值范围

  • 小数类型 :有两种类型 float/double,有不同的取值范围和精度

  • 字符类型:char,表示单个字符

  • 真假类型:boolean,表示真假

基本数据类型都有对应的数组类型,数组表示固定长度的同种数据类型的多条记录,这些数据在内存中挨在一起存放。

 

比如说,一个自然数可以用一个整数类型数据表示,100个连续的自然数可以用一个长度为100的整数数组表示。一个字符用一个char表示,一段文字可以用一个char数组表示。

 

Java是一个面向对象的语言,除了基本数据类型,其他都是对象类型 ,对象到底是什么呢?

 

简单的说,对象是由基本数据类型、数组和其他对象组合而成的一个东西,以方便对其整体进行操作。

 

比如说,一个学生对象,可以由如下信息组成:

 

  • 姓名:一个字符数组

  • 年龄:一个整数

  • 性别:一个字符

  • 入学分数:一个小数

日期在Java中也是一个对象,内部表示为整形long。

 

就像世界万物的组成,都是由元素周期表中的108个基本元素组成的,基本数据类型就相当于化学中的基本元素,而对象就相当于世界万物。

 

变量

为了操作数据,需要把数据存放到内存中,所谓内存在程序看来就是一块有地址编号的连续的空间,放到内存中的某个位置后,为了方便地找到和操作这个数据,需要给这个位置起一个名字。编程语言通过变量这个概念来表示这个过程。

 

声明一个变量,比如 int a其实就是在内存中分配了一个空间,这个空间存放int数据类型,a指向这个内存空间所在的位置,通过对a操作即可操作a指向的内存空间,比如a=5这个操作即可将a指向的内存空间的值改为5。

 

之所以叫量,是因为它表示的是内存中的位置,这个位置存放的值是可以变化的。

 

虽然变量的值是可以变化的,但名字是不变的,这个名字应该代表程序员心目中这块内存位置的意义,这个意义应该是不变的,比如说这个变量int second表示时钟秒数,在不同时间可以被赋予不同的值,但它表示的就是时钟秒数。之所以说应该是因为这不是必须的,如果你非要起一个变量名叫age但赋予它身高的值,计算机也拿你没办法。

 

重要的话再说一遍!变量就是给数据起名字,方便找不同的数据,它的值可以变,但含义不应变。再比如说一个合同,可以有四个变量:

 

* first_party: 含义是甲方

* second_party: 含义是乙方

* contract_body: 含义是合同内容

* contract_sign_date: 含义是合同签署日期

 

这些变量表示的含义是确定的,但对不同的合同,他们的值是不同的。

 

初学编程的人经常使用像a,b,c,hehe,haha这种无意义的名字,给变量起一个有意义的名字吧!

 

通过声明变量,每个变量赋予一个数据类型和一个有意义的名字,我们就告诉了计算机我们要操作的数据。

 

有了数据,怎么对数据进行操作呢?

---------------

未完待续,查看最新文章,敬请关注微信公众号“老马说编程”,深入浅出,探索Java编程及计算机技术的本质。原创文章,保留所有版权。

分享到:
评论

相关推荐

    C语言课程设计报告--学习和掌握C程序设计方法-培养抽象思维、逻辑思维的能力和良好的程序设计风格.doc

    《C语言程序设计》课程是计算机科学教育中的核心部分,旨在帮助学生掌握基本的编程技能,形成抽象思维和逻辑思维的能力,以及培养良好的程序设计风格。 **课程设计目的** C语言课程设计的目标主要有以下几点: 1....

    2023年scratch教案-变量.docx

    - **情感态度与价值观**:培养认真细致的态度,以及严谨的程序思维。 #### 教学重点 - 变量的设置和使用。 #### 教学难点 - 初步理解变量的概念及其应用场景。 #### 教学过程 ##### 导入新课 - **互动游戏**:...

    计算机程序设计--24点游戏设计.doc

    其中,栈(STACK1和STACK2)用于实现中缀表达式到后缀表达式的转换和后缀表达式的计算,它们分别处理整数和运算符。 栈1(STACK1)用于存储整数,而栈2(STACK2)用于存储运算符。栈的常用操作如初始化、入栈、出栈...

    2016年慈溪市小学生计算机程序设计竞赛复赛试题及测试数据

    "2016年慈溪市小学生计算机程序设计竞赛复赛试题及测试数据" 这个标题揭示了本次讨论的核心内容。这是一个关于2016年在浙江省慈溪市举行的小学生计算机程序设计竞赛的复赛部分。这类竞赛通常旨在提升学生的编程技能...

    广东省职业技能等级认定证书试卷样题计算机程序设计员-web前端开发(中级)理论-答案.docx

    该部分考查了计算机程序设计员-web前端开发(中级)的逻辑思维和分析能力,包括布尔逻辑、条件语句、循环语句、函数、数组、对象等。 知识点 1. HTML基本结构和语义化标签 HTML文档的基本结构包括文档类型声明、...

    西南交通大学计算机程序设计基础-实验10-C++.docx

    西南交通大学的计算机程序设计基础课程对于学生掌握C++编程技术具有重要意义,其包含的实验环节能够让学生们在实践中学习和应用所学知识。在本次实验报告中,我们将详细探讨如何通过四个具体的编程任务,加深对二维...

    计算机程序设计基础上机指导与习题

    根据提供的标题和描述,我们可以将重点放在“计算机程序设计基础上机指导与习题”以及“C语言程序设计”上。接下来,将详细阐述与此相关的知识点。 ### 计算机程序设计基础 #### 1. 计算机程序设计概念 计算机程序...

    《计算机程序设计基础》作者赵宏—电子教案.rar

    1. **第1章 概述**:这一章通常会介绍计算机程序设计的基本概念,包括计算机系统、编程语言的分类、编程环境和开发工具的使用,以及程序设计的基本步骤。 2. **第2章 程序设计初步**:这一章可能会涉及基本的编程...

    计算机程序设计(Java)-教案--单元二--Java语言开发基础.docx.docx

    【Java语言开发基础】是计算机程序设计的重要组成部分,这一单元主要涵盖了Java语言的基础知识和编程技巧。课程的主要目标是让学生掌握Java语言的基本组成,包括数据类型、变量、运算符及表达式,以及如何运用三种...

    PAT计算机能力考试乙级1-10题答案.doc

    通过对这三个题目的分析和解答,我们可以看出,它们虽然都涉及到了C语言的基础知识点,但是它们对逻辑思维和问题解决能力的要求是逐步提高的。从循环结构到字符串操作,再到复杂的模式匹配,考生必须在掌握基础知识...

    C语言程序设计-1-4章-课后习题答案(1).zip

    C语言程序设计是一门基础的计算机编程语言课程,它以结构化、模块化的方式教授学生如何编写和调试程序。本压缩包中的文件涵盖了C语言程序设计课程的前四章内容,具体包括顺序程序设计、选择结构程序设计以及循环结构...

    啊哈C语言 第4讲 数字的家--变量.pdf

    根据给定的文件信息,我们可以提炼出以下知识点: ...1. 培养逻辑思维和解决问题的能力。 2. 激发创新和创造力。 3. 提前为孩子接触和理解编程世界做准备。 4. 通过动手实践,提升计算机操作技能和信息素养。

    MP31819_examples_图说运算思维与演算逻辑训练_

    运算思维是指理解和解决涉及变量、等式和代数概念的问题的能力,而演算逻辑则涉及到如何构造和理解计算机程序的流程,包括条件语句、循环、函数和数据结构等。 在Python中,运算思维可以体现在对复杂问题的抽象,...

    计算机程序设计的要点与规范分析-.docx

    计算机程序设计不仅仅是一项技术活动,它还是一种逻辑思维和问题解决的过程。掌握程序设计的基本概念和要点,遵循程序设计的规范,对于编写高效、可靠和可维护的程序至关重要。随着计算机技术的不断进步和应用的不断...

    100个经典C程序-----考试学习练习自备良药

    每个程序都是一个挑战,解决每个问题会带来成就感,并且有助于形成良好的编程习惯和思维方式。 【标签解析】 - "C":代表C语言,学习的核心内容。 - "C程序":强调是关于C语言的程序设计。 - "100":表明包含100个...

    2019全国高校计算机能力挑战赛-程序设计赛-C语言-全国一等奖源代码

    总的来说,这份资源是一份宝贵的C语言学习材料,它涵盖了基础编程、算法设计、问题解决策略和竞赛实战经验,对于提升计算机程序设计能力,尤其是参与算法竞赛的准备,具有很大的帮助。通过深入研究这些源代码,学习...

    编制计算机程序解决问题.pdf

    通过以上内容,我们可以看出,编制计算机程序解决问题不仅是一种技术,更是一种思维方式,它能够帮助我们理解和解决现实生活中的复杂问题,提高工作效率。教学过程中,应注重培养学生的创新意识和实践能力,使他们...

    全国计算机等级考试-二级教程-C语言程序设计(免费).pdf

    这些题目涵盖了C语言的各个知识点,包括逻辑思维、算法设计和错误排查等方面。 最后,书中的附录通常包含一些参考资源,如C语言的关键字列表、常用库函数以及考试大纲,这些都是备考的重要参考资料。 通过学习...

    第3章-C51语言程序设计基础-PPT.ppt

    - **位变量`bit`**:用于表示逻辑状态,值可以是1或0。 - **特殊功能寄存器**:直接映射到51系列单片机的特殊功能寄存器地址。 #### 第三节 C51语言的数据存储类型 - **存储器寻址**: - 51系列单片机拥有不同...

    数据的存储箱—变量1.doc

    在计算机编程中,数据的存储和处理是至关重要的,而变量就是我们用来存储数据的“存储箱”。本课以初中信息技术教案的形式,讲解了如何利用变量来实现数据的存储与计算,这是程序设计的基础。通过一个实际的“打折...

Global site tag (gtag.js) - Google Analytics