Comments
Comments are human-readable notes or other kinds of annotations to support understanding of code. They are not interpreted by the compiler and ignored when building your program.
Contents
Block comments
Block comments are delimited by the characters < >
or by the bigrams (* *) . The latter is a relict from times where computer keyboards did not necessarily have curly braces. It is not wrong to use the bigrams, but they are at large superseded by the use of curly braces. There is one place where the (* and *) bigrams can be useful. if you are testing code and want to «dike out» or disable certain sections by marking them as inoperative, the pieces can be surrounded by these bigrams, and it will not matter if there are < and >comments inside of them.
In Pascal block comments can be nested. However, nested block comment delimiters have to match: If a block comment starts with an opening curly brace, it can not be closed by asterisk-closing-parenthesis but has to be closed by another closing curly brace.
Line comments
Line comments or inline comments start with comment delimiter // and continue until the end of the line. Example:
Comments as declaration hints in Lazarus IDE
The Lazarus IDE can display tooltip hints when mouseovering identifiers. You can control this in Options > Editor > Completion and Hints.
The hint shows the function or variable definition, but can also include custom descriptive text taken from comment lines directly above the declaration.
Best practice for good comments
Mentioning some general tips for writing “good” comments may not be left out here, too:
Комментарии в Паскаль (Pascal)
Июнь 11th, 2013
admin
Как известно, написать код — это еще не залог успеха. Этот код нужно комментировать. Это является залогом успеха. Даже если Вы через год откроете свою программу в Паскале и почитаете свои комментарии, то сразу разберетесь. В языке Паскаль (Pascal), как и во многих других языках программирования существуют комментарии.
Комментарии разделяют на строчные и блочные. Строчный комментарий обычно комментирует одну строку и начининается с двух бэкслэшей (//). Блочный комментарий способен закомментировать несколько строк одновременно (обозначение <>).
Чем отличаются комментарии — вроде все понятно с первого раза. Но чем же они отличаются? Строчный комментарий создан для использования пользователем для комментирования своего кода. А блочный комментарий — для отладки приложения. Представим такой момент: вы закомментировали часть кода блочно, и на ваше место пришел коллега. Решил часть блока кода отладить и закомментировал блочно. Что произойдет в данной ситуации? Путаница.
Вывод один: лучше комментировать свой код строчными комментариями, а отлаживать блочными.
. комментарии в pascal комментарии в паскале коментарии паскаль комментарии к паскалю как записываются комментарии в программе
Структура программы
Блоки программы должны следовать в правильном порядке. Большая часть блоков программы может быть опущена, по этой причине минимальная работающая программа в Lazarus имеет вид:
Структура модуля на языке Pascal
Комментарии в языке Паскаль
В примерах кода мы использовали комментарии. Это текст который нужен для понимания того, что делает код. Компилятор Lazarus игнорирует комментарии, соответственно они никак не влияют на размер готовой программы.
Free Pascal поддерживает комментарии двух типов:
- однострочные — начинаются с символов // и продолжаются до конца строки
- многострочные
- начинаются с символа <и заканчиваются символом >
- начинаются с символов (* и заканчиваются символами *)
Коментарии могут быть написаны в одной строке с кодом.
Их можно использовать для отключения части кода программы во время отладки.Love Soft
Загрузки всякие Связь
Содержание
Язык pascal для скриптов
Литература
В скриптах используется диалект языка паскаль. Для написания своих скриптов и понимания уже готовых скриптов необходимы следующие понятия:
При желании можно еще освоить:
Можно почитать любой учебник по паскалю, например, соответствующие главы книги
Структура программы
Программа на языке Паскаль состоит из:
Последовательность именно такая и изменять ее нельзя.
Ниже структура модуля дана более подробно (в разделе Процедуры и функции).
Операторы должны заканчиваться точкой с запятой.
Операторные скобки begin..end служат для группировки операторов. Там где по синтаксису языка позволено написать один оператор, можно написать составной оператор, блок — то есть группу операторов, заключенную между begin и end.
Константы
В Паскале, как и в других языках программирования, данные делятся на константы и переменные. Для получения текущих значений переменных и констант к ним можно обращаться в программе по именам.
Константы должны быть описаны в специальном разделе, который начинается зарезервированным словом const (constant – константа).
Константы не меняют своего значения в ходе выполнения программы.
Использование именованных констант позволяет улучшить читаемость программы и облегчает внесение в нее изменений.
Переменные
Все переменные должны быть объявлены в разделе описания переменных
В скриптах тип переменной можно опускать (в стандарте языка тип указывать обязательно).
Имя переменной подобно ящичку, который можно заполнять различными значениями, чего нельзя сделать с константой.
Идентификаторы в скрипте (имена переменных, функций, процедур и т.д.) подчиняются следующим правилам: должны начинаться с буквы (a..z или A..Z), или знака подчеркивания '_', и затем могут следовать буквы или цифры или знак '_'. Пробелы или другие символы в именах не допустимы.
Примеры: VarName, _Some, V1A2
Пример неправильных имен: 2Var, My Name, Some-more
В паскале прописные и строчные буквы в именах переменных не различаются.
Комментарии
Можно использовать символы // в начале или середине строки — это позволяет закомментировать часть строки до конца текущий строки.
Чтобы закомментировать несколько строк, используйте (* *) или < >. Пример
Оператор присвоения
Обычно переменная получает текущее значение в результате выполнения оператора присваивания.
Например, s := 0 – переменной s присваивается значение 0.
Это значение будет сохраняться до тех пор, пока этой переменной не будет присвоено новое значение (при этом предыдущее значение теряется безвозвратно).
Логические операции
Над логическими аргументами в паскале определены следующие операции:
Условия, соединенные связками and или or, необходимо заключать в скобки.
Операции отношения
Типы данных
Тип переменных сообщает о том, сколько отвести под них памяти и что за данные там планируется сохранять.
В зависимости от типа операции могут выполняться особым образом. Например сложение чисел и сложение строк дают разный результат.
В скриптах поддерживаются многие стандартные типы данных.
Строки
Строки заключаются в одинарные кавычки. Оператор + служит для склеивания двух строк.
С помощью символа # можно задать символ по его коду.
Строковые переменные описываются с помощью слова string.
Также в скриптах поддерживаются типы Char, PChar, WideChar, PWideChar, AnsiString, WideString
Числа
Целые числа описываются с помощью слова integer, вещественные (дробные) — с помощью слова real.
Также в скриптах поддерживаются типы данных: Double, Extended, Currency, Variant, Longint, Cardinal, Longword, Single, Byte, Shortint, Word, Smallint.
Логические значения
Логические переменные описываются с помощью слова boolean. Есть две константы, которые могут хранится в логических переменных — это false (ложь) и true (истина).
Для описания дат служит тип DateTime. Он представляет собой число, в целой части которого записано число дней, а в дробной части — часть суток, прошедшая с полуночи. То есть 0.5 — это 12 часов, 1.25 — это один день и 6 часов и т.д.
Условный оператор
Существует две формы условного оператора:
Если условие истинно, то оператор1 (или блок операторов между begin и end) выполняется.
Если условие ложно и присутствует часть else, то оператор2 выполняется.
Перед else точка с запятой никогда не ставится.
Перед end точку с запятой можно ставить, а можно и не ставить — аналогично тому, как перед закрывающей скобкой знак препинания можно не ставить, так как скобка сама является разделителем.
Вложенные условные операторы
После then и после else может располагаться только один оператор. Разумеется, этим оператором может быть условный оператор. При этом уровень таких вложений неограничен.
Задача. На вход программе поступают три целых числа. Выведите наибольшее из них.
Рассмотрим запись вида:
Такая запись может быть истолкована двояко с точки зрения принадлежности части else оператор2 первому или второму оператору if. Эта двусмысленность разрешается следующим правилом: else всегда соответствует первому предшествующему ему оператору if, для которого ветка else еще не указана.
Цикл for
for переменная-счетчик := начальное_значение to конечное_значение do оператор
Счетчик устанавливает в начальное_значение, затем в цикле выполняется оператор (или блок), счетчик увеличивается на 1, и если счетчик превысил конечное_значение цикл завершается.
Форма оператора for с указанием шага приращения step:
break — досрочный выход из цикла.
continue — продолжить цикл
Цикл while .. do
Тело цикла while выполняется до тех пор, пока истинно условие, указанное после ключевого слова while. Если условие ложно при первой же проверке, то цикл ни разу не выполнится.
Если условие никогда не станет ложным, цикл будет выполнятся бесконечно (программа зависнет).
Цикл repeat
После слова until указывается условие выхода из цикла. Тело цикла выполняется хотя бы один раз, после чего проверяется истинность условия.
Оператор выбора case
Вычисляется выражение selectorExpression и сравнивается с каждым из выражений caseexprn, выполняется тот оператор (или блок), где значения совпали. В противном случае выполняется оператор elsestatement.
Часть Else указывать необязательно.
Процедуры и функции
Часто повторяющийся кусок кода, который решает определенную подзадачу, можно оформлять как именованную подпрограмму — процедуру или функцию.
Процедура содержит набор операторов, связанных по смыслу. Процедура ничего не возвращает в точку вызова.
Функция в отличие от процедуры должна вернуть некоторое значение как результат выполнения функции, и это значение должно быть присвоено специальной переменной Result.
Если внутри функции не используется присваивание вычисленного значения имени функции или переменной Result, то функция возвращает в точку вызова непредсказуемое значение.
Аргументы функций могут передаваться по значению и по ссылке (с указанием слова var).
Локальные и глобальные переменные
Внутри процедур и функций могут быть описаны свои внутренние переменные — они называются локальными. Пример — переменная Temp, см. выше. Они создаются при входе в процедуру или функцию и разрушаются при выходе из нее. Это удобно, так как внутри процедуры не нужно беспокоиться о выборе имен и о том, чтобы не произошла накладка с переменными в других процедурах. Если в двух разных процедурах два программиста завели переменные по имени i — то это две разные переменные, и каждая из них ограничена своей областью видимости — той процедурой, в которой она описана.
Глобальные переменные — это переменные, которые описаны вне всех процедур и функций. В скриптах их можно описывать только в самом начале модуля. Область видимости этих глобальных переменных простирается вниз от места описания до конца модуля. К ним могут обращаться все процедуры и функции этого модуля. Через глобальные переменные можно производить обмен информацией между процедурами. Также в глобальных переменных можно хранить некоторые значения между вызовами процедур, так как они не разрушаются по мере завершения процедуры.
Локальная переменная с тем же именем, что и глобальная, «закрывает» глобальную переменную. Глоабльная переменная становится временно недоступной и это продолжается до момента выхода из процедуры или функции.
Рекомендуется все имена, которые имеют в подпрограммах чисто внутреннее, вспомогательное назначение, делать локальными.
Структура модуля
Уточним структуру модуля с учетом локальных и глобальных переменных:
Компилятор языка паскаль однопроходный, поэтому все объекты, к которым вы обращаетесь, должны быть описаны выше по тексту.
Отличия от стандарта
В скриптах есть дополнительные возможности по сравнению со стандартом языка.
Модуль uSystemLibrary
Функции этого модуля доступны по умолчанию (явно подключать не нужно).
Описание этих стандартных функций можно посмотреть в справке по языку delphi (или например по запросу гугл типа 'delphi trim')