Что означает uses в паскале

Pascal-Паскаль

Программирование. Модули Pascal-Паскаль

Программирование. Модули Pascal-Паскаль

Назначение модулей

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

Модуль Паскаля – это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части.

Основным принципом модульного программирования является принцип «разделяй и властвуй». Модульное программирование – это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам.

Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок. Аппаратно-зависимые подзадачи могут быть строго отделены от других подзадач, что улучшает мобильность создаваемых программ.

Термин «модуль» в программировании начал использоваться в связи с внедрением модульных принципов при создании программ. В 70-х годах под модулем понимали какую-либо процедуру или функцию, написанную в соответствии с определенными правилами. Например: «Модуль должен быть простым, замкнутым (независимым), обозримым (от 50 до 100 строк), реализующим только одну функцию задачи, имеющим одну входную и одну выходную точку».

Первым основные свойства программного модуля более-менее четко сформулировал Парнас (Parnas): «Для написания одного модуля должно быть достаточно минимальных знаний о тексте другого». Таким образом, в соответствии с определением, модулем могла быть любая отдельная процедура (функция) как самого нижнего уровня иерархии (уровня реализации), так и самого верхнего уровня, на котором происходят только вызовы других процедур-модулей.

Таким образом, Парнас первым выдвинул концепцию скрытия информации (information hiding) в программировании. Однако существовавшие в языках 70-х годов только такие синтаксические конструкции, как процедура и функция, не могли обеспечить надежного скрытия информации, поскольку подвержены влиянию глобальных переменных, поведение которых в сложных программах бывает трудно предсказуемым.

Решить эту проблему можно было только разработав новую синтаксическую конструкцию, которая не подвержена влиянию глобальных переменных.

Такая конструкция была создана и названа модулем. Изначально предполагалось, что при реализации сложных программных комплексов модуль должен использоваться наравне с процедурами и функциями как конструкция, объединяющая и надежно скрывающая детали реализации определенной подзадачи.

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

По своей организации и характеру использования в программе модули Паскаля близки к модулям-пакетам (PACKAGE) языка программирования Ада. В них так же, как и в пакетах Ады, явным образом выделяется некоторая «видимая» интерфейсная часть, в которой сконцентрированы описания глобальных типов, констант, переменных, а также приводятся заголовки процедур и функций. Появление объектов в интерфейсной части делает их доступными для других модулей и основной программы. Тела процедур и функций располагаются в исполняемой части модуля, которая может быть скрыта от пользователя.

Что означает uses в паскале. Смотреть фото Что означает uses в паскале. Смотреть картинку Что означает uses в паскале. Картинка про Что означает uses в паскале. Фото Что означает uses в паскале

Значение модулей для технологии разработки программного проекта может быть продемонстрировано диаграммой на рис. 2.

Модули представляют собой прекрасный инструмент для разработки библиотек прикладных программ и мощное средство модульного программирования. Важная особенность модулей заключается в том, что компилятор размещает их программный код в отдельном сегменте памяти. Длина сегмента не может превышать 64 Кбайт, однако количество одновременно используемых модулей ограничивается лишь доступной памятью, что позволяет создавать большие программы.

Структура модулей Паскаля

Всякий модуль Паскаля имеет следующую структуру:

Здесь UNIT – зарезервированное слово (единица); начинает заголовок модуля;

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

Заголовок модуля Паскаля и связь модулей друг с другом

Заголовок модуля Паскаля состоит из зарезервированного слова unit и следующего за ним имени модуля. Для правильной работы среды Турбо Паскаля и возможности подключения средств, облегчающих разработку больших программ, имя модуля Паскаля должно совпадать с именем дискового файла, в который помещается исходный текст модуля. Если, например, имеем заголовок модуля Паскаля

Имя модуля Паскаля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением:

Здесь USES – зарезервированное слово (использует);

— список модулей, с которыми устанавливается связь; элементы списка – имена модулей через запятую.

Интерфейсная часть

Пример фрагмента программы

Если теперь в основной программе написать предложение

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

Следует учесть, что все константы и переменные, объявленные в интерфейсной части модуля Паскаля, равно как и глобальные константы и переменные основной программы, помещаются компилятором Турбо Паскаля в общий сегмент данных (максимальная длина сегмента 65536 байт).

Исполняемая часть модуля Паскаля

Исполняемая часть модуля Паскаля начинается зарезервированным словом IMPLEMENTATION и содержит описания подпрограмм, объявленных в интерфейсной части. В ней могут объявляться локальные для модуля объекты – вспомогательные типы, константы, переменные и блоки, а также метки.

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

Пример модуля Паскаля

Инициирующая часть модуля Паскаля

Инициирующая часть завершает модуль Паскаля. Она может отсутствовать вместе с начинающим ее словом BEGIN или быть пустой – тогда вслед за BEGIN сразу следует признак конца модуля.

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

Пример модуля Паскаля

Не рекомендуется делать инициирующую часть пустой, лучше ее опустить.

Компиляция модулей Паскаля

При компиляции модуля или основной программы в режиме COMPILE все, упоминаемые в предложении USES модули, должны быть предварительно откомпилированы, и результаты компиляции должны быть помещены в одноименные файлы с расширением TPU (от англ. Turbo Pascal Unit). Файл с расширением TPU создается автоматически при компиляции модуля Паскаля.

Пример ошибок модуля Паскаля

Это ограничение можно обойти, если «спрятать» предложение USES в исполняемые части зависимых модулей:

Пример исправленных ошибок модуля Паскаля

Дело в том, что Турбо Паскаль разрешает ссылки на частично откомпилированные модули, что приблизительно соответствует опережающему описанию подпрограммы. Если интерфейсные части независимы (это обязательное условие!), Турбо Паскаль сможет идентифицировать все глобальные объекты в каждом модуле, после чего откомпилирует тела модулей обычным способом.

Доступ к объявленным в модуле Паскаля объектам

Пусть, например, мы создаем модуль Паскаля, реализующий сложение и вычитание комплексных чисел с помощью процедур:

Пример модуля реализующий сложение и вычитание комплексных чисел

В следующей программе осуществляются арифметические операции над комплексными числами:

Арифметические операции над комплексными числами

Этот оператор выведет на экран содержимое «закрытой» типизированной константы, объявленной в модуле Паскаля из предыдущего примера.

Стандартные модули Паскаля

Пример стандартного модуля Паскаля

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

Модули Паскаля TURBO 3 и GRAPH 3 введены для обеспечения совместимости с ранней версией системы Турбо Паскаль.

Источник

Что означает uses в паскале

В состав Free Pascal входит целый ряд стандартных модулей, перечислим некоторые из них:

· math – модуль содержит много дополнительных математических, тригонометрических и статистических функций;

· wincrt – модуль для поддержки терминал подобного текстового окна в экране. При этом не нужно писать специальный код для поддержки окон.

Для полного описания экранной позиции кроме символа следует задать еще и атрибут, содержащий информацию о цвете символа и фона на экране. Символ и атрибут занимают в памяти по 1 байту. В модуле CRT определена переменная

Структура байта-атрибута показана на рис. Л.1.

Что означает uses в паскале. Смотреть фото Что означает uses в паскале. Смотреть картинку Что означает uses в паскале. Картинка про Что означает uses в паскале. Фото Что означает uses в паскале

Рис. Л.1. Структура байта-атрибута консоли

Рассмотрим некоторые функции и процедуры модуля CRT :

Все экранные координаты, кроме координат самого окна, являются зависимыми относительно текущего окна. Например, GotoXY (1, 1) всегда будет устанавливать курсор в верхний левый угол текущего окна.

11. FUNCTION WhereX : Byte и

Программа, очищающая экран и печатающая слово ПРИВЕТ! в заданном месте экрана.

Пример программы, которая рисует улитку Паскаля в текстовом режиме при помощи символа *.

TextBackground(Black); // цвет фона черный

X := succ ( Random (80)); // начальная координата окна меньше пределов

Window(X, Y, X + Random(15)+1, Y + Random(10)+1);

TextBackground(Random(16)); // цвет фона окна

Источник

Что означает uses в паскале

Содержание раздела PASCAL

Раздел объявлений и соглашений

В этом разделе программы компилятору можно дать указания, определяющие режимы его работы при трансляции последующей программы. Эти указания оформляются в тексте программы как комментарии, начинающиеся парой символов “<$” и заканчивающиеся символом “>”. Такие указания могут содержать указания на включение в текст программы фрагментов других программ (из соответствующих файлов), информацию для отладчика или сведения о необходимости использования арифметического сопроцессора.

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

Оператор USES может быть использован в программе только один раз, при этом у него есть свое четко определенное место, (он предваряет все прочие операторы и разделы). Названия библиотек, подключаемых к программе с помощью оператора USES, должны разделяться запятой.

Например: USES Crt, Graph, String, Overlay;

Что означает uses в паскале. Смотреть фото Что означает uses в паскале. Смотреть картинку Что означает uses в паскале. Картинка про Что означает uses в паскале. Фото Что означает uses в паскале

Следом за строкой, содержащей оператор USES, идут строки объявляющие:

метки (LABEL) (хотя их использование противоречит классической технике программирования на Паскале, дающей превосходную стройность и однозначность понимания кода программы);

определенные пользователем типы данных (TYPE);

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

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

Например: LABEL, 1, 5, 9999, h2, 4t32e, metka_l;

В разделе CONST содержатся определения констант, используемых в программе.

CONST
Year=1995;
Month=’Июль’;
Day=’Понедельник’;

Примечание: Заметьте, что при присвоении значений константам вместо оператора присвоения “:=” используется просто знак равенства “=”. Тип константы определяется автоматически по виду значения, присваемового константе и не может быть сложным.

Раздел описания типов TYPE позволяет программисту определить новый тип в программе. В данном разделе могут быть использованы ранее определенные в разделе CONST константы.

В разделе описания глобальных переменных VAR содержится список переменных, используемых в программе, и определяется их тип.

Примечание: Разделы LABEL, CONST, TYPE и VAR могут располагаться в произвольном месте программы. При этом каждый из этих разделов может встречаться в программе несколько раз или вообще не встречаться в ней.

Что означает uses в паскале. Смотреть фото Что означает uses в паскале. Смотреть картинку Что означает uses в паскале. Картинка про Что означает uses в паскале. Фото Что означает uses в паскале

Непосредственно за заголовком программы следует основной блок программы, ограниченный операторами BEGIN и END.. Как уже говорилось, оператор END. указывает компилятору, что программа закончена, в отличие от операторов END;, которые завершают блоки, процедуры, модули и т.п.
Текст, следующий за оператором END., игнорируется транслятором.

Примечание: Ступенчатое оформление программы преследует только «эстетические» цели и не влияет на эффективность работы компилятора или программы. Компилятор обрабатывает Паскаль-программы с любым расположением операторов: как разделенные построчно нажатием клавиши [Enter] при подготовке текста программы, так и записанные подряд в одну строку.

Например:
program hello; begin writeln(‘Привет, Ваня!’); writeln;
writeln(‘Я надеюсь, что мы отлично’); writeln (‘
сработаемся!’); end.

Однако «воспитанные» программисты не могут себе позволить оформлять программы подобным образом, ведь таже программа, записанная с табуляцией, читается гараздо легче:
program hello;
<заголовок программы>
begin
<начало сегмента команд программы>
writeln(‘Привет, Ваня!’);
<вывод строки>
writeln;
<перевод позиции курсора на строку ниже>
writeln(‘Я надеюсь, что мы отлично’);
<вывод строки>
writeln(‘сработаемся!’);
<вывод строки>
end.

Источник

Что означает uses в паскале. Смотреть фото Что означает uses в паскале. Смотреть картинку Что означает uses в паскале. Картинка про Что означает uses в паскале. Фото Что означает uses в паскале

Итак, уважаемые читатели ZedPost.Ru, продолжаем наши уроки по паскалю. В прошлый раз мы узнали о том, что такое двумерные массивы, сегодня мы узнаем о модуле CRT. Подробнее далее.

Что такое модуль CRT? Это модуль в Паскаль, который может выводить в отдельном диалоговом окне цветные символы на цветном фоне. Также с помощью него можно настроить размер этого окна, переместить курсор в определённую точку экрана, а также очищать это диалоговое окно.
Модуль CRT в паскале поддерживает 16 цветов, нумерация которых начинается с 0 (от 0 до 15 включительно). Также можно просто прописывать названия цветов не используя цифры.
Для того чтобы использовать модуль CRT его нужно подключить с помощью следующей строчки:

Для того чтобы закрасить фон нужно использовать такую команду:

Надо сказать, что textbackground следует применять вместе с процедурой очистки экрана, которая описана ниже.

Для очистки экрана (1) и установки позиции курсора (2) используются соответственно следующие команды:

Цвет текста определяет процедура:

Для временной задержки существует процедура delay

Запускать программу в Pascal с использованием модуля CRT нужно при помощи клавиш Shift+F9.

С помощью этого модуля игры для компьютера, телефона не напишешь. Для windows phone 7 игры написаны на совсем другом языке программирования.

Пример программы на Паскаль с использованием модуля CRT:

Источник

Pascal. Основы

Как и любой другой язык программирования, Паскаль имеет свой алфавит. Под алфавитом языка программирования понимают набор символов, с помощью которых могут быть образованы величины, выражения и операторы.

Алфавит языка Паскаль включает:

Для описания величин в языке Паскаль используются константы и переменные.

Константы – величины, не изменяющие своего значения в процессе выполнения программы.

Переменные – величины, в ходе выполнения программы могут быть неоднократно переопределены.

Типы констант и переменных

Паскаль позволяет использовать следующие типы констант и переменных:

Каждому из перечисленных типов соответствует свой набор операций по обработке данных. Так, для целочисленного и вещественного типов используются операции арифметических действий (сложение, вычитание, умножение, деление). Для логического типа выполняются операции and – логическое и, or – логическое или, xor – логическое исключающее или, not – логическое не.

Кроме того, Паскаль предусматривает возможность вычисления для каждого типа данных значений стандартных функций.

В данной таблице приведены стандартные арифметические функции.

Вычисление косинуса числа

Вычисление синуса числа

Вычисление абсолютного значения числа

Вычисление квадрата числа

Вычисление квадратного корня числа

Вычисление арктангенса числа

Вычисление экспоненты числа

Вычисление натурального логарифма числа

Вычисление четности числа

Вычисление целой части числа

Примечание: Во всех тригонометрических функциях число x указывают в радианах.

Переменные и константы с помощью знаков операций, стандартных функций и круглых скобок могут связываться в выражения. Правила их записи близки к соответствующим правилам записи математических выражений. При вычислении значений выражений устанавливается следующий приоритет выполнения операций:

Операции одного и того же старшинства выполняются слева направо в порядке их появления в выражении. Выражения в круглых скобках вычисляются в первую очередь.

Любая программа, написанная в Паскаль, строится в соответствии с рядом правил, определяющих ее структуру. В частности, в состав любой программы должны входить три раздела:

Лишь в простейших программах второй из перечисленных разделов может отсутствовать. Каждый раздел имеет в свою очередь составные части, так что в целом структуру программы, написанной на языке Паскаль, можно представить следующим образом.

Раздел объявлений и соглашений

Кроме того, в программе могут использоваться комментарии – любой текст, ограниченный (*…*) или <…>. Комментарий может быть помещен в любом месте программы.

Рассмотрим более подробно назначение каждой части программы.

Заголовок программы состоит из зарезервированного слова Program и идентификатора – имени программы.

В строке Uses производится подключение используемых в данной программе библиотек (стандартных модулей). Паскаль содержит ряд модулей, в том числе:

В разделе описания меток содержатся сведения об используемых в программе метках. Переход по ним выполняется оператором goto. Метки отделяются от помечаемого оператора знаком “:”, должны быть описаны, могут быть целочисленными (от 0 до 9999) или идентификаторами. Каждая описанная метка обязательно должна появиться в программе.

Для описания констант используется ключевое слово const, имя константы, знак “=” и значение константы:

В разделе описания типов Type программист может задавать свои типы, сформированные на основе определенных правил с использованием стандартных типов.

В разделе Var описываются переменные, используемые в программе:

В списке переменных их имена отделяются запятой, в качестве имени типа можно использовать один из стандартных типов или идентификатор типа, объявленного в разделе Type. Описанные таким образом переменные могут использоваться в пределах блока, где они были описаны, а также во всех вложенных блоках, если в них эти переменные не описаны повторно.

В разделе текстов процедур и функций в соответствии с определенными правилами производится описание процедур и функций.

Процедура

Процедура имеет следующую структуру:

Раздел объявлений процедуры может включать подразделы Label, const, type, var для обявления локальных меток, постоянных, типов и переменных собственно. Слово «локальный» означает, что все перечисленные объекты могут быть использованы только в рамках данной процедуры или других подчиненных ей процедур.

Функция

Описание функций отличается по структуре от описания процедур только заголовком:

Функция – это особый вид процедуры, результатом разботы которой является единственное значение. С этим значением связывается имя функции, в то время как име процедуры служит только для ее вызова.

Основной блок программы состоит из ряда операторов и является выполняемой частью программы. Он начинается со слова Begin и заканчивается словом end, после которого должна стоять точка. Операторы языка Паскль не привязаны к определенной позиции строки. В одной строке можно указывать несколько операторов. Исполняемые операторы отделяются друг от друга знаком « ; ».

Допускается перенос с одной строки на другую частей операторов (но без разделения ключевых слов).

Как было указано выше, основной блок программы представляет собой некоторый набор операторов.

Оператор – неделимый элемент программы, который позволяет выполнить определенные действия.

Операторы должны записываться строго в соответствии с правилами, установленными для данного языка программирования. Рассмотрим основные операторы языка Паскаль.

Оператор присваивания

Данный оператор предписывает запомнить некоторое значение в переменной. Значение и индентификатор переменной разделены парой знаков « := ». Типы объектов с обеих сторон данного знака должны строго совпадать, за исключением того случая, когда тип переменной – real, а тип выражения – integer.

Общий вид оператора:

Операторы ввода/вывода

Немногие программы обходятся без ввода данных и совсем нет таких, которые не выводят полученные результаты. Ввод данных с клавиатуры дисплея выполняется операторами:

При выполнении оператора read (readln) программа останавливается и ждет, пока нужное количество чисел не будет введено с клавиатуры. Вводимые числа разделяют пробелами или нажатием клавиши Enter. По завершении ввода данных следует нажать Enter, после чего компьютер перейдет к выполнению следующего оператора программы.

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

Выражения в списке разделяются запятыми. Значения выражений сначала вычисляются, а затем выводятся на экран. Буквы ln имеют то же значение, что и в операторе readln.

Вслед за выражением через двоеточие можно указать ширину поля экрана, в котором разместится выводимое значение.

займет для вывода числа 10 три позиции, а для вывода числа 55 – шесть позиций на экране.

При выводе вещественных значений можно указать, сколько десятичных цифр следует сохранить в дробной части числа, причем количество цифр указывается вслед за шириной поля после двоеточия.

Если х =3,14159, то оператор

займет для вывода переменной х шесть позиций, две из которых будут использованы для дробной части х (т.е. значение х будет округлено до 3,14).

Для того, чтобы прокомментировать выводимые значения, в список ввода можно помещать строки любых символов, заключенные в одинарные кавычки – апострофы.

При выполнении фрагмента программы

На экран будет выведено:

Приведем пример Паскаль-программы.

Задача – составить программу для подсчета суммы двух заданных чисел. Для этого необходимо ввести текст в память компьютера и сохранить на диске под именем pr1. Далее запустить программу на выполнение. При наличии ошибок внести соответствующие исправления. Получить результаты работы программы.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ФункцияНазначение