Требования к выполнению курсовой работы по инф
.doc
Приложение 5. Исходный текст программы.
5.1. Содержание файла Z.cpp.
// z.cpp: определяет точку входа для консольного приложения.
/*Программа сортировки строк прямоугольной целочисленной матрицы по возрастанию сумм их элементов с использованием динамической памяти.
...Описание алгоритма...Конец */
#include "stdafx.h"
#include <stdio.h> // Описания функций ввода-вывода
#include <conio.h>
#include <stdlib.h> // Описания функций malloc и free
#include <time.h>
int _tmain(int argc, _TCHAR* argv[])
{time_t t; time(&t);
FILE *f_in, *f_out;
unsigned rows, cols, i, j;
f_in=fopen ("z9_in.txt","r");
f_out=fopen ("z9_out.txt","w");
fprintf(f_out," %s", ctime(&t));
fscanf(f_in,"%i%i",&rows, &cols); //чтение строк, колонок
fprintf(f_out,"rows%i cols %i\n",rows,cols); //печать строк, колонок
unsigned **pm=new unsigned * [rows]; //динамическая память строк
for(i=0;i<rows; i++) //динамическая память колонок
pm[i]=new unsigned [cols];
for(i=0;i<rows; i++) //чтение pmx
for(j=0;j<cols; j++)
fscanf(f_in,"%i",&pm[i][j]);
fprintf(f_out,"m[][]\n");
for(i=0;i<rows; i++) //вывод pmx
{
for(j=0;j<cols; j++)
fprintf(f_out,"%4d", pm[i][j]); //--------------
fprintf(f_out,"\n"); //--------------
}
long *sum=new long [rows]; //динамическая память sum[rows]
for(i=0;i<rows; i++) //calc sum
{
sum[i]=0;
for(j=0;j<cols; j++)
sum[i]+=pm[i][j];
}
for(i=0;i<rows; i++) //печать sum
{
fprintf(f_out,"resuit sum=%4d\n",sum[i]);
for(j=0;j<cols; j++)
fprintf(f_out,"%4d", pm[i][j]);
fprintf(f_out,"\n");
}
long temp_s;
int nmin, temp_pm; //сортировка матрицы
for(i=0;i<rows; i++)
{
nmin=i;
for(j=i+1;j<rows; j++)
if(sum[j]<sum[nmin])nmin=j;
temp_s=sum[i];
sum[i]=sum[nmin];
sum[nmin]=temp_s;
for(j=0;j<cols; j++)
{
temp_pm=pm[i][j];
pm[i][j]=pm[nmin][j];
pm[nmin][j]=temp_pm;
}
}
fprintf(f_out,"out resuit \n");
for(i=0;i<rows; i++) //вывод pmx
{
for(j=0;j<cols; j++)
fprintf(f_out,"%4d", pm[i][j]); //--------------
fprintf(f_out,"\n"); //--------------
}
fclose(f_in);
fclose(f_out);
time(NULL);
for(i=0;i<rows; i++)
delete []pm[i];
delete []pm;
delete sum;
return 0;
}
5.2. Содержание файла z_in.txt.
2 8
44 55 12 42 94 18 06 67
54 12 42 94 18 06 67 44
5.3. Содержание файла z_out.txt.
Tue Mar 29 11:52:24 2012
rows2 cols 8
m[][]
44 55 12 42 94 18 6 67
54 12 42 94 18 6 67 44
resuit sum= 338
44 55 12 42 94 18 6 67
resuit sum= 337
54 12 42 94 18 6 67 44
out resuit
54 12 42 94 18 6 67 44
44 55 12 42 94 18 6 67