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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

#include

#include

usingnamespace std;

int main()

{

int num;

ifstream filein("C:\\Users\\yw\\Desktop\\机试复习\\2004test\\test.txt");

if (!filein)

{ cout <<"cannot open the file!";

return 0; }

filein >> num;

int *data = newint[num];

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

{ filein >> data[i]; }

filein.close();

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; }

elsecontinue;

}//冒泡法排序

ofstream fileout("C:\\Users\\yw\\Desktop\\机试复习\\2004test\\test2.txt");

if (!fileout)

{ cout <<"cannot open the file!";

return 0; }

fileout <<"max:"<< data[num-1] << endl;

fileout <<"min:"<< data[0] << endl;

fileout <<"medium:"<< data[num/2] << endl;

fileout.close();

delete[]data,data=NULL;

return 1;

}

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

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----010151010⎥⎥⎥⎥⎥⎥⎦⎤

⎢⎢⎢⎢⎢⎢

⎣⎡------------00100

012101216210121000

10

0 ⎥⎥⎥

⎤⎢⎢⎢⎢⎡n n a a a a a a 2222111211⎥

⎥⎥⎤⎢⎢⎢⎢⎡k k b b b b b b

22221

11211jj

ii l ii k

jj jj k j ii l i ij b a

c ,11

2

,2⋅=∑∑==+-+-#include

#include usingnamespace std;

int main() {

int *data = newint [10000];

ifstream filein("C:\\Users\\yw\\Desktop\\机试复习\\2005test\\SourceData.txt"); if (!filein) { cout <<"cannot open the file!"; return 0;

}

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

{

filein >> data[i]; }

filein.close();

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 };

卷积矩阵1

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 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 = 2; i < 99; i++)

for (int j = 2; j < 99; j++)

{ 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]; } }

ofstream fileout("C:\\Users\\yw\\Desktop\\机试复习\\2005test\\test2.txt");

if (!fileout)

{ cout <<"cannot open the file!";

return 0; }

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

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

{ fileout << MatrixNew1[i][j] <<""; }

fileout << endl;

}

fileout.close();

delete[]data,data=NULL;

return 1;

}

相关文档
最新文档