42470

Программирование алгоритмов разветвленной структуры

Лабораторная работа

Информатика, кибернетика и программирование

Оператор ветвления IF THEN ELSE При выполнении работы необходимо знать: Знать и уметь строить алгоритмы разветвленной структуры. Условный оператор IF THEN ELSE. Составной оператор. Структура полного ветвления: Структура сокращенного ветвления: Условный оператор IF THEN ELSE.

Русский

2013-10-29

288 KB

55 чел.

Лабораторная работа № 3.

Программирование алгоритмов разветвленной структуры.

Оператор ветвления  IFTHENELSE

При выполнении работы необходимо знать:

  •  Знать и уметь строить алгоритмы разветвленной структуры.
  •  Условный оператор IFTHENELSE.
  •  Составной оператор.
  •  Уметь составить схему программы (алгоритм) разветвленной структуры для конкретной задачи и записать программу по готовому алгоритму.

Теоретический минимум:

  1.  Алгоритмы разветвленной структуры.

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

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

Структура полного ветвления:


Структура сокращенного ветвления:

  1.  Условный оператор IFTHENELSE.

Если в программе, в зависимости от некоторого условия, требуется выбрать тот или иной вариант действий, можно воспользоваться одним из условных операторов. В Turbo Pascal предусмотрено два условных оператора— IF и CASE.

Оператор IF имеет следующий вид:

При выполнении этого оператора сначала вычисляется некоторое логическое выражение p (условие), в случае истинности которого выполняется оператор a1, а в случае ложности—оператор a2.

Возможен сокращённый вариант оператора IF.

       If  p  then  a1;


Здесь, если условие р истинно, выполняется оператор a1. Если же условие р ложно, управление просто передаётся следующему (за оператором IF) оператору в программе. Можно сказать, что первый вариант оператора IF осуществляет выбор между двумя действиями, а второй—между действием и отсутствием действия.

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

Сравнивать между собой числа и другие значения в Turbo Pascal можно c помощью шести операторов. Речь идёт об операторах > (больше), < (меньше), = (равно), <> (не равно),>= (больше или равно),<=(меньше или равно). Результат сравнения всегда представляет собой значение логического типа. Так, результатом сравнения 77>63 будет TRUE, а результатом сравнения 82<47—FALSE.

В условии так же широко могут использоваться три логических оператора: NOT, AND и OR. Например, выражение x1 AND x2 будет иметь значение TRUE, если значения х1 и х2 принадлежат логическому типу и оба равны TRUE.

Примеры операторов IF, которые могут встретиться в программах.

If x>y   then  z:=x/2  else z:=y+2;

if a and (b>c) then  d:=a+b  else d:=c;

В языке Turbo Pascal допускается вложенность операторов IF:

if x>0 then y:=1

          else  if  x<0 then y:=-1

                               else y:=0;

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

 

if x then 

       if y then S1

           else S2;

На самом деле ключевое слово ELSE ассоциируется с ближайшим  IF, еще не связанным со словом ELSE.

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

Во многих программах, в зависимости от некоторого условия, часто требуется выполнить не одно, а последовательность действий. Однако оператор IF в Turbo Pascal обеспечивает выполнение единственного оператора, присутствующего после зарезервированного слова THEN или ELSE.Выйти из положения можно, применив составные операторы.

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

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


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

Оператор IF с составными операторами выглядит так:

if  p then begin

               S1;  S2; … Sn

               end

       else begin

               V1; V2; … Vn

               end;

Операторы S1; S2; … Sn принадлежат к ветви «да», а операторы V1; V2; … Vn 

принадлежат к ветви «нет».

Частный случай составного оператора—тело любой программы. Составной оператор может включать другие составные операторы (т.е. составным может быть любой из операторов S1; S2; … Sn или V1; V2; … Vn), причём допускается любое число уровней вложенности.

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


Задача 2.

Задать значение роста человека (в см) и его веса (в кг). Вычислить оптимальное значение веса для данного роста и сравнить его с реальным. Вывести соответствующее сообщение.

Математическая формулировка задачи:

Определить оптимальное значение веса можно по формуле:  Рост(см)-100. Очевидно, что реальный вес может равняться оптимальному, быть меньше него или превышать. Нужно сравнить оптимальное значение веса с реальным и вывести соответствующее сообщение.


Алгоритм  решения задачи 3.


Текст программы к задаче 3:

Program Ex_3;

Uses Crt;

Var

  w: real;     {  вес  }

   h: real;     {  рост  }

   opt: real;  {  оптимальный вес }

   d: real;     { отклонение от оптимального веса  }

Begin

 ClrScr;

 Writeln(‘Введите вес и рост через пробел ’);

  Readln(w, h);

  opt:=h-100;

  d:=Abs(w-opt);

If  w=opt  then  Writeln(‘Ваш вес оптимален!’)

  Else

      If  w<opt  then

         Writeln(‘Вам надо поправится на ’,d:5:2,’ кг ‘)

      Else

         Writeln(‘Вам надо похудеть на ‘, d:5:2, ‘ кг ‘);

Readln;

End.


Лабораторная работа № 4.

Программирование алгоритмов разветвленной структуры.

Оператор ветвления  CASE.

При выполнении работы необходимо знать:

  •  Знать  структуру ветвления  «Выбор – Иначе».
  •  Условный оператор CASE.
  •  Уметь составить схему программы (алгоритм) разветвленной структуры «Выбор – Иначе» для данной задачи и записать программу по готовому алгоритму.

Теоретический минимум:

  1.  Структура ветвления «Выбор – Иначе».

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

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

  1.  
    Условный оператор
    Case.

Структура ветвления «Выбор – Иначе» соответствует оператору выбора CASE.

Оператор CASE имеет следующий вид:

Case P  of

       a: S1;

       b: S2;

         ..

         n: Sn

      else  Sn+1

   end;

Каждый из операторов в операторе CASE, помеченный константой выбора, может быть составным. Операторы S1; S2; … Sn отделяются один от другого точкой с запятой.

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

При выполнении этого оператора сначала вычисляется некоторое выражение P называемое селектором выбора, а затем, в зависимости от полученного значения (если оно равно одной из констант a, b, ..., n, которые называются константами выбора), выполняется один из операторов, помеченный соответствующей константой. Если значение выражения P не совпадает ни с одной из констант выбора, выполняется оператор Sn+1, содержащийся после ключевого слова ELSE, причем ветвь ELSE в операторе CASE необязательна.

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


Case
X of

            1 .. 5:  S1;

            2, 3, 8:  S2;

        4, 6, 9 .. 13: S3;

else

                 S4

   end;

Задача 4.

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

Математическая формулировка задачи:

Очевидно, что значение поясняющего слова зависит от последней цифры введенного числа: если последняя цифра 0, 5, 6, 7, 8, 9, то поясняющее слово «рублей», если 1 – то «рубль», если 2, 3, 4 – то «рубля». Исключение составляют числа, оканчивающиеся на 11, 12, 13, 14 для которых поясняющее слово должно быть «рублей».


                                                    Алгоритм к задаче 4:


Текст программы к задаче 4:

Program Ex_4;

Uses Crt;

Var

n: integer; { число }

r: integer;  {остаток от деления числа на 10}

Begin

    ClrScr;

    Writeln(‘Введите число ‘);

    Readln(n);

 If n>100  then n:=n mod 100;

 If (n>=11) and (n<=14) then

     Writeln( ‘ рублей‘);

Else begin

      r:=n mod 10;

      Case r of

               0, 5..9:  writeln (‘ рублей‘);

               1:          writeln (‘ рубль’);

               2..4:      writeln (‘ рубля ‘);

       end;

      end;

      Readln;

      End.

PAGE  34


 

А также другие работы, которые могут Вас заинтересовать

50809. Изучение законов динамики вращательного движения твёрдого тела вокруг неподвижной оси на маятнике Овербека 284 KB
  Цель работы: Экспериментальная проверка зависимостей между физическими величинами, характеризующими вращение твёрдого тела вокруг неподвижной оси. Приборы и принадлежности: маятник Овербека, комплект перегрузов, миллисекундомер.
50810. Исследование непериодических сигналов 419 KB
  Для задания формы сигнала используется функциональный источник напряжения NFV Component nlog Primitives Function Sources NFV. Задать в качестве сигнала одиночный прямоугольный импульс амплитудой 4 В и длительностью 2 NN мс. В разных графических окнах задать вывод следующих графиков: Зависимости заданного сигнала VE1 от времени t; Спектра исследуемого сигнала зависимости величины гармоник HRMVE1 от частоты f. Задать диапазон частот выводимых гармоник от 0 до 5NN кГц Найти спектр сигнала состоящего из четырех...