После обработки набора исходных данных необходимо проверить, найдена ли хотя бы одна улица с АЗС, предлагающей марку бензина M (для этого достаточно сравнить значение ns с нулем). Если ни одна улица не найдена, то надо вывести строку Нет"; в противном случае требуется выполнить сортировку массива s по указанному набору ключей и вывести полученные данные в требуемом порядке. Поскольку размер массива невелик, для его сортировки вполне допустимо использовать один из простых алгоритмов, например, алгоритм
Приведем один из вариантов правильного решения задачи:
uses PT4Exam;
type
Street = record
name: string;
max: integer;
end;
var
m, n, ns, i, j, k, p: integer;
s: array[1..30] of Street;
s0: string;
x: Street;
c: char;
begin
Task('ExamTaskC53');
readln(m);
readln(n);
ns := 0;
for i := 1 to n do
begin
read(k);
if k <> m then
readln
else
begin
s0 := '';
read(c);
read(c);
while c <> ' ' do
begin
s0 := s0 + c;
read(c);
end;
read(c);
while c <> ' ' do
read(c);
readln(p);
k := 0;
for j := 1 to ns do
if s[j].name = s0 then
begin
k := 1;
if s[j].max < p then
s[j].max := p;
break;
end;
if k = 0 then
begin
Inc(ns);
s[ns].name := s0;
s[ns].max := p;
end;
end;
end;
if ns = 0 then
writeln('Нет')
else
begin
for k := 1 to ns - 1 do
for i := 1 to ns - k do
if (s[i].max > s[i + 1].max) or
(s[i].max = s[i + 1].max) and
(s[i].name > s[i + 1].name) then
begin
x := s[i];
s[i] := s[i + 1];
s[i + 1] := x;
end;
for i := 1 to ns do
writeln(s[i].max,' ',s[i].name);
end;
end.
Электронный задачник Programming Taskbook
Общее описание
Электронный задачник Programming Taskbook предназначен для обучения программированию на языках Pascal, Visual Basic, C++, C#, Visual Basic .NET, Python и Java. Он содержит 1300 учебных заданий, охватывающих все основные разделы базового курса программирования: от скалярных типов и управляющих операторов до сложных структур данных и рекурсивных алгоритмов. Начиная с версии 4.10, в базовый набор заданий входят группы, связанные с ЕГЭ по информатике и ИКТ.
Автором задачника Programming Taskbook является доцент факультета математики, механики и компьютерных наук Южного федерального университета Михаил Эдуардович Абрамян ([email protected]).
Версия 4.11 задачника Programming Taskbook реализована для следующих сред:
Borland Delphi 7.0 и 2006, в частности, Turbo Delphi 2006 for Windows, Free Pascal Lazarus 1.0, Microsoft Visual Basic 5.0 и 6.0, Microsoft Visual C++ 6.0, Microsoft Visual Studio .NET 2003, 2005, 2008, 2010 и 2012 (языки Visual C++, Visual Basic .NET и Visual C# .NET), Python 2.5, 2.6, 2.7, 3.2, NetBeans IDE 6.x и 7.x (язык Java). Задачник включен в учебную систему программирования Pascal ABC (sunschool.math.sfedu.ru, автор доц. С. С. Михалкович), образуя единый программный комплекс Pascal ABC & Programming Taskbook". Задачник может также использоваться совместно с системой программирования PascalABC.NET и веб-средой разработки ProgrammingABC.NET WDE (www.pascalabc.net/WDE).