简介:你的数据工具箱

欢迎来到计算机科学中最基础的章节之一:数据类型与结构
如果听起来有些复杂,请不要担心;这本质上只是关于如何组织信息。

想象一下你在打包行李。你不会把汤装进鞋盒里,也不会把小耳环装进巨大的衣箱。你会为不同的物品选择合适的容器。

在编程中,数据类型就是我们用来存储不同信息(数字、字母、真/假值)的容器。而数据结构则是我们将这些容器有效地组合在一起的方式。掌握这一点是编写高效且强大程序的关键!

快速要点

数据类型告诉计算机该数据是什么类型的信息(数字、文本等),这样计算机才知道需要分配多少内存,以及可以对它执行哪些操作。


第 1 部分:基础数据类型

这五种基本类型是你所有编程项目的基石。你需要对它们了如指掌!

1. 整数 (Integer, INT)

最简单的数字类型。
定义: 不带任何分数或小数部分的整数(正数、负数或零)。

  • 示例: 5, 100, -12, 0
  • 应用场景: 对事物进行计数(如学生人数)、列表索引或存储年龄。

2. 实数或浮点数 (Real or Floating Point, FLOAT)

有时简称为“Float”。这些数字需要更多内存,因为它们包含精度信息。

  • 定义: 包含小数点或分数部分的数字。
  • 示例: 3.14, -0.5, 99.99, 1.0
  • 应用场景: 存储测量值(如身高或温度)、货币或需要高精度的计算。

🚨 常见错误警示: 学生经常混淆整数 (Integer) 和浮点数 (Float)。如果你在计算金钱,请务必使用 实数 (Real),因为 10.50 英镑不是一个整数!

3. 字符 (Character, CHAR)

单个符号。

  • 定义: 任何单个字母、数字、标点符号或符号。
  • 示例: 'A', 'z', '5', '!', '$'。(注意:它们通常用单引号括起来。)

4. 字符串 (String, STR)

存储文本最常见的方式。

  • 定义: 一串字符的序列或集合。字符串本质上是连接在一起的长字符列表。
  • 示例: "Hello World", "CS101", "My name is John"。(注意:它们通常用双引号括起来。)
  • 小知识: 即使你在字符串中输入 "123",计算机也会将其视为文本,而不是可以进行数学运算的数字。

5. 布尔值 (Boolean, BOOL)

终极简单选择!布尔值对于程序决策至关重要。

  • 定义: 只能容纳两个值之一的类型:True(真)False(假)
  • 应用场景: 检查条件(例如:灯亮着吗?)、管理程序流程(IF/THEN 语句)。
记忆小贴士:记住你的类型

想想每种常用类型的首字母:Integer(整数)、Float(浮点数)、Character(字符)、String(字符串)、Boolean(布尔值)。


第 2 部分:数据结构 —— 将数据归类

当你拥有成千上万条数据时,不能只把它们存储在单独的变量中。你需要结构来整齐地组织它们。我们将重点讨论两种关键结构:数组 (Arrays)记录 (Records)

1. 数组(相同类型数据的列表)

可以将数组想象成一排整齐的、已编号的储物格,其中每一个格子都必须存放同一种类型的物品(例如:全是数字,或全是名字)。

  • 定义: 用于存储固定大小、数据类型相同的元素序列的数据结构。
  • 索引 (Indexing): 每个元素都通过索引(数值位置)来访问。在大多数编程语言中,索引通常从 0 开始。
1.1 一维 (1D) 数组

一条简单的直线或列表。

类比: 一张简单的购物清单,每一项都是字符串(文本)。

如果我们有一个名为 Scores 的数组,它包含 4 个整数:
Scores = [ 85, 92, 78, 99 ]

  • Scores[0] = 85 (索引 0 处的分数)
  • Scores[3] = 99 (索引 3 处的分数)

要找到第二个元素,你需要查看索引 1(因为我们从 0 开始计数)。

1.2 二维 (2D) 数组

二维数组是数组的数组。它就像一个网格、表格或电子表格,需要 两个索引 来定位一个元素:行索引和列索引。

类比: 国际象棋棋盘或教室里的简单座位表。

考虑一个小型座位表数组(3 行,4 列):

(R0, C0)(R0, C1)(R0, C2)(R0, C3)
(R1, C0)(R1, C1)(R1, C2)(R1, C3)
(R2, C0)(R2, C1)(R2, C2)(R2, C3)

要访问特定的座位,你需要两个坐标:
如果我们想要 第 2 行第 3 列 的项目,我们会查找 ArrayName[1][2](记住索引从 0 开始)。

数组的关键要点: 数组非常适合存储大量同质数据(全是数字,或全是字符串)。


2. 记录(混合不同类型数据)

数组的功能有限,因为它们只能容纳一种类型的数据。如果需要存储关于同一个事物(例如一名学生)的相关信息,而数据类型却不同,该怎么办?

这时就需要 记录 (Record)(有时被称为结构体或 'struct')。

  • 定义: 一种允许你将 数据类型可能不同 的相关数据项组合在一起的数据结构。
  • 字段 (Fields): 记录中的单个数据项称为 字段 或属性。

类比: 身份证或手机里的联系人条目。它包含文本、数字,甚至可能是图像标识的混合体。

示例:定义一个学生记录

我们定义一个名为 StudentInfo 的结构,包含多个字段:

        Record StudentInfo:
          Name: String
          Age: Integer
          GradeAverage: Real
          IsEnrolled: Boolean
    

要创建一个名为 Sam 的学生并访问其数据,可以使用点号标记法:

  • Sam.Name 将返回一个字符串(例如:"Sam Jones"
  • Sam.Age 将返回一个整数(例如:16
  • Sam.IsEnrolled 将返回一个布尔值(例如:True
比较:数组 vs. 记录

理解这种区别至关重要!

特征 数组 (Array) 记录 (Record)
数据类型 必须全部相同(例如:全是整数)。 可以各不相同(例如:字符串、整数、实数)。
用途 存储列表或序列。 存储描述单个实体(如一个人)的属性/字段。
访问方法 通过数值索引访问(例如:Array[3])。 通过字段名访问(例如:Record.Name)。

如果起初觉得有些棘手,不用担心。 练习绘制一维和二维数组的图表,并标出索引。一旦你理解了结构,编程逻辑就会变得容易多了!


章节回顾:关键术语总结

  • 整数 (Integer): 整数(无小数)。
  • 实数/浮点数 (Real/Float): 带小数的数字。
  • 字符串 (String): 字符序列(文本)。
  • 布尔值 (Boolean): 真或假的值。
  • 数组 (Array): 存储多个 相同数据类型 的项,通过数值索引访问。
  • 记录 (Record): 存储相关的、可以 不同数据类型 的数据项,通过字段名访问。

你现在已经拥有了基础知识,可以为你在编程挑战中遇到的任何数据选择正确的存储解决方案!继续练习,祝你好运!