实验二 数组及其运算

合集下载

数组实验报告

数组实验报告

数组实验报告数组实验报告引言:在计算机科学中,数组是一种重要的数据结构,它可以存储一系列相同类型的数据。

在本次实验中,我们将通过实际操作来深入了解数组的特性、使用方法以及相关的算法。

一、数组的定义与基本操作1.1 数组的定义数组是一种线性数据结构,由一组连续的内存单元组成,用于存储相同类型的数据。

数组的长度是固定的,一旦定义后无法改变。

1.2 数组的基本操作1.2.1 创建数组在大多数编程语言中,我们可以通过声明数组变量并指定长度来创建数组。

例如,在C语言中,可以使用以下语句来创建一个长度为10的整型数组:int array[10];1.2.2 访问数组元素数组的每个元素都有一个唯一的索引,从0开始递增。

我们可以通过索引来访问数组中的元素。

例如,要访问上述创建的数组的第一个元素,可以使用以下语句:int firstElement = array[0];1.2.3 修改数组元素我们可以通过索引来修改数组中的元素。

例如,要将第一个元素修改为5,可以使用以下语句:array[0] = 5;1.2.4 数组的长度数组的长度是在创建数组时指定的,可以通过数组的属性或方法来获取数组的长度。

例如,在Java中,可以使用以下语句获取数组的长度:int length = array.length;二、数组的应用2.1 数组的优势数组具有以下优势:- 快速访问:由于数组的元素在内存中是连续存储的,因此可以通过索引快速访问元素,时间复杂度为O(1)。

- 内存效率:数组的元素占用连续的内存空间,不需要额外的指针或引用,相比其他数据结构更加节省内存。

2.2 数组的应用场景数组广泛应用于各个领域,包括但不限于以下场景:- 数据存储:数组可以用于存储大量的数据,例如学生成绩、图像像素等。

- 算法实现:许多算法的实现需要使用数组,例如排序算法、搜索算法等。

- 数据结构的基础:许多其他数据结构,如队列、栈、矩阵等,都可以通过数组来实现。

数组实验报告反思心得

数组实验报告反思心得

一、实验背景本次实验旨在通过学习数组的相关知识,掌握数组的定义、初始化、赋值、引用等方法,以及数组的操作和应用。

通过本次实验,我对数组有了更深入的理解,同时也对编程思维和算法设计有了更全面的提升。

二、实验过程1. 实验一:一维数组的定义与初始化实验过程中,我首先学习了如何定义一维数组,以及如何对数组进行初始化。

通过实验,我掌握了以下知识:(1)一维数组的定义格式:类型符数组名[常量表达式];(2)一维数组的初始化方法:在定义数组时,可以在方括号内指定数组的长度,并为数组元素赋初值。

2. 实验二:二维数组的定义与初始化在实验二,我学习了二维数组的定义与初始化。

通过实验,我掌握了以下知识:(1)二维数组的定义格式:类型符数组名[常量表达式1][常量表达式2];(2)二维数组的初始化方法:可以在定义数组时,指定数组的行数和列数,并为数组元素赋初值。

3. 实验三:数组元素的引用与赋值在实验三,我学习了如何引用数组元素,以及如何为元素赋值。

通过实验,我掌握了以下知识:(1)数组元素的引用方法:数组名[下标];(2)数组元素的赋值方法:使用赋值运算符“=”。

4. 实验四:数组的操作与应用在实验四,我学习了数组的操作与应用,包括冒泡排序、选择排序等。

通过实验,我掌握了以下知识:(1)冒泡排序算法:通过比较相邻元素的大小,将较大的元素交换到后面,直到整个数组有序。

(2)选择排序算法:通过比较相邻元素的大小,选择最小(或最大)的元素放到数组的起始位置,然后继续对剩余的元素进行排序。

三、实验反思1. 数组的定义与初始化在实验过程中,我深刻体会到了数组在编程中的重要性。

数组作为一种数据结构,可以有效地存储和操作一组具有相同数据类型的元素。

通过对数组的定义与初始化,我学会了如何创建一个符合实际需求的数组,并为数组元素赋初值。

2. 数组元素的引用与赋值在实验过程中,我学会了如何引用数组元素,以及如何为元素赋值。

这使我更加熟练地掌握了数组的使用方法,为后续的编程实践打下了基础。

实验二 数据与数据运算

实验二 数据与数据运算

实验二数据与数据运算一、实验目的1.熟练掌握基本类型常量的表示方法。

2.掌握变量的赋值和使用方法。

3.掌握常用函数的使用方法。

4.掌握不同类型运算符的使用及表达式的计算。

二、实验内容及上机步骤在命令窗口中输入每一条命令后按回车键执行,并观察命令执行后的效果,并填写如下实验报告:实验二补充一、按顺序在命令窗口中输入以下的命令并执行,查看结果,并记录结果(结果紧跟在题目后面,答案字体使用红色):1.将“ABC”赋值给变量A,B,C;将12.4赋值给变量D。

2.显示已定义的A,B,C的值,查看这4个变量的数据类型。

3.定义一个二维数组Array1,要求该数组为3行3列,并给其中的数据赋不同类型的值。

4. 显示数组Array1中各个元素的值。

Disp memo like array1*二、按顺序在命令窗口中输入以下的命令并执行,查看结果,并记录结果(结果紧跟在题目后面,答案字体使用红色):.T..T..T..T..T..F.工程技术2000A3568 2B.F..T..T..T..T ..T..T..T..T.T..F..T.12Al fox03/18/16201603/18/16256.9******89564495643.5195644***25.50123.00三、函数操作。

1、判断常量或表达式的类型,并用Type()函数加以验证。

(1){^2002/7/14}(2).T.(3)”I like this game!”(4)2<3 OR ’B’>’A’(5)31415E-4(6)$2000.46738(7){^2002/09/13 21:34:56}(8){^2002-09-13}-{^2002-09-10}(9)[It’s a book..](10)8<>9 AND 9==92、按照下面所示函数完成操作,思考每个函数的含义及用法。

(1)取出当前日期,并将当前日期转换成字符型,接在字符“今天的日期是:”后显示输出。

C语言数组的应用实验报告

C语言数组的应用实验报告

C语言数组的应用实验报告实验报告:C语言数组的应用一、实验目的本实验旨在通过实际编程应用,加深对C语言数组的理解和掌握,学习并实践数组的基本操作技巧。

二、实验原理1.数组的概念和定义数组是相同数据类型的元素组成的有序集合。

在C语言中,数组是由相同数据类型的元素构成的元素集合,其元素个数是固定的。

数组一旦被定义后,其大小和结构就不能改变。

2.数组的声明和初始化声明数组需要指定数组的类型和数组名,可以同时初始化数组。

数组的初始化可以通过赋值的方式或者指定每个元素的值来完成。

3.数组的基本操作对数组的基本操作包括数组元素的读取和赋值、数组元素的运算、数组的遍历以及数组的排序等。

三、实验过程本实验中,我们将设计并编写几个示例程序来演示数组的应用。

实验示例1:计算数组元素和示例程序功能:从命令行输入一个整数数组,计算数组中所有元素的和。

```c#include <stdio.h>#define SIZE 5 // 定义数组大小int maiint i, sum = 0;int arr[SIZE];printf("请输入%d个整数:\n", SIZE);for (i = 0; i < SIZE; i++)scanf("%d", &arr[i]);sum += arr[i];}printf("数组元素的和为:%d\n", sum);return 0;```实验步骤:1. 声明一个大小为SIZE的整型数组arr和一个变量sum,用于存储和;2. 通过for循环,逐个从命令行输入数组元素,并将每个元素的值累加到sum中;3. 输出数组元素的和sum。

实验示例2:数组元素排序示例程序功能:从命令行输入一个整数数组,将数组元素按照从小到大的顺序排序后输出。

```c#include <stdio.h>#define SIZE 5 // 定义数组大小int maiint i, j, temp;int arr[SIZE];printf("请输入%d个整数:\n", SIZE);for (i = 0; i < SIZE; i++)scanf("%d", &arr[i]);}//冒泡排序for (i = 0; i < SIZE-1; i++)for (j = 0; j < SIZE-1-i; j++)if (arr[j] > arr[j+1])temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}printf("排序后的数组:\n");for (i = 0; i < SIZE; i++)printf("%d ", arr[i]);}printf("\n");return 0;```实验步骤:1. 声明一个大小为SIZE的整型数组arr和三个循环变量i、j、temp;2. 通过for循环,逐个从命令行输入数组元素;3. 使用冒泡排序算法,通过两个嵌套的for循环,比较相邻两个元素的大小并交换位置,最终得到按照升序排列的数组;4.输出排序后的数组。

C语言数组的应用实验报告

C语言数组的应用实验报告

C语言数组的应用实验报告实验题目:C语言数组的应用一、实验目的:1.理解数组的定义和使用方法;2.学会利用数组实现基本算法;3.了解数组在实际应用中的常见场景及解决方法。

二、实验原理1.数组是一种数据结构,可以存储一组相同类型的数据;2.数组的元素可以通过索引(下标)来访问和修改;3.数组的长度必须在定义时确定,且长度不能改变。

三、实验内容本次实验共包含三个不同的实验题目,下面将逐一介绍每个实验的内容和具体步骤。

实验一:计算数组元素的和与平均值1.题目描述:编写一个程序,计算一个包含n个元素的整型数组中所有元素的和与平均值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明一个整型变量sum,并将其初值设为0;3) 利用for循环遍历数组arr,将每个元素累加到sum中;4) 计算平均值avg,将sum除以数组长度;5)打印输出数组的和与平均值;6)用多组数据进行测试,验证程序的正确性。

实验二:查找数组中的最大值和最小值1.题目描述:编写一个程序,找出一个包含n个元素的整型数组中的最大值和最小值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明两个整型变量max和min,并将它们的初值设为数组的第一个元素;3) 利用for循环遍历数组arr,对比每个元素与max和min的大小,更新max和min的值;4)打印输出数组的最大值和最小值;5)用多组数据进行测试,验证程序的正确性。

实验三:矩阵转置1.题目描述:编写一个程序,对给定的二维数组进行转置操作;2.实验步骤:1) 定义一个二维整型数组matrix,并给数组赋初值;2) 声明一个与matrix规模相反的二维整型数组transpose,并将其所有元素初始化为0;3) 利用嵌套for循环遍历matrix数组,将每个元素的行列进行互换,并赋值给transpose数组;4) 打印输出转置后的transpose数组;5)用多组数据进行测试,验证程序的正确性。

实验二

实验二

Matlab 实验二数值数组及其运算实验目的:1.掌握数值数组的创建和寻访方法;2.理解数组运算和矩阵运算的含义;3.熟悉标准数组生成函数和数组操作函数的运用;4.熟悉两类特殊数组的应用;5.了解关系运算和逻辑运算及应用。

实验内容:在计算机上完成以下各题并进行结果验证,并按各题要求完成实验报告。

1.用2种方法生成行向量[3 5 7 9 11 13 15 17 19],并将其赋值给变量C。

写出其命令。

C=3:2:19或者C=linspace(3,19,9)2.输入A= [2 5 6; 7 1 5; 3 1 5],分别使用全下标和单下标取出元素“7”。

写出其命令。

A(2,1)和A(2)3.求矩阵[1 3;2 4]的转置矩阵、逆矩阵、矩阵的秩、矩阵的行列式值、矩阵的特征值和特征向量。

分别写出其命令和结果A=[1 3;2 4]转置矩阵A.’ =[1 2;3 4]逆矩阵A^-1=[-2 1.5;1 -0.5] 矩阵的秩rank(A)=2 行列式的值det(A)=-2[V,D]=eig(A)V = D=-0.9094 -0.5658 -0.3723 00.4160 -0.8246 0 5.37234.输入A= [2 5 6;7 1 5;3 1 5],B=[2 2 2;1 1 1; 3 3 3],在命令窗口中执行下列表达式,掌握其含义,并将运行结果写入实验报告:A(2, 3)= 5 A(:,2)=[5;1;1] A(3,:)=[3 1 5] A(:,1:2:3)= [2 6;7 5;3 5] A(:,3).*B(:,2)= [12;5;15] A(:,3)*B(2,:) =[6 6 6;5 5 5;5 5 5] A*B=[27 27 27;30 30 30;22 22 22] A.*B=[4 10 12;7 1 5;9 3 15] A^2=[57 21 67;36 41 72;28 21 48] A.^2=[4 25 36;49 1 25;9 1 25] B/A =[0.4211 0.3684 -0.4737;0.2105 0.1842 -0.2368;0.6316 0.5526 -0.7105]B./A=[1 0.4 0.3;0.1 1 0.2;1 3 0.6]5.先建立5×5服从正态分布的随机矩阵A,然后将A的第1行元素乘以1,第2行乘以2,…,第5行乘以5。

实验2 数组公式的使用

实验2  数组公式的使用

实验2 数组公式的使用【案例9-4】使用数组公式实例要求:在实例样本Sheet4工作表中利用数组公式进行几项计算。

应掌握的操作:∙输入数组公式;∙使用数组常量。

具体操作任务1:利用数组公式填写"金额"一栏。

1、选定存放数组公式的单元格区域D2:D5;2、输入数组公式:=B2:B5*C2:C5;3、按Ctrl+Shift+Enter 组合键确认数组公式的输入。

说明:(1)数组公式以被括在一对大括号中标识,大括号是Excel 自动加上的;(2)数组公式可返回一组结果;(3)数组公式中的数组参数必须有相同数量的行、列。

任务2:用数组常量{150;75;200;400}替换单元格区域C2:C5。

1、选定包含数组公式的区域:(1)单击D2:D5中任一单元格→ 单击"编辑"菜单中的"定位"项,打开"定位"对话框;(2)单击"定位条件"按钮,打开"定位条件"对话框→ 选中"当前数组"单选项→ "确定"。

2、编辑数组公式:(1)在编辑栏中将公式中的C2:C5替换为{150;75;200;400};(2)按Ctrl+Shift+Enter 组合键确认。

说明:(1)数组常量直接在公式中输入,要用大括号括起来,大括号需要用户输入;(2)不同列的数组元素用逗号分隔,不同行的数组元素用分号分隔。

1.1.1使用名称【案例9-5】使用名称实例要求:为实例6的结果中的部分单元格区域命名,并运用到公式中。

应掌握的操作:∙为单元格区域命名;∙将已有的单元格引用改为名称。

具体操作任务1:将单元格区域B2:B5和C2:C5分别命名为"单价"和"库存数"。

1、用在名称框中直接输入的方法为B2:B5区域命名:选定单元格区域B2:B5 → 单击名称框→ 输入:单价→ 按Enter 键确认;2、用菜单命令为C2:C5命名:(1)打开"插入"菜单→ 指向"名称"项→ 在子菜单中单击"定义"选项,打开"定义名称"对话框;(2)在"当前工作簿的名称"文本框中输入名称:库存数→ 在"引用位置"框中确定引用位置→ 单击"添加"按钮→ "确定"(或"关闭")。

C#实验2数组的应用

C#实验2数组的应用

图 2.2 实验 2.2 结果,输入 2 行 2 列,以及矩阵的值,转置后输出的结果。
图 2.2 实验 2.2 输出结果输入 3 行 4 列以及各位置的值,转置后的结果。
四、实验总结
主要包括本次实验是否完成、实验中遇到的问题及解决方法、实验收获等。 这次试验感觉做的时候还好,比较有思路。课上写完了第 2 题,课下写完了第 1 题,但是在第 一题的当起始位位置大于 16 时,要从头开始加,本想着用一个 for 语句循环可以实现,但是在写得 时候才发现自己的能力写不出来,于是用了 if 语句和一个 swich 语句实现功能,代码比较麻烦,但 是好在把要求的功能实现了。
2. 读入一个 n 行 m 列的矩阵,将矩阵转置。(即行列对换,使矩阵的第[i,j]元素变为[j,i]元素,而[i,i] 元素静止不动) 如:
三、实验过程 1.实验程序:
static void Main(string[] args) { int []a=new int [20]{11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8}; int sum=0,maxsum=0,start=-1; for(int i=0;i<20;i++) { if(i>16) { switch (i) { case 16: sum =a[116]+a[17]+a[18]+a[19]; break ; case 17: sum =a[1]+a[17]+a[18]+a[19]; break ; case 18:sum =a[1]+a[2]+a[18]+a[19]; break; case 19:sum =a[1]+a[2]+a[3]+a[19]; break; } } else { sum=a [i]+a [i+1]+a[i+2]+a[3];
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二 数组及其运算
一、实验目的
1.熟练矩阵、数组的创建;
2. 熟悉Matlab 的基本矩阵操作,运算符和字符串处理;
3. 熟悉矩阵的逻辑运算和关系运算;
二、实验设备
1.方正电脑
2.MATLAB 软件
三、实验内容
1.在指令窗中输入:x=1:0.2:2和y=2:-0.2:1,观察所生成的数组。

x =
1.0000 1.2000 1.4000 1.6000 1.8000
2.0000
y =
2.0000 1.8000 1.6000 1.4000 1.2000 1.0000
2.要求在[]π20上产生50个等距采样数据的一维数组,试用两种不同的指令实现。

X=linspace(0,2*pi,50)
X=0:(2*pi)/49:(2*pi)
2.设x=-74o ,y=27 o ,22
的值。

x=-74/180*pi;
y=27/180*pi;
d=sin(x^2+y^2)/(sqrt(tan(abs(x+y)))+pi)
d =
0.2273
3. 当a 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时,求0.3sin(0.3)a e
a -+在各点的函
数值。

a=-3.0:0.1:3.0;
y=exp(-0.3*a).*sin(a+0.3)
Columns 1 through 10
-1.0512 -1.2305 -1.3863 -1.5184 -1.6267 -1.7116 -1.7734 -1.8129 -1.8309 -1.8285
Columns 11 through 20
-1.8069 -1.7675 -1.7117 -1.6411 -1.5572 -1.4617 -1.3564 -1.2428 -1.1228 -0.9978
Columns 21 through 30
-0.8696 -0.7397 -0.6095 -0.4804 -0.3538 -0.2308 -0.1126 0.0000 0.1060 0.2047
Columns 31 through 40
0.2955 0.3779 0.4515 0.5160 0.5714 0.6174 0.6543 0.6821 0.7010 0.7115
Columns 41 through 50
0.7138 0.7085 0.6959 0.6768 0.6516 0.6210 0.5856 0.5460 0.5030 0.4572
Columns 51 through 60
0.4093 0.3597 0.3093 0.2586 0.2080 0.1582 0.1097 0.0628 0.0180 -0.0245
Column 61
-0.0641
4. 已知
⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=5051
3501
,05314320B A
求下列表达式的值:
(1) A&B
ans =
0 0 1 1
1 1 0 0
(2) A|B
ans =
1 1 1 1
1 1 1 1
(3) ~A
ans =
1 0 0 0
0 0 0 1
(4) A==B
ans =
0 0 0 0
1 0 0 0
(5) A>B
ans =
0 1 0 1
0 0 1 0
5. 先产生一个3×3的正态随机矩阵A ,再用floor(A),ceil(A),fix(A),round(A)进行A 的取整运算,体会不同取整方法的效果。

6. 已知
3542126734457,2874879015930A B -⎡⎤⎡⎤⎢⎥⎢⎥=-=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
求下列表达式的值:
(1) A*B 和A.*B
(2) A^3和A.^3
(3) A/B 和B\A
(4) [A,B]和[A([1,3]);B^2]。

相关文档
最新文档