SlideShare a Scribd company logo
1 of 12
ПРОГРАММИРОВАНИЕ
Условный оператор
РАЗВЕТВЛЯЮЩИХСЯ
АЛГОРИТМОВ.
Условный оператор.

НАЧАЛА ПРОГРАММИРОВАНИЯ
Ключевые слова
• условный оператор
• сокращённая форма условного
оператора
• составной оператор
• вложенные ветвления
Общий вид условного оператора
Полная форма условного оператора:

if <условие> then <оператор_1> else <оператор_2>
Сокращённая форма условного оператора:

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

!

Перед else знак «;» не ставится.
Условия - логические выражения

Простые
Операции
отношений

Сложные
Логические
операции
Условный оператор

program n_9;
var x, a, b: real;
begin
writeln ('Определение принадлежности
точки отрезку');
write ('Введите а, b>>');

a, b,
x
да

readln (a, b);
write ('Введите x>>');
ДА
readln (x);
if (x>=a) and (x<=b) then
writeln ('Точка принадлежит отрезку')
else writeln ('Точка не принадлежит отрезку')
end.

(x>=a) and
(x<=b)

нет

НЕТ
Сокращённая форма условного оператора
program n_10;
var y, a, b, c: integer;
begin
writeln ('Нахождение наибольшей из трёх величин');
write ('Введите а, b, с>>');
да
readln (a, b, c);
y:=a;
Y:=B
if (b>y) then y:=b;
да
if (c>y) then y:=c;
writeln ('y=', y)
Y:=C
end.

Y:=A
B>Y

C>Y

нет

нет
Составной оператор
В условном операторе и после then, и после else
можно использовать только один оператор.

Если в условном операторе после then или после else
нужно выполнить несколько операторов, то
используют составной оператор – конструкцию вида:
begin <последовательность операторов> end
Блок-схема решения КВУР
Начало
Введите коэффициенты a,
b, c
d:=b*b-4*a*c
да

нет
d<0
да

Вывод
«Корней
нет»

x:=-b/2/a

d:= 0

нет
d>0
да

Вывод
«Корень уравнения
х=», х

х1:=(-b+sqrt(d))/2/a
х2:=(-b-sqrt(d))/2/a

Конец

Вывод
«Корни
уравнения:
х1=», х1, «х2=», х
2
program n_11;
var a, b, c: real;
var d: real;
var x, x1, x2: real;
begin
writeln ('Решение квадратного уравнения');
write ('Введите коэффициенты a, b, c >>');
readln (a, b, c);
d:=b*b-4*a*c;
if d<0 then writeln ('Корней нет');
if d=0 then
begin
x:=-b/2/a;
writeln ('Корень уравнения x=', x:9:3)
end;
if d>0 then
begin
x1:=(-b+sqrt(d))/2/a;
x2:=(-b-sqrt(d))/2/a;
writeln ('Корни уравнения:');
writeln ('x1=', x1:9:3);
writeln ('x2=', x2:9:3)
end;
end.
Вложенные ветвления
Возможна следующая конструкция:

if <условие1> then

if <условие2> then <оператор1>
else <оператор2>
else <оператор3>

!

else всегда относится к ближайшему оператору if
Решение линейного уравнения
Список
данных
a, b, x - вещ
a, b
да

x:=b/a

a<>
0 да

program n_12;
Корней
var a, b, x: real;
нет
begin
writeln ('Решение линейного уравнения');
write ('Введите коэффициенты a , b>>');
readln (a, b);
if a<>0 then
begin
x:=-b/a;
writeln ('Корень уравнения x=', x:9:3)
end
else if b<>0 then writeln ('Корней нет')
else writeln ('x – любое число');
end.

нет

b<>
0

нет

Любое
число
Самое главное
При записи на языке Паскаль разветвляющихся алгоритмов
используют условный оператор:
if <условие> then <оператор_1> else <оператор_2>
Для записи неполных ветвлений используется сокращённый
условный оператор:
if <условие> then <оператор>
Если при некотором условии требуется выполнить
определённую последовательных операторов, то их
объединяют в один составной оператор, имеющий вид:
begin <последовательность операторов> end.
Опорный конспект
Условный оператор
Полная форма

if <условие> then <оператор_1> else <оператор_2>
Неполная форма

if <условие> then <оператор>
Составной оператор

begin <последовательность операторов> end

More Related Content

What's hot

Фитнес для вашего кода: как держать его в форме
Фитнес для вашего кода: как держать его в формеФитнес для вашего кода: как держать его в форме
Фитнес для вашего кода: как держать его в формеIlia Shishkov
 
Григорий Демченко, Универсальный адаптер
Григорий Демченко, Универсальный адаптерГригорий Демченко, Универсальный адаптер
Григорий Демченко, Универсальный адаптерSergey Platonov
 
3.6 Константность
3.6 Константность3.6 Константность
3.6 КонстантностьDEVTYPE
 
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Roman Orlov
 
Контрактное программирование
Контрактное программированиеКонтрактное программирование
Контрактное программированиеIlya Zelenchuk
 
Павел Беликов, Как избежать ошибок, используя современный C++
Павел Беликов, Как избежать ошибок, используя современный C++Павел Беликов, Как избежать ошибок, используя современный C++
Павел Беликов, Как избежать ошибок, используя современный C++Sergey Platonov
 
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...corehard_by
 
2.3 Указатели и массивы
2.3 Указатели и массивы2.3 Указатели и массивы
2.3 Указатели и массивыDEVTYPE
 
Конкурентные ассоциативные контейнеры
Конкурентные ассоциативные контейнерыКонкурентные ассоциативные контейнеры
Конкурентные ассоциативные контейнерыcorehard_by
 
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...Alexey Paznikov
 
Использование юнит-тестов для повышения качества разработки
Использование юнит-тестов для повышения качества разработкиИспользование юнит-тестов для повышения качества разработки
Использование юнит-тестов для повышения качества разработкиvictor-yastrebov
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке Cstudent_kai
 
3.2 Методы
3.2 Методы3.2 Методы
3.2 МетодыDEVTYPE
 
тема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритмтема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритмdasha2012
 
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведенияДракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведенияPlatonov Sergey
 

What's hot (20)

Фитнес для вашего кода: как держать его в форме
Фитнес для вашего кода: как держать его в формеФитнес для вашего кода: как держать его в форме
Фитнес для вашего кода: как держать его в форме
 
Григорий Демченко, Универсальный адаптер
Григорий Демченко, Универсальный адаптерГригорий Демченко, Универсальный адаптер
Григорий Демченко, Универсальный адаптер
 
3.6 Константность
3.6 Константность3.6 Константность
3.6 Константность
 
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
 
Контрактное программирование
Контрактное программированиеКонтрактное программирование
Контрактное программирование
 
Parallel STL
Parallel STLParallel STL
Parallel STL
 
Павел Беликов, Как избежать ошибок, используя современный C++
Павел Беликов, Как избежать ошибок, используя современный C++Павел Беликов, Как избежать ошибок, используя современный C++
Павел Беликов, Как избежать ошибок, используя современный C++
 
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
 
2.3 Указатели и массивы
2.3 Указатели и массивы2.3 Указатели и массивы
2.3 Указатели и массивы
 
Конкурентные ассоциативные контейнеры
Конкурентные ассоциативные контейнерыКонкурентные ассоциативные контейнеры
Конкурентные ассоциативные контейнеры
 
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
 
Использование юнит-тестов для повышения качества разработки
Использование юнит-тестов для повышения качества разработкиИспользование юнит-тестов для повышения качества разработки
Использование юнит-тестов для повышения качества разработки
 
C++ exceptions
C++ exceptionsC++ exceptions
C++ exceptions
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке C
 
лабраб 6
лабраб 6лабраб 6
лабраб 6
 
3.2 Методы
3.2 Методы3.2 Методы
3.2 Методы
 
Step cpp022
Step cpp022Step cpp022
Step cpp022
 
тема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритмтема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритм
 
Programming c++ (begin-if-else)
Programming c++ (begin-if-else)Programming c++ (begin-if-else)
Programming c++ (begin-if-else)
 
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведенияДракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
 

Similar to Условный оператор

Программирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовПрограммирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовAndrey Dolinin
 
Сложные условия в паскале
Сложные условия в паскалеСложные условия в паскале
Сложные условия в паскалеDaria Romanova
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
Matlab: Вычисление предела
Matlab: Вычисление пределаMatlab: Вычисление предела
Matlab: Вычисление пределаDmitry Bulgakov
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмовAndrey Dolinin
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДIT_1315
 
Cоставной
CоставнойCоставной
CоставнойOlgaDask
 
условный оператор
условный операторусловный оператор
условный операторalinagangan
 
паскаль. часть1
паскаль. часть1паскаль. часть1
паскаль. часть1igorm9so
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Sergey Platonov
 

Similar to Условный оператор (20)

Программирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовПрограммирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмов
 
8 3-4
8 3-48 3-4
8 3-4
 
лекция 2
лекция 2лекция 2
лекция 2
 
Сложные условия в паскале
Сложные условия в паскалеСложные условия в паскале
Сложные условия в паскале
 
условия, подпрограммы
условия, подпрограммыусловия, подпрограммы
условия, подпрограммы
 
Pri3
Pri3Pri3
Pri3
 
лекция 2
лекция 2лекция 2
лекция 2
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
паскаль
паскальпаскаль
паскаль
 
Урок 8. Введение в редукцию графов
Урок 8. Введение в редукцию графовУрок 8. Введение в редукцию графов
Урок 8. Введение в редукцию графов
 
Matlab: Вычисление предела
Matlab: Вычисление пределаMatlab: Вычисление предела
Matlab: Вычисление предела
 
8 3-5
8 3-58 3-5
8 3-5
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмов
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОД
 
Pril
PrilPril
Pril
 
Cоставной
CоставнойCоставной
Cоставной
 
условный оператор
условный операторусловный оператор
условный оператор
 
паскаль. часть1
паскаль. часть1паскаль. часть1
паскаль. часть1
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
 

More from OlgaDask

Типы данных
Типы данныхТипы данных
Типы данныхOlgaDask
 
Операторы в Turbo Pascal
Операторы в Turbo PascalОператоры в Turbo Pascal
Операторы в Turbo PascalOlgaDask
 
Язык программирования Паскаль
Язык программирования ПаскальЯзык программирования Паскаль
Язык программирования ПаскальOlgaDask
 

More from OlgaDask (10)

ifIf
ifIfifIf
ifIf
 
Case
CaseCase
Case
 
forFor
forForforFor
forFor
 
While1
While1While1
While1
 
Repeat
RepeatRepeat
Repeat
 
Goto
GotoGoto
Goto
 
Типы данных
Типы данныхТипы данных
Типы данных
 
Операторы в Turbo Pascal
Операторы в Turbo PascalОператоры в Turbo Pascal
Операторы в Turbo Pascal
 
Язык программирования Паскаль
Язык программирования ПаскальЯзык программирования Паскаль
Язык программирования Паскаль
 
while
whilewhile
while
 

Условный оператор

  • 2. Ключевые слова • условный оператор • сокращённая форма условного оператора • составной оператор • вложенные ветвления
  • 3. Общий вид условного оператора Полная форма условного оператора: if <условие> then <оператор_1> else <оператор_2> Сокращённая форма условного оператора: if <условие> then <оператор> ! Перед else знак «;» не ставится. Условия - логические выражения Простые Операции отношений Сложные Логические операции
  • 4. Условный оператор program n_9; var x, a, b: real; begin writeln ('Определение принадлежности точки отрезку'); write ('Введите а, b>>'); a, b, x да readln (a, b); write ('Введите x>>'); ДА readln (x); if (x>=a) and (x<=b) then writeln ('Точка принадлежит отрезку') else writeln ('Точка не принадлежит отрезку') end. (x>=a) and (x<=b) нет НЕТ
  • 5. Сокращённая форма условного оператора program n_10; var y, a, b, c: integer; begin writeln ('Нахождение наибольшей из трёх величин'); write ('Введите а, b, с>>'); да readln (a, b, c); y:=a; Y:=B if (b>y) then y:=b; да if (c>y) then y:=c; writeln ('y=', y) Y:=C end. Y:=A B>Y C>Y нет нет
  • 6. Составной оператор В условном операторе и после then, и после else можно использовать только один оператор. Если в условном операторе после then или после else нужно выполнить несколько операторов, то используют составной оператор – конструкцию вида: begin <последовательность операторов> end
  • 7. Блок-схема решения КВУР Начало Введите коэффициенты a, b, c d:=b*b-4*a*c да нет d<0 да Вывод «Корней нет» x:=-b/2/a d:= 0 нет d>0 да Вывод «Корень уравнения х=», х х1:=(-b+sqrt(d))/2/a х2:=(-b-sqrt(d))/2/a Конец Вывод «Корни уравнения: х1=», х1, «х2=», х 2
  • 8. program n_11; var a, b, c: real; var d: real; var x, x1, x2: real; begin writeln ('Решение квадратного уравнения'); write ('Введите коэффициенты a, b, c >>'); readln (a, b, c); d:=b*b-4*a*c; if d<0 then writeln ('Корней нет'); if d=0 then begin x:=-b/2/a; writeln ('Корень уравнения x=', x:9:3) end; if d>0 then begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; writeln ('Корни уравнения:'); writeln ('x1=', x1:9:3); writeln ('x2=', x2:9:3) end; end.
  • 9. Вложенные ветвления Возможна следующая конструкция: if <условие1> then if <условие2> then <оператор1> else <оператор2> else <оператор3> ! else всегда относится к ближайшему оператору if
  • 10. Решение линейного уравнения Список данных a, b, x - вещ a, b да x:=b/a a<> 0 да program n_12; Корней var a, b, x: real; нет begin writeln ('Решение линейного уравнения'); write ('Введите коэффициенты a , b>>'); readln (a, b); if a<>0 then begin x:=-b/a; writeln ('Корень уравнения x=', x:9:3) end else if b<>0 then writeln ('Корней нет') else writeln ('x – любое число'); end. нет b<> 0 нет Любое число
  • 11. Самое главное При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор: if <условие> then <оператор_1> else <оператор_2> Для записи неполных ветвлений используется сокращённый условный оператор: if <условие> then <оператор> Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид: begin <последовательность операторов> end.
  • 12. Опорный конспект Условный оператор Полная форма if <условие> then <оператор_1> else <оператор_2> Неполная форма if <условие> then <оператор> Составной оператор begin <последовательность операторов> end