Лабораторная работа №7

Двумерные массивы

Цель:

1.  Заполнить двумерный массив (каждая строка массива заполняется в соответствии с заданием по теме №5).

2.  Распечатать содержимое массива в виде прямоугольной матрицы.

3.  Сохранить двумерный массив в бинарный файл.

4.  Считать содержимое бинарного файла в другой двумерный массив.

5.  Распечатать содержимое нового массива в виде прямоугольной матрицы.

6.  Выполнить над каждой строкой нового двумерного массива действия, предусмотренные по теме №5.

7.  Распечатать преобразованный двумерный массив

Решение:

В начале идёт подключение заголовных файлов, в которых объявлены прототипы функций, понадобящиеся для написания программы.

Далее определения функций InitArray, PrintArray, SortArray, WriteArrayInFile, ReadArrayFromFileInArray, TransformArray.

Функция InitArray осуществляет заполнение двумерного массива буквами латинского алфавита и цифрами в случайном порядке.

Фукнция PrintArray выводит содержимое двумерного массива на экран.

Фукнция SortArray сортирует строки двумерного массива в порядке возрастания, сравнивая по одному элементы каждого столбца методом пузырька.

Функция WriteArrayInFile записывает содержимое массива в файл. Если не существует такого файла, то он сначала создаётся, а затем в него уже записываются данные. Открытие файла осуществляется функцией fopen, первый параметр которой – путь к файлу, а второй – флаги доступа к файлу ( только чтение, только запись, чтение и запись и т. д. ). Данная функция возвращает указатель на поток FILE, связанный с этим файлом, содержащий информацию о дескрипторе файла ( идентификационный номер, по которому операционна система отличает данный файл от других файлов ), указатель на данные этого файла, текущие флаги доступа к этому файлу, количество символов в этом файле и т. п..

Функция fwrite записывает данные в файл. Первый параметр функции – данные, которые нужно записать в файл, воторой – размерность в байтах этих данных, третий – ограничение на кол – во записуемых данных, четвёртый – указатель на поток FILE, связанный с файлом, в который записываем данные.

Функция fclose закрывает файл. Единственный параметр данной функции указатель на поток FILE, который связан с закрываемым файлом.

Функция ReadArrayFromFileInArray считывают информацию с требуемого файла, а именно исходный, заполненный случайными символами, двумерный массив и записывает его содержимое в другой вдумерный массив. Этим занимается новая функция в данной программе, связанная с файловой обработкой, fread. Параметры этой функции подобны параметрам функции fwrite, за исключением, что в первый параметр записывается символ из файла, и так до тех пор, пока не закончится содержимое файла.

Функция TransformArray отвечает за преобразование двумерного массива, а именно повторяющиеся символы в строках заменяет на пробелы, а из этих повторяющихся символов формируется новый двумерный массив.

Далее по программе оба двумерных массива сортируются и их содержимое выводится на экран.

И в заключении, управление передаётся операционной системе инструкцией

return 0;