elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8
1  Programación / Programación C/C++ / fusionar dos vectores en: 16 Julio 2013, 20:37 pm
Hola, querría hacer un programa que fusione dos vectores. Es decir
si v1 = 1,2,3,4 y v2 = 5,6,7,8,9 imprima v = 1,5,2,6,3,7,4,8,9

Hice esté código pero no me ejecuta nada.
Si pudieras decirme que falta para que funcione os lo agradecería :)

Código
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4.  
  5. vector<int>fusion(vector<int>v1,vector<int>v2){
  6. int i=0; int j; vector<int>v;
  7. if(v1.size()>v2.size()){
  8.         while(i<v2.size()){
  9.                          v.push_back(v1[i]);
  10.                          v.push_back(v2[i]);
  11.                            }      
  12.         j=v.size()/2;
  13.         while(i<v1.size()){
  14.                          v.push_back(v1[i]);  
  15.                            }        
  16.                             }
  17. else if(v1.size()<v2.size()){    
  18.      while(i<v1.size()){
  19.      v.push_back(v1[i]);
  20.      v.push_back(v2[i]);
  21.                            }      
  22.         j=v.size()/2;
  23.         while(i<v2.size()){
  24.                          v.push_back(v2[i]); }}
  25. else{
  26.       while(i<v1.size()){
  27.      v.push_back(v1[i]);
  28.      v.push_back(v2[i]);
  29.                            }}
  30.                             return v;   }
  31.  
  32.  
  33. int main(){ int n1,n2,e;
  34.    cout<<"introduzca el tamaño de v1"<<endl;
  35.    cin>>n1;
  36.    vector<int>v1(n1);
  37.    for(int i=0;i<n1;i++){
  38.            cout<<"el elemento"<<" "<<i<<endl;
  39.            cin>>e;
  40.            }
  41.  
  42.    cout<<"introduzca el tamaño de v2"<<endl;
  43.    cin>>n2;
  44.    vector<int>v2(n2);
  45.    for(int i=0;i<n2;i++){
  46.            cout<<"el elemento"<<" "<<i<<endl;
  47.            cin>>e;
  48.            }  
  49.    vector<int>u=fusion(v1,v2);
  50.    cout<<"[";
  51.    for(int i=0;i<u.size();i++){
  52.            cout<<u[i]<<endl;
  53.            }
  54.    cout<<"]"<<endl;  
  55.  
  56.    system ("pause");
  57.    return 0;}
2  Programación / Programación C/C++ / dar la vuelta elementos de una lista en: 10 Julio 2013, 19:21 pm
Hola,
quiero crear una acció que dada una lista, me de la vuelta
1,2,3,4,5 cambie a 5,4,3,2,1

Código
  1. void voltear(list<int> &l){
  2.  
  3. list<int>:: iterator it1=l.begin();
  4. list<int>:: iterator it2=l.end();
  5.  
  6. while(it1!=l.end()){
  7.  
  8. it2=l.insert(it2,*it1);
  9.  
  10. it1=l.erase(it1);
  11.  
  12.                   }
  13. }

Mi idea es coger el primer elemento y insertarlo al final de la lista. Como el it2 está en el final de lista, la inserción se aplicará al último elemento.
Luego eliminar el primer elemento de la lista con la función erase(it) y como la función elimina el elemento que apunta y luego pasa al siguiente entonces he prescindido del contador. Por qué sino se saltaría un elemento.
Pero no termino de plasmar correctamente la idea ya que la función no modifica la lista.

Gracias por cualquier aportación.
3  Programación / Programación C/C++ / Re: ejercicio sencillo con PILAS en: 10 Julio 2013, 19:15 pm
muchas gracias rir3760 por los consejos  ;D
4  Programación / Programación C/C++ / Re: suma de una cola en: 6 Julio 2013, 21:18 pm
¡¡Gracias!! :DD
5  Programación / Programación C/C++ / ejercicio sencillo con PILAS en: 6 Julio 2013, 21:12 pm
Hola,

quiero hacer un programa, que me imprima por pantalla los elementos mayores de la pila respecto un entero dado.

No me muestra la pila, no se que debería rectificar.

¡Gracias por la ayuda!

Código
  1. #include<iostream>
  2. #include<queue>
  3. #include<stack>
  4. using namespace std;
  5.  
  6. stack<int>nueva(stack<int>&p, int x){
  7.    stack<int>p2;
  8.    while(!p.empty()){
  9.  
  10.    if(x>p.top()){
  11.             p2.push(p.top());    
  12.                  }
  13.    p.pop();
  14.                      }
  15.    return p2;
  16.    }
  17.  
  18. int main() {
  19.    int a,e;
  20.    stack<int>p1;
  21.    cout<<"element"<<endl;
  22.    cin>>a;
  23.  
  24.    cout<<"introduzca los elementos"<<endl;
  25.    cin>>e;
  26.    while(e!=0){
  27.                p1.push(e);
  28.                cin>>e;
  29.                }
  30.  
  31.  
  32.    cout<<endl;
  33.  
  34.    stack<int>p2=nueva(p1,a);
  35.  
  36.    cout<<"La pila final es"<<endl;
  37.    cout<<"[";
  38.    while(!p1.empty()){
  39.    cout<<p1.top()<<" ";
  40.    p1.pop();
  41.                      }
  42.    cout<<"]";
  43.  
  44.  
  45.  
  46.    system("pause");
  47.    return 0;
  48.    }
6  Programación / Programación C/C++ / Re: suma de una cola en: 6 Julio 2013, 20:46 pm
Gracias satu no había caído :D
Lo único que ahora si me muestra la suma pero no la cola.

Código
  1. #include<iostream>
  2. #include<queue>
  3.  
  4. using namespace std;
  5.  
  6. int suma(queue<int>&c){
  7.    int s=0;
  8.    while(!c.empty()){
  9.    s=s+(c.front());
  10.    c.pop();
  11.                      }
  12.    return s;
  13.    }
  14.  
  15. int main() {
  16.    queue<int>c;
  17.    int e;
  18.    cout<<"introduzca los elementos"<<endl;
  19.    cin>>e;
  20.    while(e!=0){
  21.                c.push(e);
  22.                cin>>e;
  23.                }
  24.  
  25.  
  26.  
  27.    int s=suma(c);
  28.    cout<<"Y la suma es"<<"  "<<s<<endl;
  29.    cout<<endl;
  30.  
  31.    cout<<"La cola es"<<endl;
  32.    cout<<"[";
  33.    while(!c.empty()){
  34.    cout<<c.front()<<" ";
  35.    c.pop();
  36.    cout<<"]";
  37.                      }
  38.  
  39.  
  40.  
  41.    system("pause");
  42.    return 0;
  43.    }
  44.  
7  Programación / Programación C/C++ / suma de una cola en: 6 Julio 2013, 20:02 pm
Hola,

no entiendo porqué el programa no muestra la suma de una cola. 

Gracias :D

Código
  1. #include<iostream>
  2. #include<queue>
  3.  
  4. using namespace std;
  5.  
  6. int suma(queue<int>&c){
  7.    int s=0;
  8.    while(!c.empty()){
  9.    s=s+(c.front());
  10.    c.pop();
  11.                      }
  12.    return s;
  13.    }
  14.  
  15. int main() {
  16.    queue<int>c;
  17.    int e;
  18.    cout<<"introduzca los elementos"<<endl;
  19.    cin>>e;
  20.    while(e!=0){
  21.                c.push(e);
  22.                cin>>e;
  23.                }
  24.    cout<<"La cola es"<<endl;
  25.    cout<<"[";
  26.    while(!c.empty()){
  27.    cout<<c.front()<<" ";
  28.    c.pop();
  29.                      }
  30.    cout<<"]";
  31.    cout<<endl;
  32.    int s=suma(c);
  33.    cout<<"Y la suma es"<<"  "<<s<<endl;
  34.  
  35.  
  36.  
  37.  
  38.    system("pause");
  39.    return 0;
  40.    }
  41.  
8  Programación / Programación C/C++ / Re: error estructura al compilar en: 2 Julio 2013, 18:39 pm
Gracias por este amplio tutorial y por la explicación de todas las pautas que debo formalizar.
Ahora iré asimilando toda esta nueva información.

Un saludo :D
9  Programación / Programación C/C++ / error estructura al compilar en: 2 Julio 2013, 01:51 am
Hola, he echo una ejercicio de estructuras que consiste en lo siguiente:
le introduces
el nombre, s si la competición es puntuable n en caso que no lo sea y los puntos correspondientes que ha generado dicha competición.

Quiero generar una lista que me muestre
el nombre, el total de pruebas realizadas, el total de pruebas puntuables (que será la suma de pruebas de tipo "s") y el total de puntos. Lógicamente podré introducir varias veces un mismo usuario y se irán acumulando los puntos y el número de competiciones.

He diseñado un programa para ello, pero me marca error al final de escribir los usuarios.

Código
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. using namespace std;
  5.  
  6. struct usuario{
  7.       string nombre;
  8.       char tipo_competicion; // s en caso que la competición sea puntable n en caso contrario
  9.       int puntos;
  10.  
  11.       };
  12.  
  13. struct ranking{
  14.       string nombre;
  15.       int total_pruebas;
  16.       int pruebas_puntuables;
  17.       int puntos;
  18.  
  19.       };
  20.  
  21. int donde_esta(string nombre,vector<ranking>&v){
  22.    for (int i = 0 ; i < v.size() ; i++){
  23.        if (v[i].nombre == nombre){return i;} }
  24.        ranking r;
  25.        r.nombre=nombre;
  26.        r.total_pruebas=0;
  27.        r.pruebas_puntuables=0;
  28.        r.puntos=0;
  29.        }
  30.  
  31. vector<ranking>classificacion(vector<usuario>p){
  32. vector<ranking>v;
  33. for(int i=0;i<p.size();i++){
  34.        int lugar=donde_esta(p[i].nombre,v);
  35.        v[lugar].total_pruebas=v[lugar].total_pruebas+1;
  36.        v[lugar].puntos=v[lugar].puntos+p[i].puntos;
  37.        if(p[i].tipo_competicion=='s'){
  38.                                       v[lugar].pruebas_puntuables=v[lugar].pruebas_puntuables+1;}
  39.  
  40.        else if(p[i].tipo_competicion=='n'){v[lugar].pruebas_puntuables=v[lugar].pruebas_puntuables+0;}
  41.        }
  42.        return v;
  43.        }
  44.  
  45. bool ordenar_pruebas(ranking c1, ranking c2){
  46.     if(c1.total_pruebas==c2.total_pruebas){
  47.     if(c1.puntos==c2.puntos){return c1.nombre<c2.nombre;}  
  48.                           else{return c1.puntos>c2.puntos;}}
  49.     else{return c1.total_pruebas>c2.total_pruebas;}            
  50.  
  51.     }          
  52.  
  53. bool ordenar_puntos(ranking c1, ranking c2){
  54.     if(c1.puntos==c2.puntos){return c1.nombre<c2.nombre; }  
  55.     else{return c1.puntos>c2.puntos;}
  56.     }                          
  57.  
  58. int main(){
  59.    int n;
  60.    cout<<"introduzca el numero de elementos de la estructura"<<endl;
  61.    cin>>n;
  62.    vector<usuario>p(n);
  63.  
  64. cout<<":::::::::::::::::::::::::::::::::::::::::::::::"<<endl;
  65. cout<<endl;
  66.  
  67. for(int i=0;i<n;i++){
  68.        cout<<"nombre >> competicion (s)-> PUNTUABLE, (n)-> NO PUNTUABLE >> puntos "<<endl;
  69.  
  70.        cin>>p[i].nombre;
  71.        cin>>p[i].tipo_competicion;
  72.        cin>>p[i].puntos;
  73.  
  74.        }
  75.  
  76. vector<ranking>v=classificacion(p);
  77.  
  78. cout << "-----------------------"<< endl;
  79.  
  80. sort(v.begin(),v.end(),ordenar_pruebas);
  81.  
  82. cout<<"LISTA"<<endl;
  83.  
  84. for(int i=0;i<v.size();i++){
  85.        cout<<v[i].nombre<<" "<<v[i].total_pruebas<<" "<<v[i].pruebas_puntuables<<" "<<v[i].puntos<<endl;
  86.        }
  87.  
  88.    system("pause");
  89.    return 0;
  90. }
  91.  
  92.  

Gracias por la ayuda :)
10  Programación / Programación C/C++ / Re: devolver vector único en: 2 Julio 2013, 01:45 am
Gracias rir3760 y satu por todas vuestras aportaciones y ayudas ¡sois increibles! :D
Páginas: [1] 2 3 4 5 6 7 8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines