
- •Создание программ с использованием циклов. Работа с массивами
- •Введение
- •Лабораторная работа №6. Оператор цикла с параметрами
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Лабораторная работа №7. Оператор цикла с предусловием
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Лабораторная работа №8. Одномерный массив
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Лабораторная работа №9. Двухмерный массив. Матрица.
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Int a[2][3]; /* представлено в виде матрицы
- •Int a[100][100]; // матрица
- •Библиографический список
Int a[100][100]; // матрица
Реализация программы в среде С Builder выглядит следующим образом:
#pragma hdrstop
// подключение модуля, в котором определены функции ввода и вывода
#include <stdio.h>
// подключение модуля, в котором определена функция randomize() и rand();
#include <stdlib.h>
#pragma argsused
// функция, с которой начинается выполнение программы
int main(int argc, char* argv[]) {
// объявление переменных
int M,X,K,L,P;
int A[100][100];
// сообщение пользователю о цели программы
printf("Programma povorota matricy na 90 gradusov.\n");
// сообщение пользователю о необходимости ввода переменной
printf("Vvedite razmer matricy M: ");
scanf("%d",&M); // ввод числа
randomize(); // настраиваем генератор случайных чисел
// вводим значения элементов матрицы
for(int i = 1; i < M+1; i++) // цикл по строкам
{ // начало группы операторов, выполняемых в цикле
for(int j = 1; j < M+1; j++) // цикл по столбцам
{ // начало группы операторов, выполняемых в цикле
A[i][j]=rand()%100; // используем для ввода функцию генерации случайных чисел
} // конец группы операторов, выполняемых в цикле
} // конец группы операторов, выполняемых в цикле
printf("Ishodnaya matrica\n");
// выводим значения элементов исходной матрицы
for(int i = 1; i < M+1; i++) // цикл по строкам
{ // начало группы операторов, выполняемых в цикле
for(int j = 1; j < M+1; j++) // цикл по столбцам
{ // начало группы операторов, выполняемых в цикле
printf("%d\t",A[i][j]); // используем для ввода функцию генерации случайных чисел
} // конец группы операторов, выполняемых в цикле
printf("\n");
} // конец группы операторов, выполняемых в цикле
// преобразование матрицы
for(int i = M; i > M/2+M%2; i--) // цикл по строкам
{ // начало группы операторов, выполняемых в цикле
for(int j = M-(i-1);j < i; j++) // цикл по столбцам
{ // начало группы операторов, выполняемых в цикле
X=A[i][j];
K=M-(j-1);
L=i;
P=i;
for(int r=1; r<4;r++)
{ // начало группы операторов, выполняемых в цикле
A[L][M-(K-1)] = A[K][L];
L=K;
K=M-(P-1);
P=L;
} // конец группы операторов, выполняемых в цикле
A[L][M-(K-1)] = X;
} // конец группы операторов, выполняемых в цикле
} // конец группы операторов, выполняемых в цикле
printf("\nPreobrazovanaya matrica\n");
// выводим значения элементов преобразованной матрицы
for(int i = 1; i < M+1; i++) // цикл по строкам
{ // начало группы операторов, выполняемых в цикле
for(int j = 1; j < M+1; j++) // цикл по столбцам
{ // начало группы операторов, выполняемых в цикле
printf("%d\t",A[i][j]); // используем для ввода функцию генерации случайных чисел
} // конец группы операторов, выполняемых в цикле
printf("\n");
} // конец группы операторов, выполняемых в цикле
scanf("%d",&M); // задержка закрытия консольного окна
return 0;
}
Этап 5. Тестирование и отладка. Проверяем работу программы. Составляем тесты и запускаем по ним программу.
В формализованное решение задачи подставляем параметр N и получаем результаты.
Составляем три теста:
M = 3
Исходная матрица: Преобразованная матрица:
|
85 |
93 |
61 |
|||||
---|---|---|---|---|---|---|---|---|
|
15 |
51 |
25 |
|||||
|
81 |
2 |
91 |
|||||
|
|
|
|
|||||
|
|
|
|
|||||
|
|
|
|
81 |
15 |
85 |
2 |
51 |
93 |
91 |
25 |
61 |
N = 5
Исходная матрица: Преобразованная матрица:
68
56
32
90
60
91
46
73
93
39
88
15
85
34
14
38
63
14
9
93
94
88
69
45
66
-
60
39
14
93
66
90
93
34
9
45
32
73
85
14
69
56
46
15
63
88
68
91
88
38
94
N = 7
Исходная матрица: Преобразованная матрица:
|
21 |
45 |
57 |
86 |
30 |
5 |
64 |
||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
37 |
28 |
2 |
56 |
92 |
46 |
42 |
||||||||||||||
|
4 |
11 |
52 |
58 |
0 |
94 |
80 |
||||||||||||||
|
0 |
32 |
96 |
45 |
89 |
21 |
24 |
||||||||||||||
|
1 |
28 |
38 |
72 |
7 |
14 |
30 |
||||||||||||||
|
62 |
88 |
83 |
46 |
63 |
94 |
21 |
||||||||||||||
|
85 |
94 |
29 |
87 |
10 |
98 |
66 |
||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
85 |
62 |
1 |
0 |
4 |
37 |
21 |
94 |
88 |
28 |
32 |
11 |
28 |
45 |
29 |
83 |
38 |
96 |
52 |
2 |
57 |
87 |
46 |
72 |
45 |
58 |
56 |
86 |
10 |
63 |
7 |
89 |
0 |
92 |
30 |
98 |
94 |
14 |
21 |
94 |
46 |
5 |
66 |
21 |
30 |
24 |
80 |
42 |
64 |
Запускаем программу и подставляем тестовые переменные:
1)
2)
3)
Результаты работы программы совпадают с ожидаемыми результатами — программа работает правильно.