Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- const int numStop = 99999;
- template <class userType>
- void getVector(vector<userType> &data) {
- cout << "INSERINDO O CONJUNTO DE NÚMEROS:" << endl
- << "Insira um número para acrescentá-lo ou envie "
- << numStop << " para executar as operações." << endl;
- userType value = 0;
- while (data.size() == 0) {
- cin >> value;
- while (value != numStop) {
- data.push_back(value);
- cin >> value;
- }
- if(data.size() == 0) {
- cout << "Não foi inserido nenhum número para operar!"
- << endl << "Insira pelo menos 1 número!" << endl;
- }
- }
- cout << endl;
- }
- template <class opType>
- void doOperations(vector<opType> &data) {
- opType sum = 0;
- sort(data.begin(), data.end()); //Ordenação
- vector<opType> mode;
- mode.push_back(data.at(0));
- for (int i = 0; i < data.size(); ++i) { //Soma e Moda
- sum = sum + data.at(i);
- if(count(data.begin(), data.end(), data.at(i)) > count(data.begin(), data.end(), mode.at(0))) {
- mode.clear();
- mode.push_back(data.at(i));
- }
- if(count(data.begin(), data.end(), data.at(i)) == count(data.begin(), data.end(), mode.at(0))) {
- if(count(mode.begin(), mode.end(), data.at(i)) == 0)
- mode.push_back(data.at(i));
- }
- }
- sort(mode.begin(), mode.end());
- opType average = sum/(static_cast<opType>(data.size())); //Média
- cout << "Soma: " << sum << endl
- << "Média: " << average << endl;
- cout << "Moda: ";
- for (int i = 0; i < mode.size(); ++i) {
- cout << mode.at(i) << " ";
- }
- cout << endl << "Ordenado: ";
- for(int i = 0; i < data.size(); ++i) {
- cout << data.at(i) << " ";
- }
- cout << endl << endl;
- }
- int main() {
- string chosenType;
- cout << "Escolha o tipo de variável: (int, float, double)" << endl;
- cin >> chosenType;
- cout << endl;
- if (chosenType == "int") {
- vector<int> data;
- getVector(data);
- doOperations(data);
- }
- if(chosenType == "float") {
- vector<float> data;
- getVector(data);
- doOperations(data);
- }
- if(chosenType == "double") {
- vector<double> data;
- getVector(data);
- doOperations(data);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement