武汉大学遥感院复试上机练习(节选)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
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;
}