Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-95 почти готово.docx
Скачиваний:
16
Добавлен:
27.09.2019
Размер:
907 Кб
Скачать

81) Object pascal:основные синтаксические единицы

В программе используются символы таблицы ASCII. Символ пробел (space) и управляющие символы (control characters) с кодами 0..31 называются «пустыми» символами (blanks) и используются, наряду с комментариями, в качестве разделителей (separators).

Программа состоит из лексем (token), которые отделяются друг от друга разделителями (separator). Лексема – это минимальная значимая единица текста программы. Из лексем составляются:

  • описания (declarations);

  • выражения (expressions);

  • операторы (statements).

Лексемы подразделяются на следующие категории:

  • специальные символы (special symbols);

  • идентификаторы (identifiers);

  • зарезервированные слова (reserved words);

  • директивы (directives);

  • числа (numerals);

  • метки (labels);

  • строки символов (character string).

Специальные символы – те же, что и в Borland Pascal:

# $ & ' ( ) * + , – . / : ; < = > @ [ ] ^ { }

К специальным символам относятся также следующие пары символов:

(* (. *) .) .. // := <= >= <>

Новая пара символов – это //, используемая для однострочного комментария.

Идентификаторы – составляются по тем же правилам, но длина идентификатора может быть любой. В идентификаторе распознаются первые 255 символов.

82) Object pascal:основные операторы языка

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

Собственно за переход, в классическом варианте, отвечает небезызвестная инструкция безусловного перехода goto, которая в Pascal используется совместно с метками, декларируемыми в заголовочной части программы при помощи ключевого слова label. Использование инструкции безусловного перехода восходит корнями к тем временам, когда создавались первые высокоуровневые языки программирования, в том числе и Pascal. Она досталась им в наследство от низкоуровневых языков типа Assembler, в которых описание программы создавалось в виде, удобным для машины. Но на сегодня такой подход уже не востребован и вышел из употребления, вместе с безусловным переходом и инструкцией goto.

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

begin <инструкция 1>; <инструкция 2>; ... <инструкция N>; end;

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

Составные операторы могут вкладываться один в другой, при этом глубина таких вложений в Object Pascal не ограничена.

83) Object pascal: условный оператор и оператор выбора case.

Условный оператор удобен в тех случаях, когда необходимо проверить 1-2-3 варианта. При большем числе получается слишком громоздкая и неудобная для восприятия конструкция из множества вложенных инструкций.

Очевидно, что код получается слишком громоздким, и малоэффективным. В таких случаях на помощь приходит семафор - оператор множественного выбора case. Он состоит из выражения, являющегося селектором, списка вариантов, представленного константами или значениями, и необязательной части else. Таким образом, формат оператора case таков:

case [выражение-селектор] of   <значение 1>: <код для значения 1>;   <значение 2>: <код для значения 2>;   ...   <значение N>: <код для значения N>;   [else <код для непредусмотренных явно значений>;] end

Единственным ограничением семафора, в сравнении с условным оператором, является то, что в качестве селектора могут выступать лишь данные порядкового типа, скажем, целым числом или же символом. Впрочем, для подавляющего числа случаев этого достаточно.

Инструкция выбора выполняется следующим образом: вначале, при необходимости, вычисляется значение селектора, затем производится последовательный обход вариантов на предмет совпадения с селектором. В случае совпадения, выполняется инструкция, предусмотренная для этого варианта, после чего выполнение оператора выбора заканчивается. Если же ни один из перечисленных вариантов не совпал со значением селектора (для нашего случая - если x меньше 1 или больше 5), то либо оператор завершается без каких-либо действий, либо, при наличии блока else, выполняются заданные в нем инструкции.

84) Организация программ циклической структуры.

Организация циклических процессов

  • 1 способ. Цикл с предусловием. Команда while

  • 2 способ. Цикл с постусловием. Команда do … while

  • 3 способ. Циклическая конструкция с предварительным вычислением выражения. Команда for

1 способ. Цикл с предусловием. Команда while

Общий формат команды: while (condition) — условие, логическое высказывание, которое может быть истинным (true) или ложным (false). Условие проверяется каждый раз при выполнении команды while. В этом случае если условие истинно (true), исполняется тело цикла, заключённое в фигурные скобки — statement(s).

  1. способ. Цикл с постусловием. Команда do … while

Общий формат команды: do while (condition) – в фигурных скобках за do заключено тело цикла — statement(s). После выполнения тела цикла проверяется условие прекращения повторений. Тело цикла выполняется до тех пор, пока условие (condition) истинно (true).

3 способ. Циклическая конструкция с предварительным вычислением выражения. Команда for

init (initialize) — выражение, которое надо вычислить перед началом цикла, обычно это присваивание. condition — условие, логическое высказывание, которое может быть истинным (true) или ложным (false). Истинность условия проверяют перед каждой итерацией (повторением цикла). Если условие окажется ложным (false), то работа цикла будет закончена. next — выражение, которое надо вычислять при каждой итерации в цикле (шаг цикла). Обычно представляет собой оператор инкремента ++ (increment добавляет единицу) или декремента –– (decrement вычитает единицу). В фигурные скобки заключено тело цикла — statement(s).