Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

mas_file_spis

.doc
Скачиваний:
17
Добавлен:
11.03.2015
Размер:
37.89 Кб
Скачать

Лабораторная работа по обработке массива, типизированного файла и динамического линейного списка.

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

  1. одномерный массив,

  2. типизированный файл,

  3. линейный динамический список.

Необходимо обработать все эти данные по одному и тому же алгоритму в соответствии варианта задания и выполнить в виде трех процедур, не связанных между собой (например, при обработке типизированного файла или динамического списка не ссылаться на размер массива и т.д.). Так как исходные данные будут записаны в памяти тремя различными способами, то и подход к решению одной и той же задачи будет различен.

  1. Рассортировать числа по возрастанию методом « пузырька», затем удалить нулевые значения. Количество удаленных нулей добавить первым значением.

  2. Рассортировать числа по убыванию методом вставок, затем добавить нулевые значения в отсортированную последовательность, если их не было.

  3. Рассортировать числа по убыванию методом выбора, затем удалить нулевые значения. Количество удаленных нулей добавить последним значением.

  4. Переместить отрицательные числа в начало, а положительные в конец данных, не применяя сортировку. Если нулей не было, то добавить ноль между двумя граничащими, отрицательным и положительным, числами.

  5. Каждое число заменить на количество чисел, стоящих правее его и больших ему. Если таких чисел нет, то заменить исходное число на ноль. Затем удалить рядом стоящие нули, оставив только один ноль.

  6. Отсортировать только положительные числа, отрицательные оставить на своих местах. Затем вставить любое введенное положительное число в отсортированную последовательность, не нарушая при этом сортировку.

  7. Рассматривая числа попарно, переставить пары по возрастанию их сумм. Затем удалить пару чисел, дающую сумму, равную введенному числу М. Если такой пары чисел нет, то сообщить об этом.

  8. Просуммировать и удалить числа, встречающиеся по одному разу. Затем сумму удаленных чисел добавить в начало данных.

  9. За один проход цикла найти два максимальных значения среди всех данных и удалить их. Затем добавить в начало данных число, равное среднему арифметическому удаленных максимальных значений.

  10. Данные обмениваются числами так, чтобы в начале оказались только четные значения, а в конце – нечетные значения. Затем привести количество четных и нечетных чисел к одинаковой длине, путем удаления начальных значений.

  11. «Взвесить», то есть найти суммы первой половины и второй половины данных, и максимально уравновесить их, обменивая элементы.

  12. Удалить повторяющиеся числа. Затем проверить, есть ли два числа, дающие в сумме первое значение. Если такие числа есть, то удалить и их.

  13. Найти среднее арифметическое положительных чисел. Удалить все числа, большие этого среднего. Затем снова найти среднее арифметическое положительных оставшихся чисел и добавить его в начало данных.

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

  15. Все нечетные числа записать в начало данных, четные – в конец данных. Повторяющиеся числа не писать. Уравнять количество четных и нечетных удалением последних значений в своей последовательности.

  16. Найти суммы цифр каждого числа без учета повторяющихся цифр. Числа, дающие повторяющиеся суммы, удалить.

  17. Рассортировать числа «горкой», то есть 1 минимальное на первое место, 2 минимальное на последнее место и т. д. Затем удалить максимальное значение из данных.

  18. Рассортировать числа «впадиной», т.е. первое максимальное поставить на первое значение новых данных, второе максимальное – на последнее место, третье – на второе место и т.д. Затем удалить минимальное значение (вид впадиной: мах1, мах3, мах5,…., max4, max2).

  19. Все нулевые значения переписать в конец данных, не изменяя следования остальных чисел. Новых данных при этом не заводить. Если нулей будет больше 3-х, то первый ноль заменить на среднее арифметическое значение до этого нуля

  20. Из исходных данных удалить повторяющиеся числа. Определить среднее арифметическое оставшихся чисел и записать его на первое место, сдвинув остальные числа.

  21. Из чисел 0, 1, 2, находящихся в различной последовательности, сделать строгую очередность из 0, 1 и 2. При этом сортировку не применять. Вывести результаты. Затем удалить по одному граничащему значению.

  22. Рассортировать исходные данные методом Шелла. Затем удалить повторяющиеся значения. Среднее арифметическое удаленных значений добавить в полученные данные на свое, согласно отсортированной последовательности, место.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]