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

Московский Государственный Университет Леса

ФЭСТ ВТ-11

Лабораторная работа №5.

Программирование на языках высокого уровня

Тема:”Двумерные массивы”

Выполнил студент: Тумор С.В.

Проверил: Ларионов Н.В.

Москва 2011 г.

1. Условия задания:

Осуществить циклический сдвиг элементов квадратной матрицы вправо на

k элементов таким образом: элементы 1-й строки сдвигаются в последний столбец сверху вниз, из него − в последнюю строку справа налево, из нее − в первый столбец снизу вверх, из него − в первую строку; для остальных элементов сдвиг выполняется аналогичным образом..

2. Блок-схема программы:

3. Листинг программы:

#include <stdio.h>

#include <conio.h>

double GG ( double a[10][10], int p,int n,int m)

{

int i, j, k ;

double temp,temp2,temp3;

for(i=0; i < n/2; i++)

{

for(int z = p; z>0 ; z--) //кол-во сдвигов - к

{

for(j = i, temp = a[i][j]; j < n-1-i; j++)

{

temp2 = a[i][j+1];

a[i][j+1] = temp;

temp=temp2;

}

for(k = i+1; k < m-i; k++)

{

temp3=temp;

temp=a[k][j];

a[k][j]=temp3;

}

for( j--, k--; j >= i; j--)

{

temp3=temp;

temp=a[k][j];

a[k][j]=temp3;

}

for(j++, k--; k >= i; k--)

{

temp3=temp;

temp=a[k][j];

a[k][j]=temp3;

}}}

return a[10][10];

}

int main()

{

int p, n, m, i, j;

double a[10][10];

{

printf("Vvedite n,m \n");

scanf ("%d %d",&n,&m);

/*n=4;

m=4;*/

}

printf("Vvedite elementy matricy\n");

for(i=0;i<n;i++)

for(j=0;j<m;j++)

{

printf("a[%d][%d]=",i,j);

scanf("%lf",&a[i][j]);

}

for(i=0;i<n;i++)

{

for(j=0;j<m;j++)

{

printf("%2.lf", a[i][j]);

}

printf ("\n");

}

{printf("Vvedite k\n");

scanf ("%d",&p);

GG(a,p,n,m);

for(i=0;i<n;i++)

{

for(j=0;j<m;j++)

{

printf("%2.lf", a[i][j]);

}

printf ("\n");

}

getch();

}

return 0;

}

4. Тестовая задача:

Соседние файлы в папке Тумор