Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Требования к выполнению курсовой работы по инф

.doc
Скачиваний:
8
Добавлен:
16.03.2016
Размер:
214.02 Кб
Скачать

 

Приложение 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