
Лабораторна робота №2
Логічні вирази
Короткі теоретичні відомості
Арифметичні операції
Унарные:
& |
получение адреса операнда |
* |
обращение по адресу (разыменование) |
- |
унарный минус, меняет знак арифметического операнда |
~ |
поразрядное инвертирование внутреннего двоичного кода (побитовое отрицание) |
! |
логическое отрицание (НЕ). В качестве логических значений используется 0 - ложь и не 0 - истина, отрицанием 0 будет 1, отрицанием любого ненулевого числа будет 0. |
++ |
увеличение на единицу: префиксная операция - увеличивает операнд до его использования, постфиксная операция увеличивает операнд после его использования. |
- - |
уменьшение на единицу: префиксная операция - уменьшает операнд до его использования, постфиксная операция уменьшает операнд после его использования. |
sizeof |
вычисление размера (в байтах) для объекта того типа, который имеет операнд |
Бинарные операции.
Аддитивные:
+ |
бинарный плюс (сложение арифметических операндов) |
- |
бинарный минус (вычитание арифметических операндов) |
Мультипликативные:
* |
умножение операндов арифметического типа |
/ |
деление операндов арифметического типа (если операнды целочисленные, то выполняется целочисленное деление) |
% |
получение остатка от деления целочисленных операндов |
Операции сдвига (определены только для целочисленных операндов)
<< |
сдвиг влево битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого операнда |
>> |
сдвиг вправо битового представления значения правого целочисленного операнда на количество разрядов, равное значению правого операнда |
Поразрядные операции:
& |
поразрядная конъюнкция (И) битовых представлений значений целочисленных операндов |
| |
поразрядная дизъюнкция (ИЛИ) битовых представлений значений целочисленных операндов |
^ |
поразрядное исключающее ИЛИ битовых представлений значений целочисленных операндов |
Операции сравнения:
< |
меньше, чем |
> |
больше, чем |
<= |
меньше или равно |
>= |
больше или равно |
== |
равно |
!= |
не равно |
Логические бинарные операции:
&& |
конъюнкция (И) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(1) |
|| |
дизъюнкция (ИЛИ) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(1) |
Тернарная операция
Тернарная операция имеет 3 аргумента и возвращает свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом. Синтаксис тернарной операции
Условие ? выражение1 : выражение2;
Если выполняется условие, то тернарная операция возвращает выражение1, в противном случае - выражение2.
Пример
key == 1 ? printf("\n Выбран первый пункт") :
printf("\n Первый пункт не выбран") ;
Тернарные операции, как и операции условия, могут быть вложенными.
key == 1 ? printf("\n Выбран первый пункт") :
( key == 2 ? printf("\n Выбран второй пункт") :
printf("\n Первый и второй пункты не выбраны") ) ;
Приклад розв’язку задачі
Задано значення x, A, B.Визначити істинність твердження
Варіант А
#include "stdafx.h"
#include "iostream"
#include "windows.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale (LC_ALL,"Russian");
int x, a, b;
cout << "\nВведите х: ";
cin >> x;
cout << "\nВведите A: ";
cin >> a;
cout << "\nВведите B: ";
cin >> b;
cout << "\n x принадлежит интервалу [A ; B] ? " << (x>=a && x<=b) <<endl;
system ("pause");
return 0;
}
Варіант B
#include "stdafx.h"
#include "iostream"
#include "windows.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale (LC_ALL,"Russian");
int x, a, b;
cout << "\nВведите х: ";
cin >> x;
cout << "\nВведите A: ";
cin >> a;
cout << "\nВведите B: ";
cin >> b;
cout << "\n x принадлежит интервалу [A ; B] ? " << (x>=a == x<=b) <<endl;
system ("pause");
return 0;
}
Запуск програми F5.
Завдання для самостійної роботи
-
Скласти алгоритм розв’язку задачі (згідно до варіанту).
-
Побудувати блок-схему розв’язку задачі.
-
Скласти програму розв’язку задачі у середовищі Visual Studio.
-
Реалізувати два варіанти програмного коду:
-
з використанням тернарного оператору;
-
без використання тернарного оператору.
Варіанти завдань:
У всіх завданнях заданої групи потрібно вивести логічне значення True, якщо приведене висловлення для запропонованих вихідних даних є істиною, і значення False у протилежному випадку.
Всі числа, для яких зазначено кількість цифр (двозначне число, тризначне число і т.д.), вважати цілими позитивними.
№ вар. |
Завдання |
|
Задано два цілих числа: A, B. Перевірити істинність висловлення: «Кожне з чисел A і B непарне». |
|
Задано ціле число A. Перевірити істинність висловлення: «Число A є позитивним або нулем». |
|
Задано два цілих числа: A, B. Перевірити істинність висловлення: «Справедлива нерівність A ≥ 0 або B < –2». |
|
Задано два цілих числа: A, B. Перевірити істинність висловлення: «Справедлива нерівність A > 2 та B ≥ 3». |
|
Задано три цілих числа: A, B, C. Перевірити істинність висловлювання: «Справедлива подвійна нерівність A < B < C». |
|
Задано три цілих числа: A, B, C. Перевірити істинність висловлювання: «Хоча б одне з чисел A, B, C позитивне». |
|
Задано два цілих числа: A, B. Перевірити істинність висловлення: «Тільки одне з чисел A і B непарне». |
|
Перевірити істинність висловлення: «Серед трьох заданих цілих чисел є хоча б одна пара співпадаючих». |
|
Задано тризначне число. Перевірити істинність висловлення: «Усі цифри заданого числа різні». |
|
Задано ціле число A. Перевірити істинність висловлення: «Число A є парним або однозначним». |
|
Задано три цілих числа: A, B, C. Перевірити істинність висловлювання: «Тільки одне з чисел A, B, C позитивне». |
|
Задано ціле позитивне число. Перевірити істинність висловлювання: «Дане число є парним двозначним». |
|
Задано ціле позитивне число. Перевірити істинність висловлювання: «Дане число є непарним тризначним». |
|
Задано два цілих числа: A, B. Перевірити істинність висловлення: «Числа A і B мають однакову парність». |
|
Перевірити істинність висловлення: «Серед трьох заданих цілих чисел є хоча б одна пара взаємно протилежних». |
|
Задано ціле число A. Перевірити істинність висловлення: «Число A є непарним та негативним». |
|
Задано чотиризначне число. Перевірити істинність висловлення: «Задане число читається однаково з ліва направо і з права». |
|
Задано три цілих числа: A, B, C. Перевірити істинність висловлювання: «Кожне з чисел A, B, C позитивне». |
|
Задано два цілих числа: A, B. Перевірити істинність висловлення: «Хоча б одне з чисел A і B непарне». |
|
Задано тризначне число. Перевірити істинність висловлення: «Цифри заданого числа утворять зростаючу послідовність». |
|
Задано три цілих числа: A, B, C. Перевірити істинність висловлювання: «Число B знаходиться між числами A і C». |
|
Задано три цілих числа: A, B, C. Перевірити істинність висловлювання: «Тільки два з чисел A, B, C є позитивними». |
|
Задано тризначне число. Перевірити істинність висловлення: «Цифри заданого числа утворять зростаючу або спадаючу послідовність». |
|
Задано числа x, y. Перевірити істинність висловлення: «Точка з координатами (x, y) лежить у другій або третій координатній чверті». |
|
Задано числа x, y. Перевірити істинність висловлення: «Точка з координатами (x, y) лежить у першій або третій координатній чверті». |
|
Задано числа x, y. Перевірити істинність висловлення: «Точка з координатами (x, y) лежить у другій координатній чверті». |
|
Задано числа x, y. Перевірити істинність висловлення: «Точка з координатами (x, y) лежить у четвертій координатній чверті». |
|
Задано числа x, y, x1, y1, x2, y2. Перевірити істинність висловлення: «Точка з координатами (x, y) лежить усередині прямокутника, ліва верхня вершина якого має координати (x1, y1), права нижня — (x2, y2), а сторони паралельні координатним вісям». |