Программирование: введение в профессию. Том 1: азы программирования

image of the cover

Аннотация

Первый том серии «Программирование: введение в профессию» включает две основные части.

В первую часть книги вошли избранные сведения из истории вычислительной техники, обсуждение некоторых областей математики, непосредственно используемых программистами (таких как алгебра логики, комбинаторика, позиционные системы счисления), математических основ программирования (теория вычислимости и теория алгоритмов), принципы построения и функционирования вычислительных систем, начальные сведения о работе с командной строкой ОС Unix.

Вторая часть посвящена начальным навыкам составления компьютерных программ на примере Free Pascal под ОС Unix. Материал ориентирован на изучение в будущем языка Си, так что, в частности, много внимания уделено работе с адресами и указателями, построению списков и других динамических структур данных; в то же время многие возможности Паскаля из рассмотрения исключены. Даются сведения о правилах оформления текстов программ, о тестировании и отладке.

Публикация в бумажном варианте

Опубликовано издательством МАКС Пресс (Москва) в 2016 году. ISBN 978-5-317-05222-5.

Электронная версия

Электронная версия, идентичная печатному изданию, доступна здесь: http://www.stolyarov.info/books/pdf/progintro_vol1.pdf

Статус бумажной версии

Книга распространялась среди донэйторов проекта и поступала в свободную продажу. К настоящему моменту распродана.

Архив примеров программ

Архив, содержащий примеры программ из первого и второго тома, можно скачать здесь: http://www.stolyarov.info/books/extra/progintro_vol1_2_examples.tgz

Напоминаем, что раскрыть этот архив можно командой

   tar -xzf progintro_vol1_2_examples.tgz

Дополнительная информация

Восстановление исходных настроек терминала

У тех, кто попытается воспользоваться модулем CRT, рано или поздно возникнет вопрос, ну почему же невозможно из программы на Паскале перед завершением работы восстановить режим работы терминала в его исходном виде. Надо сказать, что это действительно неудобно. Но, хотя в самом FreePascal никакого специального средства для этого не предусмотрено, восстановить терминал всё же можно — вот так:

        write(#27'[0m');

Это выдаст на терминал стандартную Esc-последовательность, сбрасывающую все настройки в состояние по умолчанию.

Датчик псевдослучайных чисел

При программировании игр обычно требуется внести в происходящее некое разнообразие; этого можно добиться с помощью случайных или псевдослучайных чисел. В Паскале для генерации псевдослучайных чисел предусмотрена процедура Randomize и функция Random. Вызов Randomize обычно вставляется куда-то в самое начало главной программы (нужно, чтобы эта процедура была вызвана один раз, причём раньше первого обращения к функции Random):

   begin
       Randomize;
       { ... }

Далее функция Random, если её вызвать без параметров, вернёт (псевдо)случайное число типа real на полуинтервале от 0 до 1 (включая ноль, но не включая единицу), а если нужно случайное целое число, то можно вызвать функцию с целочисленным параметром, и она вернёт случайное число типа longint от 0 до N, не включая N (где N — значение параметра). Например:

   const
       maxnum = 500;
   var
       x: real;
       k: integer;
   begin
       { ... }
       x := random;
       k := random(maxnum) + 1;
       { ... }

Здесь переменная x получит псевдослучайное значение от 0.00 до 1.00 (не включая 1.00), а переменная k — значение от 1 до 500.