{ Подготовка к присоединению стран }
EmpireB:= States[C1]; { Империя начинает расширяться от страны C1 }
EmpireN:= [C1]; { Здесь накапливаются имена присоединенных стран }
Counter:= 0; { Счетчик "завоевательных кампаний" }
{ Цикл, пока не будет присоединена страна C2 }
repeat
{ Подготовка к "завоевательной кампании" }
C:='A'; { Первый индекс в массиве множеств границ }
{ Цикл очередной "завоевательной кампании" по всем странам массива }
while C in Names do begin
{ Если страна имеет общую границу, присоединяем её к империи }
if (Temp * States[C]) <> [] then begin
EmpireB:= EmpireB + States[C]; { Добавляем границы }
EmpireN:= EmpireN + [C]; { Добавляем имя страны }
end;
C:=
end; { очередная кампания завершена }
Inc(Counter); { Наращиваем счетчик "завоевательных кампаний" }
until
{ Печать результата }
Writeln('Пересечений границ: ', Counter); Readln;
end.
Так была решена задача о минимальной сумме пошлин. Купцы, было, обрадовались, но вскоре явились с новым поклоном. Много ль толку от знания расходов, если не знаешь пути, по которому надо двигаться? «Сделай нам, братан, что-то типа навигатора для поиска кратчайшего пути между странами. Так, чтобы нам меньше этих пошлин платить, – умоляли купцы, – мы не поскупимся!» Ник обещал подумать, и продолжение истории следует.
Кто не любовался яркой световой рекламой? Рекламный щит составлен из лампочек, а изображение «рисуется» их включением и отключением, – этим управляет микропроцессор. Компьютер у нас под рукой, почему бы не соорудить такой рекламный щит прямо на экране? Научим компьютер выполнять с изображением на нашем щите три действия: два зеркальных отражения (относительно горизонтальной и вертикальной осей), а также инверсию изображения (рис. 113).

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

Размер картинки выберем таким, чтобы она помещалась на экране монитора. В текстовом режиме экран содержит 25 строк по 80 символов в каждой. Мы ограничимся 20 строками по 40 символов. Тогда воображаемая вертикальная ось нашего щита пройдет между 20-м и 21-м столбцами, а горизонтальная – между 10-й и 11- строками.
Разобравшись с видимым представлением щита, обратимся к невидимому: придумаем способ хранения в памяти «лампочек» щита. Годятся ли символьные переменные, – те же крестики и нолики? Да, но мне приглянулся способ, лучше отвечающий природе рекламного щита. Ведь каждая из лампочек может быть либо включена либо погашена, – их состояние можно отразить в булевых переменных. А сколько их понадобится? Не так уж мало –