Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на билеты инфа.docx
Скачиваний:
39
Добавлен:
09.02.2015
Размер:
58.59 Кб
Скачать

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

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

19. Операторы цикла, структура, обозначение, возможные проблемы использования.

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

Если число повторений тела цикла заранее известно, то применяется оператор цикла с параметром.

Общий вид следующий:

For переменная := нач_значение to кон_значение do тело или

For переменная := нач_значение downto

кон_значение do тело

где переменная – параметр цикла, в качестве параметра может быть использована любая переменная перечисляемого типа (например, integer); нач_значение и кон_значение – выражения, задающие начальное и конечное значения параметра цикла соответственно;

тело – простой или составной оператор.

Тип начального и конечного значений цикла должен совпадать с типом параметра цикла. Выполнение оператора цикла начинается с проверки условия переменная <= конзн для цикла to и переменная >= конзн для цикла downto. Если оно не выполняется, то оператор тело не выполняется и управление передается следующему за циклом оператору. Если же условие истинно, то выполняется оператор тело, затем параметру цикла переменная присваивается следующее значение (цикл to) или предыдущее значение (цикл downto). Далее процесс повторяется. Если параметр цикла целого типа, то это означает его увеличение (цикл to) или уменьшение (цикл downto) на единицу при каждом вычислении расположенного в цикле оператора.

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

Пример

S:=0;

For I:= 1 to 3 do

begin

S:= S + Sqr(I);

P := S + 1;

end;

Для принудительного выхода из цикла в Object Pascal используют команду Break.

Оператор цикла с параметром применим, если известно число повторений, шаг цикла равняется 1 или –1. В противном случае необходимо использовать 2 других типа цикла: с предусловием или постусловием. Оператор цикла с предусловием имеет вид:

while условие do тело;

где условие – выражение условного типа;

тело – простой или составной оператор.

Выполнение оператора начинается с вычисления значения выражения условие. Если это значение true, то выполняется оператор тело. Затем выполнение оператора цикла повторяется до тех пор, пока значение выражение условие не станет равным false. В этом случае управление передается оператору, стоящему за оператором цикла. Если значение выражения условие при первом входе в цикл равно false, то цикл не выполняется ни разу.

Оператор цикла с постусловием похож на оператор цикла с предусловием, но условие проверяется после выполнения операторов, составляющих тело цикла. Общий вид оператора:

repeat

тело;

until условие;

Оператор цикла с постусловием начинается с выполнения операторов внутри цикла. Затем вычисляется выражение условие. Если значение равно true, то осуществляется выход из цикла, а при значении false выполнение тела повторяется.

(продолжение 17)

Такой оператор называется составным.

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

              1. Для оператора первого типа, если выражение условие принимает значение true, выполняется действие, стоящее после ключевого слова then. Если же значение условие равно false, то действие не выполняется. Перед оператором else значок «точка с запятой» не ставится!

              2. В условном операторе выполняется только один оператор, стоящий после слов then или else. Если требуется выполнить несколько операторов, необходимо их поместить между операторными скобками begin и end.

Операторы, следующие после then или else, в свою очередь также могут быть условными операторами.

  1. Условный оператор первого типа – If условие then действие. При этом: если оператор действие является условным оператором первого типа ему соответствует конструкция:

If условие1 then

If условие2 then действие

В этом случае оператор действие определяется однозначно;

  • если оператор действие – условный оператор второго типа, то справедлива конструкция:

If условие1 then

If условие2 then действие1

else действие2.

Возникает вопрос: какому оператору then соответствует else? Для обеспечения однозначности в языке Паскаль принято соглашение о том, что каждому else соответствует предыдущий свободный then.

  1. Условный оператор второго типа – If условие then действие1 else действие2. Оператор действие1 – условный оператор первого типа, оператор действие2 не является условным оператором (рис. 2.4.). Получаем конструкцию:

If условие1 then

begin

If условие2 then действие1

end

else действие2.

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

Case переменная of

Значение1 : Действие1;

ЗначениеN : ДействиеN;

else

ДействиеN1;

end;

где

Переменная – переменная перечисляемого типа (например: integer, char);

Значение1, …, ЗначениеNвозможные значения переменной;

Действие1, …, ДействиеNдействия, выполняемые при значении переменной, равном одному из значений Значение1, …, ЗначениеN;

ДействиеN1 – действие, выполняемое в случае, когда переменная не принимает ни одно из перечисленных значений (Значение1, …, ЗначениеN).

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

Case переменная of

Значение1 : Действие1;

15. Стандартные и производные от них типы данных, константы, их назначение, определение.

Типы данных. Язык Object Pascal предоставляет ряд типов данных. Все они построены на базе стандартных типов переменных стандарта языка Паскаль: Integer – целый тип, переменные этого типа могут принимать положительные и отрицательные значения в диапазоне от –32768 до 32767; Real – вещественный тип, переменные этого типа могут принимать положительные и отрицательные значения, записываемые как в простой форме: 10.12, 5.6, так и в экспоненциальной: 2.123Е5 (=2.123105), 0.854Е-3 (=8.5410-4). Диапазон чисел этого типа от 2.9Е-39 до 1.7Е38; Char –символьный тип, переменные этого типа служат для записи значений символов, которые должны заключаться в прямые кавычки: ‘A’, ‘ю’, ‘7’ – переменная содержит символы А, ю, 7; Boolean – логический тип, переменные этого типа могут принимать только два значения true (истина) и false (ложь); Перечисляемый тип – указывает возможные значения переменной, например: 1, 5, 45, 56 – переменная такого типа может содержать только одно из указанных чисел. На базе стандартных типов переменных созданы все остальные типы Object Pascal.

Integer

Поддержка 16 разрядов

–32768…32767

Знаковый, 16 бит

Real

2.910-39…1.710+38

String

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

имя : тип;

где имя – имя объявляемой переменной; тип – один из типов языка Object Pascal.

Пример

var

a,b,c: Real;

S : String;

В примере введены три переменные типа real и одна переменная string. Однотипные переменные можно перечислять через запятую.

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

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

Константа = значение;

где константа – имя объявляемой константы; значение – значение именованной константы.

Пример

const

Ch = ‘S’; // Константа Ch содержит символ S

17. Условные операторы, структура, обозначение, возможные проблемы использования.

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

              1. If условие then действие.

              2. If условие then действие1 else действие2.

Здесь условие – выражение логического типа; действие1, действие2 – отдельные операторы или операторы, сгруппированные вместе при помощи операторных скобок begin и end.