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

Int a[2][3]; /* представлено в виде матрицы

a[0][0] a[0][1] a[0][2]

a[1][0] a[1][1] a[1][2] */

// объявление и инициализация

int w[3][3] = { { 2, 3, 4 },

{ 3, 4, 8 },

{ 1, 0, 9 } };

В последнем примере объявлен массив w[3][3]. Списки, выделенные в фигурные скобки, соответствуют строкам массива, в случае отсутствия скобок инициализация будет выполнена неправильно.

Руководствуясь блок-схемой, записываем алгоритм на языке C:

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

} // конец группы операторов, выполняемых в цикле

По условию задачи все переменные должны быть объявлены как целые числа, следовательно, в разделе объявления переменных программы должна содержаться следующая запись:

// объявление переменных

int M,X,K,L,P;

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