![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Урок 6. Задачи со сложным условиемСодержание книги
Поиск на нашем сайте
Какие еще бывают условия в языке Си 10. Условия бывают простыми и достаточно сложными. Простое условие состоит из двух величин и одной операции отношения между ними (больше, больше или равно, меньше и т.д.). 11. if(25 <= v < 40) printf("Вы нам подходите\n"); 12. В принципе правила (синтаксис) языка Си допускают такую запись. Однако рассмотрим, как будет работать такое условие. 13. if(25 <= 30 < 40)... 14. Это условие компилятор вычисляет, как и всякое выражение, слева направо. Первое сравнение 15. 25 <= 30 16. дает значение "истина", т.е. 1. Вторая часть выражения выполняет сравнение с уже частично вычисленным выражением, т. е. проверяет: 17. 1 < 40 18. По счастью, это отношение тоже истинно, поэтому и все выражение истинно. Но возьмем другое значение возраста, v=10. Такие сотрудники фирме явно не подходят. Проверим, как будет вычисляться выражение. Первая часть 19. 25 <= 10 20. дает значение "ложь", т. е. 0, однако вторая часть 21. 0 < 40 22. явно истинна, и все выражение тоже получилось истинно. Результат далек от желаемого. 23. && логическое И, имеет значение "истина", 24. В качестве операндов выступают условия, составленные из отношений или других условий: 25. условие_1 && условие_2 26. И, в завершение, еще одной логической операцией является отрицание, которое применяется к одному операнду и преобразующее логическое выражение в противоположное:
27.! логическое НЕ (отрицание условия) 28. Записывается: 29.! условие 30. Используя отрицание, можно выразить одно логическое отношение через другое. Например, "x больше y" означает, что "неверно, что x меньше или равно y": 31. x > y равносильно!(x <= y) 32. Используя логические операции, можно составлять условия на принадлежность значения промежутку, или наоборот, его непринадлежность. Если значение должно попадать в промежуток, применяется связка И, а если оно не должно принадлежать - связка ИЛИ. 33. if(25 <= v && v < 40) printf("Вы нам подходите\n"); 34. и расшифровывается буквально: если возраст больше или равен 25 И возраст меньше 40. Это условие составлено из двух операций отношения и логической связки И между ними. 35. if(v < 8 || v >= 60)... 36. Порядок записи операндов условия произволен, но лучше все-таки сохранять естественную нотацию. Сравним эквивалентную запись предыдущего выражения: 37. if(60 <= v || 8 > v)... 38. Операции логического И и логического ИЛИ можно также выразить одну через другую с помощью отрицания. В последнем примере условие можно записать: 39. if(!(8 <= v && v < 60))... 40. Здесь в самых внутренних скобках записано то условие, что возраст не является уязвимым, а отрицание этого условия дает желаемый результат. Приоритет логических операций и отношений 42. В первую очередь выполняются 43. арифметические операции, затем 44. Для изменения порядка действий используются круглые скобки. 45. if(x*x+y*y<=r*r)...
Задача о кирпиче 47. Выяснить, пройдет ли кирпич с ребрами a, b, c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия. Пусть в ячейки a, b, c, x, y введены числа. Первый вариант записи условного оператора: 48. if(x>a && y>b) printf("Кирпич пройдет\n"); 49. Однако глядя на этот кирпич и отверстие, мы-то быстро сообразим, что так кирпич не пройдет и его надо повернуть "боком". Компьютер же этого не может видеть, и ему надо подробно разъяснить, как поворачивать этот самый кирпич. Точнее, поскольку порядок ввода значений переменных заранее неизвестен, в записи условия надо рассмотреть все варианты их сочетания. Полный вариант записи условия: 50. if( 51. Скобки в записи этого условия необязательны, нужный порядок выполнения операций соблюден. Резюме 53. В этом уроке вы узнали, как записывается сложное логическое условие, познакомились с порядком выполнения логических операций. Вопросы для самопроверки 55. 1. Какие логические операции вы знаете?
Задания для самостоятельной работы к уроку 6 1. Проверить, принадлежит ли число, введенное с клавиатуры, интервалу (-5.1, 3.6). В/(Р*Р) Если ИМТ менее 18,5 то Дефицит массы тела. Введите в одной строке вес и рост (в м.) и нажмите <Enter>
|
||||||
Последнее изменение этой страницы: 2016-04-07; просмотров: 1251; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.102.88 (0.01 с.) |