Как найти команды в паскале

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

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

Паскаль – это…

Pascal – универсальное средство программирования со строгой структурой программ, а также типизацией. У него интуитивно понятный синтаксис, основанный на ABC. Она напоминает английский.

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

Pascal – императивный алгоритмический язык. Имеет множество диалектов:

  • UCSD;
  • Object;
  • Turbo – один из самых популярных вариантов;
  • Midlet;
  • PascalABC.NET – основанный на платформе .NET.

Также можно встретить диалекты Free, TMT и GNU.

Особенности работы

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

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

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

Плюсы и минусы

Паскаль – язык, который изучается на уроках под названием «Информатика» в старших классах общеобразовательных учреждениях. В своем первоначальном виде он практически не встречается, но некоторые его диалекты до сих пор пользуются спросом в некоторых областях. Паскаль обладает преимуществами и недостатками, которые необходимо знать. Эта информация поможет выяснить, стоит ли изучать ЯП более подробно, или лучше отдать предпочтение другому.

Сильные стороны языка

Паскаль имеет следующие преимущества:

  1. Простой и понятный синтаксис. За счет этого его сможет быстро освоить даже новичок.
  2. Изучение в школьной программе на уроке «Информатика». Pascal служит базовым языком разработки, помогающий разобраться в принципах создания программного обеспечения.
  3. Компилируемость. Программа, написанная на рассматриваемом языке, может быть переведена в машинный код без дополнительного обеспечения. Пользователю не придется устанавливать ни виртуальные машины, ни интерпретаторы. Скрипт будет работать «по умолчанию».
  4. Строгая типизация. С ее помощью удается свести ошибки в итоговой программе к минимуму. Также это помогает оптимизировать работу с памятью устройства.
  5. Структурированность программ. Код получается читабельным и понятным. Найти в нем даже неочевидные ошибки оказывается намного проще, чем в случае с другими языками разработки.
  6. Множество диалектов.
  7. Работа программ, написанных на Паскале, базируется на последовательном выполнении операторов и функций. Никаких сложных связей и объектов.

Это – неплохой вариант для тех, кто только учится программировать. Более опытным разработчикам Паскаль не нужен. А вот на уроке «Информатика» в школе или при самостоятельном погружении в азы разработки программного обеспечения, он более чем пригодится. На основе элементарных операций данный ЯП объяснит достаточно сложные процессы.

Слабые стороны

Pascal имеет такие недостатки:

  1. Сильная ограниченность взаимодействия с компонентами, написанными на других языках программирования.
  2. Меньшая приспособленность для решения некоторых узкоспециализированных задач.
  3. Ограниченные возможности работы с динамической памятью, а также массивами с переменной длиной.
  4. Относительно небольшая функциональность – для большинства современных приложений и игр встроенных возможностей Паскаля будет не хватать.

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

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

Области применения

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

  1. Промышленность. В основном подразумевается написание программ на диалектах Object и Turbo. На них создаются программы для оборудования с микроконтроллерами.
  2. Бизнес. В современных бизнес-приложениях используется в единичных случаях. Паскаль пользовался спросом в 2000-х годах в соответствующем направлении. Некоторые компании до сих пор используют написанные тогда программы для решения отдельных задач. Новое программное обеспечение на Паскале для бизнеса не пишется.
  3. Разработка новых ЯП. Pascal – это язык, который залег в основу большинства современных популярных средств разработки. Некоторые производители придумывают собственные диалекты для ТВ-приставок, а также бытовой техники и электроники.
  4. Школа. В России и других странах мира данный ЯП применяется для обучения основам разработки «с нуля».

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

Терминология

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

  1. Алгоритм – набор инструкций и команд. Они используются для решения поставленной задачи.
  2. Переменная – место хранения информации и памяти. Поддерживает некоторые операции – удаление, считывание и запись, корректировку.
  3. Указатель – переменная, которая включает в себя адрес места в памяти. С его помощью удается обращаться к конкретному элементу массива.
  4. Массив – список или группа схожих типов значений данных, которые ранее прошли группировку. Все значения в пределах упомянутого элемента будут обладать одним и тем же типом данных. Отличаются они исключительно по положению в массиве.
  5. Символ – элементарная единица отображения данных в программе. Равняется одной символьной или буквенной записи.
  6. Класс – набор связанных объектов с общими свойствами. Этот термин применим к объектно-ориентированному программированию.
  7. Константа – значение, которое всегда остается неизменным. Оно не изменяется на протяжении всего периода работы приложения.
  8. Тип данных – классификация информации определенного типа.
  9. Цикл – петля. Последовательность инструкций, которые будут повторять один и тот же процесс многократно. Делается это или до достижения ранее указанного в коде условия, или до получения команды на остановку.
  10. Итерация – проход через заданный набор операций, работающих с программным кодом.
  11. Ключевое слово – слово, зарезервированное синтаксисом языка. Используется для описания команд, функций, а также иных инструментов/возможностей ЯП.

Также стоит обратить внимание на определения «операнд» — объект, которым можно управлять через разные операторы. Оператор – это элемент кода, способный манипулировать через специальные команды имеющимися операндами. Далее этот момент будет изучен более подробно.

Структура программы

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

Как называются разделы Особенности и описание
Program Необязательный блок. Служит для формирования имени программы. Выводит на экран при обработке исходного кода имя проекта.
Uses crt, graph Подключаемые модули. Ctr – блок, который используется для очистки экрана после выполнения тех или иных операций. Работает при помощи команды clrscr. Graph отвечает за внедрение в исходный код приложения возможностей работы с графикой.
Label Метки. Раздел, в котором используется команда Goto. Он помогает перейти к элементам, помеченным в качестве «закладок». Служит безусловным переходом.
Const Раздел, отвечающий за постоянные величины – константы. Поддерживает фиксированный тип значений. Здесь записываются имена констант и их параметры. Тип определяется автоматически.
Var Блок переменных. Соответствующий идентификатор получает тип информации, которая будет записываться.
Function/Produce Блок вспомогательных подпрограмм и функций. Используются для быстрой разработки приложений с минимальными трудностями.
Begin Начало тела программы. Правила синтаксиса рассматриваемого ЯП указывают на то, что после слова begin необходимо указывать операторы, команды и функции, которые должны быть выполнены. Раздел представлен последовательностью команд. Он поддерживает значения и величины для выполнения обозначенного спектра задач.
End Конец тела приложения. Все, что указано после end, не является часть исходной программы.

Данная таблица поможет разобраться в основах составления структуры исходного кода на Паскале. Для нормальной работы программы достаточно несколько блоков. Остальные являются необязательными. Основные разделы – это тело, включающее в себя begin и end. Без него ни один написанный код не будет обрабатываться.

Типизация данных

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

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

Простые типы

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

Целочисленные

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

Как называется Диапазон принимаемых значений Формат записи
Integer -32 768…32 767 16 bit
Short int -128…+127 8 bit
longInt -2 147 483 648…+2 147 483 647 32 bit
Word 0…65 535 16 bit без учета знака
Byte 0…255 8bit без учета знака

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

  1. Тип целой константы определяется как встроенный целочисленный тип с наименьшим диапазоном, включающим значение соответствующей целой константы.
  2. Если используется бинарная операция (в выражении участвуют два операнда), оба операнда будут преобразованы к общему типу. Арифметические действия до этого момента не выполняются.
  3. Выражения, написанные в операторах присваивания с правой стороны, будут вычисляться независимо от того, какая переменная расположена с левой.

Чтобы описать целочисленную переменную, необходимо воспользоваться ключевым словом var. Формат записи: var <перечень используемых переменных><тип>. Угловые скобки во время составления программного кода ставить не требуется.

Вещественные

Следующий вариант – это вещественный тип информации. Сюда можно отнести числа с плавающими запятыми. Они имеют фиксированной количество цифр.

Для данного вида переменных используется ключевое слово real. Форма записи: var <перечень переменных:=> real.

Символьные

Символьный тип значений и переменных используется для того, чтобы работать с различными записями. Каждый символ имеет:

  • собственный код;
  • номер.

Сформировать символьный вид переменных можно при помощи формы: <тип><название_переменной(‘значение’)>. Апостроф тоже может стать символом в программе. Для этого его необходимо заключить в соответствующие «кавычки».

Перечисляемые

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

Форма записи:

<список констант> – специальный вид констант. Они задаются в программном коде через запятую. Имеют собственный порядковый номер, начинающийся с 0.

Ограниченные

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

Записывается в коде программы так:

Здесь необходимо запомнить такие правила составления:

  1. Обе ограниченные константы имеют один и тот же тип.
  2. В качестве базового типа допускается использование любого простого. Исключение всего одно – это действительные переменные (real).
  3. Начальные значения при определении ограниченного типа не могут быть больше, чем итоговые.

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

Структурированные

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

  1. Массивами. Они бывают одномерными и многомерными. Так называется определенное и известное количество однотипных компонентов, прошедшие процедуру индексации.
  2. Записями. Поддерживают несколько полей в составе разного характера. Пример – описание продукции, хранимой на складе в магазине.
  3. Строками. Так называется последовательность символов кодовых таблиц устройства. Включают в себя от 0 до 255 компонентов.
  4. Множествами. Это – набор взаимосвязанных по установленным признакам элементов программного кода. Во множестве не может быть более 255 составляющих.
  5. Файлами. Файл представляет собой последовательность однотипных компонентов, которые записаны на внешнем носителе под установленным заранее именем. Их вид может быть любым, исключая непосредственно file. Размер программистом не указывается.

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

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

  • простые операторы;
  • структурные.

Оператор в Pascal используется для того, чтобы описать действия. Других целей применения он не имеет. Отделяются на письме операторы при помощи специального разделителя – символа «точка с запятой». Его можно не ставить, если оператор ставится перед until, else или end.

Простой оператор состоит из:

  • оператора присваивания;
  • оператора вызова процедуры;
  • оператора перехода.

Структурные операторы поддерживают условные операторы, циклы и составные.

Присваивание

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

Совместимость поддерживается, если:

  • переменные записаны через один и тот же описатель;
  • порядковый тип поддерживает значения типа-диапазона;
  • вещественные переменные (real, single, double) могут работать с целочисленными значениями.

Оператор присваивания выглядит как «:=» (без кавычек). Форма записи будет такой:

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

Все действия здесь выполняются в направлении «слева-направо» с учетом действующих правил приоритета:

  • not;
  • умножение, деление, mod, and, div;
  • сложение, вычитание, or;
  • сравнивание и in.

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

Вызов

Команда вызова – одна из базовых составляющих исходного кода программного обеспечения. Она приводит к непосредственному обращению к указанному разработчиком алгоритму. Состоит из:

  • имени процедуры;
  • списка аргументов, указываемых в круглых скобках.

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

Переходы

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

Метки могут быть использованы только после того, как программист опишет их в разделе Label. Goto необходимо задействовать очень осторожно из-за безусловности перехода. Эта команда противоречит всем принципам структурного программирования. Неправильное использование Goto может привести к ошибкам и выходу приложения из строя.

Пустой

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

Составной

Operator, который используется для выполнения некоторого спектра команд, определяемых разработчиком. Он указывается в теле приложения – между begin и end.

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

Рассматривается соответствующий компонент как единое целое. Расположение допустимо в любой части исходного кода.

Условные

Поддерживают выбор одного или нескольких действий в зависимости от установленного разработчиком критерия. Условием выборки станет значение логического выражения – true или false.

Всего условных «команд» в Паскале два: if и case.

IF помогает организовывать вычисления в зависимости от логического условия. Имеет полную и краткую формы записи. Может быть вложенным. В этом случае рекомендуется пользоваться такой формой представления:

Для вложенных If действует правило – else связано с ближайшим if, которое до этого не было привязано к другим else.

Выбор

Запись case…of…end – это определение альтернативных действий из произвольного спектра изначально заданных условий. Состоит из селектора и списка постоянных параметров, каждому из которых предшествует список констант выбора.

Выглядит так:

Здесь:

  1. <выражение-селектор> – порядковое выражение. От его значения будут приниматься решения относительно дальнейших операций.
  2. <список1>…<списокN> – значения, с которыми будет сравниваться селектор.
  3. <оператор1>…<операторN> – выражения, среди которых выбирается операция для дальнейшей реализации. Таким станет элемент, с константой которого впервые совпадет селектор.

Ветка с условием else – необязательный элемент. Условие If указывается всегда. Если действия для нескольких селекторов окажутся одинаковыми, разработчик сможет перечислить соответствующие константы через запятую перед двоеточием. Правила синтаксиса допускают установку диапазона значений по верхним и нижним границам.

Циклы

Цикл – это выполнение некоторых алгоритмов друг за другом несколько раз. Программирование поддерживает несколько их видов: итерационные и с параметром.

Цикл с параметром всегда требует использования операторов цикла. Иногда такой вариант называется регулярным циклом. Его характерной чертой является то, что количество повторений команд известно заранее.

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

Паскаль поддерживает несколько видов циклических структур:

  1. Счетный operator – for. Он используется для реализации циклов с параметрами. Для итерационной петли не подходит.
  2. С предусловием – while.
  3. С постусловием – repeat.

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

For

Как выглядит структура программы на языке Паскаль, понятно. Зная ее, можно с легкостью освоить циклы и использовать их на практике. Первый вариант – это for. Выглядит он так:

Начальные и конечные значения здесь должны быть точно такого же типа, что и имеющийся параметр.

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

While

Цикл с постусловием работает так:

  1. Сначала проводится проверка результата логического условия.
  2. Если итог – true, происходит выполнение операции. Далее система возвращается на проверку условия с новым значением параметров в логическом выражении условия.
  3. Если результатом служит ложь (false), система завершает цикл.

Выше – форма представления соответствующей петли. Здесь необходимо запомнить следующие правила:

  • условия, написанные в while – это требования, при которых цикл будет продолжаться;
  • в теле цикла всегда меняется значение параметра входящего в выражение условия;
  • while может не выполниться ни разу.

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

Repeat

Repeat работает так:

  1. Сначала выполняются команды тела цикла.
  2. Результат проверяется с логическим условием. Если он является ложью, то происходит возврат к выполнению операторов очередного тела цикла.
  3. Когда результат сравнения – истина, система прекращает работу с циклической структурой.

Форма записи:

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

Здесь можно узнать больше интересного о Паскале. 

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus! 

  1. Основы
  2. Таблица типов
  3. Справочные примеры PascalABC

Синтаксис программ[править]

Минимальная структура программы:

begin
  {main code here}
end.

Пример:

begin
  writeln('Hello world');
end.

Константы[править]

В данной секции располагаются определенные пользователем константы. Синтаксис объявления констант выглядит так:

const
  <имя> = <значение>;

Например:

const
  a = 12;
  s = 'ABC.NET';

Секция «var»[править]

Данная секция предназначена для переменных и массивов. Переменные объявляются так:

Простейшие типы[править]

Тип строка[править]

Тип строка — это тип переменных, который позволяет хранить в переменной любой текст. Объявление строковой переменной:

Строки могут быть не более 255 символов. Изначальное значение строковых переменных — это «пустая строка» — ».

Операция Описание
s1 + s2 Объединение строк
s1*n Дублирование строки n раз

Тип целое число integer[править]

Кроме типа string в PascalABC.Net есть еще тип целое число — «integer». Само число a может принимать (в PascalABC.Net) значения от -32768 до 32767. Пример объявления переменной типа integer:

Операция Описание
a + b Сложение чисел
a — b Разность чисел
a * b Произведение чисел
a div b Целочисленное деление
a mod b Остаток от деления

Тип вещественное число real[править]

Декларация переменной типа real:

Пример присваивания переменной данного типа:

a := 1.0; // Не 1,0!
a := 1; // Эквивалентно 1.0.
Операция Описание
a + b Сложение чисел
a — b Разность чисел
a * b Произведение чисел
a / b Частное чисел

Тип символ[править]

Тип символ или «char» используется в основном для хранения одного любого символа вне зависимости от того, является ли данный символ буквой или цифрой. Объявление переменной символьного типа:

Секция «begin — end»[править]

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

begin
 <команда_1>;
 ...
 <команда_n>;
end.

Комментарии[править]

Комментарий — это часть кода, которую игнорирует компилятор. Он создается следующим образом:

Или:

Массивы[править]

Массивы — это именованный список элементов одного типа.

P. S. Для работы с массивами существует учебный модуль Arrays.

Статические[править]

Статические массивы имеют фиксированный размер. Общий синтаксис объявления данных массивов выглядит так:

var
  <имя>: array [0..N - 1] of <тип>;

, где N — длина массива.

Пример:

const
  N = 5;

var
  A: array [0..N] of integer;
  K: integer;
  j: integer;
  Found: boolean;

begin
  Found := false;
  K := ReadInteger('K:');
  
  for var i := 0 to N - 1 do
  begin
    if not Found then
      Readln(A[i])
    else
      Readln(A[i + 1]);
    
    if not Found and (A[i] = K) then
    begin
      Found := true;
      j := i + 1;
    end;
  end;
  
  A[j] := A[N];
  
  for var i := 0 to N do
    WriteFormat('{0} ', A[i]);
end.

Посмотреть статью с примером.

Матрицы[править]

Двумерные[править]

Матрица — это n-мерный список значений, имеющий свой тип и ограниченный некоторыми значениями. Пока будем рассматривать только статические двухмерные и трехмерные матрицы. Перед тем, как перейти к их изучению вспомни таблицы в Excel. Каждая таблица имеет свой размер — ширину и длину. Возьмем за правило ассоциировать двухмерные матрицы с таблицами. Объявление матрицы:

var
  <имя>: array [0..N - 1, 0..M - 1] of <тип>;

, где N, M количество строчек и столбцов соответственно.

Трехмерные[править]

Трехмерный матрицы обладают третьим измерением:

var
  <имя>: arr, 0..K - 1] of <тип>;

N-мерные матрицы[править]

Декларация N-мерной матрицы:

var
  <имя>: array [0..A - 1, 0..B - 1, ..., 0..Z - 1] of <тип>;

, где A..Z означают количество элементов в соответствующем измерении.

Статические и динамические массивы[править]

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

Пример объявления массива: Статический Динамический Вызов SetLength (для динамического массива)
Векторный
<имя>: array [0..N - 1] of <тип>
<имя>: array of <тип>
SetLength(<имя>, N)
Двумерный
<имя>: array [0..N - 1, 0..M - 1] of <тип>
<имя>: array [,] of <тип>
SetLength(<имя>, N, M)
Трехмерный
<имя>: array [0..N - 1, 0..M - 1, 0..K - 1] of <тип>
<имя>: array [,,] of <тип>
SetLength(<имя>, N, M, K)

Понятие индекса массива[править]

Индекс массива — это номер элемента массива. Индекс может принимать значения [0, N — 1], где N — количество элементов некоторой размерности. Обращение к элементу одномерного массива с некоторым индексом:

Составим таблицу, которую следует запомнить:

N-мерный массив Общий синтаксис указания элемента массива Пример
Векторный
<имя>[i]
A[1]
Двумерный
<имя>[i, j]
A[1, 1]
Трехмерный
<имя>[i, j, k]
A[1, 1, 1]

Где i, j, k — индексы.

Индекс в виде значения элемента массива[править]

Индексом может быть значение элемента массива:

Операторы, стандартные процедуры и функции[править]

Вывода на экран[править]

Вывод текста[править]

Вывести текст — это значит отобразить текст на экране. Общий синтаксис для вывода текста выглядит так:

Вывод значений переменных[править]

Вывод значений произвольного количества переменных:

Write(<имя_1>, <имя_2>, ... , <имя_n>);

Например:

var
  A, B, C: integer;

begin
  A := 1;
  B := 6;
  C := 2;
  Write(A, B, C);
end.

Для перехода на новую строку после вывода последнего значения используйте Writeln вместо Write.

Ввод данных с клавиатуры[править]

Чтение с клавиатуры — это процесс ввода данных с клавиатуры и запись в соответствующий элемент программы этих данных. Элементами программы являются как переменные, так и элементы массивов. Тип данных, вводимых с клавиатуры, должен соответствовать типу элемента, в который записываются данные с клавиатуры. Использование Readln для чтения с клавиатуры и перехода на новую строку:

Readln(<имя_переменной_1>, <имя_переменной_2>, ... ,<имя_переменной_n>);

Условный оператор[править]

Общий синтаксис условного оператора if:

if (<условие>) then
begin
  <команда_1>;
  ...
  <команда_N>;
end;

Команды <команда_1>…<команда_N> будут выполнены только при истинности условия.

Сравнение[править]

Условные обозначения в программировании операций сравнения приведены в таблице:

Операция Эквивалент в Паскале
≤ (меньше или равно) <=
≥ (больше или равно) >=
< (меньше) <
> (больше) >
= (равно) =
≠ (не равно) <>

Общий синтаксис сравнения двух величин:

<элемент_1><знак_сравнения><элемент_2>;

Пример:

const
  N = 10;

var
  A: array of integer; 
  Max: integer;

begin
  SetLength(A, N);
  for var i := 0 to N - 1 do A[i] := Random(100); 
  
  Max := integer.MinValue; 
  for var i := 0 to N - 1 do 
    if A[i] > Max then Max := A[i];
  
  Writeln(A); 
  Writeln(Max); 
end.

Посмотреть статью с примером.

Оператор case[править]

Оператор case используется для сопоставления значения некоторого выражения с константными значениями:

case <выражение> of
  <константное_значение_1>: begin <операторы_1>; end;
  ...
  <константное_значение_n>: begin <операторы_n>; end;
  else <операторы>
end;

Если некоторое i-тое константное выражение совпадает с значением выражения, то i-ая группа операторов будет выполнена. Группа операторов после else будет выполнена, если значение выражения не совпало ни с одной из констант. begin — end не нужны, если после двоеточия только один оператор.

Пример:

var
  S, S2: string;
  i: integer := 1;

// Выделение слова из строки:
function GetWord(s: string; var from: integer): string;
begin
  while (from <= Length(s)) and char.IsLetter(s.Chars[from]) do
  begin
    Result += s.Chars[from];
    Inc(from);
  end;
end;

begin
  Readln(S);
  
  var L := Length(S);
  while i <= L do
  begin
    while (i <= L) and not char.IsLetter(S.Chars[i]) do
    begin
      S2 += S.Chars[i];
      Inc(i);
    end;
    var w := GetWord(S, i);
    // Преобразование числа в слово:
    case LowerCase(w) of
      'ноль', 'нуль': S2 += '0';
      'один': S2 += '1';
      'два': S2 += '2';
      'три': S2 += '3';
      'четыре': S2 += '4';
      'пять': S2 += '5';
      'шесть': S2 += '6';
      'семь': S2 += '7';
      'восемь': S2 += '8';
      'девять': S2 += '9';
      else S2 += w
    end;
  end;
  S := S2;
  
  Writeln(S2);
end.

Посмотреть статью с примером.

Оператор цикла while[править]

Оператор цикла позволяет выполнять группу операторов (или один) циклически пока условие является истинным.

while (<условие>) do
begin
  <оператор_1>;
  ...
  <оператор_n>
end;

Пример:

var
  S, S2: string;
  i: integer := 1;

begin
  Readln(S);
  // Пока не дошли до конца строки:
  while i <= Length(S) do
  begin
    if S.Chars[i] = ' ' then
    begin
      S2 += ' ';
      Inc(i);
    end;
    // Пропускаем все лишние пробелы.
    while (i <= Length(S)) and (S.Chars[i] = ' ') do Inc(i);
    // Бежим по строке до тех пор пока не встретим пробел.
    while (i <= Length(S)) and (S.Chars[i] <> ' ') do
    begin
      S2 += S.Chars[i];
      Inc(i);
    end;
  end;
  S := S2;
  Writeln(S);
end.

Посмотреть статью с примером.

Счетчик[править]

«Счетчик» — это оператор цикла for, выполняющий группу операторов определенное количество раз.
Общий синтаксис оператора цикла for:

for var <переменная_цикла> := <значение_1> to <значение_2> do
begin
  <оператор_1>;
  ...
  <оператор_n>;
end;

Если второе значение меньше первого — используйте downto вместо to.

Пример:

const
  N = 10;

var
  A: array of integer;

begin
  SetLength(A, N); 
  for var i := 0 to N - 1 do Readln(A[i]); 
  Writeln(A); 
end.

Посмотреть статью с примером.

Оператор break[править]

Для выхода из цикла можно использовать break:

const
  N = 9;

var
  A: array [0..N - 1] of integer;


begin
  for var i := 0 to N - 1 do
  begin
    Readln(A[i]);
    if A[i] mod 2 = 0 then
      break;
  end;
end.

Новая итерация цикла[править]

Для завершения текущей итерации цикла и начала другой используйте оператор continue.

Функции[править]

Общий синтаксис описания функции:

function <имя>(<описание_параметров>): <тип_возвращаемого_значения>;
begin
  <оператор_1>;
  ...
  <оператор_n>;
end;

или:

function <имя>(<описание_параметров>) := <выражение>; // Вывод типа возвращаемого значения производится на основе типа выражения.

Можно устанавливать значение переменной Result для указания возвращаемого значения.

Пример:

function F(a, b: integer): integer;
begin
  if a < b then Result := a else Result := F(a - b, b);
end;

begin
  Writeln(F(ReadlnInteger('A:'), ReadlnInteger('B:')));
end.

Посмотреть статью с примером.

Процедуры[править]

Синтаксис объявления процедуры:

procedure <имя>(<описание_параметров>);
begin
  <оператор_1>;
  ...
  <оператор_n>;
end;

или:

procedure <имя>(<описание_параметров>) := <оператор>;

Пример:

uses Crt, GraphABC, ABCButtons;
var
  B: ButtonABC;

procedure P() := Writeln('Привет мир!'); // Сокращённый синтаксис объявления процедур, содержащих один оператор.

begin
  B := new ButtonABC(0, 0, 100, 40, 'Button', clRed);
  B.OnClick := P;
end.

Посмотреть статью с примером.

Оператор exit[править]

Для выхода из некоторой функции или процедуры можно использовать оператор exit.

Встроенные процедуры и функции[править]

Описание Комментарии
Random(<максимальное_значение>)
Генерирует случайное число в диапазоне [0, максимальное_значение — 1].
Inc(<имя>)
Увеличивает значение переменной на 1 (переменная типа real не может быть параметром).
Dec(<имя>)
Уменьшает значение переменной на 1 (переменная типа real не может быть параметром).
Succ(<символ>)
Возвращает следующий символу символ.
Pred(<символ>)
Возвращает предыдущий символу символ.

Подключение модулей[править]

Модуль — это часть программы, вынесенная в отдельный файл. Для подключения модуля следует писать в разделе uses его имя:

uses <имя_модуля_1>, <имя_модуля_2>, ... , <имя_модуля_n>;

Свои типы[править]

Примеры объявления своих типов:

type
  Int = integer; // Тип числа.
  ShortStr = string[255]; // Тип короткой строки.
  Numbers = (One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten); // Тип названия числа.
  TArray<T> = array of T; // Тип одномерного массива с элементами типа T.
  TMatrix<T> = array [,] of T; // Тип матрицы с элементами типа T.

Пример вывода обобщённого массива:

type
  TArray<T> = array of T;

procedure Show<T>(a: TArray<T>);
begin
  for var i := 0 to a.Length - 1 do
    Writeln(a[i]);
end;

begin
  Show(ArrRandom());
end.

Примеры[править]

Мигание текста[править]

uses System;

begin
  var rnd := new Random();
  while true do
  begin
    Console.SetCursorPosition(0, 0);
    Console.ForegroundColor := ConsoleColor(rnd.Next(15));
    Console.Write('Hello world!');
    Sleep(200);
  end;
end.

Класс ввода данных пользователя[править]

uses FormsABC;
const
  Width = 50;

type
  TUserData = class
  private 
    _Name, _Password: Field;
    _LogIn: Button;
    _W: integer;
    
    function GetW()  := _W;
    
    procedure SetW(v: integer);
    begin
      _Name.FieldWidth := v;
      _Password.FieldWidth := v;
      _W := v;
    end;
  
  public 
    property Name: Field read _Name;
    property Password: Field read _Password;
    property LogIn: Button read _LogIn;
    property W: integer read GetW write SetW;
    
    constructor(nText, pText, logInText: string);
    begin
      _Name := new Field(nText, Width);
      _Password := new Field(pText, Width);
      _LogIn := new Button(logInText);
    end;
  end;

begin
  var UserInput := new TUserData('Name', 'Password', 'Ok');
end.

var x, y: real;
begin

  writeln('введите введите x');
  readln(x);
  if x>0 then y:=sqrt(x)  else  y:=sqr(x);
  writeln(y);
  writeln('введите x');
  readln(x);
  if x=0 then y:=0 else y:=0;
  writeln(y);
  writeln('введите x');
  readln(x);
  if x<0 then y:=x+x else y:=x+x;
  writeln(y);
  end.

Названный в честь ученого из Франции Блеза Паскаля формальный язык Паскаль, основы программирования которого кратко рассмотрим в данной статье, разработан Никлаусом Виртом в 70-х годах прошлого столетия. Он завоевал популярность у программистов того времени. 

Язык программирования Паскаль

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

Область применения Pascal ABC – обучение общим правилам программирования и системным процессам. Школьники начинают осваивать язык в 7 — 8 классах на уроках информатики.

Язык программирования Паскаль

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

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

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

Раздел

Описание

Program (название)

Ввод имени программы (необязательно)

Uses crt, graph

Подключение модулей для дополнительных функций.

Модуль Graph открывает рисование, а Crt позволяет очищать экран операций при помощи команды clrscr.

Label

Указание меток. По команде goto в Pascal программа переходит к этим «закладкам», отмеченным в рабочей части.

Const

Блок постоянных величин. Расписываются имена констант и их значений, тип определяется автоматически.

Var

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

Procedure и/или

Function

После ключевого слова вводится вспомогательная подпрограмма или функция, упрощающая написание основного кода.

begin

(тело программы)

end.

Последовательность операторов и манипуляций с величинами для выполнения целей и задач.


Для того, чтобы написать программу, достаточно последнего раздела.

Типы данных

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

Типы данных Паскаль

Элементы кода могут представать в разных видах:

  • числа, как с дробной частью, так и без них;

  • символы – одиночные знаки или наборы текстов и слов;

  • логические выражения: True(истина) и False(ложь).

Идентификаторы, значения, хранящие информацию в конкретном типе, делятся на изменяемые и постоянные.

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

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

Типы переменных

Типы переменных в Паскале

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

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

Название

Диапазон значений

Занимаемая память, байт

byte

0…255

1

word

0…65535

2

shortint

-128…127

1

Integer

-32768…32767

2

longint

-2147483648…2147483647

4

  

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

Название

Диапазон значений

Занимаемая память, байт

Real

2,9×10-39 … 1,7×1038

6

Single

1,5×10-45 … 3,4×1038

4

Double

5×10-324 … 1,7×10308

8

Extended

3,4×10-4932 … 1,1×104932

10

Comp

-2×1063 … 2×1063 -1

8

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

  1. Cимвольный тип Char позволяет присваивать переменной значение одного из 256 8-битных символов таблицы ASCII. Функция Ord в Pascal выводит числовой код знака, Chr – обратный процесс.

  2. Cтроковый тип String применяется для присвоения идентификатору последовательности символов. Установленное число символов, именуемое длиной строки и равное 255, не может быть выше. Пользователь может уменьшить это число, указав в квадратных скобках нужную величину.

Строковые переменные можно складывать (например, строить слова и фразы) и сравнивать друг с другом (по количеству и значению символов).

С помощью функции Val в Pascal значение строки переводится в числовой аналог, команда Str служит для выполнения обратной процедуры. Работает в случае, если текст состоит из цифр.

Также возможно редактирование строк. Функцией Pos в Pascal выводятся номера подстрок из общей строки, Copy обеспечивает копирование символов, Delete – удаление знаков, Insert – вставка новых.

В логическом типе данных Boolean меньше всего значений: True(истина) и False(ложь). Для них допускается сравнение и логические выражения. Хранение идентификатора требует 1 байт.

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

Операторы

Операторами называются отдельные действия, отмечаемые точкой с запятой (исключение – когда команда размещена перед until, end и else). 

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

Выражение

Значение

а:=b

Присвоение переменной а значения b

read(b)

Компьютер считывает значение переменной b, после чего продолжает алгоритм.

write(a)

Вывести на экран показатель а

(если указать ‘а’, будет выписана буква «а»).

Эти три команды – самые частые и простые в программах Pascal. Добавив приставку ln (writeln, readln), машина выполнит переход на новую строку. Более сложные операции по обработке данных выполняются рядом иных операторов.

Выражение

Значение

goto t;

t:write (k+l);

Переход к метке t и исполнению выделенного ею оператора.

begin

(операции);

end;

Составной оператор – отдельная группа команд. Может выводиться как процедура.

if [выражение]

then [команда 1];

else [команда 2]

Выполнение команды, соответствующей условию выражения if: 1, если условие соблюдено, 2 – в противном случае.

case l of

(константа 1):(оператор 1);

(константа 2):(оператор 2);

else (оператор 3)

end;

Выбор действия в зависимости от значения переменной l. Вместо констант допускается диапазон значений.

for n:= (задаваемое значение) to (итоговое значение) do

begin

(операции);

end;

Оператор for в pascal означает исполнение составного оператора до тех пор, пока величина n не достигнет итогового значения.

while (условие завершения) do

begin

(операции);

end;

Постановка условия и выполнение алгоритма до его завершения.

repeat

(операции);

until (условие выполнения);

Повтор действий до выполнения условия until. В отличие от оператора while, алгоритм всегда выполняется как минимум 1 раз.

 

Стандартные функции

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

Функция

Операция с числом

Функция

Операция с числом

sin (a)

Синус

sqr (a)

Квадрат числа

cos (a)

Косинус

sqrt (a)

Квадратный корень числа

arctan (a)

Арктангенс

abs (a)

Модуль числа

ln (a)

Логарифм

ex

Экспонента

frac (a)

Вывод дробной части

pi

Число Пи

int (a)

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

Round (a)

Округление числа

+

Сложение

Trunc (a)

Удаление дробной части

Вычитание

a div t

Целочисленное деление с удалением остатка

*

Умножение

a mod t

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

/

Деление

Odd (a)

Проверка числа на четность

ReadKey

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

Inc (a,P)

Увеличение числа а на P единиц

KeyPressed

Подтверждает нажатие некоторой клавиши

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

Пользовательские функции Pascal

Стандартные математические функции Паскаль

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

Процедура и функция в Паскале

Чтобы ввести формулу, нужно вписать ее в тело программы, оформив в виде оператора.

Структура функции:

var (общие переменные);

function имя (параметры): тип итогового значения;

var(локальные переменные);

begin

(команды функции);

имя := результат;

end;

begin

(тело программы);

end.

Примеры программ на Паскале

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

1

2

3

4

5

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

Понравилась статья? Поделить с друзьями:
  • Как найти мой компьютер в планшетнике
  • Как составить индивидуальный план тренировок в тренажерном зале
  • Как найти объем плиты газовой
  • Составьте схему ямбической стопы как выглядит схема хорея
  • Как найти работу для строительной техники