Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - pilo312

#1
Programación C/C++ / Algoritmo genérico
28 Mayo 2016, 00:24 AM
Hola, la siguiente plantilla calcula la división de números seguidos, mi duda es como puedo hacer lo mismo pero sin ocupar "iterator_traits", ojalá alguien pudiera ayudar, gracias.

Código (cpp) [Seleccionar]
#include <iostream>
#include <numeric>
#include <vector>

using namespace std;

template <class entrada,class salida> salida division_adyacente(entrada primero,entrada ultimo,salida resultado)
{
  if (primero!=ultimo) {
    typename iterator_traits<entrada>::value_type valor,anterior;
    *resultado = anterior = *primero;
    while (++primero!=ultimo) {
      valor = *primero;
      *++resultado = valor / anterior;
      anterior = valor;
    }
    ++resultado;
  }
  return resultado;
}

int main(){
    vector<double> v{1,3,6,9,4.5};
    division_adyacente(v.begin(),v.end(),v.begin());
    for(vector<double>::iterator it=v.begin();it!=v.end();it++)
        cout<<*it<<" ";
    return 0;
}
#2
Mi duda es como hacer que al escribir una palabra como casa lo que salga en pantalla sea cas, osea se eliminen las repeticiones pero quede 1
Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
bool serepite(char , string );
void elimina(char , string& );

int main(){
     string frase;
     cout << "frase" << endl;
     getline(cin,frase);
     cin >> clave;
     for(int i=0;i<frase.size();++i ){
   if(serepite(frase[i],frase))
       elimina(frase[i],frase);
  }
  cout<< frase<<endl;


       return 0;}

bool serepite(char b, string cad){
   int contador = 0;
   for(int i =0;i<cad.size();++i)
       if(b==cad[i])
           contador++;
       if (contador>1)
           return true;
       return false;
   }

void elimina(char c, string &cad){
   for(int i=0;i<cad.size();++i)
       if(c==cad[i]){
           cad.erase(i,1);
       }
   }

#3
Programación C/C++ / binario c++
12 Mayo 2015, 04:24 AM
Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
#include <map>
#include <iomanip>

using namespace std;

typedef pair<const char*, int> mes;

int main()
{
    //ifstream ();
    cout <<"Veces de repeticion de dias"<<endl;
    map<const char*, int> dias;
    dias.insert( mes("L", 5) );
    dias.insert( mes("M", 4) );
    dias.insert( mes("X", 4) );
    dias.insert( mes("J", 4) );
    int total = 0;

    map<const char*, int>::iterator c = dias.begin();
    while (c != dias.end() )
    {
        cout << setw(1) << c->first << setw(10) << c->second << endl;
        total += c->second;
        p ++;
    }
    cout << setw(1) << "total:" << setw(5) << total << endl;
    return 0;
}

Como puedo hacer para que en vez de que lea los datos del programa, lea desde un archivo .dat con los mismos datos y luego calcule el total de dias.
Se los agradecería ya que no me manejo con archivos binarios tipo map ni arboles
#4
Programación C/C++ / ayuda c++(contar)
21 Abril 2015, 16:57 PM
Necesito contar cuantas veces se repite cada carácter de un archivo de texto por ej a=1, b=3, c=4, etc. Llevo eso pero el archivo de salida dice a= repetición de todos los caracteres, b= repetición de todos los caracteres.
Se que la función esta mal, por eso necesito ayuda si fueran tan amables, gracias.

Código (cpp) [Seleccionar]

int contar_carac()
{
    ifstream in ("in.txt");
    ofstream out("out.txt");
    char c;
    int car=0;
    while(!in.eof())
        while(in.get(c))
        if(c>=0 && c<=256)
        car++;
        for(c=0;c<126;c++)

    out<<c<<"="<<car<<endl;
    out.close();
    }