Программирование алгоритмов разветвляющейся структуры
Цель работы:Разработка программ, реализующих разветвления, с помощью условных операторов и переключателей.
Алгоритм разветвляющегося вычислительного процесса – алгоритм, в котором в зависимости от значений некоторого признака производится выбор одного из нескольких направлений, называемых ветвями. В основе организации разветвления лежит проверка логического условия, которое может быть истинно или ложно. Частный случай логического условия – это операция типа =, ≠, >, <, ≥, ≤..
Рис.5.3. Развилка «Если…, то…, иначе» Рис.5.4. Развилка «Если…, то»
В свою очередь, в ветвях могут быть проверки других условий, в появившихся новых ветвях – еще проверки условий и т. д. Это приводит к сложным разветвлениям вычислительного процесса на множество направлений.
Задание № 1. Построить алгоритм определения квадранта декартовой системы, в котором находится точка с координатами X, Y. Разработать, набрать и отладить программу на языке Паскаль, реализующую этот алгоритм.
Методика выполнения работы
1. Алгоритм в виде блок-схемы:
Рис.5.5. Блок-схема определения номера квадранта
2. Программа на основе алгоритма рис.5.5:
Program Kvadrant;
Uses crt;
Label 1;
Var x,y:Real;
n:Integer;
Begin
Clrscr;
{Ввод исходных данных}
Writeln(‘Введите координаты точки: x, y’);
Readln(x,y);
{Анализ расположения точки и определение квадранта}
n:=1;
If (x>0) and (y<0) Then
Begin n:=4;Goto 1 End
Else If (x<0) and (y<0) Then
Begin n:=3;Goto 1 End
Else If (x<0) and (y>0) Then
Begin n:=2;Goto 1 End;
{Вывод результата расчета}
1:Writeln(‘Номер квадранта = ’, n)
End.
3. Наберите, откомпилируйте и исправьте возможные ошибки. Затем запустите программу на счет.
4. Проведите тестовые расчеты так, чтобы проработали все разветвления программы. Проанализируйте полученные результаты.
Задание № 2. Разработать алгоритм, имитирующий работу калькулятора. После ввода двух чисел и символа арифметической операции над числами должно производиться соответствующее действие и результат выводиться на экран. Признаком конца работы является ввод любого символа, отличного от ‘+’, ‘-‘, ‘*’ или ’/’.
Разработать, набрать и отладить программу, реализующую этот алгоритм.
Методика выполнения работы
1. Алгоритм в виде блок-схемы:
Рис. 5.6. Блок схема алгоритма работы калькулятора
2. Программа на основе алгоритма рис.5.6:
Program Kalculator;
Uses crt;
Var x,y,z:Real;
oper:Char;
stop:Boolean;{Признак конца работы}
Begin
Clrscr;
stop:=False;
Repeat{Оператор цикла}
Writeln;{Пустая строка - разделитель}
Write(‘Введите x и y ’);
Readln(x,y);
Write(‘Операция:’);
Readln(oper);
Case oper Of{Переключатель – оператор выбора Case}
‘+’:z:=x+y;
‘-’:z:=x-y;
‘*’:z:=x*y;
‘/’:z:=x/y;
Else stop:=True;
End;{ Конец оператора Case}
If Not stop Then Writeln(x:5:2,oper,y:5:2,’=’,z:5:2);
Until stop;{ Конец оператора Repeat}
Writeln(‘Конец работы’)
End.
3. Наберите, откомпилируйте и исправьте возможные ошибки. Затем запустите программу на счет.
4. Проведите тестовые расчеты так, чтобы проработали все разветвления программы. Убедитесь в правильности работы программы. В противном случае исправьте ошибки в алгоритме.