Главная / Лекции / Основы алгоритмизации и программирования

Содержание данной главы
Модуль 3. Управляющие конструкции языка ТП


3.1. Безусловные конструкции.

Оператор языка представляет собой неделимый элемент программы, который позволяет выполнять определенные алгоритмические действия. Все операторы можно условно разделить на две группы: простых операторов и структурированных операторов. К простым относятся те операторы, которые не содержат других операторов. К структурированным - те, которые состоят из других операторов.
В ТП 7.0 существует всего один оператор безусловного перехода Goto и четыре безусловных функции: Break, Continue, Exit, Halt.
Оператор безусловного перехода Goto представляет собой простой оператор, используя который можно изменять порядок выполнения операторов в программе. Общий вид оператора безусловного перехода:
    goto <метка> , где <метка> - это идентификатор или целое число от 0 до 9999, объявленное в разделе меток label.
Применение оператора безусловного перехода в ТП - программе является нежелательным, т.к. его присутствие нарушает структурную целостность и наглядность. Такую программу трудно читать, отлаживать и модифицировать.
Функция Break позволяет досрочно закончить цикл.
Функция Continue - позволяет начать новую итерацию цикла, даже если предыдущая не была завершена.
Функция Exit - позволяет завершить работу текущего программного блока.
Функция Halt (n), где n - некоторое целое число - позволяет завершить работу программы с кодом завершения n.


3.2. Условные конструкции.

1) неполная форма с одним оператором

2) полная форма с одним оператором

3) неполная форма с несколькими операторами

4) полная форма с несколькими операторами


1) IF условие THEN оператор;
2) IF условие THEN оператор1 ELSE оператор2;
3) IF условие THEN BEGIN
                оператор1;
                оператор2;
                …
                операторN;
            END;
4) IF условие THEN BEGIN
                оператор1;
                оператор2;
                …
                операторN;
            END ELSE
            BEGIN
                оператор1;
                оператор2;
                …
                операторN;
            END;

Пример: ввести оценку студента в баллах и сообщить ее название.


Begin
  Read(b)
  If b=5 then Write('отлично') else
    If b=4 then Write('хорошо') else
      If b=3 then Write('удовл.') else
        If b=2 then Write('неудовл.') else
        Write('это не оценка');
End.



3.3. Конструкция выбор.

Ситуации, реализующие систему вложенных ветвлений могут быть разрешены с использованием конструкции выбор.
Оператор выбора является структурированным и использует в своей записи операторы case, of, else, end и операторные скобки по необходимости.
В самом общем виде оператор выбора можно записать так:
Case порядковая переменная of
    значение1: begin оператор1; оператор2; …; операторN; end;
    значение2: begin оператор1; оператор2; …; операторN; end;
    …
    значениеM: begin оператор1; оператор2; …; операторN; end;
    else begin оператор1; оператор2; …; операторN; end;
end;


Пример: ввести оценку студента в баллах и сообщить ее название.
Begin
  Read(b)
  Case b of
    5: Write('отлично');
    4: Write('хорошо');
    3: Write('удовл.');
    2: Write('неудовл.');
    else Write('это не оценка');
  end;
End.


Порядковая переменная, значение которой при выполнении программы определяет ветвь в операторе выбора, подлежащую выполнению, может принадлежать любому целочисленному типу. В случае, когда для нескольких значений выполняемые действия одинаковы, их можно указать один раз, а сами значения перечислить через запятую.
Пример: напечатать количество дней во введенном месяце:
Begin
  Read(m);
  Case m of
    янв, мар, май, июл, авг, окт, дек: Write('31');
    апр, июн, сен, ноя: Write('30');
    фев: Write('28');
    else Write ('это не месяц');
  end;
End.



3.4. Циклические конструкции.

1. Цикл с предусловием.
Для реализации циклов с предусловием используется составной оператор, включающий оператор while, do, операторные скобки.
В общем виде цикл реализуется записью:
    while <условие> do <действие>;
Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки:
    while <условие> do
    begin
      <оператор 1>;
      <оператор 2>;
      ...
      <оператор n>;
    end;


2. Цикл с постусловием.
Для реализации цикла используется составной оператор, состоящий из операторов repeat и until.
В общем виде цикл записывается так:
    repeat
      <действие>;
    until <условие>;

Пример: задано целое число. Вывести на печать все цифры введенного числа.
1 способ:

    var a,b:longint;
    Begin
      read(a);
      repeat
        b:=a mod 10;
        writeln(b);
        a:=a div 10;
      until a=0;
    End.

2 способ:

    var a,b:longint;
    Begin
      read(a);
      while a<>0 do
        begin
          b:=a mod 10;
          write(b:3);
          a:=a div 10;
        end;
    End.

3. Цикл с параметром.

Для реализации в языке Pascal используется составной оператор, состоящий из операторов for, to, downto, do и при необходимости из операторных скобок. Переменная параметр обязательно объявляется в декларационной части программы и может принадлежать одному из порядковых типов.
Если при изменении переменной параметра необходимо использовать переход к следующему значению, то используется оператор to; если переход необходимо осуществить к предыдущему значению, то используется оператор downto. Тогда в общем виде цикл записывается так:
    for I:=I0 to In do
      begin
        <оператор 1>;
        <оператор 2>;
        ...
        <оператор n>;
      end;


назад     содержание     вперед     на главную


Rambler's Top100
Hosted by uCoz