mas_file_spis
.docЛабораторная работа по обработке массива, типизированного файла и динамического линейного списка.
Каждому студенту выдается свое индивидуальное задание. При обработке информации числовые данные к заданию должны храниться в текстовом файле, который создается самим студентом любым способом. Необходимо переписать числовые данные из текстового файла в:
-
одномерный массив,
-
типизированный файл,
-
линейный динамический список.
Необходимо обработать все эти данные по одному и тому же алгоритму в соответствии варианта задания и выполнить в виде трех процедур, не связанных между собой (например, при обработке типизированного файла или динамического списка не ссылаться на размер массива и т.д.). Так как исходные данные будут записаны в памяти тремя различными способами, то и подход к решению одной и той же задачи будет различен.
-
Рассортировать числа по возрастанию методом « пузырька», затем удалить нулевые значения. Количество удаленных нулей добавить первым значением.
-
Рассортировать числа по убыванию методом вставок, затем добавить нулевые значения в отсортированную последовательность, если их не было.
-
Рассортировать числа по убыванию методом выбора, затем удалить нулевые значения. Количество удаленных нулей добавить последним значением.
-
Переместить отрицательные числа в начало, а положительные в конец данных, не применяя сортировку. Если нулей не было, то добавить ноль между двумя граничащими, отрицательным и положительным, числами.
-
Каждое число заменить на количество чисел, стоящих правее его и больших ему. Если таких чисел нет, то заменить исходное число на ноль. Затем удалить рядом стоящие нули, оставив только один ноль.
-
Отсортировать только положительные числа, отрицательные оставить на своих местах. Затем вставить любое введенное положительное число в отсортированную последовательность, не нарушая при этом сортировку.
-
Рассматривая числа попарно, переставить пары по возрастанию их сумм. Затем удалить пару чисел, дающую сумму, равную введенному числу М. Если такой пары чисел нет, то сообщить об этом.
-
Просуммировать и удалить числа, встречающиеся по одному разу. Затем сумму удаленных чисел добавить в начало данных.
-
За один проход цикла найти два максимальных значения среди всех данных и удалить их. Затем добавить в начало данных число, равное среднему арифметическому удаленных максимальных значений.
-
Данные обмениваются числами так, чтобы в начале оказались только четные значения, а в конце – нечетные значения. Затем привести количество четных и нечетных чисел к одинаковой длине, путем удаления начальных значений.
-
«Взвесить», то есть найти суммы первой половины и второй половины данных, и максимально уравновесить их, обменивая элементы.
-
Удалить повторяющиеся числа. Затем проверить, есть ли два числа, дающие в сумме первое значение. Если такие числа есть, то удалить и их.
-
Найти среднее арифметическое положительных чисел. Удалить все числа, большие этого среднего. Затем снова найти среднее арифметическое положительных оставшихся чисел и добавить его в начало данных.
-
Определить минимальное и максимальное значения. Тот экстремум, который встречается первым, должен при циклическом сдвиге всех данных встать на первое место, если это был минимум, или встать на последнее место, если это был максимум.
-
Все нечетные числа записать в начало данных, четные – в конец данных. Повторяющиеся числа не писать. Уравнять количество четных и нечетных удалением последних значений в своей последовательности.
-
Найти суммы цифр каждого числа без учета повторяющихся цифр. Числа, дающие повторяющиеся суммы, удалить.
-
Рассортировать числа «горкой», то есть 1 минимальное на первое место, 2 минимальное на последнее место и т. д. Затем удалить максимальное значение из данных.
-
Рассортировать числа «впадиной», т.е. первое максимальное поставить на первое значение новых данных, второе максимальное – на последнее место, третье – на второе место и т.д. Затем удалить минимальное значение (вид впадиной: мах1, мах3, мах5,…., max4, max2).
-
Все нулевые значения переписать в конец данных, не изменяя следования остальных чисел. Новых данных при этом не заводить. Если нулей будет больше 3-х, то первый ноль заменить на среднее арифметическое значение до этого нуля
-
Из исходных данных удалить повторяющиеся числа. Определить среднее арифметическое оставшихся чисел и записать его на первое место, сдвинув остальные числа.
-
Из чисел 0, 1, 2, находящихся в различной последовательности, сделать строгую очередность из 0, 1 и 2. При этом сортировку не применять. Вывести результаты. Затем удалить по одному граничащему значению.
-
Рассортировать исходные данные методом Шелла. Затем удалить повторяющиеся значения. Среднее арифметическое удаленных значений добавить в полученные данные на свое, согласно отсортированной последовательности, место.