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

Тут можно читать онлайн Олег Деревенец - Песни о Паскале - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-db. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Песни о Паскале
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.5/5. Голосов: 21
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

Песни о Паскале - читать книгу онлайн бесплатно, автор Олег Деревенец
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

{ P_59_1 – Первичный файл проекта }

uses MyLibr; { импортируемый модуль }

var F : text; S : string;

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

{... }

end.

Как видите, расширение файла в списке USES не указывают, а сам список завершает точка с запятой. Теперь все, что компилятор не найдет в основной программе, он будет искать в файле «MyLibr». Говорят, что первичный файл импортирует модуль «MyLibr». Компилируется такой проект из двух файлов как обычно – нажатием клавиши F9. Впрочем, для успешной компиляции время ещё не пришло.

Теперь обратимся к файлу «MyLibr». На первый взгляд он содержит всё нужное для компиляции, но это не так. Ведь это не программа, а лишь часть её – модуль. Файлу надо придать особую форму – форму библиотечного модуля, что достигается вставкой в него четырех обязательных ключевых слов (ниже они выделены).

unit MyLibr; { имя библиотечного модуля }

interface { секция интерфейса }

{...}

{- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -}

implementation { секция реализации }

{...}

end.

Обратите внимание на последнее слово END с точкой. Так же, как в главной программе, оно обязательно и завершает библиотечный модуль.

Но открывает файл ключевое слово UNIT (модуль), – оно назначает модулю имя. Имя указывают за словом UNIT через пробел, эта строка завершается точкой с запятой. Имя модуля должно совпадать с именем файла, но без расширения PAS. Впрочем, имя может быть и длиннее – до 63-х символов, но первые восемь из них должны повторять имя файла. Итак, присвойте модулю имя MyLibr.

Следующие два ключевых слова: INTERFACE (интерфейс) и IMPLEMENTATION (реализация) делят модуль на две части. Эти части так и называются: секция интерфейса и секция реализации. Важно правильно расставить эти ключевые слова. Кстати, точка с запятой за ними не ставится!

Начнем с секции реализации, хотя по порядку она идет второй. Эта секция должна вмещать всё (или почти всё), что требуется для работы модуля: объявления типов, констант, переменных, а также процедуры и функции. Иными словами, в неё сейчас свалим то, что перетащили из основной программы. Итак, слово IMPLEMENTATION мы поставим перед описанием типов, и в результате библиотечный файл станет таким.

unit MyLibr; { имя библиотечного модуля }

interface { секция интерфейса }

{- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -}

implementation { секция реализации }

type PRec = ^TRec;

TRec = record

mStr : string;

mNext : PRec;

end;

var Stack : PRec; { Голова стека }

procedure Push(const arg : string);

{... }

end;

function Pop(var arg : string): boolean;

{... }

end;

end.

Теперь обратимся к секции интерфейса. Хотя слово INTERFACE уже на месте, но секция пока пуста. Каково её назначение? Здесь пора рассказать о видимости объектов, размещенных в модуле. Точнее, о видимости их за пределами этого модуля. Оказывается, что всё, что помещено нами в секцию реализации, невидимо извне, скрыто от посторонних глаз. Так устроено по причинам, которые мы обсудим позже. Но для компиляции проекта надо приоткрыть часть модуля внешнему миру. Иначе из главной программы (которая проживает в другом файле) не будут видны нужные ей идентификаторы библиотечного модуля. Для этого и нужна секция интерфейса.

На обозрение выставим только те идентификаторы, которые нужны внешним модулям. Что именно? Как это узнать? Самый верный способ – запустить компиляцию первичного модуля, и тогда компилятор покажет первый незнакомый идентификатор, – его описание и разместим в секции интерфейса. Повторная компиляция выявит следующий неизвестный идентификатор. Так постепенно мы обнаружим, что первичный модуль нуждается в переменной Stack, процедуре Push и функции Pop. Впрочем, вам это было и так ясно.

Как выставить напоказ константы, переменные и описания типов? Надо просто напросто перенести их из секции реализации в секцию интерфейса. Но с процедурами и функциями так не выйдет. В секцию интерфейса нельзя вставлять исполняемый код – только объявления! Но можно разместить заголовки процедур и функций, для чего просто скопировать их ещё раз. Сделав это, мы получим следующий библиотечный модуль.

unit MyLibr; { имя библиотечного модуля }

interface { секция интерфейса }

type PRec = ^TRec;

TRec = record

mStr : string;

mNext : PRec;

end;

var Stack : PRec; { Голова стека }

procedure Push(const arg : string); { заголовок процедуры }

function Pop(var arg : string): boolean; { заголовок функции }

{- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -}

implementation { секция реализации }

procedure Push(const arg : string);

{... }

end;

function Pop(var arg : string): boolean;

{... }

end;

end.

Описание типа и переменная Stack объявлены лишь один раз – в секции интерфейса, – отсюда они видны как внутри, так и вне библиотечного модуля. Повторное их объявление в секции реализации будет ошибкой. Заголовки процедур и функций в секциях интерфейса и реализации должны совпадать. Но в секции реализации разрешено не повторять списки параметров, и тогда компилятор возьмет их из секции интерфейса.

Всё, что размещено в секции интерфейса, называют списком экспорта библиотечного модуля. Таким образом, первичный модуль программы импортирует то, что экспортирует библиотечный модуль, – так налаживается связь между модулями. На рис. 146 показаны окна с файлами нашего проекта: вверху – первичный файл, внизу – файл библиотечного модуля.

Рис146 Окна преобразованного проекта P591 Компиляция проекта Теперь - фото 213
Рис.146 – Окна преобразованного проекта P_59_1
Компиляция проекта

Теперь все готово для компиляции и запуска нашего проекта. Перейдите в окно первичного модуля и нажмите сочетание Ctrl+F9, – оба файла будут откомпилированы, и программа запустится как обычно. Я не зря прошу перейти в окно именно первичного модуля. Если при нажатии Ctrl+F9 активным будет другое окно, компилятор выдаст обидное сообщение: «Cannot run a unit» – нельзя запустить модуль. В самом деле, модуль – это лишь часть программы, он не может быть исполнен. Компилятор же считает, что в активном окне содержится главная программа и пытается её запустить.

Чтобы не спотыкаться здесь, настройте в IDE имя первичного файла, то есть файла с главной программой, – здесь это «P_59_1». Для этого обратитесь к пункту меню Compile –> Primary file… и укажите там нужный файл (рис. 147). Теперь компилятор будет знать, с какого файла начинать компиляцию. Но и библиотечный файл «MyLibr» он тоже будет обрабатывать всякий раз, когда вы измените в нём что-то, – это очень удобно.

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

Интервал:

Закладка:

Сделать


Олег Деревенец читать все книги автора по порядку

Олег Деревенец - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Песни о Паскале отзывы


Отзывы читателей о книге Песни о Паскале, автор: Олег Деревенец. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x