Єдина Країна!

Головне меню

Наша кнопка

Українські уроки про ІТ

Друзі

Підтримка української армії


Головна Програмування - C++ Базовий курс програмування на С++. Урок 5. Оператори порівняння. Логічні операції об'єднання. Аспекти використання декременту і інкременту.

Базовий курс програмування на С++. Урок 5. Оператори порівняння. Логічні операції об'єднання. Аспекти використання декременту і інкременту.
Написав Joker   
Понеділок, 10 листопада 2014 00:19
Переглядів: 7462

Будь-який дурень може написати код,

зрозумілий комп'ютеру.

Хороший програміст пише код,

який зрозумілий людині.

Сьогодні ми вивчимо:

  1. Різниця між префіксною і суфіксною формою у декрементi/інкременті
  2. Оператори рівності.
  3. Оператори порівняння.
  4. Логічні операції об'єднання і негативна інверсія.

Різниця між префіксною та суфіксною формою у декременті/інкременті.

На перший погляд все дуже просто, декремент зменшує змінну на 1, а інкремент – збільшує. Також варто підкреслити те, що вони не застосовуються до літералів. Погодьтесь вираз 5++; дещо дивний і зовсім не зрозумілий. А ось так a++; все просто і зрозуміло, навіть якщо змінна a = 5;. Також ми визначили, що синтаксис цих операторів може бути різним ( --a; a--;), яка ж між ними різниця? А різниця все таки є.

Префіксна форма: --a; ++a;

Суфіксна форма: a--; a++;

Давайте розглянемо все на прикладі

Приклад 1:

 int a = 8;
 cout << a; // На екрані 8
 a++;
 cout << a; // На екрані 9
 ++a;
 cout << a; // На екрані 10

 

У даному випадку нічого несподіваного не відбулося і на перший погляд нічим ці дві форми не відрізняються. Але давайте розглянемо ще один приклад.

 int a = 8;
 cout << ++a; // На екрані 9
 cout << a++; // На екрані 9
 cout << a; // На екрані 10

 

Якщо крім суфіксної форми інкремента чи декремента є інші оператори, то спершу виконається інша команда (в залежності від оператора) і тільки після цього буде виконане додавання/віднімання 1.


cout << a++; Спершу буде виконано операцію виводу і на екран виведеться число і тільки після того буде виконана операція декремента.

 

Оператори рівності

Символ

Пояснення

==

Перевірка ти лівий операнд дорівнює правому

!=

Лівий операнд не дорівнює правому

 

Оператори порівняння

Символ

Пояснення

<

Лівий операнд менший правого

>

Лівий операнд більший правого

<=

Лівий операнд менший або рівний правому

>=

Лівий операнд більший або рівний правому

 

Логічні операції об’єднання і негативна інверсія

В більшості випадків важко обмежитися тільки однією умовою. Для прикладу, щоб перевірити чи число A знаходиться у діапазоні від 5 до 10, нам знадобляться 2 умови. А>=5 і A<=10. Але компілятор не знає літери і, замість цього існують спеціальні символи.

Операція

Назва

!=

Не

&&

І

||

Або

Тепер ми можемо записати нашу умову як A>=5 && A<=10.

 

Логічне І (&&)

Ця операція об’єднує 2 вирази у одне, і як і інші повертає значення true (правда) або false (брехня). Давайте визначимо коли результатом буде true, а коли false

Вираз_1

Вираз_2

Результат операції

Вираз_1 && Вираз_2

true

false

false

true

true

true

false

true

false

false

false

false

Простіше кажучи ця операція поверне true тільки у тому випадку, коли обидва вирази дорівнюють true.

true можна замінити будь-яким числом крім нуля, компілятор сприйме його як істину (true). False можна замінити тільки 0, тобто -1і інші від’ємні числа -  true.

Давайте розглянемо приклад програми яка визначає чи число належить діапазону 5-10

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_CTYPE, "ukr");
double a;
cout << "Введiть число --> ";
cin >> a;
 
cout << ((a >= 5) && (a <= 10)) << endl;
 
cout << "Якщо ви бачите 0 - число не належить цьому дiапазону." << endl;
cout << "Якщо ви бачите 1 - число належить цьому дiапазону." << endl;
 
_getch();
return 0;
}

 

Логічне АБО (||)

Об’єднує 2 умови і повертає істину (true) тільки у тому випадку, коли хоча б одна з умов поверне істину. Результатом буде false, коли обидві умови дадуть false. Крім цього АБО працює за скороченою системою, якщо перша умова повертає true, то інша (друга умова) – взагалі не перевіряється.

Вираз_1

Вираз_2

Вираз_1 || Вираз_2

true

true

true

true

false

true

false

true

true

false

false

false

 

Давайте знову напишемо програму яка перевіряє чи число a належить діапазону від 5 до 10. Але тепер будемо використовувати АБО.

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_CTYPE, "ukr");
float a;
cin >> a;
cout << ((a <= 5) || (a >= 10)) << endl;
cout << "Якщо ви бачите 0 - число лежить у дiапазоні від 5 до 10" << endl;
cout << "Якщо ви бачите 1 - число не лежить у дiапазоні від 5 до 10" << endl;
 
_getch();
return 0;
}

 

Логічне НЕ (!)

Логічне НЕ є унарним оператором, тому він не може об’єднувати два критерії (як АБО чи І ). Він використовується у тому випадку коли потрібно змінити результат перевірки на протилежній.

Результат_перевірки

!Результат_перевірки

true

false

false

true

Цей оператор змінює результат перевірки з true на false і з false – true.

 

Дякую за приділений час! Чекайте продовження цього уроку.


( 17 Проголосувало )

Схожі статті:
Новіші матеріали:
Старіші матеріали:

Коментарі
Добавити новий
Залишити коментар
Ім`я:
e-mail:
 
Тема:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Введіть цей настирливий код
Русская редакция: www.freedom-ru.net & www.joobb.ru

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Підписка

Хто онлайн?

Немає
На даний момент 12 гостей на сайті

Український рейтинг
TOP.TOPUA.NET