实验二 数组及其运算
数组实验报告
数组实验报告数组实验报告引言:在计算机科学中,数组是一种重要的数据结构,它可以存储一系列相同类型的数据。
在本次实验中,我们将通过实际操作来深入了解数组的特性、使用方法以及相关的算法。
一、数组的定义与基本操作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语言数组的理解和掌握,学习并实践数组的基本操作技巧。
二、实验原理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语言数组的应用一、实验目的: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 数组公式的使用【案例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数组的应用
图 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. 理解数组的基本概念和特点;2. 掌握数组的创建、访问和操作方法;3. 熟悉数组在编程中的应用;4. 培养实验操作能力和问题解决能力。
三、实验内容1. 数组的定义与创建2. 数组的初始化3. 数组元素的访问与修改4. 数组的排序与查找5. 数组的应用实例四、实验过程1. 数组的定义与创建实验一:定义一个整型数组,并初始化为10个元素。
代码如下:```c#include <stdio.h>int main() {int arr[10];// 初始化数组for (int i = 0; i < 10; i++) {arr[i] = i 2;}// 打印数组元素for (int i = 0; i < 10; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```2. 数组的初始化实验二:使用初始化列表直接初始化数组。
代码如下:```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};// 打印数组元素for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) { printf("%d ", arr[i]);}printf("\n");return 0;}```3. 数组元素的访问与修改实验三:访问和修改数组元素。
代码如下:```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5};// 访问数组元素printf("The first element is: %d\n", arr[0]);// 修改数组元素arr[0] = 10;printf("After modification, the first element is: %d\n", arr[0]); return 0;}```4. 数组的排序与查找实验四:使用冒泡排序算法对数组进行排序。
C语言:数组的应用实验报告
课程名称:结构化程序设计与C语言开课实验室:年月日一、实验目的用C语言编写和调试数组的程序,包括一维数组和二维数组。
从而对数组的程序设计有比较深入的了解。
二、内容及结果1、程序二选择排序法1)题目:用选择法对10个整数排序。
2)代码:#include<>int main(){int a[10];int i,j,t;printf("input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("the sorted numbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return 0;}3)运行截图:2、程序二将一个数组中的值按逆序重新存放。
1)题目:将一个数组中的值按逆序重新存放。
2)代码:# include <>int main (){int a[5]={8,6,5,4,1};int i,t;for(i=0;i<=2;i++){t=a[i];a[i]=a[4-i];a[4-i]=t;}for(i=0;i<=4;i++)printf("%d ",a[i]);return 0;}3)运行截图:3、程序三输出杨辉三角形(10行)1)题目:输出杨辉三角形(10行)2)代码:#include<>int main(){int yh[10][10]={0};int i,j;for(i=0;i<10;i++)yh[i][0]=1;for(i=1;i<10;i++)for(j=1;j<10;j++)yh[i][j]=yh[i-1][j-1]+yh[i-1][j];for(i=0;i<10;i++){for(j=0;j<i+1;j++)printf("%5d",yh[i][j]);printf("\n");}}3)运行截图:4、程序四找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。
C语言程序设计实验报告数组运算
C语言程序设计实验报告实验名称数组的运用学院专业班级姓名学号任课教师实验时间一实验目的:1.熟练掌握for语句格式及使用语句方法,掌握if语句中的嵌套关系和匹配原则,利用if语句实现分支选择结构。
2.正确使用scanf语句,注意语句的结构和用法。
3.掌握数组的运用,注意数组的定义和用法及其使用对象和范围。
4.学会简单的程序设计。
5.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。
进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
二实验内容:读10个整数存入数组,找出其中最大值和最小值。
三基本步骤:1. 输入:for循环输入10个整数2. 处理:(a) 先令max=min=x[0](b) 依次用x[i]和max,min比较(循环)若max<x[i],令max=x[i]若min>x[i],令min=x[i]3.输出:max和min四源程序:#include<stdio.h>#define SIZE 10int main(){int x[SIZE],i,max,min;printf("Enter 10 integers:\n");for(i=0;i<SIZE;i++){printf("%d:",i+1);scanf("%d",&x[i]);}max=min=x[0];for(i=1;i<SIZE;i++){if(max<x[i]) max=x[i];if(min>x[i]) min=x[i];}printf("Maximum value is %d\n",max);printf("Minimum value is %d\n",min);return 0;}五测试数据及运行结果程序运行的和输入数据的测试结果:六出现问题及解决方法(*注:如果不先定义数组“x”那么在运行的时候就会报错)解决方法:遵守数组的运用法则,先定义再使用;scanf("%d",&x[i]);(*注:#define SIZE 10同样是定义;如此图中没有#define SIZE 10来定义数组的长度那么在运行的时也会报错导致程序不能运行)解决方法:遵守数组的运用法则,先定义再使用;七实验心得1.编写程序要一丝不苟,一旦出现一点纰漏,程序便无法运行2.要灵活掌握#define的定义scanf语句格式及使用语句方法,数组的结构,定义和使用;3.要经常上机实践,才能熟悉C/C++的环境,掌握编写程序的注意事项,以致不会犯低级错误。
数组(C语言实验报告)
letter=number=space=other=0;
printf("请输入字符串:\n");
gets(c);
for(i=0;i<N&&c[i]!='\0';i++)
{
if((c[i]>='a'&&c[i]<='z')||(c[i])>='A'&&c[i]<='Z')
letter++;
②用for语句实现循环;
(2)该题目涉及的知识点和难点:
①宏定义;
②二维数组的输入输出;
③for语句的输入与使用。
3、餐饮服务质量调查打分
在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出来。例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收入状况。如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)的形式表示,将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,练习这方面的程序编写方法。
假设有20个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~5这5个等级(1表示最低分,5表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。
Grade Count Histogram
1 5 *****
2 10 **********
3 7 *******
...
程序如下:
#include<stdio.h>
}
printf("统计调查结果如下:\n");
最新《实验二:数组》实验报告
最新《实验二:数组》实验报告实验目的:1. 掌握数组的基本概念和使用方法。
2. 理解数组在内存中的存储方式。
3. 学会使用循环结构对数组进行遍历和操作。
4. 培养解决实际问题时数组应用的能力。
实验环境:- 操作系统:Windows 10- 开发工具:Visual Studio 2019- 编程语言:C++实验内容:1. 创建一个整型数组,包含10个元素,初始化为0到9的整数。
2. 使用循环结构实现数组中所有元素的累加,并输出结果。
3. 编写一个函数,计算数组中所有偶数的和,并返回结果。
4. 实现一个功能,允许用户输入一个整数,将其插入到数组的指定位置。
5. 对数组进行排序,使用冒泡排序算法,并输出排序后的数组。
实验步骤:1. 定义一个整型数组arr[10],并初始化。
2. 使用for循环,遍历数组,计算累加和,并输出。
3. 定义一个函数int calculateEvenSum(int arr[], int size),接收数组和数组大小作为参数,计算偶数和。
4. 实现用户输入功能,通过scanf获取用户输入的整数和指定位置,调用一个函数void insertElement(int arr[], int size, int value, int position)进行插入。
5. 应用冒泡排序算法对数组进行排序,定义一个函数voidbubbleSort(int arr[], int size)实现排序,并输出排序后的结果。
实验结果:1. 初始数组:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}。
2. 数组累加和输出:45。
3. 偶数和输出:20。
4. 用户输入插入操作:假设用户输入的值为5,指定位置为3,插入后的数组:{0, 1, 5, 2, 3, 4, 5, 6, 7, 8, 9}。
5. 排序后的数组输出:{0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9}。
实验分析:通过本次实验,我们成功实现了数组的基本操作,包括初始化、遍历、插入、计算和排序。
《数学应用软件》试验(二)【数值数组及其运算】
访第 2 行第 1 列的元素,并说明二维数组元素的存储顺序。 (9)在指令窗中输入 B=【1,2,3;6,7,8】 ,并计算 A.*B;和 A*B 并说明矩阵相 乘和数组相乘的区别。 (10)关系操作和逻辑操作 表 2-4 Matlab 常用关系运算符 关系运算符 说 明 < 小于 逻辑运算符 说 明 <= 小于等于 & 与 > 大于 | 或 >= 大于等于 ~ 非 == 等于 Xor 异或 ~= 不等于
上面函数的具体用法,可以用帮助命令 help 得到。如:meshgrid(x,y) 输入 x=[1 2 3 4]; X= 1 1 1 2 2 2 3 3 3 4 4 4 y=[1 0 5]; [X,Y]=meshgrid(x, y),则 Y= 1 0 5 1 0 5 1 0 5 1 0 5
目的是将原始数据 x,y 转化为矩阵数据 X,Y。 (3)符号向量(矩阵)的输入 a.用函数 sym 定义符号矩阵: 函数 sym 实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的 符号或者是表达式,而且长度没有限制。只需将方括号置于单引号中。 例 2:
>> X_Data = [2.32 3.43;4.37
实验二 数组
MATLAB原理及应用实验报告实验二 数组(矩阵)及其运算一.实验目的1、掌握MATLAB 软件环境下进行的数值数组(矩阵)的创建和访问的基本方法。
2、掌握数值数组(矩阵)的算术运算、逻辑运算 二.实验设备计算机、MATLAB 软件 三.实验内容和程序1、建立⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=3104152121A 和⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=114513312B(1)求矩阵A 和B 的积,矩阵A 左除B ,以及矩阵A 的2次方(2)求数组A 和B 的积,数组A 左除B ,及数组A 的2次方 程序:(1)>> A=[1,2,1;2,-5,-1;4,10,3] A =1 2 1 2 -5 -1 4 10 3 >> B=[2 -1 3;3 1 -5;4 -1 1] B =2 -13 3 1 -54 -1 1 >> C1=A*B; >> C2=A\B; >> C3=A^2; >> C1,C2,C3 C1 =12 0 -6 -15 -6 30 50 3 -35 C2 =0.9333 0.4000 -2.1333 -0.7333 0.4000 -1.4667 2.5333 -2.2000 8.0667 C3 =9 2 2 -12 19 436 -12 3 (2)>> D1=A.*B; >> D2=A./B; >> D3=A.^2; >> D1,D2,D3 D1 =2 -23 6 5 5 16 -10 3 D2 =0.5000 -2.0000 0.3333 0.6667 5.0000 0.2000 1.0000 -10.0000 3.0000 D3 =1 4 1 4 25 1 16 100 92.建立矩阵 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=58610132851231634811644135215A (1)用两种方法索引出A 矩阵第3行第2列的元素,并将其值改为自己的学号加20(2)索引出A 矩阵第2行至第4行、第二列至第5列的所有元素 程序:(1) >> A=[15 2 5 3 -1 4 4 6 11 8 4 3 6 -1 3 12 5 8 2 13 10 6 8 5] A =15 2 5 3 -1 4 4 6 11 8 4 3 6 -1 3 12 5 8 2 13 10 6 8 5 >> a=A(3,2) a =-1>> A(7)ans =-1>> A(3,2)=56A =15 2 5 3 -1 44 6 11 8 4 36 56 3 12 5 82 13 10 6 8 5(2)>> B=A(2:4,2:5)B =6 11 8 456 3 12 513 10 6 83、使用两种方法建立范围为],0[的向量,使得向量中的元素相邻元素的间隔是202(1)改变第二个元素的值,并将其赋给一个新的变量(学号加20),并求两个向量的点积(2)从第二个元素开始提取三个元素,并与向量[1 2 3]做叉积程序:(1)>> A=0:2:20A =0 2 4 6 8 10 12 14 16 18 20 >> B=AB =0 2 4 6 8 10 12 14 16 18 20 >> B(2)=56B =0 56 4 6 8 10 12 14 16 18 20(2)>> b=B(3:5)b =4 6 8 >> c=[1,2,3]c =1 2 3 >> D=cross(b,c)D =2 -4 24、复数ieziziz63212,21,43π=+=+=表达,及计算321zzzz=。
实验二-MATLAB数值数组及其运算实验报告
实验二MATLAB数值数组及其运算班级:电子信息工程2班学号:1004101049 姓名:王率率实验目的1.掌握数值数组的创建和寻访方法;2.理解数组运算和矩阵运算的含义;3.熟悉标准数组生成函数和数组操作函数的运用;4.熟悉两类特殊数组的应用;5.了解关系运算和逻辑运算及应用。
内容步骤在计算机上完成以下各题并进行结果验证,并按各题要求完成实验报告。
1.用2种方法生成行向量[3 5 7 9 11 13 15 17 19],并将其赋值给变量C。
写出其命令。
c=[3 5 7 9 11 13 15 17 19] %方法1c=linspace(3,19,9) %方法2c=[3:2:19] %方法32.输入A= [2 5 6; 7 1 5; 3 1 5],分别使用全下标和单下标取出元素“7”。
写出其命令。
A=[2 5 6;7 1 5;3 1 5]A(2,1) %全下标A(2) %单下标3.求矩阵[1 3;2 4]的转置矩阵、逆矩阵、矩阵的秩、矩阵的行列式值、矩阵的特征值和特征向量。
分别写出其命令和结果。
A=[1 3;2 4]B=A' %转置矩阵B1=inv(A) %逆矩阵C=rank(A) %矩阵的秩C1=det(A) %矩阵的行列式值[V,D]=eig(A) %特征值和特征向量运行结果:A = 1 32 4B = 1 23 4B1 =-2.0000 1.50001.0000 -0.5000C =2C1=-2V =-0.9094 -0.56580.4160 -0.8246D =-0.3723 00 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) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2A.^2 B/AB./A运行结果依次为:B=[2 2 2;1 1 1; 3 3 3]ans = 5ans = 511ans = 3 1 5ans = 2 67 53 5ans = 12515ans = 6 6 65 5 55 5 5ans = 27 27 2730 30 3022 22 22ans = 4 10 127 1 59 3 15ans = 57 21 6736 41 7228 21 48ans = 4 25 3649 1 259 1 25ans = 0.4211 0.3684 -0.47370.2105 0.1842 -0.23680.6316 0.5526 -0.7105ans = 1.0000 0.4000 0.33330.1429 1.0000 0.20001.0000 3.0000 0.60005.用MATLAB 求方程组⎪⎩⎪⎨⎧=+=+-=-10421554832z x z y x y x 的解,将命令和运行结果写入实验报告。
实验二常量、变量和数组
实验二常量、变量和数组(一)实验目的要求1. 掌握常量的类型及表示方式。
2. 掌握变量的定义、赋值和显示。
3. 掌握定义、赋值与引用数组的方法。
(二)实验内容1. 在命令窗口中用STORE命令为变量赋值。
2. 用“=”命令为变量赋值。
3. 用“?”命令显示变量的值。
4. 练习各种常量的表示方法及其输入输出方法。
5.练习内存变量赋值、显示、保存、清除和恢复。
6.练习对数组定义、赋值与引用。
(三)实验指导实验2-1 练习常用的6种类型常量。
(1)在命令窗口中分别输入以下命令:(每行命令结束按回车键) NAM=”李平”SEX=”女”OLD=26DEPT=”计算机系”DATE1={^1976/09/21}(2)在命令窗口分别输入以下语句会输出相应结果:(每行命令结束按回车键)60-OLD”学生”+NAM+”“+DEPTDATE()-DATE1DATE1<={^1980/12/31}OLD>20 AND SEX<>”女”实验2-2在命令窗口中用STORE命令为变量赋A、B、C赋相同的值,用“=”命令为变量E、F、G、H分别赋值”李平”、”女”、20和当前日期,用“?”命令显示上述变量的值。
操作步骤如下:(1)在命令窗口中用STORE命令为变量A、B、C赋相同的值。
(命令结束按回车键)命令如下:STORE 10 TO A,B,C 各内存变量须用逗号分隔。
(2)用“=”命令为变量E、F、G、H分别赋值“李平”、“女”、20和当前日期。
(每行命令结束按回车键)E=”李平”F=”女”G=20H=DATE()(3) 用“?”命令显示上述变量的值。
(命令结束按回车键)A,B,C,E,F,G,H实验2-3 练习内存变量的赋值、显示、保存、清除和恢复。
(1) 在命令窗口依次输入如下语句,并显示结果。
(每行命令结束按回车键) XM="吴大海"XB="男"AGE=34HF=.T.ZYH="05004005"STORE {^2005-12-15} TO RYRQ,CYRQZYKS="外科"ZYFY=6856.50CYRQ={^2005-12-28}"患者姓名:",XM,”性别:”,XB,”年龄:”,AGE,"婚否:",HF"住院号:",ZYH," 入院日期:",RYRQ," 住院科室:",ZYKS"出院日期:",CYRQ,"住院费用:",ZYFY(2) 练习对内存变量的保存、清除和恢复的方法。
VB课程设计之数组2实验报告
实验报告实验目的:(1)掌握静态数组和动态数组定义及使用(2)掌握数组元素的引用,数组的输入和输出(3)掌握“控件数组”的使用实验内容:(1)在名称为form1的窗体上有一个名称为shape1的形状控件画一个名称为L1的列表框,并在属性窗口中设置列表项的值为1,2,3,4,5,将窗体的标题设为“图形控件”。
单击列表框中的某一项,则按照所选的值该表形状控件的形状。
例如,选择3,则形状控件被设为圆形,如下图所示。
要求:窗体文件保存为sy7-1.frm,工程文件保存为sy7-1.vbp.程序代码:Private Sub L1_Click()Shape1.Shape = L1.TextEnd Sub(2)界面如上图所示,窗体上所有对象的名称属性都使用默认值。
单击命令按钮时候计算出最后得分。
计算方法是去掉一个最高得分和一个最低得分,求剩下得分的平均值再乘以难度系数,最后结果保留到小数点后面两位。
要求窗体文件保存为sy7-2.frm,工程文件保存为sy7-2.vbp程序代码:Option Base 1Private Sub Command1_Click()Dim a As Varianta = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text),Val(Text5.Text), Val(Text6.Text))Max = a(1)Min = a(1)For i = 2 To 6If Max < a(i) Then Max = a(i)If Min > a(i) Then Min = a(i)Next iFor i = 1 To 6Sum = a(i) + SumNext iText8.Text = Int((Sum - Max - Min) / 4 * Text7.Text * 100) / 100End Sub(3)名称为form1的窗体上有一个命令按钮,单击命令按钮,利用随机函数生成一个6行6列的整型数组(取值范围【10,90】)。
数组应用实验报告
数组应用实验报告
《数组应用实验报告》
在计算机科学领域,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,方便进行管理和操作。
在本次实验中,我们将探讨数组的应用,并通过实验报告来展示其在不同场景下的使用情况。
实验一:数组的创建和初始化
在本实验中,我们首先学习了如何创建和初始化数组。
通过编写简单的代码,我们成功创建了一个包含整数类型的数组,并对其进行了初始化。
我们发现,数组的索引是从0开始的,这意味着我们可以通过索引来访问数组中的元素。
实验二:数组的遍历和操作
接下来,我们学习了如何遍历数组并对其进行操作。
我们使用循环结构来遍历数组中的每个元素,并进行相应的操作。
我们发现,使用数组可以方便地对一组数据进行统一的处理,比如求和、平均值等操作。
实验三:多维数组的应用
在这个实验中,我们学习了多维数组的应用。
通过创建二维数组,我们可以模拟二维空间中的数据结构,比如矩阵、图像等。
我们发现,多维数组可以方便地表示复杂的数据结构,并且可以通过多重循环来对其进行遍历和操作。
实验四:数组的应用案例
最后,我们通过实际案例来展示数组的应用。
我们使用数组来实现一个简单的学生成绩管理系统,通过输入学生的成绩,然后计算平均分、最高分、最低分等统计数据。
我们发现,数组的使用大大简化了数据的管理和操作,提高了程序的效率和可维护性。
综上所述,本次实验通过实验报告展示了数组在不同场景下的应用情况。
通过学习和实践,我们深刻理解了数组的重要性和灵活性,相信在今后的编程工作中,我们将能够更加熟练地运用数组来解决实际问题。
实验报告(二) 数组 (完整代码)
福建农林大学计算机与信息学院实验报告实验(二)数组一、实验目的和要求1.掌握数组的定义、初始化与使用2.掌握Java文档注释及文档生成方法二、实验内容和原理设计一个矩阵类Matrix,分别设计一个静态方法求一维和二维数组的最大元素,分别设计一个静态方法求一维和二维数组的平均值,分别设计静态方法求2个二维数组相加、相乘。
public static int max(int[]);public static int max(int[][]);public static int average(int[]);public static int average(int[][]);public static int[][] add(int[][], int[][]);public static int[][] multiply(int[][], int[][]);三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以用流程图、伪代码或源程序描述)import java.util.Scanner;public class Matrix {public static void main(String[] args) {Scanner input = new Scanner(System.in);int c = 0;int d = 0;int e = 0;System.out.println("输入一维数组的长度:");c = input.nextInt();int a[] = new int[c];System.out.println("输入一个一维数组:");for (int i = 0; i < c; i++) {a[i] = input.nextInt();}System.out.println("分别输入一维数组的行和列:");d = input.nextInt();e = input.nextInt();int b[][] = new int[d][e];System.out.println("请输入一个二维数组:");for (int i = 0; i < d; i++) {for (int j = 0; j < e; j++) {b[i][j] = input.nextInt();}}System.out.println("请输入另一个二维数组:");int[][] f = new int[d][e];for (int i = 0; i < d; i++) {for (int j = 0; j < e; j++) {f[i][j] = input.nextInt();}}int[][] m;System.out.println("一维数组的最大元素为:" + max(a, c)); System.out.println("二维数组的最大元素为:" + max(b, d, e)); System.out.println("一维数组的平均值为:" + average(a, c)); System.out.println("二维数组的平均值为:" + average(b, d, e)); System.out.println("两个二维数组的和为:");m = add(b, f, d, e);for (int i = 0; i < d; i++) {for (int j = 0; j < e; j++) {System.out.print(m[i][j] + " ");}System.out.println();}System.out.println("两个二维数组的积为");m = multiply(b, f, d, e);for (int i = 0; i < d; i++) {for (int j = 0; j < e; j++) {System.out.print(m[i][j] + " ");}System.out.println();}}public static int max(int[] a, int c) {int max = 0;for (int i = 0; i < c; i++) {if (max < a[i]) {max = a[i];}}return max;}public static int max(int[][] b, int d, int e) { int max = 0;for (int i = 0; i < d; i++) {for (int j = 0; j < e; j++) {if (max < b[i][j]) {max = b[i][j];}}}return max;}public static int average(int[] a, int c) {int sum = 0;for (int i = 0; i < c; i++) {sum += a[i];}int ave;return (ave = sum / c);}public static int average(int[][] b, int d, int e) {int sum = 0;for (int i = 0; i < d; i++) {for (int j = 0; j < e; j++) {sum += b[i][j];}}return (sum / (e * d));}public static int[][] add(int[][] a, int[][] b, int d, int e) { int[][] c = new int[d][e];for (int i = 0; i < d; i++) {for (int j = 0; j < e; j++) {c[i][j] = a[i][j] + b[i][j];}}return c;}public static int[][] multiply(int[][] a, int[][] b, int d, int e) { int[][] c = new int[d][e];for (int i = 0; i < d; i++) {for (int j = 0; j < e; j++) {for (int k = 0; k < e; k++) {c[i][j] += a[i][k] * b[k][j];}}}return c;}}2.实验步骤●输入源代码●进行编译●进行测试,使用的测试用例:输入:预期输出:…五、调试过程1.编译过程记录算法实现中发现的语法错误及改正2.调试过程记录算法实现中发现的逻辑错误及改正,对每个测试用例,记录实际输出,并与预期输出进行比较,如果不同,分析产生错误的原因并改正。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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]。