Олег Деревенец - Песни о Паскале

Здесь есть возможность читать онлайн «Олег Деревенец - Песни о Паскале» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Базы данных, tbg_computers, network_literature, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Песни о Паскале: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Песни о Паскале»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Аннотация: Изложены основы программирования на языке Паскаль. По ходу обучения решаются десятки задач (использован проектный подход). От читателя не требуется начальных познаний в программировании, но круг затронутых тем ориентирует его в профессиональную область. Книга адресована школьникам средних и старших классов, желающим испытать себя в «олимпийских схватках». Будет полезна студентам-первокурсникам и преподавателям информатики.

Песни о Паскале — читать онлайн бесплатно полную книгу (весь текст) целиком

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

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

{ Массив множеств TStates – это границы всех стран }

TStates = array ['A'..'Z'] of TBoundSet;

{ Процедура чтения множества чисел (границ) из строки файла }

procedure ReadSet(var aFile: text; var aSet : TBoundSet);

var k : integer;

begin

while not Eoln(aFile) do begin

Read(aFile, k);

aSet:= aSet+[k];

end;

Readln (aFile);

end;

{ Глобальные переменные }

var FileIn : text; { Входной файл, полученный со спутника }

States : TStates; { Массив множеств границ }

Names : TNameSet; { Множество имен всех стран на карте }

C1, C2 : char; { Имена стран "откуда" и "куда" }

C : char; { Рабочая переменная для имен стран }

EmpireB: TBoundSet; { Границы империи }

Temp : TBoundSet; { Предыдущие границы империи }

EmpireN: TNameSet; { страны империи }

Counter: integer; { Счетчик пересечений границ (результат) }

begin {--- Главная программа ---}

{ Открываем входной файл }

Assign(FileIn, 'P_38_3.in'); Reset(FileIn);

{ Готовим цикл чтения массива множеств }

Names:=[ ]; { Названия стран }

C:= 'A'; { Первый индекс в массиве стран }

while not Eof(FileIn) do begin { Цикл чтения массива множеств }

ReadSet(FileIn, States[C]); { Чтение одного множества }

Names:= Names+[C]; { Добавляем имя страны }

C:= Succ(C) ; { Переход к следующей букве }

end;

Close(FileIn); { Теперь входной файл можно закрыть }

repeat { «Упрямый» цикл чтения правильных имен стран }

Write('Откуда: '); Readln(C1);

Write('Куда : '); Readln(C2);

{ Переводим имена стран в верхний регистр }

C1:= UpCase(C1); C2:= UpCase(C2);

{ Если имена не совпадают и оба достоверны, значит ввод правильный,

в таком случае выходим из цикла, а иначе повторяем ввод }

if (C1<>C2) and (C1 in Names) and (C2 in Names)

then Break

else Writeln('Ошибка! Повторите ввод имен стран');

until False;

{ Подготовка к присоединению стран }

EmpireB:= States[C1]; { Империя начинает расширяться от страны C1 }

EmpireN:= [C1]; { Здесь накапливаются имена присоединенных стран }

Counter:= 0; { Счетчик "завоевательных кампаний" }

{ Цикл, пока не будет присоединена страна C2 }

repeat

{ Подготовка к "завоевательной кампании" }

C:='A'; { Первый индекс в массиве множеств границ }

Temp:= EmpireB ; { Запоминаем предыдущие границы империи }

{ Цикл очередной "завоевательной кампании" по всем странам массива }

while C in Names do begin

{ Если страна имеет общую границу, присоединяем её к империи }

if (Temp * States[C]) <> [] then begin

EmpireB:= EmpireB + States[C]; { Добавляем границы }

EmpireN:= EmpireN + [C]; { Добавляем имя страны }

end;

C:= Succ(C) ; { Следующий индекс в массиве множеств границ }

end; { очередная кампания завершена }

Inc(Counter); { Наращиваем счетчик "завоевательных кампаний" }

until C2 in EmpireN ; { Пока не будет присоединена страна C2 }

{ Печать результата }

Writeln('Пересечений границ: ', Counter); Readln;

end.

Так была решена задача о минимальной сумме пошлин. Купцы, было, обрадовались, но вскоре явились с новым поклоном. Много ль толку от знания расходов, если не знаешь пути, по которому надо двигаться? «Сделай нам, братан, что-то типа навигатора для поиска кратчайшего пути между странами. Так, чтобы нам меньше этих пошлин платить, – умоляли купцы, – мы не поскупимся!» Ник обещал подумать, и продолжение истории следует.

Крестики-нолики

Кто не любовался яркой световой рекламой? Рекламный щит составлен из лампочек, а изображение «рисуется» их включением и отключением, – этим управляет микропроцессор. Компьютер у нас под рукой, почему бы не соорудить такой рекламный щит прямо на экране? Научим компьютер выполнять с изображением на нашем щите три действия: два зеркальных отражения (относительно горизонтальной и вертикальной осей), а также инверсию изображения (рис. 113).

Рис113 Операции с изображением на щите Прежде всего определим как - фото 168
Рис.113 – Операции с изображением на щите

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Песни о Паскале»

Представляем Вашему вниманию похожие книги на «Песни о Паскале» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Песни о Паскале»

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

x