ИНФ_ДЕМО 2013 (1092111), страница 6
Текст из файла (страница 6)
В первойстроке сообщается число пассажиров N, которое не меньше 3, но непревосходит 1000; во второй строке – количество ячеек в камере хранения K,которое не меньше 10, но не превосходит 1000. Каждая из следующих Nстрок имеет следующий формат:<Фамилия> <время сдачи багажа> <время освобождения ячейки>,где <Фамилия> – строка, состоящая не более чем из 20 непробельныхсимволов; <время сдачи багажа> – через двоеточие два целых числа,соответствующие часам (от 00 до 23 – ровно 2 символа) и минутам (от 00 до59 – ровно 2 символа); <время освобождения ячейки> имеет тот же формат.<Фамилия> и <время сдачи багажа>, а также <время сдачи багажа> и <времяосвобождения ячейки> разделены одним пробелом. Время освобождениябольше времени сдачи.Сведения отсортированы в порядке времени сдачи багажа. Каждому изпассажиров в камере хранения выделяется свободная ячейка с минимальнымномером.
Если в момент сдачи багажа свободных ячеек нет, то пассажируходит, не дожидаясь освобождения одной из них.Требуется написать программу (укажите используемую версию языкапрограммирования, например Borland Pascal 7.0), которая будет выводить наэкран для каждого пассажира номер ему предоставленной ячейки (можносразу после ввода данных очередного пассажира). Если ячейка пассажиру непредоставлена, то его фамилия не печатается.© 2013 Федеральная служба по надзору в сфере образования и науки Российской ФедерацииПрограмма верно читает входные данные, сразу запоминая только времяокончания хранения багажа в массиве, соответствующем ячейкам камерыхранения. Подходящая ячейка определяется путём последовательногопросмотра элементов этого массива до первого свободного или такого, вкотором записано время окончания хранения, не превосходящее текущеговремени сдачи очередного багажа.
В случае удачного выбора ячейки фамилияи номер ячейки распечатываются. Баллы начисляются только за программу,которая решает задачу хотя бы для частного случая. Время можно какпереводить в минуты, так и хранить в виде строки, сравнивая затем строкинепосредственно. В последнем случае упрощается ввод данных© 2013 Федеральная служба по надзору в сфере образования и науки Российской ФедерацииДемонстрационный вариант ЕГЭ 2013 г. ИНФОРМАТИКА и ИКТ, 11 класс.(2013 - 37 / 39)Демонстрационный вариант ЕГЭ 2013 г.
ИНФОРМАТИКА и ИКТ, 11 класс.(2013 - 38 / 39)Пример правильной программы на языке Паскаль:Пример правильной программы на языке Бейсик:var p:array[1..1000] of integer;c,c1:char;i,j,N,K:integer;name:string;time1,time2:integer;beginreadln(N,K);for i:=1 to K dop[i]:=0;for i:=1 to N dobeginname:='';repeatread(c);name:=name+cuntil c=' '; {считана фамилия}read(c,c1); {считаны часы первого времени}time1:=60*((ord(c)-ord('0'))*10+ ord(c1)-ord('0'));read(c,c,c1); {пропущено двоеточие, и считаны минуты}time1:=time1+(ord(c)-ord('0'))*10+ord(c1)-ord('0');read(с,c,c1); {считаны часы второго времени}time2:=60*((ord(c)-ord('0'))*10+ ord(c1)-ord('0'));readln(c,c,c1); {пропущено двоеточие, и считаны минуты}time2:=time2+(ord(c)-ord('0'))*10+ord(c1)-ord('0');for j:=1 to K doif p[j]<=time1 thenbeginp[j]:=time2;writeln(name,' ',j);break;end;end;end.DIM p(1000) AS INTEGERDIM s AS STRINGDIM nm AS STRINGINPUT nINPUT kFOR i = 1 TO kp(i) = 0NEXT iFOR j = 1 TO nLINE INPUT sc$ = MID$(s, 1, 1)i = 1WHILE NOT (c$ = " ")i = i + 1c$ = MID$(s, i, 1)WENDnm = MID$(s, 1, i)time1 = (ASC(MID$(s, i + 1, 1)) - ASC("0")) * 60 * 10time1 = time1 + (ASC(MID$(s, i + 2, 1)) - ASC("0")) * 60time1 = time1 + (ASC(MID$(s, i + 4, 1)) - ASC("0")) * 10time1 = time1 + (ASC(MID$(s, i + 5, 1)) - ASC("0"))time2 = (ASC(MID$(s, i + 7, 1)) - ASC("0")) * 60 * 10time2 = time2 + (ASC(MID$(s, i + 8, 1)) - ASC("0")) * 60time2 = time2 + (ASC(MID$(s, i + 10, 1)) - ASC("0")) * 10time2 = time2 + (ASC(MID$(s, i + 11, 1)) - ASC("0"))FOR i = 1 TO kIF time1 >= p(i) THENp(i) = time2PRINT nm, iGOTO 10ENDIFNEXT i10 NEXT jENDУказания по оцениваниюБаллыПрограмма работает верно, т.е.
корректно выделяет из входных4данных время, ищет первую свободную ячейку и распечатывает вслучае успеха результат. Фамилии пассажиров и время сдачи багажапри этом не запоминаются. Допускается наличие в тексте программыодной синтаксической ошибки: пропущен или неверно указан знакпунктуации; неверно написано или пропущено зарезервированноеслово языка программирования; не описана или неверно описанапеременная;применяетсяоперация,недопустимаядлясоответствующего типа данных. Допускается наличие одной изнерациональностей: сохраняются фамилии пассажиров; сохраняетсякак время сдачи багажа, так и время освобождения ячейки; до© 2013 Федеральная служба по надзору в сфере образования и науки Российской Федерации© 2013 Федеральная служба по надзору в сфере образования и науки Российской ФедерацииДемонстрационный вариант ЕГЭ 2013 г.
ИНФОРМАТИКА и ИКТ, 11 класс.(2013 - 39 / 39)анализа данных очередного пассажира анализируется массив,соответствующий ячейкам камеры хранения на предметосвобождения ячеек к данному времениПрограмма работает в целом верно, но содержит, по крайней мере,две из указанных выше нерациональностей; допускается наличие дотрёх синтаксических ошибок, описанных вышеПрограмма работает в целом верно, но не всегда определяет дляхранения допустимую ячейку с минимальным номером илинекорректно работает в случае отсутствия свободных ячеек.Возможно, в реализации алгоритма содержится одна-две ошибки(используется знак «<» вместо «>», «or» вместо «and» и т.п.).Возможно, некорректно организовано считывание входных данных.Допускается до трёх ошибок в ходе решения задачи.
Допускаетсяналичие до пяти синтаксических ошибок, описанных вышеПрограмма неверно работает при некоторых входных данных и,возможно, содержит ошибку в определении свободной ячейки.Допускается до четырёх различных ошибок в ходе решения задачи, втом числе описанных в критериях. Допускается наличие до семисинтаксических ошибок, описанных вышеЗадание выполнено неверно© 2013 Федеральная служба по надзору в сфере образования и науки Российской Федерации3210.