编程中的数组应用与实践
1. 数组图形绘制
1.1 创建图形绘制程序
首先,我们要创建一个程序来绘制存储在
temperatures
数组中的值的图形。操作步骤如下:
1. 选择
File > New
开始一个新程序,并将其保存为
GraphTemps
。
2. 定义温度数组:
int[] temperatures = {57, 10, 32, 78, 212, 101};
- 设置画布大小为 250 像素×250 像素:
size(250, 250);
- 创建变量存储图形相关参数:
int spaceBetween = 35; // 相邻条形图顶部之间的距离
int barHeight = 10; // 每个条形图的高度
1.2 绘制条形图
使用
for
循环遍历数组,绘制每个条形图:
int barTop;
for (int count = 0; count < temperatures.length; count = count + 1) {
fill(255, 0, 0); // 设置填充颜色为红色
barTop = (count + 1) * spaceBetween;
rect(0, barTop, temperatures[count], barHeight); // 绘制矩形
}
1.3 添加文本标注
在每个条形图的末尾添加黑色文本标注:
for (int count = 0; count < temperatures.length; count = count + 1) {
fill(255, 0, 0); // 红色
barTop = (count + 1) * spaceBetween;
rect(0, barTop, temperatures[count], barHeight);
fill(0, 0, 0); // 黑色
text(temperatures[count], temperatures[count], barTop); // 添加文本
}
完整代码如下:
int[] temperatures = {57, 10, 32, 78, 212, 101};
size(250, 250);
int spacer = 35;
int barHeight = 10;
int barTop;
for (int count = 0; count < temperatures.length; count = count + 1) {
fill(255, 0, 0); // 红色
barTop = (count + 1) * spacer;
rect(0, barTop, temperatures[count], barHeight);
fill(0, 0, 0); // 黑色
text(temperatures[count], temperatures[count], barTop);
}
2. 使用
new
运算符声明和创建数组
2.1 已知值创建数组
可以直接指定数组元素的值来创建数组:
int[] temperatures = {57, 10, 32, 78, 212, 101};
printArray(temperatures);
2.2 未知值创建数组
当不知道数组具体元素值时,使用
new
运算符:
int[] temperatures = new int[6];
printArray(temperatures);
此操作会使 Processing 执行以下步骤:
1. 在计算机内存中为一个包含六个
int
值的新数组预留位置。
2. 将新数组在计算机内存中的地址存储在
temperatures
变量中。
3. 将新数组的所有元素初始化为 0(
int
数组的默认值)。
2.3 不同数据类型数组的默认值
不同数据类型的数组有不同的默认值,如下表所示:
| 数据类型 | 默认值 |
| ---- | ---- |
|
int
| 0 |
|
float
| 0.0 |
|
char
| Unicode 编号为 0 的字符(空字符) |
|
String
|
null
|
|
boolean
|
false
|
例如,创建
float
类型数组:
float[] temperatures = new float[6];
printArray(temperatures);
此时数组元素默认值为 0.0。
3. 模拟 Yahtzee 游戏
3.1 初始化骰子数组
创建一个程序模拟 Yahtzee 游戏,首先声明一个数组来存储五个骰子的值:
int[] dice = new int[5];
printArray(dice);
初始时,数组元素都为 0。
3.2 为骰子数组赋值随机数
使用
for
循环为每个骰子赋值 1 到 6 之间的随机整数:
for (int count = 0; count < dice.length; count = count + 1) {
dice[count] = int( random(1, 7) );
}
printArray(dice);
3.3 模拟多次掷骰子直到出现 Yahtzee
使用
do-while
循环模拟多次掷骰子,直到五个骰子的值相同:
int[] dice = new int[5];
do {
for (int count = 0; count < dice.length; count = count + 1) {
dice[count] = int( random(1, 7) );
print(dice[count] + " ");
}
println();
} while ( min(dice) != max(dice) );
3.4 统计掷骰子次数
添加一个变量来统计掷骰子的次数:
int[] dice = new int[5];
int rolls = 0;
do {
for (int count = 0; count < dice.length; count = count + 1) {
dice[count] = int( random(1, 7) );
print(dice[count] + " ");
}
rolls = rolls + 1;
println();
} while ( min(dice) != max(dice) );
println("Number of rolls: " + rolls);
4. 循环计数器变量命名与运算符
4.1 循环计数器变量命名
有经验的程序员常使用单字母(如
i
)作为
for
循环的计数器变量:
for (int i = 0; i < dice.length; i = i + 1) {
dice[i] = int( random(1, 7) );
}
但对于初学者,使用描述性的变量名更好。
4.2 增量和减量运算符
Processing 提供了增量(
++
)和减量(
--
)运算符,用于增加或减少变量的值:
// 增量运算符
for (int count = 0; count < 5; count++) {
// 循环体
}
// 减量运算符
for (int count = 5; count > 0; count--) {
// 循环体
}
不过,这些运算符可能会使代码对初学者来说可读性降低,且可能导致初学者忘记可以以其他增量或减量方式操作计数器变量。
5. 输入字符串数组
5.1 固定大小数组输入
我们可以创建一个由非数字类型元素组成的数组,例如输入学生姓名到一个字符串数组中。操作步骤如下:
1. 选择
File > New
开始一个新程序,并将其保存为
StringArray
。
2. 导入使用对话框所需的语句:
import static javax.swing.JOptionPane.*;
-
声明一个
String类型的数组来存储学生姓名:
String[] students = new String[4];
-
使用
for循环多次输入学生姓名:
for (int count = 0; count < students.length; count = count + 1) {
students[count] = showInputDialog("Enter name of student:");
}
- 显示输入的学生姓名列表:
printArray(students);
完整代码如下:
import static javax.swing.JOptionPane.*;
String[] students = new String[4];
for (int count = 0; count < students.length; count = count + 1) {
students[count] = showInputDialog("Enter name of student:");
}
printArray(students);
5.2 动态大小数组输入
为了让用户可以指定要输入的学生数量,我们可以对程序进行修改:
import static javax.swing.JOptionPane.*;
String input = showInputDialog("Number of students:");
int size;
size = int(input);
String[] students = new String[size];
for (int count = 0; count < students.length; count = count + 1) {
students[count] = showInputDialog("Enter name of student:");
}
printArray(students);
运行这个程序时,用户首先会被询问要输入的学生数量,然后程序会创建相应大小的数组,并多次提示用户输入学生姓名。
6. 总结与流程图
6.1 知识总结
本文主要介绍了数组在编程中的多种应用,包括:
- 如何使用数组中的数据绘制图形,涉及设置画布、绘制条形图和添加文本标注。
- 使用
new
运算符声明和创建数组,以及不同数据类型数组的默认值。
- 模拟 Yahtzee 游戏,包括初始化骰子数组、为数组元素赋值随机数、模拟多次掷骰子直到出现 Yahtzee 以及统计掷骰子次数。
- 循环计数器变量的命名和增量、减量运算符的使用。
- 输入字符串数组,包括固定大小和动态大小数组的输入方法。
6.2 流程图
下面是模拟 Yahtzee 游戏直到出现 Yahtzee 的 mermaid 流程图:
graph TD;
A[开始] --> B[初始化骰子数组];
B --> C[掷骰子并打印结果];
C --> D{是否所有骰子值相同};
D -- 否 --> C;
D -- 是 --> E[结束];
通过这些内容,我们可以看到数组在不同场景下的灵活应用,以及如何使用循环、运算符等工具来处理数组数据,希望这些知识能帮助你更好地理解和运用数组编程。
超级会员免费看

被折叠的 条评论
为什么被折叠?



