Главная страница

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


Скачать 0.56 Mb.
НазваниеОбработка данных, вводимых из файла в виде последовательности чисел
Дата06.12.2021
Размер0.56 Mb.
Формат файлаdoc
Имя файлаege27_old.doc
ТипДокументы
#293908
страница3 из 11
1   2   3   4   5   6   7   8   9   10   11
Party one

Party two

Party three

Party three

Party two

Party three

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

Party three

Party two

Party one

При этом следует учитывать, что количество голосов избирателей в исходном списке может быть велико (свыше 1000), а количество различных партий в этом списке не превосходит 10.


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

На вход программе в первой строке подается количество людей в списке N. В каждой из последующих N строк находится информация в следующем формате:

<Фамилия> <Имя> <Дата рождения>

где <Фамилия> – строка, состоящая не более, чем из 20 символов без пробелов, <Имя> – строка, состоящая не более, чем из 20 символов без пробелов, <Дата рождения> – строка, имеющая вид ДД.ММ.ГГГГ, где ДД – двузначное число от 01 до 31, ММ – двузначное число от 01 до 12, ГГГГ – четырехзначное число от 1800 до 2100.

Пример входной строки:

Иванов Сергей 27.03.1993

Программа должна вывести фамилию и имя самого старшего человека в списке.

Пример выходных данных:

Иванов Сергей

Если таких людей, несколько, то программа должна вывести их количество. Пример вывода в этом случае:

3

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

Если наибольший балл набрали более двух человек, нужно вывести только их количество. Если наибольший балл набрал один человек, а следующий балл набрало несколько человек, нужно вывести только фамилию и имя лучшего. Известно, что информатику сдавали не менее 5 учеников школы № 50.

На вход программе в первой строке подается количество учеников списке N. В каждой из последующих N строк находится информация в следующем формате:

<Фамилия> <Имя> <Школа> <Балл>

где <Фамилия> – строка, состоящая не более, чем из 20 символов без пробелов, <Имя> – строка, состоящая не более, чем из 20 символов без пробелов, <Школа> – целое число от 1 до 99, <Балл> – целое число от 1 до 100.

Пример входной строки:

Иванов Сергей 50 87

Пример выходных данных, когда найдено два лучших:

Иванов Сергей

Сергеев Иван

Если больше двух учеников набрали высший балл, то программа должна вывести их количество. Пример вывода в этом случае:

8

Если высший балл набрал один человек, а следующий балл набрало несколько человек, то программа должна вывести только фамилию и имя лучшего. Пример вывода в этом случае:

Иванов Сергей

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

На вход программе в первой строке подается количество учеников списке N. В каждой из последующих N строк находится информация в следующем формате:

<Фамилия> <Имя> <Школа> <Балл>

где <Фамилия> – строка, состоящая не более, чем из 20 символов без пробелов, <Имя> – строка, состоящая не более, чем из 20 символов без пробелов, <Школа> – целое число от 1 до 99, <Балл> – целое число от 1 до 100.

Пример входной строки:

Иванов Сергей 50 87

Пример выходных данных, когда найдено три школы:

50 87 23

Пример вывода в том случае, когда найдена одна школа:

18

Средний балл = 85

  1. На вход программе подается строка (длиной не более 200 символов), в которой нужно зашифровать все английские слова (словом называется непрерывная последовательность английских букв, слова друга от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Строка заканчивается символом #, других символов # в строке нет. Каждое слово зашифровано с помощью циклического сдвига на длину этого слова. Например, если длина слова равна K, каждая буква в слове заменяется на букву, стоящую в английском алфавите на K букв дальше (алфавит считается циклическим, то есть, за буквой Z стоит буква A). Строчные буквы при этом остаются строчными, а прописные – прописными. Символы, не являющиеся английскими буквами, не изменяются.

Требуется написать программу, которая будет выводить на экран текст зашифрованного сообщения. Например, если исходный текст был таким:

Day, mice. "Year" is a mistake#

то результат шифровки должен быть следующий:

Gdb, qmgi. "Ciev" ku b tpzahrl#

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

Районный методист решила, что оценку «отлично» должны получить 20% участников (целое число, с отбрасыванием дробной части). Для этого она должна определить, какой балл должен был набрать ученик, чтобы получить «отлично». Если невозможно определить такой балл, чтобы «отлично» получили ровно 20% участников, «отлично» должно получить меньше участников, чем 20%. Если таких участников не окажется (наибольший балл набрали больше 20% участников) — эти и только эти ученики должны получить «отлично».

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

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

<Фамилия> <Имя> <Номер школы> <Количество баллов>

где <Фамилия> — строка, состоящая не более чем из 30 символов без пробелов, <Имя> — строка, состоящая не более, чем из 20 символов без пробелов, <Номер школы> — целое число в диапазоне от 1 до 99, <Количество баллов> — целое число в диапазоне от 1 до 100. Эти данные записаны через пробел, причём ровно один между каждой парой (то есть, всего по три пробела в каждой строке).

Пример входной строки:

Иванов Иван 50 87

Пример выходных данных:

78

  1. На вход программе подается последовательность символов, заканчивающаяся точкой. Требуется написать программу, которая определяет, есть ли в этой последовательности десятичные цифры, и выводит наибольшее число, которое можно составить из этих цифр. Ведущих нулей в числе быть не должно (за исключением числа 0, запись которого содержит ровно одну цифру). Если цифр нет, программа должна вывести на экран слово «Нет», а если есть – слово «Да» и в следующей строчке искомое число. Например, если исходная последовательность была такая:

Day 10, mice 8: "Year" 7 is a mistake 91.

то результат должен быть следующий:

Да

987110

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

123124456.

то результат должен быть следующий:

356124

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

for i:=99921 downto 20

то результат должен быть следующий:

29192

  1. На вход программе подается предложение на английском языке, заканчивающееся точкой. Требуется написать программу, которая определяет, можно ли переставить английские буквы этого предложения (не учитывая остальные символы) так, чтобы получить палиндром – слово, которое читается одинаково слева направо и справа налево. Строчные и прописные буквы не различаются. Если это сделать нельзя, программа должна вывести на экран слово «Нет», а если можно – слово «Да» и в следующей строчке искомое слово прописными буквами. Если таких слов несколько, нужно вывести последнее в алфавитном порядке слово. Например, если исходная последовательность была такая:

Deed daad N.

то результат должен быть следующий:

Да

EDDANADDE

  1. На вход программе подается набор символов, заканчивающийся точкой. Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая сначала будет определять, есть ли в этом наборе символы, соответствующие десятичным цифрам. Если такие символы есть, то можно ли переставить их так, чтобы полученное число было симметричным (читалось одинаково как слева направо, так и справа налево). Ведущих нулей в числе быть не должно, исключение – число 0, запись которого содержит ровно один ноль. Если требуемое число составить невозможно, то программа должна вывести на экран слово “NO”. А если возможно, то в первой строке следует вывести слово “YES”, а во второй – искомое симметричное число. Если таких чисел несколько, то программа должна выводить максимальное из них. Например, пусть на вход подаются следующие символы:

Do not 911 to 09 do.

В данном случае программа должна вывести

YES

91019

  1. На вход программе подается последовательность символов, среди которых могут быть и цифры, заканчивающаяся точкой. Требуется написать программу, которая составляет и выводит минимальное число из тех цифр, которые не встречаются во входных данных. Ноль не используется. Если во входных данных встречаются все цифры от 1 до 9, то следует вывести «0». Например, если исходная последовательность была такая:

1A734B39.

то результат должен быть следующий:

2568

  1. На вход программе подаются сведения о ячейках камеры хранения багажа. В первой строке – текущая дата – день (ровно две цифры, от 01 до 31), затем через точку – месяц (ровно две цифры, от 01 до 12). Во второй строке сообщается количество занятых ячеек N (не меньше 3, но не больше 1000). Каждая из следующих строк имеет формат:

<номер ячейки> <дата сдачи багажа>

Номер ячейки – это целое число, дата – 5 символов: день (ровно две цифры, от 01 до 31), затем через точку – месяц (ровно две цифры, от 01 до 12). Сведения отсортированы по номерам ячеек. Все даты относятся к одному календарному году. Считать, что в феврале 28 дней.

Нужно вывести номера тех ячеек, в которых багаж хранится более 3 дней в хронологическом порядке сдачи багажа. Например, если исходные данные были такие:

04.06

3

1000 01.06

1001 31.05

2007 21.05

то результат должен быть следующий:

2007

1001

  1. На вход программе подаются сведения о студентах некоторого вуза. В первой строке сообщается количество студентов N (не более 100). Каждая из следующих строк имеет формат:

<фамилия> <имя> <курс> <стипендия>

Все данные в строке разделяются одним пробелом. Фамилия состоит не более, чем из 20 символов, имя – не более, чем из 15. Курс – целое число от 1 до 5, стипендия – целое число. Требуется написать программу, которая будет выводить фамилии и имена всех студентов, имеющих максимальные стипендии на каждом курсе.

Пример входных строк:

25

Федорова Ирина 5 4500

Семенов Илья 3 2800

Пример выходных строк:

Курс 1

Петров Иван

Иванов Сидор

Курс 3

Смирнов Максим

  1. Некоторый поезд в пути следования останавливается на N станциях (станция номер 1 — начальная, а станция номер N — конечная). Дан список пассажиров поезда, для каждого из которых известно, на какой станции он садится, а на какой — выходит. Напишите эффективную по времени работы и используемой памяти программу, которая по этим данным определяет, на каких перегонах (то есть между какими соседними станциями) в поезде было наименьшее число пассажиров. На вход программе в первой сроке подается количество станций N и количество пассажиров P. В каждой из последующих P строк находится информация о пассажирах в следующем формате:

<Фамилия> <Имя> <станция посадки> <станция выхода>

где <Фамилия> – строка, состоящая не более, чем из 20 символов без пробелов, <Имя> – строка, состоящая не более, чем из 20 символов без пробелов, <станция посадки> и <станция выхода> — числа от 1 до N, при этом номер станции посадки меньше номера станции выхода.

Пример входных данных:

6 3

Иванов Сергей 2 4

Сергеев Петр 1 3

Петров Кирилл 3 6

Программа должна вывести список перегонов, на которых в поезде было наименьшее число пассажиров. Каждый перегон выводится в виде двух последовательных номеров станций, разделенных знаком “-“. Для примера выше результат работы программы должен быть таким (на данных перегонах в поезде находилось наименьшее число пассажиров):

1-2

4-5

5-6

При выполнении задания следует учитывать, что значение N не превосходит 10, а значение P может быть большим (до 1000).

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

<Фамилия> <Имя> <Номер школы> <Балл>

где < Фамилия > - строка, состоящая не более, чем из 20 символов без пробелов, <Имя> - строка, состоящая не более, чем из 20 символов без пробелов, <Номер школы> - число от 1 до 99, <Балл> – число от 0 до 100. Порядок следования строк - произвольный.

Пример входных данных:

б

Иванов Сергей 7 74

Сергеев Петр 3 82

Петров Кирилл 7 85

Кириллов Егор 3 82

Егоров Николай 7 85

Николаев Иван 19 85

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

7

Примечание. В данном примере максимальный балл по району равен 85, его набрало 2 учащихся из школы 7 и 1 учащийся из школы 19, поэтому выводится только номер школы 7.

При выполнении задания следует учитывать, что значение N может быть велико (до 10.000).


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

x2 обозначается как «a»

x обозначается как «b»

Например, уравнение запишется в виде строки
1   2   3   4   5   6   7   8   9   10   11


написать администратору сайта