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

Вычислить значение формулы - C++

Восстановить пароль Регистрация
 
BOLT07
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 23
13.01.2016, 18:18     Вычислить значение формулы #1
Помогите пожалуйста , в текстовом файле записана без ошибок формула вида:
<формула>=<цифра>|p(<формула>,<формула>)|m(<формула>,<формула>)
<цифра>=0|1|2|3|4|5|6|7|8|9
m (a, b) = (a-b) mod 10,
p (a, b) = (a+b) mod 10.
Вычислить значение этой формулы. Например, m (9, p (p (3, 5), m (3, 8))) = 6.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2016, 18:18     Вычислить значение формулы
Посмотрите здесь:

В текстовом файле записана формула. Вычислить значение данной формулы C++
Даны x, y, z. Вычислить a, b, используя приведенные ниже формулы C++
Вычислить площади треугольников с помощью формулы Герона C++
C++ рекуррентные формулы,и различные циклы. Вычислить приблеженное значение бескноечной суммы
Вычислить a, b, используя приведенные формулы. Получить max(a, b) C++
C++ Даны x, y, z. Вычислить a, b, используя приведенные ниже формулы. Получить max(a, b)
C++ С++ вывести значение формулы
C++ Вычислить результаты выражений, не используя формулы сумм арифметической и геометрической прогрессии

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dastan4ik
60 / 60 / 31
Регистрация: 18.10.2014
Сообщений: 185
Завершенные тесты: 2
13.01.2016, 20:39     Вычислить значение формулы #2
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
#include <iostream>
#include<string>
using namespace std;
int i=0;
int p(int a,int b)//формула р
{
    return (a+b)%10; 
}
int m(int a,int b) //формула m
{
    return (a-b)%10; 
}
int Numb(string str) //для преобразование текстового в числовой
{
    int x=0;
    while (true)
    {
        if(str[i]>='0'&&str[i]<='9')
        {
            x=(x*10)+str[i]-'0';
            ++i;
        }
        else
            return x;
    }
}
int Glav(string str)//функция возвращает целое число рекурсивная 
{
    int x,y;
    if(str[i]=='m'&&str[i+1]=='(')//если встретиться формула m  
    {
        i+=2;//сдвигаем на 2 элемента права  
        x=Glav(str);//для левой части формулы m
        ++i;//сдвигаем запятую
        y=Glav(str);//для правой части формулы p
        ++i;//тут сдвигаем закрывающую скобку
        return m(x,y);//возвращаем по формуле 
    }
    else if(str[i]=='p'&&str[i+1]=='(')//тут аналогично m
    {
        i+=2;
        x=Glav(str);
        ++i;
        y=Glav(str);
        ++i;
        return p(x,y);
    }
    return Numb(str);//если не формула m и не формула p значит это число 
}
int main (){
    setlocale(LC_ALL,"Rus");
    string str;
    cin>>str;
    int x=Glav(str);
    cout<<x;
    system("pause");
    return 0;
}
ща так накидал для string через рекурсию я сделаю текстовый сейчас через файл оцени так пойдет

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main (){
    setlocale(LC_ALL,"Rus");
    string line,str;
    ifstream input("input.txt");
    if (input.is_open())
    {
        while (!input.eof())
        {
            getline(input,line);
            str+=line;
        }
        input.close();  
        int x=Glav(str);
        cout<<x<<endl;
   }
    else cout << "Файл не найден"; 
    system("pause");
    return 0;
}
вместо int main замените вот это и включите файловую библиотеку
кстати если формула дано без ошибок то я не проверял на наличие ошибок и так далее. Багом если можно назвать тут в том что если в файле только число то оно выведет это число.
BOLT07
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 23
14.01.2016, 04:25  [ТС]     Вычислить значение формулы #3
Dastan4ik, спасибо большое))
Yandex
Объявления
14.01.2016, 04:25     Вычислить значение формулы
Ответ Создать тему
Опции темы

Текущее время: 05:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru