Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






I. Исходные данные, результаты и промежуточные величины.






Исходные данные. Поскольку размерность матрицы неизвестна, придется исполь­зовать динамический массив элементов целого типа. Ограничимся типом

int.

Результаты. Результатом является та же матрица, но упорядоченная. Это значит, что не следует заводить для результата новую область памяти, а необходимо упорядочить матрицу in situ, то есть на том же месте.

Промежуточные величины. Кроме конечных результатов, в любой программе есть промежуточные, а также служебные переменные. Следует выбрать их тип и спо­соб хранения.

Если требуется упорядочить матрицу по возрастанию сумм элемен­тов ее строк, эти суммы надо вычислить и где-то хранить. Поскольку все они по­требуются при упорядочивании, их надо записать в массив, количество элементов которого соответствует количеству строк матрицы, а i-й элемент содержит сумму элементов i-й строки. Количество строк заранее неизвестно, поэтому этот массив также должен быть динамическим. Сумма элементов строки может превысить диа­пазон значений, допустимых для отдельного элемента строки, поэтому для эле­мента этого массива надо выбрать тип 1ong.

II. Алгоритм работы программы. Для сортировки строк воспользуемся одним из самых простых методов - методом выбора. Он состоит в том, что из массива выбирается наименьший элемент и меняется местами с первым элементом, затем рассматриваются элементы, начиная со второго, и наименьший из них меняется местами со вторым элементом и так далее п - 1 раз (при последнем проходе цикла при необходимости меняются местами предпоследний и последний элементы мас­сива). Одновременно с обменом элементов массива выполняется и обмен значе­ний двух соответствующих строк матрицы.

Любой алгоритм можно первоначально разбить на этапы ввода исходных данных, вычислений и вывода результата.

Вычисление в данном случае состоит из двух шагов: формирование сумм элемен­тов каждой строки и упорядочивание матрицы. Упорядочивание состоит в выборе наименьшего элемента и обмене с первым из рассматриваемых. Разветвленные алгоритмы и алгоритмы с циклами полезно представить в виде обобщенной блок-схемы.

III. Когда алгоритм полностью прояснился, можно переходить к написанию программы. Одновременно с этим продумываются и подготавливаются тестовые при­меры. Рекомендуется придумать переменным понятные имена и сразу же при напи­сании аккуратно форматировать текст программы, чтобы по положению оператора было видно, на каком уровне вложенности он находится. Функционально завер­шенные части алгоритма отделяются пустой строкой, комментарием или хотя бы комментарием.

Сначала пишется и отлажи­вается фрагмент, содержащий ввод исходных данных. Затем можно переходить к следующему функционально законченному фрагменту алгоритма. Для отладки полезно выполнять программу по шагам с на­блюдением значений изменяемых величин. Все популярные оболочки предостав­ляют такую возможность. Ниже приведен текст программы сортировки.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.