Программирование задач с разветвленной структурой управления

Содержание

Слайд 2

Цель:
Научиться решать задачи с разветвляющейся структурой управлении
Задачи:
В результате прохождения занятия студент

Цель: Научиться решать задачи с разветвляющейся структурой управлении Задачи: В результате прохождения
должен: 
знать:
оператор разветвляющейся структурой управления;
способы решения задач, которые можно свести к разветвляющейся структуре управления;
уметь:
решать задачи с применением оператора разветвления;
решать задачи с несколькими условиями.

Направление подготовки бакалавров
19.03.04 Технология общественного питания
Информатика

Слайд 3

План лабораторного занятия:

1. Понятие о разветвленной структуре
2.Применение в разветвленных структурах составного оператора
3.Задачи

План лабораторного занятия: 1. Понятие о разветвленной структуре 2.Применение в разветвленных структурах
для разветвленной структуры
4. Условный оператор CASE
5.Задание для выполнения самостоятельной работы
6. Литература

Направление подготовки бакалавров
19.03.04 Технология общественного питания
Информатика

Слайд 4

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

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

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

Направление подготовки бакалавров
19.03.04 Технология общественного питания
Информатика

Слайд 5

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

then ;
Здесь, если условие

Возможен сокращённый вариант оператора IF. If then ; Здесь, если условие р
р истинно, выполняется оператор a1. Если же условие р ложно, управление просто передаётся следующему (за оператором IF) оператору в программе.
Первый вариант оператора IF осуществляет выбор между двумя действиями, а второй—между действием и отсутствием действия.
Что представляет собой условие? Как правило, в качестве условия используется переменная (или выражение) логического типа (типа Boolean) либо один из операторов сравнения.

Слайд 6

Сравнивать между собой числа и другие значения в Turbo Pascal можно

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

Слайд 7

В условии так же широко могут использоваться три логических оператора: NOT, AND

В условии так же широко могут использоваться три логических оператора: 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;

Слайд 8

В языке Turbo Pascal допускается вложенность операторов IF:
if x>0 then y:=1

В языке 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.

Слайд 9

2. Применение в разветвленных структурах составного оператора
Во многих программах, в зависимости

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

Слайд 10

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

Когда, в зависимости от определённого условия, требуется обеспечить последовательное выполнение некоторого набора
операторов, без составного оператора не обойтись.
Составной оператор имеет следующий вид:
Оператор 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, причём допускается любое число уровней вложенности.

Слайд 11

3. Задачи для разветвленной структуры
Рассмотрим разветвленный алгоритм для следующей задачи.
Задача 1.
Задать

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

Слайд 12

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

Рассмотрим подробно составление алгоритма разветвленной структуры для решения задачи Текст программы к
1:
Program Ex_1;
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.

Слайд 13

4.  Условный оператор CASE
IF позволяет осуществить выбор одного из двух вариантов. Но

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

Слайд 14

При выполнении алгоритма сначала вычисляется некоторое выражение, а затем, в зависимости от

При выполнении алгоритма сначала вычисляется некоторое выражение, а затем, в зависимости от
полученного значения (если оно равно одной из констант) выполняется одна из групп действий, помеченная соответствующей константой.
Если значение выражения не совпадает ни с одной из констант выбора, выполняются альтернативные действия, содержащиеся в ветви «Иначе», причем ветвь «Иначе» в этой структуре необязательна.  
Оператор CASE имеет следующий вид:
Case P  of
       a: S1;  
      b: S2;  
        ..          
n: Sn
else  Sn+1
   end;

Слайд 15

При выполнении этого оператора сначала вычисляется некоторое выражение P называемое селектором выбора, а

При выполнении этого оператора сначала вычисляется некоторое выражение 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;

Слайд 16

Задача 2.
В зависимости от введенного числового значения вывести согласованное с ним

Задача 2. В зависимости от введенного числового значения вывести согласованное с ним
слово рубль, рубля или рублей.
Математическая формулировка задачи: Очевидно, что значение поясняющего слова зависит от последней цифры введенного числа: если последняя цифра 0, 5, 6, 7, 8, 9, то поясняющее слово «рублей», если 1 – то «рубль», если 2, 3, 4 – то «рубля». Исключение составляют числа, оканчивающиеся на 11, 12, 13, 14 для которых поясняющее слово должно быть «рублей». 
Текст программы к задаче 2:
Program Ex_2;
Uses Crt;
Var n: integer; { число }
r: integer;  {остаток от деления числа на 10}

Слайд 17

Begin
  ClrScr;  
  Writeln(‘Введите число ‘);  
  Readln(n);
 If n>100  then n:=n mod 100;
 If

Begin ClrScr; Writeln(‘Введите число ‘); Readln(n); If n>100 then n:=n mod 100;
(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.

Продолжение программы

Слайд 18

5. Задания для выполнения самостоятельной работы
Даны действительные числа X,Y и Z. Вычислить

5. Задания для выполнения самостоятельной работы Даны действительные числа X,Y и Z.
максимальное значение из X+Y и Y*Z.
Даны координаты точки (x,y). Определить в каком квадрате координатной плоскости находится точка, и напечатать номер квадрата.
3. В соревнованиях по бегу принимают участие 30 спортсменов. Вводя по очереди фамилии и результаты участников в ЭВМ, определить, сколько из них выполнило нормы ГТО, и напечатать их фамилии. Норма ГТО задана.