Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум ЭВМ ответы.doc
Скачиваний:
3
Добавлен:
07.05.2019
Размер:
309.25 Кб
Скачать

Заполнение матриц.

Организацию обработки элементов статического двумерного (многомерного) массива можно организовать с использованием сложноциклической структуры. Так как, например, при заполнении массива необходимо произвести обход всех элементов по строкам (i) изменяя индексы столбцов (j). Таким образом объевленный массив из N строк и M столбцов

#define n 6

#define m 8

int a[n][m];

будет организован в памяти ЭВМ следующим образом:

 

i\j

0

1

2

m-2

m-1

0

A[0][0]

A[0][1]

A[0][2]

 

 

A[0][m-1]

1

A[1][0]

A[1][1]

A[1][2]

 

 

 

2

A[2][0]

A[2][1]

A[2][2]

 

 

 

 

 

 

A[i][j]

 

 

n-2

 

 

 

 

 

 

n-1

A[n-1][0]

 

 

 

 

A[n-1][m-1]

 

Поэтому в цикле изменения i от 0 до m-1 следует изменять j от 0 до m-1, где и вводить элементы a[i][j].

 

Программа:

  1. # include

  2. # include

  3. # define n 6 // Количество строк матрицы

  4. # define m 8 // Количество столбцов матрицы

  5. int main ()

  6. {

  7. int a[n][m];

  8. clrscr ();

  9. printf ("\n Заполнение элементов матрицы A[%i][%i] .",n,m);

  10. for (int i=0;i

  11. {

  12. printf ("\n Ввод %i-й строки матрицы \n",i);

  13. for (int j=0;j

  14. {

  15. printf (" a[%i][%] = ",i,j);

  16. scanf ("%i",&a[i][j]);

  17. }

  18. }

  19. printf ("\n В памяти компьютера сформирована матрица А\n");

  20. for (int i=0;i

  21. {

  22. for (int j=0;j

  23. printf ("%6i",a[i][j]);

  24. puts (" "); // Переход на новую строку

  25. }

  26. getch();

  27. }

Вывод элементов двумерных массивов.

Вывод элементов матрица аналогичен вводу - использование сложноциклической алгоритмической структуры в Си - программе. В цикле перебора строк кроме организации цикла по перебору элементов столбцов необходимо реализовать переход на новую строку для более наглядного вывода элементов функцией puts(" "); , которая содержит \n в конце любого вывода сообщения даже без его указания. Рассмотрим пример формирования матрицы случайными числами и ее вывод.

 

Программа:

  1. # include

  2. # include

  3. # include

  4. # define n 3

  5. # define m 4

  6. int main ()

  7. {

  8. int a[n][m];

  9. clrscr ();

  10. randomize();

  11. printf ("\n Сформирована матрица A[%i][%i] .",n,m);

  12. for(int i=0;i

  13. {

  14. for (int j=0;j

  15. {

  16. a[i][j]=random(21)-10;

  17. printf ("%6i",a[i][j]);

  18. }

  19. puts (" ");

  20. }

  21. getch();

  22. }

Организация символьного одномерного массива в виде матрицы символов.

Так как тип char хранит значение символов, то организовать символьный одномерный массив, где элементами массива будут строки, например фамилии учеников невозможно. Поэтому используют матрицу символов, которую можно считать строковым одномерным массивом. Рассмотрим пример ввода и вывода элементов строкового массива в обратном порядке. 

Программа:

  1. # include

  2. # include

  3. # define n 10 //Количество элементов строкового массива

  4. # define m 30 // Максимальное количество символов элемента массива при вводе

  5. int main ()

  6. {

  7. char a[n][m];

  8. clrscr ();

  9. printf ("\n Введите фамилии учеников \n");

  10. for (int i=0;i

  11. {

  12. printf ("\n %i. ",i);

  13. scanf ("%s",&a[i]);

  14. }

  15. puts (" \n");

  16. for (int i=n-1;i>=0;i--)

  17. printf ("\n %i. %s",i,a[i]);

  18. getch();

  19. }