Автор: Пользователь скрыл имя, 17 Ноября 2011 в 00:38, курсовая работа
Задание 1.
Осуществить циклический сдвиг элементов квадратной матрицы размерности mxm на n элементов вправо. n может быть больше m (сформировать статический массив, определить значения его элементов и выполнить задачу).
Задание 2.
Дана целочисленная прямоугольная матрица размерности n на m. Упорядочить её строки по возрастанию количества одинаковых элементов в каждой строке, а также найти номер первого из столбцов, не содержащих ни одного отрицательного элемента (решить задачу, используя динамическое выделение памяти и обработку массива с применением указателей).
Постановка задачи ………………………………………. 3
Алгоритм программы …………………………………… 4
Функции программы ……………………………………. 9
Реализация программ ………………………………….. 10
Листинги программ …………………………………….. 12
Список используемой литературы ……………………. 16
cin>>m;//Ввод количества столбцов
int **matr=new int *[n];//Инициализация и выделение памяти под строки массива указателей
int i,j;
for (i=0;i<n;i++)
matr[i]=new int [m];//Выделение памяти под элементы массива
cout<<"\t\t\tMASSIV-
for (i=0;i<n;i++)//Просмотр строк массива
for (j=0;j<m;j++)//Просмотр столбцов массива
{
*(*(matr+i)+
if (j==m-1)
cout<<
else
cout<<
}
int **temp=new int *[n];//Инициализация и выделение памяти под строки массива указателей
for (i=0;i<n;i++)//Просмотр строк
temp[i]=new int [m];
int k,sum,work;
for (i=0;i<n;i++)
for (j=0;j<m;j++)//Просмотр столбцов
{
sum=0;//
work=*(*(
for (k=0;k<m;k++)
{
if (*(*(matr+i)+k)==work)
if (k==m-1)
}
}
//Формирование массива tempstr
int *tempstr=new int [n];//Массив,каждый tempstr[i]-тый элемент которого соответствует максимальному элементу массива temp[i][j] в каждой i-той строке
for (i=0;i<n;i++)//Просмотр строк
{
work=*(*(temp+i)+
for (j=0;j<m;j++)//Просмотр столбцов
{
if (*(*(temp+i)+j)>work)
work=*
if (j==m-1)
*(
}
}
int min;
for (i=0;i<n;i++)
{
min=*(tempstr+i);
work=i;
for (k=i;k<n;k++)
{
if (*(tempstr+k)<min)
{
min=*(
work=
}
}
for(j=0;j<m;j++)
{
sum=*(*(
*(*(matr+i)+
*(*(matr+
}
sum=*(tempstr+i);
*(tempstr+i)=*(
*(tempstr+work)=
}
cout<<"\t\t\tNEW MASSIV-MATRIX"<<endl;
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
if (j==m-1)
cout<<
else
cout<<
}
for (j=0;j<n;j++)
{
sum=*(*(matr+0)+j)
for (i=0;i<m;i++)
{
if (*(*(matr+i)+j)<0)
sum=*(
if (i==n-1)
{
if (sum>=0)
{
}
}
}
}
for (i=0;i<n;i++)
delete temp[i];
delete temp;
delete tempstr;
}
6 Список используемой литературы
1) Конспект лекций;
2) Культин Н. Б. «С/С++ в задачах и примерах.» – СПб.:БХВ-Петербург, 2008. – 228 с.:ил.;
3) Б. Страуструп «Введение в язык С++»;
4) В. В.
Подбельский «Язык С++».