Лабораторная работа № 5.
Записи

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

Необходимо разработать две программы, в которых последовательность данных представляется разными способами.

  1. Для хранения данных используются динамические массивы. Для ввода данных использовать типизированный файл (типизированный файл должен создаваться из текстового в отдельной программе). Для вывода данных использовать текстовый файл.
  2. Для хранения данных используются типизированные файлы. Типизированный файл должен создаваться из текстового в отдельной программе. Полученный в результате отбора данных типизированный файл должен быть преобразован в текстовый.

Исходные данные необходимо отсортировать по указанному ключу. Затем отобрать данные по указанному условию (перенести в другой массив или другой файл). Отсортировать результаты по двум указанным ключам – сначала по первому, при равенстве первого ключа в записях – по второму.

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

Имена файлов передаются через параметры программы. Описание

  1. Отсортировать исходные данные по группе. Найти студентов мужского пола, старших 18 лет. Определить их суммарную стипендию. Отсортировать выходные данные по фамилии и по году рождения.
  2. Отсортировать исходные данные по группе. Найти студентов мужского пола, не сдавших более двух экзаменов. Определить, сколько из них учится в группе А-13-10. Отсортировать выходные данные по фамилии и по стипендии.
  3. Отсортировать исходные данные по группе. Найти студентов женского пола, имеющих «отлично» по информатике. Определить для них средний балл по физике и математике. Отсортировать выходные данные по году рождения и по фамилии.
  4. Отсортировать исходные данные по группе. Найти студентов, имеющих все отличные оценки. Для каждого из них увеличить стипендию в полтора раза и подсчитать процент таких студентов. Отсортировать выходные данные по году рождения и по стипендии.
  5. Отсортировать исходные данные по группе. Найти студентов, имеющих хотя бы одну неудовлетворительную оценку. Для каждого из них заменить величину стипендии на 0 и подсчитать процент таких студентов. Отсортировать выходные данные по стипендии и по фамилии.
  6. Отсортировать исходные данные по группе. Найти студентов, имеющих «отлично» по физике. Определить средний балл каждого из этих студентов. Отсортировать выходные данные по стипендии и по году рождения.
  7. Отсортировать исходные данные по фамилии. Найти студентов, имеющих средний балл, больший 4,5. Определить их суммарную стипендию. Отсортировать выходные данные по группе и по году рождения.
  8. Отсортировать исходные данные по фамилии. Найти студентов, которые моложе 16 лет. Подсчитать процент таких студентов. Отсортировать выходные данные по группе и по стипендии.
  9. Отсортировать исходные данные по фамилии. Найти студентов мужского пола, имеющих «отлично» по информатике. Определить, сколько из них учится в группе А-5-10. Отсортировать выходные данные по году рождения и по группе.
  10. Отсортировать исходные данные по фамилии. Найти студентов, имеющих три тройки. Определить, сколько из них учится в группе А-14-10. Отсортировать выходные данные по году рождения и по стипендии.
  11. Отсортировать исходные данные по фамилии. Найти студентов, имеющих только положительные оценки. Подсчитать процент таких студентов. Отсортировать выходные данные по стипендии и по группе.
  12. Отсортировать исходные данные по фамилии. Найти студентов, средний балл которых меньше общего среднего балла. Определить средний балл всех студентов по всем предметам. Отсортировать выходные данные по стипендии и по году рождения.
  13. Отсортировать исходные данные по году рождения. Найти студентов, имеющих все удовлетворительные оценки и не получающих стипендии. Подсчитать процент таких студентов. Отсортировать выходные данные по группе и по фамилии.
  14. Отсортировать исходные данные по году рождения. Найти студентов мужского пола, не получающих стипендии. Определить средний балл каждого из этих студентов. Отсортировать выходные данные по группе и по стипендии.
  15. Отсортировать исходные данные по году рождения. Найти студентов, средний балл которых больше общего среднего балла. Определить средний балл всех студентов по всем предметам. Отсортировать выходные данные по фамилии и по группе.
  16. Отсортировать исходные данные по году рождения. Найти студентов, оценки которых равны 4 или 5. Подсчитать процент таких студентов. Отсортировать выходные данные по фамилии и по стипендии.
  17. Отсортировать исходные данные по году рождения. Найти студентов женского пола, старших 20 лет. Определить средний балл каждого из этих студентов. Отсортировать выходные данные по стипендии и по фамилии.
  18. Отсортировать исходные данные по году рождения. Найти студентов, стипендия которых больше средней. Подсчитать процент таких студентов. Отсортировать выходные данные по стипендии и по группе.
  19. Отсортировать исходные данные по стипендии. Найти студентов мужского пола, старших 18 лет. Определить их суммарную стипендию. Отсортировать выходные данные по группе и по фамилии.
  20. Отсортировать исходные данные по стипендии. Найти студентов мужского пола, не сдавших более двух экзаменов. Определить, сколько из них учится в группе А-13-10. Отсортировать выходные данные по группе и по году рождения.
  21. Отсортировать исходные данные по стипендии. Найти студентов женского пола, имеющих «отлично» по информатике. Определить для них средний балл по физике и математике. Отсортировать выходные данные по фамилии и по группе.
  22. Отсортировать исходные данные по стипендии. Найти студентов, имеющих все отличные оценки. Для каждого из них увеличить стипендию в полтора раза и подсчитать процент таких студентов. Отсортировать выходные данные по фамилии и по году рождения.
  23. Отсортировать исходные данные по стипендии. Найти студентов, имеющих средний балл, больший 4,5. Определить их суммарную стипендию. Отсортировать выходные данные по году рождения и по группе.
  24. Отсортировать исходные данные по стипендии. Найти студентов, имеющих «отлично» по физике. Определить средний балл каждого из этих студентов. Отсортировать выходные данные по году рождения и по фамилии.
  25. Отсортировать исходные данные по группе. Найти студентов, имеющих хотя бы одну неудовлетворительную оценку. Для каждого из них заменить величину стипендии на 0 и подсчитать процент таких студентов. Отсортировать выходные данные по фамилии и по году рождения.
  26. Отсортировать исходные данные по группе. Найти студентов, которые моложе 16 лет. Подсчитать процент таких студентов. Отсортировать выходные данные по фамилии и по стипендии.
  27. Отсортировать исходные данные по группе. Найти студентов мужского пола, имеющих «отлично» по информатике. Определить, сколько из них учится в группе А-5-10. Отсортировать выходные данные по году рождения и по фамилии.
  28. Отсортировать исходные данные по группе. Найти студентов, имеющих все удовлетворительные оценки и не получающих стипендии. Подсчитать процент таких студентов. Отсортировать выходные данные по году рождения и по стипендии.
  29. Отсортировать исходные данные по группе. Найти студентов мужского пола, не получающих стипендии. Определить средний балл каждого из этих студентов. Отсортировать выходные данные по стипендии и по фамилии.
  30. Отсортировать исходные данные по группе. Найти студентов, средний балл которых меньше общего среднего балла. Определить средний балл всех студентов по всем предметам. Отсортировать выходные данные по стипендии и по году рождения.
  31. Отсортировать исходные данные по фамилии. Найти студентов, умеющих три тройки. Определить, сколько из них учится в группе А-14-10. Отсортировать выходные данные по группе и по году рождения.
  32. Отсортировать исходные данные по фамилии. Найти студентов, имеющих только положительные оценки. Подсчитать процент таких студентов. Отсортировать выходные данные по группе и по стипендии.
  33. Отсортировать исходные данные по фамилии. Найти студентов, средний балл которых больше общего среднего балла. Определить средний балл всех студентов по всем предметам. Отсортировать выходные данные по году рождения и по группе.
  34. Отсортировать исходные данные по фамилии. Найти студентов, оценки которых равны 4 или 5. Подсчитать процент таких студентов. Отсортировать выходные данные по году рождения и по стипендии.
  35. Отсортировать исходные данные по фамилии. Найти студентов женского пола, старших 20 лет. Определить средний балл каждого из этих студентов. Отсортировать выходные данные по стипендии и по группе.
  36. Отсортировать исходные данные по фамилии. Найти студентов, стипендия которых больше средней. Подсчитать процент таких студентов. Отсортировать выходные данные по стипендии и по году рождения.