Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 24.12.2022
Сообщений: 13

Оптимальный счетчик элементов string выражения

27.05.2023, 20:28. Показов 874. Ответов 0

Студворк — интернет-сервис помощи студентам
Добрый вечер. Есть выражение алгебры логики, записанное в string переменную. Мне нужно определить какие буквы использовал пользователь при вводе выражения, в нем может быть только A, B, C, X, Y, Z.

Я выбрал простейший способ, а именно:
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
if (expression.find('X') != -1) {
 
        for (int x = 0; x <= 1; x++) {
 
            variables['X'] = x;
 
            if (expression.find('Y') != -1) {
 
                for (int y = 0; y <= 1; y++) {
 
                    variables['Y'] = y;
 
                    if (expression.find('Z') != -1) {
 
                        for (int z = 0; z <= 1; z++) {
 
                            variables['Z'] = z;
 
                            bool result = evaluateExpression(expression, variables);
 
                            cout << "X = " << x << ", Y = " << y << ", Z = " << z << " : " << result << endl;
 
                        }
 
                    }
 
                    else {
И так далее...

Как можно сделать оптимальный поиск всех параметров выражения без нагромождения if/else?

Добавлено через 29 минут
Разобрался.

C++
1
2
3
4
5
6
7
8
9
10
11
12
string expr = "(A & B & (~D)) + (A & B & C &(~D)) + (A & (~B) & (~C) & (~D))";
 
    vector<char> variables;
    for (char c : expr) {
 
        if (std::isalpha(c) && std::find(variables.begin(), variables.end(), c) == variables.end()) {
 
            variables.push_back(c);
 
        }
 
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2023, 20:28
Ответы с готовыми решениями:

Счетчик в классе string
имеется такой код ... string s = &quot;Hello world&quot;; string s1; s1 = s; s = 'h'; ...

Вычислить значение выражения; определить оптимальный тип переменной для сохранения результата вычислений
Вычислите значение арифметического выражения для заданных переменных double a=2.5, b=1.7; float f=7; int c=5, d=3; a) a*b+c/f...

Написать класс, с двумя методами - add(String s), String get() и массивом на 10 элементов
написать класс, с двумя методами - add(String s), String get() и массивом на 10 элементов. Метод add добавляет строку в массив, метод ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2023, 20:28
Помогаю со студенческими работами здесь

Вывод элементов map <string,vector<string>>
Доброго времени суток. Как можно вывести массив map &lt;string,vector&lt;string&gt;&gt; mp ? Могу только предположить, что нужно как-то...

Ввод элементов map <string,vector<string>>
#include &lt;map&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; int main() { map&lt;string,...

Нельзя преобразовать тип Tuple<string,string,string,string> к string
Здравствуйте, у меня возникла проблема. При запуске кода, вылезает ошибка &quot;Нельзя преобразовать тип...

Транспортная задача, построить оптимальный план методом минимальных элементов
Дана задача построить оптимальный план методом минимальных элементов. код проходит 1 цикл правильно и записывает значение в массив L но...

Чтение выражения с поля string
Нужно в веб-службе сделать так, чтобы при вводе в поле string выражения должно принимать и делать вычисление. Примерный код, но выбивает...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru