Что такое условный оператор в информатике
Что такое условный оператор в информатике
В Паскале разветвляющиеся алгоритмы позволяет реализовать условный оператор. Условный оператор позволяет проверить некоторое логическое выражение и в зависимости от результатов проверки выполнить то или иное действие.
Структура условного оператора в полной форме имеет следующий вид:
IF (логическое выражение) THEN (оператор1) ELSE (оператор2);
Блок-схема условного оператора в полной форме:
В условном операторе после then, а также после else по синтаксису может стоять только один оператор. Если же при выполнении (или невыполнении)логического выражения надо выполнить не одно действие, а несколько, то их надо объединить в единый, составной оператор, т.е. заключить эту последовательность действий в операторные скобки.
Составной оператор имеет вид:
Перед служебным словом Else символ «;» не ставится. Структура условного оператора в неполной форме имеет следующий вид: IF (условие) THEN (оператор); Пример: If A then If A then begin Пример 1: | Программный код на языке Pascal: var n: integer; begin write (‘ Введите целое число : ‘); readln (n); //ввод переменной if n mod 2 = 0 then //определяется четность write (‘Оно четное’) //если выполняется условие четности выводится сообщение «Оно четное» else write (‘Оно нечетное’); //если не выполняется условие четности выводится сообщение «Оно нечетное» readln end |
Пример 2:
Даны два числа, найти наибольшее.
Упражнения «Программирование разветвляющихся алгоритмов»
1. Записать условие, которое является истинным, когда
· каждое из чисел X и Y нечетное;
· только одно из чисел X и Y меньше 20;
· хотя бы одно из чисел X и Y равно нулю;
2. Записать условие, которое является истинным, когда
· каждое из чисел А и В больше 100;
· только одно из чисел А и В четное;
· хотя бы одно из чисел А и В положительно;
· каждое из чисел А, В, С кратно трем;
· только одно из чисел А, В и С меньше 50;
· хотя бы одно из чисел А, В, С отрицательно.
3. Записать условие, которое является истинным, когда
1. целое А кратно двум или трем;
2. целое А не кратно трем и оканчивается нулем.
4. Записать условие, которое является истинным, когда
1. целое N кратно пяти или семи;
2. целое N кратно четырем и не оканчивается нулем.
5. Определите значение переменной С после выполнения фрагмента программы:
if А>В then С:=А+В else С:=А-В;
а) 100 b) 5 с) 105 d)95
6. Укажите правильную запись на языке Паскаль выражения, записанного на русском языке Х>=0 и Х>=3,25 и У
Pascal: Занятие №2. Часть 1: Условный оператор в Паскале (If)
Условный оператор в Паскале
До рассмотрения данной темы в основном использовались линейные алгоритмы в Паскале, характерные для весьма простых задач, когда действия (операторы) выполняются последовательно, одно за другим. Более сложные алгоритмы предусматривают использование конструкция ветвления.
Блок-схема условного оператора:
Условный оператор в Паскале имеет следующий синтаксис:
if условие then оператор;
Полный вариант:
if условие then оператор else оператор;
Условный оператор в Паскале — if — служит для организации хода задачи таким образом, при котором изменяется последовательность выполнения операторов в зависимости от какого-либо логического условия. Логическое условие может принимать одно из двух значений: либо true (истина), либо false (ложь), соответственно, оно может быть либо истинным, либо ложным.
Составной оператор
Операторные скобки и составной оператор в Паскале:
if логическое выражение then begin оператор1; оператор2; end else begin оператор1; оператор2; end;
Перевод с английского оператора условия облегчит понимание его использования:
IF | THEN | ELSE |
ЕСЛИ | ТО | ИНАЧЕ |
В условии (в логическом выражении) используются операторы отношения.
Рассмотрим список операторов отношения Паскаля:
Подробно разобраться в работе условного оператора в Паскале можно, просмотрев видеоурок:
begin var x:=readReal(‘введите х’); var y: real; if x>0 then y:=ln(x) else y:=exp(x); writeln (‘y=’, y:6:2) end.
Таким образом, использование такой записи в pascal практически позволяет выполнить округление до сотых, тысячных и т.п.
[Название файла: L2task0.pas ]
[Название файла: L2task1.pas ]
[Название файла: L2task2.pas ]
Логические операции в Паскале (в логическом выражении)
Когда необходимо использовать двойное условие в Pascal, то понадобятся логические операции.
var n:integer; begin n:=6; if (n>5) and (n 7) or (n 7) xor (n 7) then writeln(‘истина’); end.
var a,b: integer; begin write(‘Введите A: ‘); read(a); b := a mod 2; if b>0 then writeln(‘true’) else writeln (‘false’) end.
var a,b: integer; begin write(‘Введите A: ‘); read(a); b := a mod 2; writeln(b>0); end.
[Название файла: L2task3.pas ]
[Название файла: L2task4.pas ]
Построение блок-схем по коду Паскаль
Существуют управляющие структуры трех типов:
Две из трех представленных структур блок-схемы мы уже можем перевести в код Pascal.
Результат:
Презентация к уроку
Тип урока: изучение нового материала.
Цель урока: познакомить учащихся с условным оператором и применением его при составлении программ на языке программирования Паскаль.
Возраст учащихся: IX класс.
I. Организационный момент
На прошлых уроках мы научились составлять линейные программы на языке Паскаль. Сегодня мы продолжим изучать операторы языка программирования Паскаль.
II. Актуализация знаний
Составим программу для решения следующей задачи: Из двух чисел А и В найти большее и вывести его на экран.
(Учащиеся предлагают свои варианты и совместно с учителем делают вывод, что составить линейную программу для решения данной задачи нельзя.)
Действительно, в рассмотренных ранее программах все операторы выполнялись последовательно один за другим в том порядке, в каком они были записаны. В данной задаче необходимо в зависимости от условия выполнить разные действия: если А > В, то напечатать на экране число А, а, если B > A, то – число В. Получаем, что для решения данной задачи необходимо составить разветвляющий алгоритм. Команды, с помощью которых записываются разветвляющиеся алгоритмы, называются командами ветвления. Команде ветвления в Паскале соответствует условный оператор, с которым мы сегодня познакомимся.
Сформулируйте цели урока. (Ответы учащихся: узнать, как записывается условный оператор, как записывается условие, научиться решать задачи с использованием условного оператора)
III. Объяснение нового материала
Условный оператор реализует «ветвление», т.е. изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия.
Условный оператор может иметь две формы (структуры) – полную или неполную.
Полная форма условного оператора имеет вид:
IF THEN ELSE ;
Условие – это логическое выражение, которое может быть записано в операторе явно или вычислено в программе. Для записи простых условий используются операции отношения:
(больше), = (равно), = (больше или равно), (не равно).
Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Если (IF) условие истинно, тогда (THEN) выполняется оператор1, иначе (ELSE) выполняется оператор2.
Составной условный оператор воспринимается компилятором Паскаля как один оператор, поэтому перед ELSE не ставится точка с запятой.
Для наглядности программы операторы, следующие за словами THEN и ELSE можно писать на следующей строке.
Если по условию задачи после THEN или ELSE необходимо выполнить больше одного оператора, то тогда используют операторные скобки BEGIN…END
Если в случае невыполнения условия (условие ложно) никаких действий выполнять не надо, то используют неполную форму условного оператора:
IF THEN
Например, для решения задачи: удвоить число Х, если оно положительное, можно записать следующее условие:
В качестве оператора в команде ветвления может быть другой условный оператор. В этом случае получаем вложенные ветвления. Рассмотрим на примере.
Задача. Составить программу для решения квадратного уравнения ax 2 + bx + c = 0.
Составим алгоритм решения задачи.
Условие может быть записано и сложным логическим выражением. В сложных логических выражениях используются логические операции: and (И), or (ИЛИ), not (НЕ). Отношения, связываемые логическими операциями, заключаются в скобки. Например, требуется определить, есть ли среди чисел a, b, c хотя бы одно равное нулю. Для этого можно составить следующий условный оператор:
IF (a=0) OR (b=0) OR (c=0) THEN WRITE(‘YES’) ELSE WRITE(‘NO’);
Также в сложном условии могут быть использованы и мультипликативные операции:
mod – остаток от деления, div – целая часть от деления.
Например, требуется определить, является ли число а – нечетным.
IF a MOD 2<>0 THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’);
Рассмотрим задачу со сложным условием.
Задача. Написать программу, проверяющую, принадлежит ли число интервалу (0;5].
Решение. Обозначим за х число, вводимое с клавиатуры пользователем. Принадлежность числа х заданному интервалу определяется следующим условием: 0 0) and (x 18.05.2012
Условный оператор
В линейных программах все просто. Команды выполняются последовательно друг за другом. Но, если в задаче необходимо предусмотреть решение в нескольких вариантах, то здесь не обойтись без ветвления ( if <если>then <тогда>else <иначе>). Эта форма действий позволяет выбрать ход решения в зависимости от выполнения условия задачи.
На языке программирования Паскаль ветвление реализуется в виде условного оператора. В этой статье мы разберем как программируется на паскале полное и неполное ветвление.
Условный оператор if (полная форма)
Посмотрите на рисунок ниже. На нем изображена блок-схема полного ветвления. В этом варианте при выполнении условия выполняется команда Оператор 1. Если условие ложно, то выполнится команда Оператор 2. Ниже схемы приведена форма записи этой структуры на языке программирования Паскаль.
На паскале запись следующая: if [здесь условие] then [команда 1] else [команда 2];
Задание 1. Напишите программу. Целое число М вводится с клавиатуры. Если оно неотрицательное, то увеличить его на 5. В противном случае — заменить числом ноль.
Решение:
Задание 2. Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе.
Решение:
2 вариант
Добавим пояснительный текст в программу для улучшения пользовательского интерфейса.
Условный оператор if (неполная форма)
Посмотрите на следующий рисунок внизу. Здесь изображена блок-схема неполного ветвления. В этом варианте при выполнении условия выполняется только команда Оператор 1. Если условие неверно, то программа передаст управление следующей команде, которая будет записана после ветвления.
Ниже блок-схемы приведена форма записи этой структуры на языке программирования Паскаль.
На pascal запись следующая: if [здесь условие] then [команда 1] ;
Кстати, во втором задании был пример использования неполного ветвления как части полного.
Задание 3. Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д.
Условный оператор
Попробую дать более популярное определение: условный оператор выполняет некоторое действие, если указанное условие истинно (равно True).
Вот так выглядит if. else в Python
if True :
print ( ‘Условие истинно, поэтому я напечатаюсь’ )
Приведу пример поинтереснее:
a = 10
b = 5
if a > b:
print ( ‘a больше b равно True ‘ )
Если условие ложно, то код, находящийся под оператором if не выполнится:
a = 3
b = 9999999
if a > b:
print ( ‘Я никогда не напечатаюсь :(‘ )
Дополним предыдущий пример оператором else
a = 3
b = 9999999
if a > b:
print ( ‘Я никогда не напечатаюсь :(‘ )
else :
print ( ‘if не выполнился, так что печатаюсь я’ )
Если условие в if ложно, то выполнится оператор под оператором else
Приведу еще несколько примеров:
# Вывести большее из двух чисел,
# введенных с клавиатуры
a = int ( input ())
b = int ( input ())
if a > b:
print ( ‘Большее число a = ‘ + str (a))
else :
print ( ‘Большее число b = ‘ + str (b))
# Проверить число a на четность
a = int ( input ())
if a % 2 == 0 :
print ( ‘четное’ )
else :
print ( ‘нечетное’ )
Иногда двух вариантов недостаточно, для этого существует оператор elif, а для все остального есть.
В приведенном выше примере, есть три варианта развития событий, но это не значит, что мы ограничены в количестве дополнительных условий.
Примеры решения задач
Проверить является ли клетка шахматной доски белой
Во втором случаем числа вводятся с клавиатуры
x = int ( input ( ‘Введите координату x: ‘ ))
y = int ( input ( ‘Введите координату y: ‘ ))
if (x + y) % 2 == 1 :
print ( ‘YES’ )
else :
print ( ‘NO’ )
Проверить может ли слон ходить с первой шахматной на вторую
То же самое, но с помощью ввода с клавиатуры
Решение задач
1. Пользователь вводит два целых числа. Выведите меньшее из них.
2. Пользователь вводит свое имя и возраст. Если возраст пользователя больше 18, то вывести строку «Добрый вечер, name! Вы совершеннолетний, поздравляем!», иначе вывести строку «Привет, name! Приносим извинения, но вы не можете гулять после 22:00». Пример:
# name = ‘Ivan’
# age = 21
>>> Добрый вечер, Ivan! Вы совершеннолетний, поздравляем!
# name = ‘Max’
# age = 14
>>> Привет, Max! Приносим извинения, но вы не можете гулять после 22:00
3. Пользователь вводит три строки. Одна из них равна строке «Python», выведите номер этой строки.
4. Пользователь вводит три целых числа. Два из них равны друг другу. Выведите третье число, не равное остальным. Если среди введенных чисел не оказалось двух равных друг другу, выведите строку «Ошибка».
5. Пользователь вводит целое число. Проверьте является ли это число четырехзначным, если является, то выведите строку «Успешно», иначе «Неудача».
7. Пользователь вводит текущее время в часах. Если количество часов находится в диапазоне от 0 до 7, то программа выводит строку «Ночь». Если часовая стрелка находится между 7 и 11, то выведется строка «Утро». От 12 до 17 выведется строка «День». Если текущее время находится между 17 и 23, то программа должна вывести строку «Вечер». В случае, когда введенное число отрицательно или превосходит 23, программа должна вывести строку «Ошибка».
11. Пользователь вводит целое число. Выведите его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число», например, численным описанием числа 190 является строка «положительное четное число».
12. Дано целое число, лежащее в диапазоне от 1 до 999. Если число двузначное, выведите строку «Двузначное», если число содержит одну значащую цифру, то выведите строку «Цифра», если число является трехзначным выведите «Трехзначное». В случае, если введенное число меньше 0 или больше 999, выведите строку «Ошибка!».
13. Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую или NO в противном случае. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку «Ошибка!».
14. Шахматный ферзь ходит по диагонали, горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку «Ошибка!».