Turbo Pascal Лекция 5 – Базовые алгоритмические конструкции: Условие, цикл, CASE


Базовые алгоритмические конструкции

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

Выделяют три базовые алгоритмические конструкции:

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

 линейная структура

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

 Блок-схема линейного алгоритма приведена на рисунке слева (рис.1)

Линейная программа, которая подсчитывает сумму двух чисел справа (рис.2)

 линейные алгоритмы (другое название — простые) — это алгоритмы, состоящие из команд присвоения, ввода-вывода данных и вызовов процедур.

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

Цикл (повторение) — это вид управляющей структуры, позволяет несколько раз повторить заданное количество операторов.

Составного оператора И ОПЕРАТОР ПЕРЕХОДА

1.Составной оператор.

Составной оператор — это несколько операторов, объединенных в одну группу (блок) с помощью служебных слов BEGIN и END.

Эти слова называют операторными скобками.

Составной оператор имеет следующую структуру:

BEGIN

<Оператор1>;

<Оператор2>;

<Оператор3>;

***

<Оператор n>

END;

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

Запись BEGIN END или ;; называется пустым операторм или операторных скобками.

Пример 1. Рассмотрим составной оператор (фрагмент программы):

BEGIN

Suma = Suma + Cina;

N = N + 1

END;

  1. Оператор перехода.

Оператор перехода — это оператор, реализующий разветвления и передает управление в нужное место.

GOTO <отметка>

Оператор перехода имеет следующую структуру:

Отметку заранее объявляют в разделе объявления меток:

LABEL <список отметок>.

 

<Отметка> <оператор>

Если отметка (целое число) объявлена, то в программе должен быть такой фрагмент:

 

Замечание 1. Оператор GOTO используют редко.

Замечание 2. В среде программирования Turbo (Borland) Pascal 7.0 служебное слово PROGRAM можно не писать.Но это только в версии 7.0 и выше.

 

Указание разветвления и выбора

 

  1. УКАЗАНИЕ разветвления IF

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

Логическое выражение — это средство записи условий для поиска нужных данных.Логическое выражение может принимать значения true (истинность) или false (ложь).Логические выражения бывают простые и составные.простой — это два арифметические выражения, соединенные символом отношения, а составлен — это простые логические выражения, соединенные названиями логических операций: not, and i or.

Описание и использование указания разветвления

Указание разветвления в языке программирования Паскаль может записываться в полной или в сокращенной форме.

  1. Полная форма:
if <условие>

then

<Вказивка1>

else

<вказивка2>;

Действие оператора: Если условие подтверждается, то выполняется указание 1, если нет — то указание 2.

  1. Сокращенная форма:
Иf <условие> then <указание>;

Действие оператора Если условие истинно, то выполняется указание, если нет, то указание не выполняется.

Служебные слова, которые используются в условной указанию, имеют содержание if — если, then — то, else — иначе.

Условие — это выражение булевого типа.Условие может быть простой или составной.

Например.

  1. Простое условие: а <5, с> = а, х = 0, а <b
  2. Составлена условие (а> 5) and (a <10), (а = 2) or (b = 3)

Составлена условие записывается с помощью логических операций and — и, or — и (или) not — не.При записи условия можно использовать все возможные операции отношения. Результатом выражения условия всегда будет величина булевого типа.

  1. указание выбора CASE

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

Метка — это произвольное целое число в интервале от 0 до 9999 или произвольный идентификатор (то есть имя метки записывается согласно правилам записи идентификаторов).

Одной меткой может быть замечена только одна указание. Идентификатор метки не должен совпадать с идентификатором переменной или константы.

Указание выбора (варианта)

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

Указание выбора записывается в виде:

 Case <выражение> of

значение1 <вказивка1>;

значение2 <вказивка2>;

Значение <вказивкаM>

end;

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

Выражение, который записывается между служебным словом case и of, назы вает селектором.Селектор должен принадлежать к одному из этих ­ логотип, булевого, символьного типов или типа пользователя.Действительные и строчные типы в селекторах использовать нельзя.

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

Выполняется указание варианта так.

Примечание.

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

Например.

Составить программу, которая определяет время года по порядковому номеру месяца.

Program PORA;

Var MONTH: integer;

begin

Write ( ‘Введите номер месяца (от 1 до 12):’);

readln (MONTH)

case MONTH of

3,4,5: writeln ( ‘Becнa’);

6,7,8: writeln ( ‘Лето’);

9,10,11: writeln ( ‘Ociнь’);

12,1,2: writeln ( ‘Зимa’)

end;

           end.

 

Указания Повторение (ЦИКЛА) 

  1. Указание повторения с параметром FOR

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

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

* оператор цикла с параметром (For)

* оператор цикла с предусловием (While)

* оператор цикла с постусловием (Repeat).

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

а) со значением 1 шага изменения параметра:

For <параметр> = <выражение1> to <выражение2> do <оператор>

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

или

б) со значением -1 шага изменения параметра:

For <параметр> = <выражение1> downto <выражение2> do <оператор>

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

Оператор — тело цикла.

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

Если выражение1 и выражение2 разделяет служебное слово to, то после выполнения оператора (тела цикла) параметр цикла v принимает значение Succ (v), если же делителем виразу1 и виразу2 служит слово downto, то параметр цикла v после выполнения тела цикла принимает значение Pred (v ).

пример:

Преподнести любое действительное число а к любому целого степенно n.

решение:

program Stepin;

var

a, p: real;

i, n: integer;

begin

write ( ‘введите a — основу степени, а =’);

readln (a);

write ( ‘введите целое n — показатель степени, n =’);

readln (n);

p: = 1;

for i: = 1 to n do

p = p * a;

writeln ( ‘p =’, p)

end.

6.Указание повторения WHILE

Оператор For используется только в случае, когда заранее известно количество повторений тела цикла.В более общем случае, когда количество повторений заранее неизвестно, а задана некоторая условие окончания (или продолжение) цикла, в языке Pascal используют другие операторы повторения: оператор цикла с предусловием While и оператор цикла с постусловием Repeat.

Указание цикла с предусловием:

Действие оператора:

Оператор (тело цикла) выполняется до тех пор, пока условие истинно. Если при первой проверке условие оказалась ошибочной, оператор не выполняется. Указанный оператор выполняется ноль, один или несколько раз, пока условие подтверждается.

Тело цикла WHILE выполняется до тех пор, пока условие принимает значение Tru e.Действия, содержащиеся в теле цикла, будут выполнены в крайнем случае один раз. Таким образом, выполнение условия являются условием окончания цикла.

7.Указание повторения REPEAT

Оператор For используется только в случае, когда заранее известно количество повторений тела цикла.В более общем случае, когда количество повторений заранее неизвестно, а задана некоторая условие окончания (или продолжение) цикла, в языке Pascal используют другие операторы повторения: оператор цикла с предусловием While и оператор цикла с постусловием Repeat.

Оператор цикла с постусловием определенный диаграммой:

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

 

REPEAT

<Оператор1>

<Оператор2>

<Оператор3>

***

<Оператор n>

UNTIL <условие>;

 

Действие оператора Сначала выполняются указанные операторы, а позже проверяется условие.Если условие оправдывается (истинная), то выполнение цикла завершается, если нет, то операторы выполняются еще раз, и так далее.

Тело цикла Repeat выполняется до тех пор, пока условие принимает значение False.Действия, содержащиеся в теле цикла, будут выполнены в крайнем случае один раз. Таким образом, выполнение условия являются условием окончания цикла.

Вложенных циклов:

 

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

Например:

for i: = 1 to 10 do

for j = 1 to 15 do

<Операторы>

Примечание:

Repeat Until KeyPressed — условие, или

нажата клавиша (пауза).

[Всего голосов: 3    Средний: 5/5]

Читать  Turbo Pascal Лекция 2 – Стандартные типы данных