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

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

ФЭСТ ВТ-11

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

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

Тема: “Линейная алгебра”

Выполнил: студент Шишкин Д.В.

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

Москва 2011.

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

Осуществить циклический сдвиг элементов квадратной матрицы размером МхN вправо на К элементов таким образом: элементы первой строки сдвигаются в последний столбец снизу вверх, из него – в последнюю строку справа налево, из неё – в первый столбец снизу вверх, из него - в первую строку; для остальных элементов аналогично.

2. a) Входные данные:m,n,k,а[i][j].

б) Выходные данные: a[i][j].

в) Рабочие данные:

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); } 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; }

Соседние файлы в папке Шишкин