На вход программе подаются сведения о телефонах всех сотрудников некоторого

Вопросы с просьбами помочь с отладкой («почему этот код не работает?») должны включать желаемое поведение, конкретную проблему или ошибку и минимальный код для её воспроизведения прямо в вопросе. Вопросы без явного описания проблемы бесполезны для остальных посетителей. См. Как создать минимальный, самодостаточный и воспроизводимый пример.

Закрыт 4 года назад .
Готовясь к экзамену по информатике (егэ). Мне попалась такая задача:

На вход программе подаются сведения о сотрудниках некоторой организации. В первой строке сообщается количество сотрудников N, которое не меньше 5, но не превосходит 1000, каждая из следующих N строк имеет следующий формат:
, где: — строка, состоящая не более чем из 20 символов;
— строка, состоящая не более чем из 15 символов;
— целые числа. Под стажем понимается количество полных лет, отработанных сотрудником в данной организации. Оклад и премия — целые числа, не превышающие 1 000 000. Эти элементы входной строки отделены друг от друга одним пробелом. Пример входной строки:

Разговор с тем, кто поддерживает армию России / The supporter of Russian troops


Иванов механик 15 25500 5000

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

Решаю задачу на Паскале (других языков не знаю). Работаю по следующему принципу: считываю строки в цикле от 1 до N. Затем в процедуре Disturb разбиваю эти строки на соответствующие ячейки массивов. Процедура работает — проверял. Когда n равно 1, 2 всё нормально. Когда n=3 и больше программа прекращает своё выполнение с ошибкой №201.

К чему я не так обращаюсь? Просьба не переделывать мой ход решения.

Var data, name, dol: Array[1..1000] of String; sta, zar: Array[1..1000] of Integer; n, i, j, max1, max2, max3, index: Integer; Procedure Disturb; Var t: string; t1, t2: Integer; Begin index := pos(‘ ‘, data[i]); name[i] := copy(data[i], 1, index-1); Delete(data[i], 1, index); index := pos(‘ ‘, data[i]); dol[i] := copy(data[i], 1, index-1); Delete(data[i], 1, index); index := pos(‘ ‘, data[i]); t := copy(data[i], 1, index-1); Val(t, sta[i]); Delete(data[i], 1, index); index := pos(‘ ‘, data[i]); t := copy(data[i], 1, index-1); Val(t, t1); Delete(data[i], 1, index); t := copy(data[i], 1, Length(data[i])); Val(t, t2); zar[i] := t1+t2; End; Begin Readln(n); For i := 1 to n do Readln(data[i]); For i := 1 to n do Begin Disturb; End; max1 := 0; max2 := 0; max3 := 0; End.

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

Var data, name, dol: Array[1..1000] of String; sta, zar: Array[1..1000] of LongInt; n, i, j, max1, max2, max3, index: LongInt; Procedure Disturb; Var t: string; t1, t2, err: LongInt; Begin index := pos(‘ ‘, data[i]); name[i] := copy(data[i], 1, index-1); Delete(data[i], 1, index); index := pos(‘ ‘, data[i]); dol[i] := copy(data[i], 1, index-1); Delete(data[i], 1, index); index := pos(‘ ‘, data[i]); t := copy(data[i], 1, index-1); Val(t, sta[i], err); Delete(data[i], 1, index); index := pos(‘ ‘, data[i]); t := copy(data[i], 1, index-1); Val(t, t1, err); Delete(data[i], 1, index); t := copy(data[i], 1, Length(data[i])); Val(t, t2, err); zar[i] := t1+t2; End; Begin Readln(n); For i := 1 to n do Readln(data[i]); For i := 1 to n do Disturb; max1 := 0; max2 := 0; max3 := 0; for i := 1 to n do if (max1 < zar[i]) then max1:=zar[i]; for i := 1 to n do if ((max2 < zar[i]) and (zar[i] < max1)) then max2 := zar[i]; for i := 1 to n do if ((max3

Источник: ru.stackoverflow.com

Певчих – что коррупция сделала с Россией / Pevchikh – What Corruption Has Done to Russia

Описание основных алгоритмов работы с комбинированными типами данных

Цель: описание алгоритмов обработки комбинированных типов данных в среде программирования Turbo Pascal 7.0.

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

Обо мне

Задачник от WITHOUTnik для подготовки к ЕГЭ по информатике.

Задача 1

На вход программы от 28 до 31 строк, которые содержат информацию о среднесуточной влажности воздуха всех дней одного из месяцев 2010 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение влажности.

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

Задача 2

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

Читайте также:
Как написать батник для запуска программы

Здесь <Страна >- строка, состоящая не более чем из 25 символов; , , — строки, каждая из которых содержит число заработанных наград. Пример входных строк:

Источник: komb-data.blogspot.com

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

Единственный в мире Музей Смайликов

Самая яркая достопримечательность Крыма

Скачать 0.56 Mb.

Задачи для тренировки 1 :

  1. На вход программы подается 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2008 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о месяце (месяцах), среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.
  1. На вход программы подается текст на английском языке, заканчивающийся точкой (другие символы “.” в тексте отсутствуют). Требуется написать программу, которая будет определять и выводить на экран английскую букву, встречающуюся в этом тексте чаще всего, и количество там таких букв. Строчные и прописные буквы при этом считаются не различимыми. Если искомых букв несколько, то программа должна выводить на экран первую из них по алфавиту. Например, пусть файл содержит следующую запись:
    It is not a simple task. Yes!
    Чаще всего здесь встречаются буквы I, S и T (слово Yes в подсчете не учитывается, так как расположено после точки). Следовательно, в данном случае программа должна вывести два символа, разделенных пробелом: I 3
  1. На вход программы подаются произвольные алфавитно-цифровые символы. Ввод этих символов заканчивается точкой. Требуется написать программу, которая будет печатать последовательность строчных английских букв (‘a’ ‘b’. ‘z’) из входной последовательности и частот их повторения. Печать должна происходить в алфавитном порядке. Например, пусть на вход подаются следующие символы:

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

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

Здесь – строка, состоящая не более чем из 20 символов; – строка, состоящая не более чем из 15 символов. При этом и разделены одним пробелом. Примеры входных строк:

Иванова Мария

Петров Сергей

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

Иванова Мария

Петров Сергей

Бойцова Екатерина

Петров Иван

Иванова Наташа

будут сформированы следующие логины:

  1. На городской олимпиаде по информатике участникам было предложено выполнить 3 задания, каждое из которых оценивалось по 25-балльной шкале. Известно, что общее количество участников первого тура олимпиады не превосходит 250 человек. На вход программы подаются сведения о результатах олимпиады. В первой строке вводится количество участников N. Далее следуют N строк, имеющих следующий формат:

Здесь – строка, состоящая не более чем из 20 символов; – строка, состоящая не более чем из 15 символов; – строка, содержащая три целых числа, разделенных пробелом, соответствующих баллам, полученным участником за каждое задание первого тура. При этом и , и разделены одним пробелом. Примеры входных строк:

Петрова Ольга 25 18 16

Калиниченко Иван 14 19 15

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

  1. На вход программы подаются сведения о результатах соревнований по школьному многоборью. Многоборье состоит из соревнований по четырем видам спорта, участие в каждом из которых оценивается баллами от 0 до 10 (0 баллов получает ученик, не принимавший участия в соревнованиях по данному виду спорта). Победители определяются по наибольшей сумме набранных баллов. Известно, что общее количество участников соревнований не превосходит 100.

Здесь – строка, состоящая не более чем из 20 символов; – строка, состоящая не более чем из 15 символов; — строка, содержащая четыре целых числа, разделенных пробелом, соответствующих баллам, полученным на соревнованиях по каждому из четырех видов спорта. При этом и , и разделены одним пробелом. Примеры входных строк:

Иванова Мария 5 8 6 3

Петров Сергей 9 9 5 7

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

  1. В некотором вузе абитуриенты проходят предварительное тестирование, по результатам которого могут быть допущены к сдаче вступительных экзаменов в первом потоке. Тестирование проводится по двум предметам, по каждому предмету абитуриент может набрать от 0 до 100 баллов. При этом к сдаче экзаменов в первом потоке допускаются абитуриенты, набравшие по результатам тестирования не менее 30 баллов по каждому из двух предметов. На вход программы подаются сведения о результатах предварительного тестирования. Известно, что общее количество участников тестирования не превосходит 500.
    В первой строке вводится количество абитуриентов, принимавших участие в тестировании, N. Далее следуют N строк, имеющих следующий формат:
Читайте также:
Модуль выбора программ схема

Здесь – строка, состоящая не более чем из 20 символов; – строка, состоящая не более чем из 15 символов; – строка, содержащая два целых числа, разделенных пробелом, соответствующих баллам, полученным на тестировании по каждому из двух предметов. При этом и , и разделены одним пробелом. Примеры входных строк:

Ветров Роман 68 59

Анисимова Екатерина 64 88

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

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

где – строка, состоящая не более чем из 20 символов, — строка, состоящая не более чем из 4-х символов (буква, точка, буква, точка), – семизначный номер, 3-я и 4, я, а также 5-я и 6-я цифры которого разделены символом «–». и , а также и разделены одним пробелом. Пример входной строки:

Иванов П.С. 555-66-77

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

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

где – символьная строка (не более 20 символов), – символьная строка (не более 15 символов), – число от 7 до 11, – целое число набранных участником баллов. и , и , а также и разделены одним пробелом. Пример входной строки:

Семенов Егор 11 225

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

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

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

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

Семенов Егор

Второй вариант выходных данных (несколько искомых участников):

  1. В молочных магазинах города Х продается сметана с жирностью 15, 20 и 25 процентов. В городе X был проведен мониторинг цен на сметану. Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого вида сметаны, сколько магазинов продают ее дешевле всего. На вход программе сначала подается число магазинов N. В каждой из следующих N строк находится информация в следующем формате:

где – строка, состоящая не более, чем из 20 символов без пробелов, – строка, состоящая не более, чем из 20 символов без пробелов, – одно из чисел – 15, 20 или 25, – целое число в диапазоне от 2000 до 5000, обозначающее стоимость одного литра сметаны в копейках. и , и , а также и разделены ровно одним пробелом. Пример входной строки:

Перекресток Короленко 25 3200

Программа должна выводить через пробел 3 числа – количество магазинов, продающих дешевле всего сметану с жирностью 15, 20 и 25 процентов. Если какой-то вид сметаны нигде не продавался, то следует вывести 0.

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

  1. Школьная олимпиада по информатике проводилась для учеников 7-11-х классов, участвующих в общем конкурсе. Каждый участник олимпиады мог набрать от 0 до 70 баллов. Для определения призеров олимпиады сначала отбираются 25% участников, показавших лучшие результаты. Если у последнего участника, входящего в 25%, оказывается такое же количество баллов, как и у следующих за ним в итоговой таблице, все они считаются призерами только тогда, когда набранные ими баллы больше половины максимально возможных; иначе все они не считаются призерами.

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

где – строка, состоящая не более, чем из 30 символов, – строка, состоящая не более, чем из 15 символов, – число от 7 до 11, – целое число от 0 до 70 набранных участником баллов. и , и , а также и разделены одним пробелом. Пример входной строки:

Семенов Сидор 11 66

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

Читайте также:
Клиентская программа командной строки mysql проверяет

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

1 5 8 12 22

  1. В некотором вузе абитуриенты проходили предварительное тестирование, по результатам которого они могут быть допущены к сдаче вступительных экзаменов в первом потоке. Тестирование проводится по трём предметам, по каждому предмету абитуриент может набрать от 0 100 баллов. При этом к сдаче экзаменов в первом потоке допускаются абитуриенты, набравшие по результатам тестирования не менее 30 баллов по каждому из трёх предметов, причём сумма баллов должна быть не менее 140. На вход программы подаются сведения о результатах предварительного тестирования. Известно, что общее количество участников тестирования не превосходит 500.

Здесь – строка, состоящая не более чем из 20 символов; – строка, состоящая не более чем из 15 символов, – строка, содержащая два целых числа, разделенных пробелом – баллы, полученные на тестировании по каждому из трёх предметов. При этом и , и разделены одним пробелом. Пример входной строки:

Романов Вельямин 48 39 55

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

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

где – строка, состоящая не более, чем из 20 символов без пробелов, – строка, состоящая не более, чем из 20 символов без пробелов, – одно из чисел – 92, 95 или 98, – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках.

и , и , а также и разделены ровно одним пробелом. Пример входной строки:

Синойл Цветочная 95 2250

Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0.

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

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

GAANN.

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


    В соревнованиях по многоборью (из M видов спорта) участвуют N спортсменов (N

где – строка, состоящая не более, чем из 20 символов без пробелов, – строка, состоящая не более, чем из 12 символов без пробелов, – M целых чисел, обозначающие количество баллов, набранных спортсменом в каждом из видов многоборья.

и , и , а также отдельные числа в поле разделены ровно одним пробелом. Пример входных строк:

Иванов Сергей 100 30 78 13

Петров Антон 90 16 98 14

Сидоров Юрий 100 70 30 21

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

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

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

Сидоров Юрий 221 1

  1. На вход программе подаются сведения о пассажирах, сдавших свой багаж в камеру хранения. В первой строке задано текущее время: через двоеточие два целых числа, соответствующие часам (от 00 до 21, ровно 2 символа) и минутам (от 00 до 59, ровно 2 символа). Во второй строке задается количество пассажиров N, которое не меньше 10, но не превосходит 1000. В каждой из последующих N строк находится информация о пассажирах в следующем формате:

где – строка, состоящая не более, чем из 20 символов без пробелов, – через двоеточие два целых числа, соответствующие часам (от 00 до 21, ровно 2 символа) и минутам (от 00 до 59, ровно 2 символа). и разделены ровно одним пробелом. Пример входных строк:

Иванов 12:00

Петров 10:12

Сидоров 12:12

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

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

Zb Ra Ca Dab Ra.

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

Xz Py Ay Byz Py.

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

Источник: topuch.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru