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

 

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

Задание:

 

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

 

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

 

3. Произвести на ЭВМ расчеты по разработанной программе для исходных данных, приведенных в табл. 3.1.

 

4. Получить распечатку программы и результатов расчета.

 

5. Оформить отчет по лабораторной работе.

 

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

 

Алгоритм разветвленной структуры включает в себя одну из основных структур: разветвление (рис.3.1,а) или обход (рис.3.1,б) Разветвление приме-няется, когда в зависимости от некоторого условия ("да" - условие истинно, "нет" - условие ложно) нужно выполнить либо действие 1, либо действие 2, которые, в свою очередь, могут содержать несколько этапов расчета. Обход является частным случаем разветвления, когда одна ветвь не содержит ни каких действий.

 

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

 

Организация разветвления или обхода в программах, осуществляется с помощью операторов безусловного перехода GO ТО и условного перехода IF.

 

Общий вид оператора безусловного перехода

 

GO ТО n

 

где n - номер строки.

 

Оператор безусловного перехода передает управление первому опера-тору в строке с меткой n.


 


  Да   Условие   Нет  
             
             
                 
                 
Действие 1         Действие 2  
                 
                 
                 


1. Если < условие > выполняется перейти к п.4

 

2. Операторы действия 2

 

3. перейти к п.5

 

4. Операторы действия 2

 

5. …

 

 

а)


 

 

Да Условие Нет  
     
    Действие  

 

1. Если < условие > выполняется перейти к п.3

 

2. Операторы действия

 

3. …


 

б)

 

Рис.3-1. Виды условных конструкций и их программирование с использова-нием условного оператора IF:

а - структура разветвление; б - структура обход.

 

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

 

Линейная форма записи:

 

IF логическое выражение THEN операторы 1 ELSE операторы 2

 

где логическое выражение - выражение, возвращающее ненулевые значения (истина) или ноль (ложь); операторы 1 – операторы, выполняющиеся при значении логического выражения “истина”; операторы 2 - при значении “ложь”. Блок ELSE и операторы 2 может отсутствовать , тогда при значении логического выражения “ ложь” осуществляется переход к первому оператору следующей строки. Если предполагается проверять больше, чем два условия, то целесообразно применять блочную форму оператора IF…THEN…ELSE.

 

Блочная форма записи:

 

IF логическое выражение 1 THEN операторы 1

[ ELSEIF логическое выражение 2 THEN операторы 2 ]

 

………………………………………………

 


[ ELSE

 

операторы n ]END IF

 

где логические выражения 1 и 2 – выражения, аналогичные логическому выражению в линейной форме записи; операторы 1 - одна или более строк операторов, выполняющихся при условии логическое выражение 1 - “исти-на”; операторы 2 - одна или более строк операторов,выполняющихся приусловии логическое выражение 2 - “истина”; операторы n - одна или более строк операторов, выполняющихся при прочих условиях.

 

При блочной форме записи первоначально тестируется первое логиче-ское выражение. Если оно не нулевое (“ истина”), то выполняются операторы 1.Если первое выражение равно нулю(“ложь”),то оценивается каждое ус-ловие ELSEIF. При выполнении такого условия выполняются операторы данного блока (в нашем случае операторы 2). Если ни одно из условий ELSEIF не выполняется (все = “ложь”), то выполняются операторы n блока ELSE. Блоки ELSEIF и ELSE могут быть опущены. Операторы IF, ELSE, ELSEIF и END IF должны быть первыми операторами в строке. Блок должен заканчиваться оператором END IF.

 

В качестве примера на рис.3.2 приведены алгоритм вычисления функции

sin x, если x 0  
y = +ln x, если x >0  
1  

и соответствующая ему программа, иллюстрирующая применение условного оператора IF.


 

Да

 

Y=sin x


 

 

Начало     REM Программа расчета функции с  
          REM применением условного оператора  
           
          PRINT “Введите значение X=”;  
           
Ввод x     INPUT X  
          IF X<=0 THEN  
          Y=SIN(X)  
           
X<=0   Нет ELSE  
      Y=1+LOG(X)  
           
          END IF  
           
      Y=1+ln x PRINT “Значение функции Y=”;Y  
          END  
          б )  
           
        Рис. 3.2. Пример программирования ал-  
Вывод      

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

а – схема алгоритма; б – его программная

Конец реализация с использованием условного  
а) перехода IF.  
   

 


Таблица 3.1

 

Варианты заданий к лабораторной работе № 3

Составить программу вычисления значений Исходные данные  
п.п                         функций a x y  
1. 1 + tg x,   если a 0 -1,25 0,56 -  
  z =   2 y,   если a >0 6,34 4,27 -10,6  
  x 2      
2. 3 y cos x, если x 0 - -2,93 17,5  
  z =                 если x >0 4,25 3,61 2,58  
  ax 2+ y ,    
3. 2sin 2 x cos y, если x y - 3,64 4,47  
  z =   y 2 ,   если x > y - 4,89 1,36  
  x 2      
4. 3a arctg x,   если a >0 12,8 0,56 -  
  z =   9 a,   если a 0 -9,52 5,48 -  
  x 2      
5. (2 y + 1)sin x, если x <0 - -3,68 8,34  
  z =   + 4 y a , если x 0 12,8 5,26 34,2  
  x 3    
6. y ln   x   +a, если x <0 -25,6 -7,43 11,2  
     
                                   
  z =                 если x 0 - 3,25 -6,45  
  2 y + ex ,    
                                   
7. x tg x +3a, если x > a 1,37 1,83 -  
  z = + y a ) 2 , если x a 5,21 3,15 38,5  
  ( x  
8. 3 x / lg y + 2 a, если y >0 7,48 -21,4 49,1  
  z =   x / a, если y 0 8,34 11,5 -9,15  
  y 3    
9. (1 x )cos ay, если x >1 0,33 2,63 3,42  
  z =   5 y 6 a, если x 1 4,16 -6,48 0,24  
  x 2    
10. 2 y + sin x, если x <0 - -3,68 8,34  
z =                          
  x 3   4 ya, если x 0 12,8 5,26 34,2  
11. y cos x + a , если x <0 -25,6 -7,43 11,2  
z =                          
  2 y + ex ,   если x 0 - 3,25 -6,45  
12. x sin x +3a, если x > a 1,37 1,83 -  
z =                          
  ( x 2 + y a ) 2 , если x a 5,21 3,15 38,5  
13. 3 x / sin y + 2 a, если y >0 7,48 -21,4 49,1  
z =                          
  y 2   x / a, если y 0 8,34 11,5 -9,15  
14. (1 sin x )cos ay, если x >1 0,33 2,63 3,42  
z =                          
  x 2   5ay, если x 1 4,16 -6,48 0,24  
  cos 2,5 x + lg y, если y >1 Исходные данные  
  x y z  
15. u =                            
  + 6 y 4,3 z, если y 1 0,23 9,36 -  
  2 x      
                            3,57 -27,4 19,2  

 

 


16.   1, если x < y     -5,27 36,2 -  
  u =     если x = y     22,8 22,8 -  
  0,        
            если x > y     57,3 33,8 -  
    1,                  
17. u =min{x , y}         5,21 4,44 -  
18. u =max{x , y}       3,25 0,91 -  
19. u =min{x , y , z}       74,3 34,7 13,5  
20. u =max{x , y , z}       0,24 7,63 5,85  
21. u =max{x , y}min{y , z}   57,3 81,9 64,5  
22. u =max{x , y}+min{y , z}   -30,7 3,74 23,7  
23. u =max{x , y}/ min{y , z}     9,56 7,83 5,89  
24. u =max{x , y}min{y , z}     -2,12 1,12 6,14  
25.   max { x , y , если z 0 2,96 3,15 8,69  
  u =         }              
                если z <0 1,85 4,02 -19,7  
    x sin y z ,  
                               
26.   min { x , z , если y 3 74,3 18,8 23,8  
  u =         }              
      + ln z, если y <3 65,7 -67,3 12,7  
    3 xy  
                               
27.                 если z 75,4 85,3 40,8  
  u = max {x , y},          
  min { x , y}, если z <2 32,7 48,2 0,67  
                               
28.                 если y > 17,5 38,2 -  
  u = max {x , y},          
  min { y , z}, если z 0 - -35,9 -64,2  
                               
29. u =max{x , y , z}+min{x , y , z} 6,84 35,4 99,1  
30. u =max{x , y , z}/ min{x , y , z} 84,3 56,9 11,4  

 

 


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