Программа на языке Си для ввода квадратных матриц
Автор: Mikhail Limi • Июнь 1, 2022 • Контрольная работа • 1,164 Слов (5 Страниц) • 232 Просмотры
Задача. Разработать программу на языке Си, которая обеспечивала бы выполнение следующих действий:
- ввод целых значений для квадратной матрицы с размерами 5×5
элементов;
- вывод элементов матрицы на экран;
- сортировку (упорядочение) элементов в строках матрицы по возрастанию;
- сортировку (упорядочение) элементов в строках матрицы по убыванию их значений;
- запись матрицы в файл;
- чтение значений из файла и запись их в матрицу;
- выход из программы.
Приступая к решению задачи, не следует сразу же запускать интегрированную среду разработки программ Microsoft Visual C++ 2008 Express Edition и пытаться что-то ввести в открывшемся окне редактора текста. Прежде всего следует уяснить условие задачи, т.е. добиться для себя полного понимания того, какие исходные данные имеются и что нужно получить в качестве результата решения задачи. Это предполагает получение ответов на ряд вопросов, в том числе:
- Какие имеются исходные данные, т.е. что дано в условии задачи?
- В каком виде должны быть представлены исходные данные?
- Что требуется получить в ходе решения задачи?
- В каком виде должен быть представлен результат решения задачи пользователю?
- Какая дополнительная информация может потребоваться для решения задачи?
- Каким образом можно получить эту дополнительную информацию?
Например, в ходе уяснения условия задачи, представленной выше, получены следующие ответы:
- Объектом обработки программы является целая квадратная матрица
(т.е. двумерный массив целых значений) с размерами 5×5 элементов.
- Ввод целых значений для элементов исходной матрицы целесообразно обеспечить с клавиатуры.
- Результатом работы программы является матрица с отсортированными элементами строк, а также двоичный файл, в который могут быть записаны значения элементов матрицы.
- Вид сортировки (по возрастанию или по убыванию значений) должен задаваться (выбираться) пользователем.
- Матрица должна отображаться на экране монитора в виде, привычном для пользователя (как таблица значений).
- Значения элементов матрицы могут сохраняться в двоичном файле, который может быть прочитан по требованию пользователя.
Поиск решения задачи предполагает выбор или разработку способов, которые позволяют решить поставленную задачу и обеспечить выполнение ряда требований к разрабатываемой программе: гибкость, эффективность, удобство использования. Ниже достаточно схематично показана процедура поиска решения задачи.
- Для обеспечения гибкости использования программы предлагается использовать меню, содержащее следующие пункты:
- Ввод элементов матрицы.
- Вывод матрицы на экран.
- Сортировка элементов в строках по возрастанию.
- Сортировка элементов в строках по убыванию.
- Запись матрицы в файл.
- Чтение из файла.
- Выход из программы.
- Выбор пункта меню осуществляется вводом номера соответствующего пункта, т.е. после отображения меню на экран должна выводиться строка «Номер пункта меню: ». В программе должна осуществляться проверка допустимости введенного номера и обеспечиваться возможность повторного ввода номера пункта меню.
- Целесообразно реализовать действия, представленные пунктами меню
«Ввод элементов матрицы», «Сортировка элементов в строках по возрастанию», «Сортировка элементов в строках по убыванию»,
«Вывод матрицы на экран», «Запись матрицы в файл» и «Чтение файла», в виде отдельных функций, что обеспечит большую гибкость и удобство работы пользователя с программой.
- Для сортировки значений выбрать наиболее простой и понятный способ, т.е. никакие требования к алгоритму сортировки, касающиеся скорости выполнения и требуемого объема памяти, в данном случае не предъявляются.
- Ошибки при работе с файлом не должны приводить к отказу в работе программы.
- Выход из программы выполняется с помощью соответствующего пункта меню.
После того как определены основные действия, которые необходимо реализовать в программе, выполняется их детализация, т.е. разрабатывается алгоритм решения задачи. При разработке алгоритма можно использовать один из формализованных способов, например, язык схем алгоритмов (блок-схемы) или псевдокод. Обширная информация, касающаяся способов описания алгоритмов, содержится в предложенных учебно-методических материалах.
...