Лабораторная работа №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;


