Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2205 Прог на ЯВУ Павлов.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.91 Mб
Скачать

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 и получаем результаты.

Составляем три теста:

  1. M = 3

Исходная матрица: Преобразованная матрица:

85

93

61

15

51

25

81

2

91

81

15

85

2

51

93

91

25

61


  1. 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

  1. 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)

Результаты работы программы совпадают с ожидаемыми результатами — программа работает правильно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]