Аннотация
Первый том серии «Программирование: введение в профессию» включает две основные части.
В первую часть книги вошли избранные сведения из истории вычислительной техники, обсуждение некоторых областей математики, непосредственно используемых программистами (таких как алгебра логики, комбинаторика, позиционные системы счисления), математических основ программирования (теория вычислимости и теория алгоритмов), принципы построения и функционирования вычислительных систем, начальные сведения о работе с командной строкой ОС 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.