Дан одномерный массив А неупорядоченных целых чисел. Найти и вывести на экран максимальное значение для всех нечетных по значению элементов массива. Предусмотреть выдачу сообщения «Нет», если нечетных чисел нет.
Во второй строчке видим операторы 'if' и 'then', которые переводятся с английского как 'если' и 'тогда' соответственно. Т. е. если, как бы, перевести вторую строчку на русский язык, то получим следующее: "если a < 5 тогда" Таким находящаяся после then функция выполняется только в том случае, если выражение между if и then верно.
Разберем фрагмент кода: a := 10; if a < 5 then a := 5; Понятно, что на первой строчке переменная 'a' приравнивается к 10. Затем на второй строчке идет условие a < 5. Подставляем 'a': 10<5 — неравенство не верно, поэтому 'a := 5; ' не будет выполнено в этой программе, и 'a' не изменилось, и по-прежнему равно 10.
Рассмотрим еще один фрагмент a := 15; if a > 10 then a := 10;
В первой строке 'a' приравнивается к 15. Затем идет условие a>10, 15>10 — верно, поэтому выполняем следующую строку и приравниваем 'a' к 10. В итоге 'a' становится равным 10
(1 + 0)*(0+0) + 1*0 (1 + 0) - истинна, т.к. дизъюнкция истинна если хотя-бы одна из переменных истинна (0 + 0) - ложна, т.к. обе перменные ложны (1 + 0)*(0+0) - ложна, т.к. первая скобка истинна, а вторая ложна, а в конъюнкции для истины обе скобки должны быть истинны. 1*0 - ложна, т.к. в конъюнкции обе переменные должны быть истинны.
Для удобства разделил скобками ((1 + 0)*(0+0)) + (1*0) - ложна, т.к. первая (большая) скобка ложна, вторая скобка (1*0) тоже ложна, между ними дизъюнкция, то есть хотя-бы одна из них должна быть истинна. Они обе ложны, значит результатом выражения
"если a < 5 тогда"
Таким находящаяся после then функция выполняется только в том случае, если выражение между if и then верно.
Разберем фрагмент кода:
a := 10;
if a < 5 then
a := 5;
Понятно, что на первой строчке переменная 'a' приравнивается к 10. Затем на второй строчке идет условие a < 5. Подставляем 'a': 10<5 — неравенство не верно, поэтому 'a := 5; ' не будет выполнено в этой программе, и 'a' не изменилось, и по-прежнему равно 10.
Рассмотрим еще один фрагмент
a := 15;
if a > 10 then
a := 10;
В первой строке 'a' приравнивается к 15. Затем идет условие a>10, 15>10 — верно, поэтому выполняем следующую строку и приравниваем 'a' к 10. В итоге 'a' становится равным 10
(1 + 0) - истинна, т.к. дизъюнкция истинна если хотя-бы одна из переменных истинна
(0 + 0) - ложна, т.к. обе перменные ложны
(1 + 0)*(0+0) - ложна, т.к. первая скобка истинна, а вторая ложна, а в конъюнкции для истины обе скобки должны быть истинны.
1*0 - ложна, т.к. в конъюнкции обе переменные должны быть истинны.
Для удобства разделил скобками
((1 + 0)*(0+0)) + (1*0) - ложна, т.к. первая (большая) скобка ложна, вторая скобка (1*0) тоже ложна, между ними дизъюнкция, то есть хотя-бы одна из них должна быть истинна. Они обе ложны, значит результатом выражения
(1 + 0)*(0+0) + 1*0
будет 0