
- •Создание программ с использованием циклов. Работа с массивами
- •Введение
- •Лабораторная работа №6. Оператор цикла с параметрами
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Лабораторная работа №7. Оператор цикла с предусловием
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Лабораторная работа №8. Одномерный массив
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Лабораторная работа №9. Двухмерный массив. Матрица.
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Int a[2][3]; /* представлено в виде матрицы
- •Int a[100][100]; // матрица
- •Библиографический список
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;