Программирование разветвляющихся алгоритмов
Для организации разветвления в программе, в Паскале используются следующие операторы: 1. Условный оператор. 2. Оператор варианта. 3. Оператор перехода
Условный оператор Условный оператор имеет вид:
If Q Then B1 [Else B2]; Блок-схема: (Else) - +(Then)
Q - выражение, принимающее логическое значение; B1, B2 – любые операторы, в единственном числе; Выполняются: 1. Вычисляется выражение Q, которое имеет логическое значение. 2. Если это значение True, то выполняется оператор B1. Если же Q имеет значение False, то в случае полной формы условного оператора выполняется оператор B1 , а в случае неполной формы управление передается следующему оператору программы. Так, как операторы B1 и B2 могут быть любыми, а значит и условными, то возникает конструкция двусмысленная: 1 If Q Then If Q1 Then B1 Else B2; 2 Для устранения двусмысленности введено правило, что часть Else относится к ближайшему слева свободному условию. И структура записи следующая: If Q Then If Q1 Then B1 Else B2; Если по смыслу задачи необходимо, чтобы оператор понимался в смысле 1 , то его надо поставить в операторные скобки: If Q Then Begin If Q1 Then B1; End Else B2; Задача1: Даны 2 различных числа. Найти максимальное из этих чисел. Пример: Исходные данные: A=10, C=15 Результат: Максимальное число =15 Решение: Program Vet1; Var A,C,Max:Integer; Begin Writeln(’Введите 2 различных числа’); Readln(A,C); If A>C Then Max:=A Else Max:=C; Write(’Максимальное число = ’,Max); End. Задачи: 1. Даны 2 числа. Вывести первое число, если оно больше второго и оба числа, если это не так. 2. Даны 2 различных числа. Найти C=Max/Min. 3. Составить программу вычисления значения Y по введенному значению X. Y= (X+2)2 , X>=0 X-2 ,X<0 4. Даны числа А, B, Х. Составить программу вычисления значения Y. (X+2)2 , X<A Y= X-2 ,A<=X<=B 2*X ,X>B
5. Даны 3 различных числа. Найти максимальное из этих чисел. 6. Даны 3 числа. Определить сколько среди них нулей. 7. Даны 3 числа. Определить сколько среди них отрицательных и сколько положительных чисел.
Использование составного оператора Если по смыслу задачи, в зависимости от условий, надо выполнять либо одну, либо другую группу операторов, то их надо их надо превратить в один составной оператор (заключить в операторные скобки): Begin операторы; End; If Q Then Begin A1; A2; : An; End Else Begin B1; B2; : Bn; End; Задача 2: Даны 2 различных числа. Вычислить x=(y+z)2; - где y=max*2; z=max/min; Решение: Program Vet2; Var A,C,Max,Y:Integer; Z,X:Real; Begin Writeln(’Введите 2 различных числа’); Readln(A,C); If A>C Then Begin Y:=A*2; Z:=A/C; End Else Begin Y:=C*2; Z:=C/A; End; X:=SQR(Y+Z); Write(’X = ’,X); End. Задача 3. Даны числа A, C. Решить линейное уравнение A*X=C с полным анализом. Решение: Program Vet3; Var A,C,X:Real; Begin Writeln(’Введите 2 числа’); Readln(A,C); If A=0 Then If B=0 Then Writeln(’X -любое’) Else Writeln(’Решений нет’) Else Begin X:=C/A; Writeln(’X=’,X); End; End. Задачи: 1. Даны X,Y (Х<>Y). Меньшее из этих двух чисел заменить полусуммой, а большее их удвоенным произведением 2. Даны числа A, B, C. Решить уравнение AX2+BX+C=0 с полным анализом. 3. Даны 3 числа. Найти разность большего и меньшего из этих чисел 4. Если сумма трех различных чисел X,Y,Z меньше единицы, то меньшее из X,Y заменить полусуммой Y и Z, иначе большее из X и Y заменить произведением Х*Y.
Популярное: Почему стероиды повышают давление?: Основных причин три... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1032)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |