С. Задачи повышенной сложности

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

2. Создать список вещественных чисел. После серии подряд идущих повторяющихся чисел вставить количество их повторений.

3. Создать два списка целых чисел. Рассортировать каждый из них, использую алгоритм обмена. Из двух рассортированных списков путём их слияния получить новый рассортированный список, не используя третий раз алгоритм сортировки.

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

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

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

7. Создать список слов. Рассортировать список (слова) по их длине. Слова с одинаковой длиной сортировать по двум первым буквам.

8. Построить два списка слов и рассортировать каждый из них. На основе полученных двух рассортированных списков построить третий рассортированный в том же порядке список, содержащий неповторяющиеся элементы.

Г л а в а 6

ФАЙЛЫ

Что общего во всех изученных ранее темах, методах программирования, алгоритмах и программах? Все они для хранения входной и выходной информации использовали только оперативную память. Как для простых, так и для структурированных данных (статические и динамические массивы, строки, структуры и другие) внешнюю память мы не использовали. В этой главе будет изучен один из методов программирования для работы с информацией разного типа, сохранённой на внешнем устройстве в файлах. Рассматривается создание, чтение, анализ и корректировка файлов.

Есть несколько подходов для работы с файлами.

Первый из них основан на использовании самостоятельных, то есть не включённых ни в какие стандартные классы, встроенных функций для работы с файлами. Набор таких функций называют системой ввода-вывода классического “старого” языка С. Язык C++ также поддерживает весь набор таких функций.

Кроме этого, язык С++ имеет свою объектно-ориентированную систему ввода-вывода, которая представляет собой методы стандартных классов для работы с потоками (про потоки смотри дальше в следующем параграфе).

Нельзя здесь не упомянуть о базах данных и системах управления ими (СУБД). В отличие от предыдущих двух способов этот предполагает работу не с одним или двумя небольшими файлами, а с несколькими взаимосвязанными большими по объёму файлами, которые объединяются в базу данных. При этом можно использовать как самостоятельные СУБД (системы управления базами данных), так и встроенные в другие системы (например, Delphi, Builder).

В этой главе рассматривается первый подход для работы с небольшими по объёму файлами. Остальные способы будут рассмотрены на втором курсе после подробного изучения объектно-ориентированного метода программирования.

§1. Порядок работы с файлом


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: