Читайте также: |
|
ПРОГРАММИРОВАНИЕ
Тема: «Способы хранения и обработки информации»
Вариант №12
Выполнил студент гр.
CO2-361-1 Обухов.Д.А
Проверил кафедры ВТ
Габитова Г.Н.
Ижевск 2015
Задание
Составить программу, выполняющую следующие действия:
Удалить повторяющиеся числа. Затем проверить, есть ли два числа, дающие в сумме первое значение. Если такие числа есть, то удалить и их.
При обработке информации числовые данные к заданию должны храниться в текстовом файле, который создается любым способом. Необходимо переписать числовые данные из текстового файла в:
• одномерный массив,
• типизированный файл,
• линейный динамический список.
Необходимо обработать все эти данные по одному и тому же алгоритму в соответствии варианта задания и выполнить в виде трех процедур, не связанных между собой. Так как исходные данные будут записаны в памяти тремя различными способами, то и подход к решению одной и той же задачи будет различен.
Цель работы
Найти достоинства и недостатки каждого из способов хранения и обработки информации: в массиве, в типизированном файле, в динамическом линейном списке, увидеть различия в алгоритме работы при разном способе хранения данных.
Анализ и разработка алгоритма
Алгоритм поиска повторяющихся чисел и их удаления:
Внешним циклом передаём по порядку значения массива. Внутренним сравниваем с последующим числом. Если числа равны записываем число в новый массив. Удаляем все повторяющиеся элементы.
Различия реализации: для типизированного файла пришлось отслеживать текущее положение чисел. Так как в массиве нельзя удалять элементы пришлось создавать новый массив. Для динамических списков нужно было всего лишь сделать переадресацию.
Алгоритм поиска двух чисел дающих в сумме первое значение массива и их удаление:
Необходимо запомнить в переменную значение первого элемента массива. Далее двойным циклом while заново перебираем числа и сравниваем их сумму с первым элементом массива. Если таковые находятся удаляем оба числа. Наконец выводим оставшиеся элементы.
Различия реализации: для типизированных файлов понадобились дополнительные переменные, а также пришлось использовать тройной цикл, так как необходимо было дополнительно прослеживать положения элементов. В массиве нужно было следить за индексами, в то время как в динамическом списке после исключения лишних элементов шла работа над указателями.
Дата добавления: 2015-09-01; просмотров: 75 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Синхронизация | | | Блок-схема программы |