实验 3 方法和数组
c语言数组实验总结

c语言数组实验总结本次实验主要是关于C语言数组的内容,通过阅读相关教材和进行实践编程来学习和理解C语言中数组的使用方法和特点。
下面将对本次实验的整体过程和收获进行总结。
首先,在进行实验前,我先对C语言数组的相关概念和特点进行了学习和了解。
数组是指将具有相同类型的一组元素按一定顺序排列起来的集合,具有连续的存储空间。
在C语言中,数组的声明和使用主要有以下几个要点:数组的声明需要指定数组的数据类型和数组的名称;数组的元素可以通过下标来进行访问,下标是从0开始的;在数组的声明中可以指定数组的长度,也可以省略长度,由编译器自动计算。
在实验过程中,我按照实验指导书的要求完成了几个实例。
首先,我实现了一个简单的一维数组的求和程序。
这个程序要求用户输入一组数据,然后对这些数据进行求和,并输出结果。
通过编写这个程序,我熟悉了数组的基本声明和使用方法,了解了如何使用循环结构遍历数组中的元素,并且体会到了数组的便捷性和高效性。
然后,我又进行了一个二维数组的转置程序的实现。
这个程序要求用户输入一个3x3的矩阵,然后将这个矩阵进行转置,并输出转置后的结果。
通过编写这个程序,我进一步巩固了对数组的理解和使用,了解了二维数组的声明和使用方法,掌握了如何使用双重循环进行二维数组的遍历和操作。
接着,我尝试了一个动态分配内存的实例。
这个实例通过用户输入一个正整数n,然后动态地分配一个大小为n的一维数组,并为数组的每个元素赋值为其下标的平方。
通过编写这个程序,我了解到了动态分配内存的方法和步骤,掌握了使用malloc函数进行内存分配和free函数进行内存释放的操作,进一步提升了代码的灵活性和可扩展性。
在整个实验过程中,我遇到了一些问题,并且通过查阅资料和与同学讨论,得到了解决。
其中一个问题是关于数组长度的计算。
在程序中可以通过sizeof运算符来计算数组的长度,但是需要注意的是,数组作为函数参数传递时,其大小会变成指针类型的大小,而不是实际元素的个数。
C语言实验五实验报告——数组

C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。
通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。
数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。
数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。
可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。
数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。
二维数组数组可分为一维和多维数组。
一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。
二维数组有行号和列号,因此,它同样需要两个下标。
数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。
三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。
程序执行正常。
3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。
实验三 刚体转动惯量的测定

实验三刚体转动惯量的测定转动惯量是刚体转动中惯性大小的量度。
它与刚体的质量、形状大小和转轴的位置有关。
形状简单的刚体,可以通过数学计算求得其绕定轴的转动惯量;而形状复杂的刚体的转动惯量,则大都采用实验方法测定。
下面介绍一种用刚体转动实验仪测定刚体的转动惯量的方法。
实验目的:1. 理解并掌握根据转动定律测转动惯量的方法;2. 熟悉电子毫秒计的使用。
实验仪器:刚体转动惯量实验仪、通用电脑式毫秒计。
仪器描述:刚体转动惯量实验仪如图一,转动体系由十字型承物台、绕线塔轮、遮光细棒等(含小滑轮)组成。
遮光棒随体系转动,依次通过光电门,每π弧度(半圈)遮光电门一次的光以计数、计时。
塔轮上有五个不同半径(r)的绕线轮。
砝码钩上可以放置不同数量的砝码,以获得不同的外力矩。
图一刚体转动惯量实验仪图二承物台俯视图实验原理:空实验台(仅有承物台)对于中垂轴OO’的转动惯量用J o表示,加上试样(被测物体)后的总转动惯量用J表示,则试样的转动惯量J1:J1= J –J o (1) 由刚体的转动定律可知:T r – M r= J (2) 其中M r为摩擦力矩。
而 T = m(g -r α) (3) 其中 m —— 砝码质量g —— 重力加速度 α —— 角加速度 T —— 张力1. 测量承物台的转动惯量J o未加试件,未加外力(m =0 , T =0)令其转动后,在M r 的作用下,体系将作匀减速转动,α=α1,有-M r1 = J o α1(4) 加外力后,令α =α2m(g –r α2)r –M r1 = J o α2(5)(4)(5)式联立得J o =212212mr mgrααααα---(6)测出α1 , α2,由(6)式即可得J o 。
2. 测量承物台放上试样后的总转动惯量J ,原理与1.相似。
加试样后,有-M r2=J α3 (7) m(g –r α4)r –Mr 2= J α4 (8)∴ J =234434mr mgrααααα---(9)注意:α1 , α3值实为负,因此(6)、(9)式中的分母实为相加。
java 数组实验报告

java 数组实验报告Java 数组实验报告引言:在计算机科学领域中,数组是一种非常重要的数据结构。
它是一组相同类型的元素的集合,可以按照索引值来访问和操作其中的元素。
在本实验中,我们将探索 Java 中数组的特性和用法,并通过实际的代码示例来加深对数组的理解。
一、数组的定义和初始化在 Java 中,可以使用以下方式来定义和初始化一个数组:1. 声明数组变量并分配内存空间:int[] numbers = new int[5];这行代码声明了一个名为 numbers 的整型数组,它可以存储 5 个整数。
在内存中,会为这个数组分配连续的 5 个整型空间。
2. 直接初始化数组元素:int[] numbers = {1, 2, 3, 4, 5};这行代码声明了一个名为numbers 的整型数组,并直接初始化了数组的元素。
3. 动态初始化数组元素:int[] numbers = new int[5];numbers[0] = 1;numbers[1] = 2;numbers[2] = 3;numbers[3] = 4;numbers[4] = 5;这段代码先声明了一个名为 numbers 的整型数组,并为其分配了 5 个整型空间。
然后,通过索引值将具体的数值赋给数组的元素。
二、数组的访问和操作1. 访问数组元素:数组的元素可以通过索引值来访问,索引值从 0 开始,最大值为数组长度减一。
int firstNumber = numbers[0];这行代码将数组 numbers 的第一个元素赋值给整型变量 firstNumber。
2. 修改数组元素:数组的元素可以通过索引值进行修改。
numbers[0] = 10;这行代码将数组 numbers 的第一个元素修改为 10。
3. 数组的长度:数组的长度可以通过数组的 length 属性来获取。
int length = numbers.length;这行代码将数组 numbers 的长度赋值给整型变量 length。
实验三 高斯消去法和三角分解法1

实验报告实验三 高斯消去法与矩阵的三角分解一、实验目的1、掌握列主元素消去法,并且能够用MATLAB 编写相关程序,实现高斯消去法的求解。
2、能够用矩阵理论理解与研究高斯消去法,通过对矩阵的初等变换实现高斯消去法。
3、学会矩阵的三角分解,并且能够用MATLAB 编写相关程序,实现矩阵的三角分解,解方程组。
二、上机内容⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡2822171310871234567112345611123451111234111112311111121111111764321x x x x x x1、用列主元素高斯消去法求解方程组。
2、用列主元消去法求解方程组(实现PA=LU) 要求输出: (1)计算解X;(2)L,U;(3)正整型数组IP(i),(i=1,···,n) (记录主行信息)。
三、实验原理1、列主元素消去法用高斯消去法求解方程组时,为了减小误差,在消去的过程中要避免用绝对值较小的主元素。
因此在高斯消去法的每一步应该在系数矩阵货消去后的低阶矩阵中选取绝对值较大的元素作为主元素,保持|m ik |<=1,以减小计算过程中的舍入误差对计算解的影响。
此方法为完全主元素消去法。
完全主元素消去法在选主元素时花费一定的计算机时间,因此实际计算中常用列主元消去法。
列主元消去法在每次选主元时,仅依次按列选取绝对值最大的元素作为主元素,且仅交换两行,再进行消元计算。
装订 线第k步计算如下:对于k=1,2,…,n-1(1)按列选主元:即确定t使(2)如果t≠k,则交换[A,b]第t行与第k行元素。
(3)消元计算(4)回代求解计算流程图回代求解 b=b/a (当a nn ≠0)b ←(b -∑a x )/adet=a nn *det输出计算解及行列式及detk=1,2,…,n-1输入n ,A,b,εdet=1按列主元|a i(k),k |=max|a ik |C 0=a i(k),k换行 a ik a i(k)j(j=k,…n ) b k b j(k), 消元计算 (i=k+1,…,n ) a ik=a ik -a kk *m ik a ij=a ij -a kj *m ik (j=k+1,…,n )|C 0|<εi k =kdet=a kk det否否是是k<=n-1输出det(A)=0停机停机2. 矩阵的三角分解法 (1)定理设 n n R A ⨯∈ 。
数组的应用实验原理

数组的应用实验原理1. 实验目的本实验旨在掌握数组的概念、特性和应用,并通过实际案例加深对数组的理解。
2. 实验原理数组是一种用来存储相同类型的数据元素的数据结构。
它可以在内存中连续的存储多个元素,并通过索引值来访问和操作这些元素。
在实际应用中,数组常被用来存储一组相同类型的数据,例如整数、浮点数、字符等。
3. 实验步骤1.声明数组:首先需要声明一个数组,并指定数组的类型和名称。
例如,int[] numbers;表示声明一个整数类型的数组变量名为numbers。
2.创建数组:使用new关键字来创建数组。
例如,numbers = newint[5];表示创建了一个包含5个整数的数组。
3.初始化数组:可以在数组创建后对其中的元素进行初始化,也可以在声明数组时直接进行初始化。
例如,int[] numbers = {1, 2, 3, 4, 5};表示创建并初始化一个包含5个整数的数组。
4.访问数组元素:使用索引值来访问数组中的元素。
索引值从0开始,到数组长度减一。
例如,int x = numbers[2];表示将数组numbers中索引为2的元素赋值给变量x。
5.修改数组元素:通过索引值可以修改数组中的元素。
例如,numbers[0] = 10;表示将数组numbers中索引为0的元素修改为10。
6.遍历数组:使用循环结构可以遍历数组中的所有元素。
通过循环动态改变索引值,从而逐个访问数组中的元素。
例如,使用for循环来遍历数组:for (int i = 0; i < numbers.length; i++) {System.out.println(numbers[i]);}4. 实验案例下面通过一个简单的案例来说明数组的应用原理。
4.1 案例描述某班级有10名学生,需要统计每个学生的成绩,并计算平均分。
4.2 案例解决思路1.声明一个整数类型的数组scores用于存储学生成绩。
2.创建长度为10的数组:scores = new int[10];3.使用循环结构输入每个学生的成绩,并将其存储到数组中。
C语言程序设计实验指导含答案

C语言程序设计实验指导含答案实验一:C语言程序设计基础实验内容:本实验主要以C语言的基础语法为主,通过一些简单的示例和练习来帮助学生熟悉C语言的基本概念和语法规则。
实验步骤:1. 编写一个简单的C程序,输出"Hello, World!"。
要求程序能够顺利编译并执行。
答案:#include <stdio.h>int main(){printf("Hello, World!");return 0;}2. 基于上一题的程序,修改代码,要求程序输入一个整数,并将其乘以2输出。
答案:#include <stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);printf("乘以2的结果为:%d", num * 2);return 0;}3. 编写一个C程序,输入一个圆的半径,计算并输出其面积和周长。
要求保留2位小数。
答案:#include <stdio.h>#define PI 3.14159int main(){float radius;printf("请输入圆的半径:");scanf("%f", &radius);float area = PI * radius * radius;float circumference = 2 * PI * radius;printf("圆的面积为:%.2f\n", area);printf("圆的周长为:%.2f\n", circumference);return 0;}实验二:循环和判断语句实验内容:本实验主要通过不同的练习来帮助学生熟悉和掌握C语言中的循环和判断语句的使用方法。
C语言实验报告《数组》

C语言实验报告《数组》《数组》实验报告实验目的:掌握C语言中数组的定义、初始化和使用方法,了解数组在程序中的作用和用途,熟悉数组的基本操作。
实验内容:1.数组的定义和初始化2.数组的基本操作-访问数组元素-修改数组元素-遍历数组-数组作为函数参数实验步骤:1.数组的定义和初始化定义一个整型数组,数组名为array,数组大小为10。
使用for循环将数组元素初始化为0。
2.数组的基本操作1) 访问数组元素:通过下标访问数组的元素,例如array[0]表示数组的第一个元素。
2)修改数组元素:通过下标将数组的元素修改为新的值。
3) 遍历数组:使用for循环遍历数组的每个元素,并输出其值。
4)数组作为函数参数:将数组作为函数的参数传递,并在函数内对数组进行操作。
实验结果:1.数组的定义和初始化:int array[10];for (int i = 0; i < 10; i++)array[i] = 0;}2.数组的基本操作:1)访问数组元素:int x = array[0]; // 访问第一个元素的值,即数组的第一个元素2)修改数组元素:array[0] = 1; // 将第一个元素的值修改为13)遍历数组:for (int i = 0; i < 10; i++)printf("%d ", array[i]); // 输出每个元素的值}4)数组作为函数参数:void printArray(int arr[], int len)for (int i = 0; i < len; i++)printf("%d ", arr[i]); // 输出数组的每个元素}}int maiint myArray[5] = {1, 2, 3, 4, 5};printArray(myArray, 5); // 将数组myArray作为参数传递给printArray函数return 0;}实验总结:通过本次实验,我们掌握了C语言中数组的定义和初始化方法,学会了访问数组元素、修改数组元素、遍历数组的操作,还了解了数组作为函数参数的使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
double[] list2 = {9,3,6,1,5,2,0,8};
System.out.print("\n进行冒泡排序函数调用进行排序:");
Sort.bubbleSort(list2);//对冒泡排序函数调用
for(inti = 0; i < list2.length; i++){
System.out.print(list2[i] +" ");
list[i] = list[i + 1];
list[i + 1] = m;
}
}
}
}
publicstaticvoidinsertionSort(double[] list) {
//插入排序函数,对数组进行从小到大的排序
for(inti = 0; i < list.length; i++) {
doublecurrentElement = list[i];
(4)掌握String类中split方法、charAt方法以及length方法的使用。
(5)掌握Double、Integer等数据包装类的parseDouble、parseInt等方法。
(6)掌握数组的length属性的应用
实验内容:(要求把源程序和运行结果图都粘贴到实验报告中)
(1)分别用一维数组(例子数组如下{ 7, 4, 3, 9, 0, 6 })实现冒泡排序、选择排序和插入排序中的两种排序算法,程序中要求加注释。
程序代码:
packagewenhui;
publicclassSort {
//排序方法
publicstaticvoidselectionSort(double[] list) {
//选择排序函数,对数组进行从小到大的排序
for(inti = 0; i < list.length- 1; i++) {
//在i——list.length - 1中找到最小值并放在i位置上
//主函数
double[] list = { 7, 4, 3, 9, 0, 6};
System.out.print("进行插入排序函数调用进行排序:");
Sort.insertionSort(list);//对插入排序函数调用
for(inti = 0; i < list.length; i++){
System.out.print(list[i] +" ");
for(inti = 0;i < array1.length;i++){
for(intj = 0;j < array2[0].length;j++){
array[i][j] = array1[i][j] + array2[i][j];
}
}
returnarray;
}
publicstaticint[][]matrixMultiplication(int[][] array1,int[][] array2){
//矩阵乘法运算
int[][] array =newint[array1.length][array2[0].length];
}
double[] list1 = {2,8,3,9,1,5,0};
System.out.print("\n进行选择排序函数调用进行排序:");
Sort.selectionSort(list1);//对选择排序函数调用
for(inti = 0; i < list1.length; i++){
System.out.print(list1[i] +" ");
}
}
}
运行结果贴图:
(2)编写程序实现两个矩阵的相加、相乘。
要求程序运行结果形如如下显示:
Array c
1 2 3
4 5 6
7 8 9
Array d
2 2 2
1 1 1
3 3 3
Array c+d
3 4 5
5 6 7
10 11 12
Array c*d
12 12 12
21 21 21
30 30 30
程序代码:
intk;
for(k = i - 1; k >= 0 && list[k] > currentElement; k--) {
list[k +1] = list[k];
}
list[k +1] = currentElement;
}
}
}
packagewenhui;
publicclassTest {
publicstaticvoidmain(String[] args) {
packagewenhui;
publicclassMatrix {
publicstaticint[][] matrixAdd(int[][] array1,int[][] array2){
//矩阵加法运算
int[][] array =newint[array1.length][array1[0].length];
list[m] = list[i];
list[i] = min;
}
}
}
publicstaticvoidbubbleSort(double[] list) {
//冒泡排序函数,对数组进行从小到大的排序
doublem = 0.0;
for(intj = 0;j < list.length-1;j++){
//每次将一个大的往后移动到位
for(inti = 0;i < list.length- 1 - j; i++){
//从i——list.length - 1 - j中找到最大的值并放在下标为list.length - 1 - j的位置上
if(list[i] > list[i + 1]){
//俩个数相比较大的往后移,小的往前移
m = list[i];
山西大学计算机与级
软件工程1班
课程名称
Java实验
实验日期
2013/11/6
成绩
指导教师
批改日期
实验名称
实验3方法和数组
实验目的:
(1)掌握一维数组和二维数组的定义、初始化方法。
(2)了解和初步应用ng.Math类的random()方法处理实际问题。
(3)了解增强for循环,并使用增强for循环顺序访问数组元素。
doublemin = list[i];
intm = i;
for(intj = i + 1; j < list.length; j++) {
if(min >= list[j]) {
//记录最小数的值和其下标值
min = list[j];
m = j;
}
}
if(m != i) {
//如果有小的数就进行交换