Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AndrewSage
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 22
#1

Пропозициональная формула - C++

26.11.2013, 09:31. Просмотров 332. Ответов 0
Метки нет (Все метки)

Написать программу для реализации следующего алгоритма
определения является ли данная строка символов пропозициональной формулой или нет:
шаг 1. Проверка скобочного итога формулы.
шаг 2. Проверка того, что первый символ открывающаяся скобка, а последний-
закрывающаяся. В случае выполнения условия, удалить внешние скобки.
шаг 3. Если первый символ отрицание, то удалить его и повторить шаг 2. Иначе выделить
две формулы (по нулевому скобочному итогу) и проверить наличие знака операции между
ними.
шаг 4. Повторить шаги 2 и 3 для каждой подформулы, если она не является
пропозициональной переменной.

Пропозициональная формула:
Кликните здесь для просмотра всего текста
Из пропозициональных переменных формулы строятся по следующим правилам:
1. Пропозициональная переменная есть формула.
2. Если А– формула, то ¬А– тоже формула.
3. Если A и B некоторые формулы, то ( A ∨B),(A ∧B),(A →B) тоже являются
формулами.
Относительно формул верно следующее утверждение об однозначности
синтаксического разбора:
Теорема 1.1: Пропозициональная формула, не являющаяся переменной, может
быть представлена только в одном из четырех видов (А ∧ В) , (А ∨ В) , ( А → В) , ¬А,
где А и В– некоторые формулы.
Формальное доказательство можно провести так. Назовем скобочным итогом
разницу между открывающимися и закрывающимися скобками. Индукцией по
построению формулы легко доказать
Лемму 1.1: Скобочный итог формулы равен нулю.
Доказательство можно провести индукцией по построению. Проверяем это
утверждение для переменных, а также доказываем, что если оно верно для формул А и В,
то оно верно также и для формул (А ∧ В) , (А ∨ В) , ( А → В) , ¬А.
Определение: Формулы А и В имеют одинаковое строение, если формула А может
быть получена из формулы В путем замены каждого вхождения функционального
символа (или логической связки) формулы В на соответствующий функциональный
символ формулы А.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
void main()
{
    string str;
    int q=0,w=0,d;
    getline(cin,str);                  // Ввод строки
    d=str.length();                    // Длина строки
    cout<<str<<endl;
       for (int i=0; i<d; i++)         // читаем строку
       {
           if (str[i]=='(') q++;       // Находим все '('
           if (str[i]==')') w++;       //Находим все ')'
       
              if (q==w)                // Если кол-во скобок '(' и ')' равно, то
              {
                  again:
                  if((str[0]=='(') && (str[d-1]==')'))  // Проверяем первую и последнюю скобки
                  {
                      str.erase(0,1);                   // Удаляем первую
                      str.erase(d-2,1);                 // и последнюю скобки
                  }
                  if (str[0]=='-') str.erase (0,1); goto again;     // Если первый элемент = НЕ, то удаляем его и снова выполняем проверку скобок
              }   
       }
       cout<<str<<endl;
       system ("pause");
}
Не
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 09:31     Пропозициональная формула
Посмотрите здесь:

формула на c++ - C++
Помогите перевести формулу.

Формула - C++
как будет на языке си вот эта формула? аn=n!/(n+2)(n+1)

Формула - C++
Ребята помогите пожалуйста, преобразовать формулу в с++ делаю так: ...

Формула С++ - C++
С++

Формула на с++ - C++
Как записать эту формулу для расчёта на с++ (x-1)корень из x делённо на корень 4x в 3 степени

формула в С++ - C++
Проверьте правильно ли я написал формулу в visual С++ а то что не читает {return (sin(2*x))/(pow(1+cos(2*x)))2;}

Формула! - C++
Помогите написать формулу , не пойму как , просто новичек =) w=|cosx-cosy|^(1+2sin^2y)(1+z+z^2/2+z^3/3+z^4/3) моя запись этой...

Формула - C++
Как составить формулу для данной задачи:Группу детей, приехавшую в оздоровительный лагерь, распределяют по отрядам по принципу: с 6 до 7...

Формула - C++
Добрый день. Как на языке С++ будет выглядеть следующая формула?

Формула - C++
Помогите пожалуйста с формулой. Получается ноль, а должно получится пи.

Формула - C++
помогите составить прогу

Формула усреднения - C++
Помогите разобраться вот с такой вещью: если мы применяем формулу для усреднения RGB rgb = 0.3*r + 0.59*g + 0.11*b; то потом как быть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru