СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Алгоритмы с ветвлением. Логические выражения

Категория: Информатика

Нажмите, чтобы узнать подробности

При решении задач очень часто выбор, какое действие выполнить следующим, зависит от значений исходных данных или промежуточных результатов. Для реализации возможности выбора в Pascal существуют два основных оператора: условный оператор и оператор выбора.

Просмотр содержимого документа
«Алгоритмы с ветвлением. Логические выражения»

Алгоритмы с ветвлением. Логические выражения


ПОНЯТЬ


При решении задач очень часто выбор, какое действие выполнить следующим, зависит от значений исходных данных или промежуточных результатов. Для реализации возможности выбора в Pascal существуют два основных оператора: условный оператор и оператор выбора.

Условный оператор может быть полным и неполным.

Основные правила:

  • после слов then и else может стоять только один оператор (простой или составной);

  • перед словом else точка с запятой не ставится.


Алгоритмическая конструкция

Вид условного оператора в Pascal

if условие then оператор1;

if условие then else оператор1;

if not (условие) then оператор1;

if условие then оператор1

else оператор2;

if условие then

begin оператор1;

оператор2;

оператор3;

end

else begin оператор4;

оператор5;

end;

Условие - это переменная или выражение логического типа. Иногда его называют условным выражением или логическим выражением. Оно может включать в себя переменные, константы, арифметические выражения, связвнные между собой операциями отношений и логическими операциями. Если используются логические операции (not, and, or, xor), то входящие в него операции отношения заключаются в круглые скобки.

Примеры записи условий на языке Pascal.

Условие

Запись на Pascal

X ≠Y

X Y

5

(X 5) and (X

X Y и Х – чётное

(X Y) and (X mod 2 =0)

X  (-∞; 5)  (20; ∞) иначе XX20

(X 20)

X  (-5; 0)  (10; 20)

(X -5) and (X 10) and (X

Х кратно 3 и 5

(X mod 3 =0) and (X mod 5 =0)


Продемонстрируем особенности программирования алгоритмов с ветвлением на примере решения квадратного уравнения.

Постановка задачи: решить уравнение ax2+bx+c=0 для произвольных значений a, b, c.

Для алгоритмизации целесообразно выбрать метод решения с помощью дискриминанта (D). В этом случае алгоритм можно охарактеризовать следующим образом:

  1. исходными данными являются коэффициенты а, b, c. Их возможные значения – множество действительных чисел, но коэффициент при х2 не должен равняться нулю;

  2. совокупность возможных результатов: сообщение, что алгоритм неприменим (если а=0), один корень (если D=0), два корня (если D0) или сообщение, что решения нет (если D

  3. промежуточным результатом является значение дискриминанта;

  4. правило начала заключается во вводе значений коэффициентов уравнения и проверке, что a  0;

  5. правила непосредственной обработки данных – соответствующие формулы математики;

  6. правило окончания – получение одного из возможных результатов;

  7. правило извлечения (сообщения) результата - вывод полученного результата на экран (возможно вывести его в файл или использовать для решения другой задачи).


Блок-схема алгоритма решения квадратного уравнения.


Программа на языке Pascal.


var a, b, c, d, x1, x2 : real;

begin

write ('Введите значения коэффициентов a, b, c:'); readln(a, b, c);

if a=0 then writeln('Для а=0 применение алгоритма невозможно.')

else begin

d:=b*b-4*a*c;

if dРешения нет');

if d=0 then begin x1:= -b/2/a; writeln('x=',x1:6:2); end;

if d0 then begin

x1:= (-b+sqrt(d))/2/a; x1:= (-b+sqrt(d))/2/a;

writeln ('x1=',x1:6:2, ' x2=',x2:6:2);

end;

end;

end.


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



Case x of

a : оператор1;

b..c : оператор2;

d, e : оператор3

else оператор 4;

end;


Продемонстрируем применение оператора выбора на примере перевода римских цифр в десятичные числа.

Постановка задачи: от пользователя вводится символ, если это римская цифра, то вывести на экран её десятичный эквивалент, иначе сообщить, что это не цифра.

Программа

var R : char; A : integer;

begin

write('Введите римскую цифру:'); readln(R); A := 0;

case R of

‘I' : A := 1;

'V' : A := 5;

'X' : A := 10;

'L' : A := 50;

'C' : A := 100;

'D' : A := 500;

'M' : A := 1000

else write (R ‘ - это не римская цифра’);

end;

if A 0 then write (R, ‘ - это римская цифра. Соответствует числу ’ , A);

end.


ЗНАТЬ


Формат неполного условного оператора:

if условие then оператор;


Формат полного условного оператора:

if условие then begin оператор1;

оператор2;

end

else begin оператор1;

оператор2;

end;


Условие – переменная или выражение логического типа.

Правила:

  • перед else точка с запятой не ставится;

  • если в условии есть логические операции (not, and, or, xor), то операции отношения заключаются в круглые скобки;

  • после then и else может стоять только один оператор (простой или составной).


Формат оператора выбора:

Case x of

значение1 : оператор1;

значение2 .. значение3 : оператор2;

значение4, значение5 : оператор3

else оператор 4;

end;


Правила:

  • выражение-селектор может быть только дискретного типа;

  • значения выражения-селектора могут задаваться одиночными константами, списком констант (через запятую) или интервалом (через две точки);

  • перед else точка с запятой не ставится.


УМЕТЬ


Найдите ошибки в программе



Считается, что вес, рост и возраст человека должны находиться в соотношении Вес ≈ Рост - 110 + 0,1 * Возраст.

Знак «≈» означает, что допустимы отклонения в 5-7 процентов от точного результата. Определите, Ваш вес меньше нормы, в норме или выше нормы.



ЗАДАЧА

От пользователя вводится какой-либо год ХХ века. Определите, мирным ли был этот год для России, а если нет, то какая война была в этом году.


ЗАДАЧА

От пользователя вводятся три имени. Расположить их в алфавитном порядке и вывести на экран.