Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Температура по Фаренгейту и по Цельсию Кто может, пожалуйста, объясните код... #include<stdio.h> #include<locale.h> main() { setlocale(LC_ALL, "rus"); printf("\nТемпература \nпо Фаренгейту и по Цельсию \n"); float faren,cels; ... https://www.cyberforum.ru/ cpp-beginners/ thread1391512.html C++ Шаблон, вложенный в него класс и оператор вывода
Добрый день, делаю учебное задание. надо сделать шаблон стека с использованием односвязного списка. Сделал вот такую функцию: template<typename T> class MyStack2 { class Node1 { Node1*...
C++ Разбить программу на функции https://www.cyberforum.ru/ cpp-beginners/ thread1391479.html
Нужно разбить программу на функции: // Структура индив.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <conio.h> #include <string.h> #include...
C++ Программа, определяющая, сколько живых растений будет в N-ом году Время жизни растения составляет 20 лет. В первый год плод растения попадает в землю. Первые побеги растения появляются лишь на 2 год. Плодоносить растение начинает с четвертого года и ежегодно дает... https://www.cyberforum.ru/ cpp-beginners/ thread1391468.html
Виды полиморфизма C++ C++
Разбираю полиморфизм. Наткнулся на классификацию с тремя видами:1.специальный, 2.параметрический и 3.подтипов(включения). Все ли виды применимы для классов? Хотелось бы увидеть примеры.
C++ Заполнить квадрат одинаковыми значениями по диагоналям На первой диагонали в квадрате расположены единицы, на второй диагонали – 2, на К – ой диагонали – к. Количество диагоналей у квадрата 2N-1. Программа: Напишите программу, которая поможет... https://www.cyberforum.ru/ cpp-beginners/ thread1391462.html
C++ Какому типу переменной соответствует HANDLE? https://www.cyberforum.ru/ cpp-beginners/ thread1391457.html
Доброго времени суток! Разбирал чужой код и возник вопрос. В коде как я понял использовалось WIN API. И был объявлен тип данных HANDLE. Во время поисков в интеренет нашёл разные определения, но так...
Шифровки и дешифровка слова под ключ C++
Нужно написать прогу для шифровки и расшифровки слова под ключ. Заранее буду благодарен
C++ Сортировка вставками - Счетчик Здравствуйте, друзья. Есть проблема, имею код - рабочий, не могу реализовать счетчик обменов и сравнений. Вернее он работает, но значения всегда совпадают со счетчиком для пузырька. Я не могу понять... https://www.cyberforum.ru/ cpp-beginners/ thread1391444.html C++ Корни методом дихотомии https://www.cyberforum.ru/ cpp-beginners/ thread1391443.html
Необходимо найти корни методом дихотомии, F(x)=x^3-3*x^2+x-10, с точностью e=0.01. На бумаге вроде что то получилось найти через дискриминант и прочее, а вот как это всё реализовать в программе...
C++ Добавление узла перед заданным в односвязном списке
Вот такой код я нашел, но он похоже с ошибками, нету * как минимум. проставил их но тоже не помогло void AddBefore(PNode PHead, PNode p, PNode PNew) { PNode q = PHead; if (Head == p) { {...
C++ Настройка домашней страницы в Visual Studio 2013 Ultimate https://www.cyberforum.ru/ cpp-beginners/ thread1391409.html
Всем привет Если тут есть люди которые работают в Visual Studio 2013 Ultimate, помогоите с начальной страницей. Каким образом ее можно настроить и как это сделать подскажите. Мне нужно оставить...
2756 / 1910 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
16.03.2019, 20:51 0

Образцы (шаблоны) программ для типовых задач - C++ - Ответ 13409636

16.03.2019, 20:51. Показов 266415. Ответов 23
Метки (Все метки)

Ответ

Ну нельзя ссылкой так нельзя. Вычисление выражения в инфиксной записи. Вспомогательные структуры? Токены? Nobody cares. Оставьте эту ерунду для задачи "перевести выражение в какой-то промежуточный байт-код", а этот код делался тупым как валенок. Оригинал там.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include<cstdlib>
#include<stdexcept>
#include<iostream>
 
inline double evalPlusMinus(const char*&expression);
inline double evalMulDiv(const char*&expression);
inline double evalPrefixAndBracket(const char*&expression)
{
    while(isspace(*expression))
        ++expression;
    switch(*expression)
    {
    case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':
        return strtod(expression,(char**)&expression);
    case'-':
        return -evalPrefixAndBracket(++expression);
    case'+':
        return evalPrefixAndBracket(++expression);
    case'(':
    {
        double res=evalPlusMinus(++expression);
        if(*expression++==')')
            return res;
    }
    default:
        throw std::runtime_error("Bad expression");
    }
}
 
inline double evalMulDiv(const char *&expression)
{
    double res=evalPrefixAndBracket(expression);
    while(true)
    {
        while(isspace(*expression))
            ++expression;
        switch(*expression)
        {
        case 0:
            return res;
        case'*':
            res*=evalPrefixAndBracket(++expression);
            break;
        case'/':
            res/=evalPrefixAndBracket(++expression);
            break;
        default:
            return res;
        }
    }
}
 
inline double evalPlusMinus(const char *&expression)
{
    double res=evalMulDiv(expression);
    while(true)
    {
        while(isspace(*expression))
            ++expression;
        switch(*expression)
        {
        case 0:
            return res;
        case'+':
            res+=evalMulDiv(++expression);
            break;
        case'-':
            res-=evalMulDiv(++expression);
            break;
        default:
            return res;
        }
    }
}
 
inline double evalExpression(const char *expression)
{
    const double res=evalPlusMinus(expression);
    while(isspace(*expression))
        ++expression;
    if(*expression)
        throw std::runtime_error("Bad expression");
    return res;
}
 
int main()
{
    std::cout<<evalExpression("2+2*2")<<std::endl;
    return 0;
}


Вернуться к обсуждению:
Образцы (шаблоны) программ для типовых задач C++
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2019, 20:51
Готовые ответы и решения:

Решение типовых задач в MathCAD
Случилась беда, на комп не могу установить Маткад, пользоваться могу им только на паре (очень мало...

ПОЛЕЗНО! Примеры решений типовых задач
https://www.cyberforum.ru/matlab/thread915743.html ...

Разработка типовых программ обработки информации
Помогите , срочно, в документе на 3-ей странице сделать первый вариант.

Комплекс типовых задач обработки числовых одномерных массивов
1. Разработать и отладить программу на С++ для решения комплекса типовых задач обработки числовых...

23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2019, 20:51
Помогаю со студенческими работами здесь

Программирование типовых числовых задач обработки одномерных массивов
1) Вычислить и запомнить в структуре одномерного массива (таблица 1) фиксированное количество...

Получить навыки создания сценариев на языке РНР при решении типовых и нестандартных задач.Лабораторная робота!
Задача.!! 1) У Вас есть две переменные: $ a = 5 i $ b = 7, поменяйте значения данных переменных...

Алгоритм генерации типовых задач по теме "Многочлены"
Помогите с алгоритмом) никак не могу написать алгоритм генерации((( Например, деление многочленов

Раскрыть принципы разработки алгоритмов и программ для решения прикладных задач: операциональный и структурный
Раскрыть принципы разработки алгоритмов и программ для решения прикладных задач: операциональный и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru