1.设计一个类(不妨叫做A),实现对一维数组的指定范围内的元素相加运算。
电脑上没有c++开发软件,用Java做这个实验咯。
import java.util.Scanner; public class A { public static void main(String[] args) { int[] aa = { -2574, -4010, 8243, 771, 2447, -5197, 2556, 8044, 3314, 3617, 6065, -2817, 3131, 6318, 2186, -113, 629, -2582, -37, -1520, 164, 2055, -5936, 5912, 1717, 5988, 4781, 5757, 892, -4394, 8034, 2213, -1080, -2080, 5364, 106, 2657, 566, 3940, -5116, 4583, 1806, 6555, 2621, -7197, 528, 1626, 18, 1049, 6243, 3198, 4397, -1325, 9087, 936, -6291, 662, -178, 135, -3473, -2385, -165, 1713, -7949, -4234, 1138, 2212, 104, 6968, -3632, 3801, 1137, -1296, -1215, 4272, 6223, -5922, -7723, 7044, -2938, -8180, 1356, 1159, -4022, -3713, 1158, -8715, -4081, -2541, -2555, -2284, 461, 940, 6604, -3631, 3802, -2037, -4354, -1213, 767 }; int sum = 0; Scanner a = new Scanner(System.in); System.out.println("开始数(<=100):"); int start = a.nextInt(); System.out.println("结束数(<=100):"); int end = a.nextInt(); System.out.println("开始数" + start + "结束数" + end + "和为:"); for (int i = start - 1; i < end; i++) // 第一个是aa[0] sum += aa[i]; System.out.println(aa[start - 1] + "+...+" + aa[end - 1] + "=" + sum); } }
数组长度:100,范围:实验数据A列:1~100。
2. 设计一个类(不妨叫做B ),实现对二维数组(a[N][M])的指定范围内的元素相加运算。 数组长度:(N*M 约等于200)A、B列:1~100;
import java.util.Scanner; public class B { public static void main(String[] args) { int[][] b = { { -2574, -4010, 8243, 771, 2447, -5197, 2556, 8044, 3314, 3617, 6065, -2817, 3131, 6318, 2186, -113, 629, -2582, -37, -1520, 164, 2055, -5936, 5912, 1717, 5988, 4781, 5757, 892, -4394, 8034, 2213, -1080, -2080, 5364, 106, 2657, 566, 3940, -5116, 4583, 1806, 6555, 2621, -7197, 528, 1626, 18, 1049, 6243, 3198, 4397, -1325, 9087, 936, -6291, 662, -178, 135, -3473, -2385, -165, 1713, -7949, -4234, 1138, 2212, 104, 6968, -3632, 3801, 1137, -1296, -1215, 4272, 6223, -5922, -7723, 7044, -2938, -8180, 1356, 1159, -4022, -3713, 1158, -8715, -4081, -2541, -2555, -2284, 461, 940, 6604, -3631, 3802, -2037, -4354, -1213, 767 }, { 2740, -4182, -5632, -2966, -1953, 567, -8570, 1046, 2211, 1572, -2503, -1899, 3183, -6187, 3330, 3492, -464, -2104, 316, 8136, 470, 50, 466, -1424, 5809, 2131, 6418, -3018, 6002, -8379, 1433, 1144, 2124, 1624, -602, -5518, 5872, 870, -5175, -3961, -427, -6284, 2850, 481, 6175, 141, -766, -1897, -748, -4248, 366, 4823, 3003, 1778, 3256, 2182, 2253, 5076, 5540, -2650, 2451, -1875, 5482, -6881, -329, -969, -8032, -2093, 612, 1524, -5492, 5758, -7401, -5039, 3241, 6338, 3581, 4321, -1072, 4942, 2131, 210, -7045, -7514, 7450, -1142, -2666, -4485, -639, 2121, -5298, -3805, -1686, -2520, -1680, 2321, -4617, -1961, 2076, 7309 } }; int sum=0; Scanner bb = new Scanner(System.in); System.out.println("开始列:"); int startI = bb.nextInt(); System.out.println("结束列:"); int endI = bb.nextInt(); System.out.println("开始行:"); int startJ = bb.nextInt(); System.out.println("结束行:"); int endJ = bb.nextInt(); System.out.println("开始列" + startI + "结束列" + startJ + "开始行" + endI + "结束行" + endJ + "和为:"); for (int i = startI - 1; i < endI; i++) { for (int j = startJ - 1; j < endJ ; j++) { sum += b[i][j]; } } System.out.println(b[startI - 1][startJ - 1] + "+...+" + b[endI - 1][endJ - 1] + "=" + sum); } }
3.实验心得
对于这个作业一开始我是很恐惧的,毫无头绪。一维数组和二维数组通过网络的查询,书籍的翻阅,还有和韩峰同学的讨论 才勉强写出这俩个程序,使用的是Java语言。我知道这个程序可以更加优化,但我凭我现在的能力很难,让我知道了学无止境。我使用的是Java中type【】arrayName的定义方法,这种方式对于我来说更容易理解点。对于数组也有了自己的小小的感觉,如同数学中的象限x,y。3维就是空间了咯?那我又多想了4维呢,5呢。。。。还是不太明白。还是学的不够多,得努力!!!