项目六 任务一 一维数组(课件)-《算法与程序设计--C#》(河北科学技术出版社)同步精品课堂
|
28页
|
254人阅读
|
6人下载
精品
内容正文:
6.1 一维数组
算法与程序设计--C#
同步精品课堂
河北科学技术出版社
教学目标
一
理解 C# 中一维数组的概念和作用
能够运用一维数组解决简单的实际问题
掌握一维数组的声明、初始化、引用和遍历的方法
教学目标
01
02
03
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重难点
二
教学难点
1、一维数组的声明和初始化
2、一维数组元素的引用和遍历
教学重点
1、理解数组在内存中的存储方式
2、灵活运用数组解决实际问题
教学难点
导入新课
三
讨论:
如果我们需要存储100个学生的成绩,如何高效地管理这些数据?如何快速遍历这些成绩并计算总分或平均分?
任务一
1
一维数组
新知讲授
四
数组的概念
数组是一种数据结构,用于存储一组相同类型的元素,这些元素在内存中是连续存储的。
一维数组可以看作是一个线性的列表,每个元素都有一个唯一的索引,用于访问该元素。
➽ 数组的特点
(1)元素类型相同。
(2)元素存储在连续的内存空间中。
(3)通过索引访问元素。
设计菜单
新知讲授
四
一维数组的声明
➽ 格式
数据类型 [ ] 数组变量名= new 数据类型[元素个数];
如: int [] arr = new int [5]
数组变量类型
变量名称
元素个数
含义:定义arr是一个能装入int数据的数组变量,并且用new 在内存中为这个数组开辟了5个int数据的空间
设计菜单
新知讲授
四
一维数组的初始化
➽ 静态初始化
在声明时直接赋值。
➽ 语法:
数据类型[] 数组名 = {值1, 值2, ..., 值n};
数组声明后需要初始化才能使用。
➽ 示例
int [] arr = {1,2,3,4,5};
设计菜单
新知讲授
四
一维数组的初始化
➽ 动态初始化
使用 new 关键字初始化数组。在数组内元素未知情况下,可以先分配好数组空间,等待装入;
➽ 语法:
数据类型[] 数组名 = new 数据类型[长度];
➽ 示例
int[] scores = new int[3]; // 初始化一个长度为3的整型数组
不同数组类型数组,拥有不同的初始值,如下所示
新知讲授
四
➽ 动态初始化数组元素默认值
不同数组类型数组,拥有不同的初始值,如下所示
类型 初始值
整数 0
浮点数 0.0
布尔类型 false
字符类型 ‘\0’
引用类型 null
设计菜单
新知讲授
四
一维数组元素的引用
通过数组名和索引来引用数组中的元素,索引从 0 开始。
➽语法
数组名[索引];
➽示例
int firstScore = scores[0]; // 获取第一个元素
➽注意事项
1、数组索引从 0 开始。
2、索引不能超出数组长度,否则会抛出 IndexOutOfRangeException 异常。
设计菜单
新知讲授
四
一维数组元素的引用
任务:定义一个一维数组,存放3个元素,并将数组中的元素依次输出。
核心代码如下:
int [] arr = new int [3]{1, 3, 5};
//访问数组元素
Console.WriteLine(arr[0]);
Console.WriteLine(arr[1]);
Console.WriteLine(arr[2]);
设计菜单
新知讲授
四
一维数组元素的遍历
数组遍历,是指将数组中存放的每一个元素内容取出来,随后进行使用的过程。
➽ 用For循环遍历
int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}
• 说明:通过 for 循环,使用索引依次访问数组中的每个元素。
设计菜单
新知讲授
四
一维数组元素的遍历
➽ 用foreach循环遍历
格式:Foreach(数据类型 变量名 in 数组名)
示例:
foreach (int score in scores)
{
Console.WriteLine(score);
}
• 说明:foreach 循环会自动遍历数组中的每个元素,无需手动管理索引。
设计菜单
新知讲授
四
一维数组元素的遍历
➽ For循环与foreach循环比较
1、如果不使用每个元素的编号的话,可以选择foreach;
2、foreach当中的n只能读取访问,不能进行赋值;
3、for 循环适合需要索引的场景;
4、foreach 循环适合遍历所有元素;
ContextMenuStrip contextMenu = new ContextMenuStrip();
ToolStripMenuItem copyItem = new ToolStripMenuItem("复制");
contextMenu.Items.Add(copyItem);
this.ContextMenuStrip = contextMenu; // 绑定到窗体
新知讲授
四
➽ 任务一:用For语句和foreach语句遍历一维数组 int[] scores = { 88, 56, 98, 89, 66 }。
for (int i = 0; i < scores.Length; i++)
{
Console.WriteLine("编号" + i);
Console.WriteLine("成绩" + scores[i]);
}
foreach (int n in scores)
{
Console.WriteLine(n);
}
新知讲授
四
任务二 :求一维数组元素的和。
int[] numbers = { 1, 2, 3, 4, 5 };
int sum = 0;
for (int i = 0; i < numbers.Length; i++)
{
sum += numbers[i];
}
Console.WriteLine("数组元素的总和是:" + sum);
新知讲授
四
任务三 :查找数组中的最大值
int[] numbers = { 10, 25, 15, 30, 20 };
int max = numbers[0];
for (int i = 1; i < numbers.Length; i++)
{
if (numbers[i] > max)
{ max = numbers[i]; }
}
Console.WriteLine("数组中的最大值是:" + max);
新知讲授
四
综合案例:已知学生成绩为{88,56,98,89,66},请完成如下需求:
1、找出最高成绩,并打印在控制台
2、找出最低成绩,并打印在控制台
3、求出成绩总和,并打印在控制台
4、求出平均分,并打印在控制台
5、求出低于平均分的学生成绩数量
新知讲授
四
综合案例:已知学生成绩为{88,56,98,89,66},请完成如下需求:
int [] scores = {88,56,98,89,66};
int maxScore = scores[0];
int minScore = scores[0];
int sum=0;
for(int i=0; i< scores.Length; i++){
if(scores[i]> maxScore){ //求最高值
maxScore = scores[i];
}
if(scores[i]< minScore){//求最低值
minScore = scores[i];
}
sum = sum + scores[i];
}
Console.WriteLine("最高成绩为:{0}",maxScore);
Console.WriteLine("最低成绩为:{0}",minScore);
Console.WriteLine("成绩总和为:{0}",sum);
Console.WriteLine("成绩平均分:{0}",sum/scores. Length);
师生互动
五
1、总结一维数组的定义、初始化和遍历的方法
2、总结for循环语句和foreach语句的使用场景
讨论
随堂练习
六
1、在C#中,声明一个长度为10的整型数组的代码是:int[] arr = new int[____];
答案:10
解析:int[] arr = new int[10]代码定义一个长度为10的整型数组。
2、数组的索引从____开始。
答案:0
解析:数组的索引从0开始。
随堂练习
六
3、整数数组 int[] numbers = {1, 2, 3, 4, 5};,要访问数组中第三个元素,正确的方式是( )
A. numbers[2]
B. numbers[3]
C. numbers(2)
D. numbers{2}
答案:A
解析:在 C# 中,数组的索引是从 0 开始的。
随堂练习
六
4、下列选项中,正确初始化一个包含 3 个元素的字符串数组的是( )
A. string[] arr = {"A", "B", "C"};
B. string[] arr = new string[] {"A", "B", "C"};
C. string[] arr = new string[3] {"A", "B", "C"};
D. 以上都可以
答案:D
解析:C# 支持多种数组初始化方式,以上三种方式都是正确的
随堂练习
六
5、 在C#中,以下代码声明的数组arr的默认值是( )
int[] arr = new int[5];
A. 数组中所有元素的值为null
B. 数组中所有元素的值为0
C. 数组中所有元素的值为1
D. 数组中所有元素的值为-1
答案:B
解析:在C#中,数组在声明时会自动初始化所有元素为默认值。对于int类型的数组,默认值为0。
随堂练习
六
6.在 C# 中,数组的Length属性用于获取数组的长度。( )
7.在 C# 中,数组的元素可以是不同的数据类型。( )
答案:6. 对 7. 错误
解析:
6.Length用于获取数组的长度。
7.数组的所有元素必须是相同的数据类型。
课堂小结
七
谢谢
$$