Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа 2.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
37 Кб
Скачать
☆

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

текст задачи: На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат:

<Фамилия> <Имя> <оценки>, где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом.

Пример входной строки: Иванов Петр 4 5 3

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

метод решения:

  • получение N строк и их обработка:

    • выделение имени

    • выделение трех оценок

    • получение суммарного балла (аналог среднего балла, но целое число)

    • добавление в массив [0..15] имен учеников, набравших бал, равный индексу массива

  • вывод трех наименьших не пустых значения массива

 

2. Участие в олимпиаде Из полученных строк формируется массив записей, с последующей статистической обработкой.

Текст задачи:

На вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат: <Фамилия> <Инициалы> <номер школы>, где <Фамилия> – строка, состоящая не более чем из 20 символов, <Инициалы> – строка, состоящая из 4-х символов (буква, точка, буква, точка), <номер школы> – не более чем двузначный номер. <Фамилия> и <Инициалы>, а также <Инициалы> и <номер школы> разделены одним пробелом. Пример входной строки:

Иванов П.С. 57

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

метод решения:

  • получение N строк и их обработка:

    • выделение имени

    • выделение номера школы

    • добавление в массив записей [1..99] имен учеников, участвовавших в олимпиаде , в индекс, равный номеру школы. Так как после этот массив нужно будет сортировать, то помимо строки имен запись должна содержать номер школы и количество учеников (последнее значение должно увеличиваться на единицу при обработке новой строки).

    • сортировка массива по полю количество учеников

  • вывод трех наименьших не пустых значения массива

 

3. «Ученики школы» Из списка учеников формируется массив записей, который подвергается статистической обработке.

Текст задачи:

На вход программе подаются сведения об учениках некоторой средней школы. В первой строке сообщается количество учеников N, каждая из следующих N строк имеет следующий формат: <Фамилия> <Имя> <класс>, где

<Фамилия> – строка, состоящая не более, чем из 20 символов,  <Имя> – строка, состоящая не более, чем из 15 символов,  <класс> – год обучения (от 1 до 11) и заглавная буква (от “А” до “Я”) без пробела.

<Фамилия> и <Имя>, а также <Имя> <класс> разделены одним пробелом.

Пример входной строки: Иванов Петр 10Б

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

Например: 100 1 7 11

метод решения: вариация предыдущих задач

  • получение N строк и их обработка:

    • выделение имени

    • выделение номера класса

    • добавление в массив записей [1..11] имен учеников, в индекс, равный номеру класса. Так как после этот массив нужно будет сортировать, то помимо строки имен запись должна содержать номер параллели и количество учеников в ней (последнее значение должно увеличиваться на единицу при обработке каждой новой строки).

  • сортировка массива по полю количество учеников

  • вывод трех наибольших не пустых значения массива