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

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

Войти
Регистрация
Восстановить пароль
 
Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 172
#1

Программа по подсчету арифметических знаков - C++

16.04.2013, 18:34. Просмотров 506. Ответов 5
Метки нет (Все метки)

Ввести ленту произвольной длины, которую трактовать как арифметическое выражение, содержащие идентификаторы переменных, константы, знаки арифметических операций и скобки. Отдельные конструкции могут быть отделены одним или несколькими пробелами. Вывести информацию о частоте использования арифметических операций в данном выражении (в первом столбце символ операции, во втором - частоту использования).
Помогите, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 18:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа по подсчету арифметических знаков (C++):

Классы для арифметических операций с большими числами (целые числа более 10 знаков) - C++
C++ ,Классы для арифметических операций с большими числами(целые числа более 10 знаков), и бывают ли стандартные классы поддерживающие...

Как при помощи пяти цифр 2, знаков арифметических действий и скобок записать число 7? - C++
Достаточно известная задача по математике: как при помощи пяти цифр 2, знаков арифметических действий и скобок записать число 7? Это...

Программа выполнения арифметических действий с очень большим целыми числами - C++
Программа выполнения арифметических действий с очень большим целыми числами. Примерно с такими числами: 457332896548547 1.Вивести...

Программа подсчета знаков - C++
Пожалуйста, помогите решить задачу: Написать программу, которая считывает со стандартного входного потока заданное слово и набор...

Программа не подсчитывает количество знаков табуляции, пробелов и символов новой строки - C++
#include "stdafx.h" #include <iostream> using std::cout; using std::cin; using std::endl; int _tmain(int argc, _TCHAR*...

Программа выводит на экран предложения, содержащие максимальное количество знаков пунктуации - C++
Такое задание: Написать программу, которая считывает текст из файла и выводит на экран предложения, содержащие максимальное количество...

5
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
16.04.2013, 22:29 #2
Оксана 1234,

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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
 
class Arithmetic{
    private:
        vector<pair<char, int> > coll;
 
    public:
        Arithmetic(string _str){
            for(unsigned i = 0; i < _str.size(); ++i)
                coll.push_back(make_pair(_str[i], 0));
        }
 
        void get_operation(){
            for_each(coll.begin(), coll.end(), ptr_fun(Arithmetic::print));
        }
 
        static  
        void print(pair<char, int> op){
            cout << op.first << ": " << op.second << endl;
        }
 
        void operation(string _str){
            for(string::size_type i = 0; i < _str.size(); ++i)
                for(vector<pair<char, int> >::size_type j = 0; j < coll.size(); ++j)
                        if(_str[i] == coll[j].first)
                            ++coll[j].second;
        }
};
 
int main()
{
    string operation("+-*/%");
    string str("2 + 4 * 7 / 19 % 22 + 7 - 41 / 152");
 
    Arithmetic op(operation);
    op.operation(str);
    op.get_operation();
 
    cout << "\n\n";
    return 0;
}
1
Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 172
17.04.2013, 00:13  [ТС] #3
Извините но большенство знаков я просто не знаю, потому что мы еще такого не проходили.
Можно как то попроще.
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
17.04.2013, 08:43 #4
Оксана 1234, вот другой, вариант, могу объяснить, но самое простое тогда уже в цикле проходите и сравнивайте элементы, но это извините конечно детский сад, так что вот

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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
 
void print(pair<char, int> &op){
    cout << op.first << ": " << op.second << endl;
}
 
void Arithmetic(vector<pair<char, int> > &_coll, string &_str){
    typedef vector<pair<char, int> > MyVec;
    typedef string Str;
 
    for(Str::size_type i = 0; i < _str.size(); ++i)
        for(MyVec::size_type j = 0; j < _coll.size(); ++j)
            if(_coll[j].first == _str[i])
                ++_coll[j].second;
 
    for_each(_coll.begin(), _coll.end(), print);
}
 
int main()
{
    string operation("+-*/%");
    string str("2 + 4 * 7 / 19 % 22 + 7 - 41 / 152");
 
    vector<pair<char, int> > coll;
    for(unsigned i = 0; i < operation.size(); ++i)
        coll.push_back(make_pair(operation[i], 0));
 
    Arithmetic(coll, str);
 
    cout << "\n\n";
    return 0;
}
1
Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 172
16.05.2013, 23:01  [ТС] #5
Это не совсем правильно, но доредагувавшы возможно что-то путное выйдет. Спасибо!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#define _USE_MATH_DEFINES
#define USE_CRT_SECURE_NO_WARNING
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
 const int size=100;
using namespace std;
void main()
{int m=0;
char vuraz [size];
cout<<"Vvedit vuraz: ";cin>>vuraz;
int k=strlen(vuraz);
for (int j=0; j<=k; j++)
{
char znaku[5] ={'+','-','/','%','*'};
for (int i=0; i<5; i++)
{if(znaku[i]=vuraz[j])
{j++; m++;cout <<"kilkist "<<znaku[i]<<m;}}
}
}
0
Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 172
14.10.2013, 19:40  [ТС] #6
Готовый ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#define _USE_MATH_DEFINES
#define USE_CRT_SECURE_NO_WARNING
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
 const int size=100;
using namespace std;
void main()
{
    int m[5] = {0,0,0,0,0};
char vuraz [size];
cout<<"Vvedit vuraz: ";cin>>vuraz;
int k=strlen(vuraz);
char znaku[5] ={'+','-','/','%','*'};
for (int j=0; j<=k; j++)
{
    for (int i=0; i<5; i++)
        {if(znaku[i]==vuraz[j])
            {m[i]++;}}
}for(int i=0; i<5;i++)
{cout <<"Kilkist "<<znaku[i]<<"\t"<<m[i]<<"\n";}}
0
14.10.2013, 19:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2013, 19:40
Привет! Вот еще темы с ответами:

Определить количество вхождений строки из n знаков в строку из k знаков - C++
Всем доброй ночи ребят. Вы последняя надежда:( помогите пожалуйста 2 задачи решить последняя ночь( сразу препод говорил, что контрольную...

Реализовать кластер по подсчету оценок (по 100-ой шкале) с помощью итераторов - C++
Нужно сделать кластер по подсчету оценок (по 100-ой шкале) с помощью итераторов, не понимаю почему не работает. Если немного поменять...

Вставить функцию в код по подсчету времени на нахождения ключа в массиве (бинарный поиск) - C++
помогите вставить функцию в код по подсчету времени на нахождения ключа в массиве(бинарный поиск) . вот код #include &lt;stdlib.h&gt; ...

Последовательность из цифр, букв и знаков. Подсчитать чего больше и составить строки только из цифр, букв и знаков - C++
Дана последовательность состоящая из цифр, букв и знаков пунктуации в произвольном порядке. Подсчитать чего больше и составить строки...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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