武汉大学遥感院复试上机练习(节选)

发布时间 : 星期一 文章武汉大学遥感院复试上机练习(节选)更新完毕开始阅读

精品文档

现有一数组,其元素值见文件test.txt,要求通过编程的方法求出这组数中值最大的元素、值最小的元素和中值元素。结果通过编程的方法写入文本文件中输出。

#include #include using namespace std; int main() { }

delete[]data,data=NULL; return 1;

ofstream fileout(\机试复习\\\\2004test\\\\test2.txt\); if (!fileout) {

cout << \; return 0;

}

int swap;

for (int i = 0; i < num-1;i++) for (int j = i + 1; j < num; j++) {

if (data[i]>data[j]) {

swap = data[i]; data[i] = data[j]; data[j] = swap; }

int num;

ifstream filein(\机试复习\\\\2004test\\\\test.txt\); if (!filein) {

cout << \; return 0;

}

filein >> num;

int *data = new int[num]; for (int i = 0; i < num; i++) {

filein >> data[i];

}

filein.close();

else continue;

}//冒泡法排序

fileout << \ << data[num-1] << endl; fileout << \ << data[0] << endl; fileout << \ << data[num/2] << endl; fileout.close();

.

精品文档

编写调试程序从磁盘的数据文件“SourceData.txt”中读入10000个数据,先理解为125×80的矩阵,使用卷积矩阵1进行卷积,再理解为100×100的矩阵,使用卷积矩阵2进行卷积。

0?100??0?0?1?2?10??0?10?????15?1? ??1?216?2?1?

???a1n??b11b12?b1k????a11a12??0?100?1?2?10?????b?a?l?kb?ba?a21222kn22221?????00?1c00???ai?l?ii,j?k?jj?bii,jjij???????????????ii?1jj?122卷积矩阵1 ??blk? ?am1am2?amn??bl1bl2?卷积矩阵2

例:由卷积模板B (3×3)对A矩阵(5×6)进行卷积得到结果矩阵Ca11 a12 a13 a14 a15 a16 a21 a22 a23 a24 a25 a26 a31 a32 a33 a34 a35 a36 a41 a42 a43 a44 a45 a46 a51 a52 a53 a54 a55 a56 b11 b12 b13 b21 b22 b23 b31 b32 b33 B A C中的元素c33为: c33?a22?b11?a23?b12?a24?b13?a32?b21?a33?b22?a34?b23?a42?b31?a43?b32?a44?b33 #include #include using namespace std;

int main() {

int Mat1[3][3] = { 0, -1, 0, -1, 5, -1, 0, -1, 0 };

int Mat2[5][5] = { 0, 0, -1, 0, 0, 0, -1, -2, -1, 0, -1, -2, 16, -2, -1,

0, -1, -2, -1, 0, 0, 0, -1, 0, 0 };

int *data = new int[10000];

ifstream filein(\机试复习\\\\2005test\\\\SourceData.txt\); if (!filein) { {

cout << \; return 0;

}

}

for (int i = 0; i < 10000; i++)

filein >> data[i]; filein.close();

.

精品文档

}

int Matrix1[125][80], MatrixNew1[125][80] = { 0 }; int Matrix2[100][100], MatrixNew2[100][100] = { 0 }; int k = 0;

for (int i = 0; i < 125; i++) for (int j = 0; j < 80; j++) {

Matrix1[i][j] = data[k]; k++;

}

k = 0;

for (int i = 0; i < 100; i++) for (int j = 0; j < 100; j++) {

Matrix2[i][j] = data[k]; k++;

}

for (int i = 1; i < 124; i++) for (int j = 1; j < 79; j++) { }

for (int i = 2; i < 99; i++) for (int j = 2; j < 99; j++) { }

ofstream fileout(\机试复习\\\\2005test\\\\test2.txt\); if (!fileout) { { }

fileout.close(); delete[]data,data=NULL; return 1;

cout << \; return 0;

}

for (int m = -2; m <= 2; m++) for (int n = -2; n <= 2; n++) {

MatrixNew2[i][j] += Matrix2[i + m][j + n] * Mat2[m + 2][n + 2];

}

for (int m = -1; m <= 1; m++) for (int n = -1; n <= 1; n++) {

MatrixNew1[i][j] += Matrix1[i + m][j + n] * Mat1[m + 1][n + 1];

}

for (int i = 1; i < 124; i++)

for (int j = 1; j < 79; j++) {

fileout << MatrixNew1[i][j] <<\; } fileout << endl;

.

精品文档

(1)利用随机函数rand()生成(0,1)区间的100个均匀分布随机数;

提示:首先利用“srand((unsigned)time(NULL)) ”语句设置产生随机数的开始点(需要包含time.h头文件);产生随机数的函数为rand(),为了将该随机数转换为(0,1)范围内的数,利用“rand()*1.0/RAND_MAX”可实现此目的。

(2)利用正态分布随机数的产生函数生成正态分布随机数。正态分布随机数生成函数如下:

y??2lnxcos2?x*0.3+1

(3)计算出100个正态分布随机数y的均值和方差,计算公式如下:

nnn

x??xi/n , ?2?(x2i/n)-(i?1??xi/n)2

i?1i?1其中,自变量x即为100个均匀分布的随机数。

#include #include #include #include #define PI 3.1415926 using namespace std; int main() { double*data = new double[100]; srand((unsigned)time(NULL)); for (int i = 0; i < 100; i++) {

data[i] = rand()*1.0 / RAND_MAX;

}

double*data2 = new double[100]; for (int i = 0; i < 100; i++) {

data2[i] = 1 + 0.3*cos(2 * PI*data[i])*sqrt(-2 * log(data[i]));

double average = 0, variance = 0; for (int i = 0; i < 100; i++) { average += data[i];

variance += data[i] * data[i];

}

average /= 100;

variance = variance/100 - average*average; //输出略

delete[]data, data = NULL; delete[]data2, data2 = NULL; return 1;

}

.

}

联系合同范文客服:xxxxx#qq.com(#替换为@)