Читаем Описание языка PascalABC.NET полностью

После обработки набора исходных данных необходимо проверить, найдена ли хотя бы одна улица с АЗС, предлагающей марку бензина 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); { 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 { улица уже содержится в массиве s }

begin

k := 1;

if s[j].max < p then

s[j].max := p;

break;

end;

if k = 0 then { улица еще не содержится в массиве s }

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.

<p>Электронный задачник Programming Taskbook</p><p>Общее описание</p>

Электронный задачник 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).

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных