Программирование на языке Java. Тема 12. Ветвления

Содержание

Слайд 2

Программирование на языке Java Тема 12. Ветвления

Программирование на языке Java

Тема 12. Ветвления

Слайд 3

Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран

Разветвляющиеся алгоритмы

Задача. Ввести два целых числа и вывести на экран наибольшее

из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.

Слайд 4

Вариант 1. Блок-схема полная форма ветвления блок «решение»

Вариант 1. Блок-схема

полная форма ветвления

блок «решение»

Слайд 5

Вариант 1. Программа max = a; max = b; полная форма


Вариант 1. Программа

max = a;

max = b;

полная форма условного оператора


int a,

b, max;
a = in.nextInt();
b = in.nextInt();
if (a > b) {
}
else {
}
System.out.printf (“Наибольшее число %d“, max);
Слайд 6

Условный оператор if ( ) { } else { } Особенности:

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

if (<условие>) {
<что делать, если условие верно>
}
else {

<что делать, если условие неверно>
}

Особенности:
вторая часть (else …) может отсутствовать (неполная форма)
если в блоке один оператор, можно убрать фигурные скобки

Слайд 7

Что неправильно? if (a > b) { a = b; }

Что неправильно?

if (a > b) {
a = b;
}

else
b = a;
}

if (a > b) {
a = b;
else {
b = a;
}

if (a > b) {
a = b;
};
else {
b = a;
}

if (a > b) {
a = b;
}
else (b > a) {
b = a;
}

{

}

{

}

Слайд 8

Вариант 2. Блок-схема неполная форма ветвления

Вариант 2. Блок-схема

неполная форма ветвления

Слайд 9

Вариант 2. Программа неполная форма условного оператора … int a, b,


Вариант 2. Программа

неполная форма условного оператора


int a, b, max;
a = in.nextInt();
b

= in.nextInt();
max = a;
if (b > max)
max = b;
System.out.printf (“Наибольшее число %d”, max);
Слайд 10

Вариант 2Б. Программа … int a, b, max; a = in.nextInt();

Вариант 2Б. Программа


int a, b, max;
a = in.nextInt();
b = in.nextInt();
max

= b;
if ( ??? )
???;
System.out.printf (“Наибольшее число %d”, max);

max = a;

a > max

Слайд 11

if (a > b) { else { b = a; }

if (a > b) {
else {
b = a;

}
if (b >= a)
b = a;

Что неправильно?

if (a > b) {
a = b;
else b = a;

if (a > b) {
a = b;
};
else b = a;

if (a > b)
a = a;
else b = a; }

}

a = b;

a = b;

Слайд 12

Ветвление и логические переменные Условие может быть представлено переменной логического типа

Ветвление и логические переменные

Условие может быть представлено переменной логического типа (boolean).


boolean test;
// ...
if (test) {
<что делать, если test = true>
}
else {
<что делать, если test = false>
}

Слайд 13

Тернарный оператор ? Некоторые небольшие конструкции if-else можно заменить специальным тернарным

Тернарный оператор ?

Некоторые небольшие конструкции if-else можно заменить специальным тернарным оператором.
Общий

вид тернарного оператора:

<логическое выражение> ? <выражение1> : <выражение2>

Алгоритм работы:
Вычисляется логическое выражение.
Если логическое выражение истинно, то вычисляется значение выражения выражение 1, в противном случае — значение выражения выражение 2.
Вычисленное значение возвращается.

Слайд 14

Тернарный оператор. Пример Задача. Дано две переменных, найти наименьшую из них.

Тернарный оператор. Пример

Задача. Дано две переменных, найти наименьшую из них.

int a,

b, min;
// ввод данных
min = (a < b) ? a : b;
Слайд 15

Задания 1. Ввести три числа и найти наибольшее из них. Пример:

Задания

1. Ввести три числа и найти наибольшее из них.
Пример:
Введите три

числа:
4 15 9
Наибольшее число 15
2. Ввести пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56
Слайд 16

Задания 3. Ввести числа. Упорядочить их по возрастанию. Пример: Введите два

Задания

3. Ввести числа. Упорядочить их по возрастанию.
Пример:
Введите два числа:
7 4
Упорядоченная

последовательность: 4 7
4. Вычисление функции по взаимноисключающим веткам
Слайд 17

Задания 5. Ввести три числа и найти среднее из них при

Задания

5. Ввести три числа и найти среднее из них при условии,

что числа попарно не равны.
Пример:
Введите три числа:
4 15 9
Среднее число 9
Слайд 18

Программирование на языке Java Тема 13. Сложные условия

Программирование на языке Java

Тема 13. Сложные условия

Слайд 19

Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет

Сложные условия

Задача. Фирма набирает сотрудников от 25 до 40 лет включительно.

Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.
Слайд 20

Вариант 1. Алгоритм начало ввод x “подходит” конец да нет x

Вариант 1. Алгоритм

начало

ввод x

“подходит”

конец

да

нет

x >= 25?

да

нет

x <= 40?

“не подходит”

“не подходит”

Слайд 21

Вариант 1. Программа … int x = in.nextInt(); if (x >=


Вариант 1. Программа


int x = in.nextInt();
if (x >= 25) {
if

(x <= 40)
System.out.print(“Подходит”);
else
System.out.print(“Не подходит”);
}
else
System.out.print(“Не подходит”);
Слайд 22

Вариант 2. Алгоритм начало ввод x “подходит” да нет x >= 25 и x “не подходит”

Вариант 2. Алгоритм

начало

ввод x

“подходит”

да

нет

x >= 25 и
x <= 40?

“не подходит”

Слайд 23

Вариант 2. Программа … int x; x = in.nextInt(); if (x

Вариант 2. Программа


int x;
x = in.nextInt();
if (x >= 25 && x

<= 40)
System.out.println (“Подходит”);
else System.out.println (“Не подходит”);
}

сложное условие

Слайд 24

Сложные условия Сложное условие – это условие, состоящее из нескольких простых

Сложные условия

Сложное условие – это условие, состоящее из нескольких простых условий

(отношений), связанных с помощью логических операций:
! – НЕ (отрицание, инверсия)
&& – И (логическое умножение, конъюнкция, одновременное выполнение условий)
|| – ИЛИ (логическое сложение, дизъюнкция, выполнение хотя бы одного из условий)
^ – исключающее или (XOR)
Простые условия (отношения)
< <= > >= == !=

равно

не равно

Слайд 25

Порядок выполнения (приоритет = старшинство) выражения в скобках ! (НЕ, отрицание)

Порядок выполнения (приоритет = старшинство)
выражения в скобках
! (НЕ, отрицание)
& (И)
^ (XOR,

исключающее ИЛИ)
| (ИЛИ)
&& (замыкающее И)
|| (замыкающее ИЛИ)
Пример

Сложные условия

if ( !(a > b) || c != d && b == a)

2

1

6

3

5

4

Слайд 26

Истинно или ложно при a = 2; b = 3; c

Истинно или ложно при a = 2; b = 3; c

= 4;
!(a > b)
(a < b) && (b < c)
!(a >= b) || (c == d)
(a < c) || (b < c) && (b < a)
!(a < b) && (b > c)
Для каких значений x истинны условия:
(x < 6) && (x < 10)
(x < 6) && (x > 10)
(x > 6) && (x < 10)
(x > 6) && (x > 10)
(x < 6) || (x < 10)
(x < 6) || (x > 10)
(x > 6) || (x < 10)
(x > 6) || (x > 10)

Сложные условия

true

true

false

(-∞, 6)


(6, 10)

(10, ∞)

(-∞, 10)

(-∞, 6) ∪ (10,∞)

(-∞, ∞)

(6, ∞)

x < 6

x > 10

x < 10

x > 6

true

true

Слайд 27

Задания 1. Ввести номер месяца и вывести название времени года. Пример:

Задания

1. Ввести номер месяца и вывести название времени года.
Пример:
Введите номер

месяца:
4
весна
2. Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом «год», «года» или «лет».
Пример:
Введите возраст: Введите возраст:
24 57
Вам 24 года Вам 57 лет
Слайд 28

Задания 3. Ввести день, месяц и год рождения, а также текущие

Задания

3. Ввести день, месяц и год рождения, а также текущие день,

месяц и год. Выведите на экран количество полных лет на текущую дату.
Пример:
Введите дату рождения:
30.11.1996
Введите текущую дату:
29.10.2013
Ответ: вам 16 лет.
Пример:
Введите дату рождения:
30.09.1996
Введите текущую дату:
29.10.2013
Ответ: вам 17 лет.