Занятия 5-8 (8 часов). Алгоритмы поиска и сортировки (по книге Никлаус Вирт «Алгоритмы и структуры данных»).

Занятия 1-4 (8 часов). Работа с файлами.

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

2. Сгенерировать набор целых чисел, записать их в бинарный файл. Не считывая, данные в массив, найти из этого файла максимальный элемент.

3. Для файла, сгенерированного в задании 2, найти количество чисел, которые являются простыми.

4. Для файла, сгенерированного в задании 2, проверить, образуют ли числа в нем возрастающую последовательность.

5. Для файла, сгенерированного в задании 2, проверить, образуют ли они симметричную последовательность.

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

7. Дан бинарный файл (например, сгенерированный в задании 2), в котором записана последовательность целых чисел. Создать новый файл, в котором числа идут в обратном порядке.

8. Дан текстовый файл, в котором записана последовательность слов. Создать новый текстовый файл, в котором слова идут в обратном порядке.

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

10. Дан текстовый файл, содержащий информацию о городах мира (название города, название страны, численность населения, площадь). Выполнить следующие задания:

· Найти самый населенный город в Германии;

· Найти город, который имеет наибольшую плотность населения;

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

· Найти количество городов, которые расположены во Франции.

11. В текстовом файле содержится текст на английском языке, заканчивающийся точкой (другие символы "." в тексте отсутствуют). Требуется написать программу, которая будет определять и выводить на экран английскую букву, встречающуюся в этом тексте чаще всего, и количество таких букв. Строчные и прописные буквы при этом считаются неразличимыми. Если искомых букв несколько, то программа должна выводить на экран первую из них по алфавиту.

12. В текстовом файле содержатся фамилии и имена студентов. Известно, что общее количество студентов не превосходит 100. В первой строке вводится количество зарегистрированных студентов (N). Далее следуют N строк, имеющих следующий формат: <Фамилия> <Имя>. Требуется написать программу, которая формирует и печатает уникальный логин для каждого студента по следующему правилу: если фамилия встречается первый раз, то логин – это данная фамилия, если фамилия встречается второй раз, то логин – это фамилия, в конец которой приписывается число 2 и т.д.

13. Текстовый файл содержит произвольные алфавитно-цифровые символы. Ввод этих символов заканчивается точкой. Требуется написать программу, которая будет печатать последовательность строчных английских букв ('a' 'b'... 'z') из входной последовательности и частоты их повторения. Печать должна происходить в алфавитном порядке.


Занятия 5-8 (8 часов). Алгоритмы поиска и сортировки (по книге Никлаус Вирт «Алгоритмы и структуры данных»).

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

2. Дан текстовый файл, в котором записана отсортированная последовательность целых чисел. Написать программу поиска в нем местоположения заданной пользователем последовательности, используя алгоритм последовательного поиска, алгоритм Кнута-Морриса-Прата и алгоритм Боуера-Мура). Подсчитать количество сравнений, которые выполняют эти алгоритмы. Сравнить их эффективность по количеству сравнений.

3. Дан текстовый файл, в котором записана последовательность целых чисел. Написать программу сортировки массива с помощью алгоритмов внутренней сортировки (сортировка вставками, метод пузырька, сортировка выбором, сортировка Шелла, пирамидальная сортировка и быстрая сортировка). Подсчитать количество сравнений, которые выполняют эти алгоритмы. Сравнить их эффективность по количеству сравнений.

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