Записать данное условие Pascal на С++

Решаю задачку из ЕГЭ. Есть проблема, я не могу нормально записать условие, чтобы выводило данную таблицу истинности.

Код прикладываю:

#include <iostream>

using namespace std;

int main()
{
  int x,y,z,w;

  for (x = 0; x <= 1; x++)
     for (y = 0; y <= 1; y++)
        for (z = 0; z <= 1; z++)
            for (w = 0; w <= 1; w++)
                if(((x && (~y)) || (y^z) || (~w)) == 0)
                {
                    cout << x << w << z << y << endl;
                }

  return 0;

}

В чем проблема? В паскале я спокойно смог написать условие с помощью or,and,xor,not А в C++ "паскальсковский" not отсутствует?

Помогите с данной проблемой и как надо записать данное условие?

Задачка: введите сюда описание изображения


Ответы (1 шт):

Автор решения: Mikhailo

Вы же в С++ - никаких int, только bool:

bool F(bool X, bool Y, bool Z, bool W)
{
    return (X && !Y) || (Y == Z) || !W;
}
→ Ссылка