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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8
11  Programación / Programación C/C++ / devolver vector único en: 30 Junio 2013, 17:06 pm
Hola de nuevo,

querría hacer una función que devolviera un vector con solo únicos elementos, es decir sin elementos repetidos. Para ello he creído ordenar primeramente el vector ya que así se puede trabajar de forma mas sencilla.  El programa me devuelve correctamente el vector con elementos no repetidos, lo único que al final del vector aparece una combinación de números que sobra, debida por algún error.

Si pudieras decirme si sería posible rectificar ese error. Gracias :).

Código
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4.  
  5. void ordena_seleccion(vector<int>& v) {
  6.    for (int i = 0; i < v.size(); i++) {
  7.        int min = i;
  8.        for (int c = i + 1; c < v.size(); c++) {
  9.            if (v[min] > v[c]) min = c;
  10.        }
  11.        int aux = v[i];
  12.        v[i] = v[min];
  13.        v[min] = aux;
  14.    }
  15. }
  16.  
  17.  
  18. vector<int>unico(vector<int>&v){
  19. ordena_seleccion(v);
  20. int i=0;
  21. vector<int>p;
  22.  
  23. while(i<v.size()){
  24.        if(v[i]!=v[i+1]){
  25.        p.push_back(v[i]);
  26.        p.push_back(v[i+1]);
  27.        i=i+2;}
  28.        i++; }
  29.        return p;      }
  30.  
  31. int main(){
  32.      int n,e;
  33.    cout<<"introduzca el tamaño del vector "<<endl;
  34.    cin>>n;
  35.  
  36.    vector<int>v(n);
  37.    for(int i=0;i<n;i++){
  38.            cout<<"elemento"<<endl;
  39.            cin>>e;
  40.            v[i]=e;
  41.            }
  42.  
  43.    vector<int>p=unico(v);
  44.    cout<<endl;
  45.    cout<<"[";
  46.    for(int i=0;i<v.size();i++){
  47.            cout<<p[i]<<"  ";
  48.            }
  49.    cout<<"]"<<endl;
  50.    system("pause");
  51.    return 0;}
  52.  
12  Programación / Programación C/C++ / Re: ordenar un vector en: 30 Junio 2013, 14:20 pm
Lo encontré en wikipedia.

Gracias por la colaboración :D

Código
  1. void ordena_seleccion(vector<int>& v) {
  2.    for (int i = 0; i < v.size(); ++i) {
  3.        int min = i;
  4.        for (int c = i + 1; c < v.size(); ++c) {
  5.            if (v[min] > v[c]) min = c;
  6.        }
  7.        int aux = v[i];
  8.        v[i] = v[min];
  9.        v[min] = aux;
  10.    }
  11. }
  12.  
13  Programación / Programación C/C++ / Re: ordenar un vector en: 30 Junio 2013, 14:17 pm
Mejor indícanos que algoritmo deseas implementar en tu programa.

El algoritmo de ordenamiento por selección.
14  Programación / Programación C/C++ / ordenar un vector en: 29 Junio 2013, 22:43 pm
Hola, quiero ordenar un vector en orden creciente.

Para ello he creado una función que me devuelva el valor máximo del vector, así este elemento ya lo situó como el primer elemento del vector. Luego una acción para intercambiar los elementos en caso que un  elemento menor sea menor que un elemento mayor.

Gracias por la ayuda ;)

Código
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4.  
  5. int maxim(vector<int>&v){
  6.    int i=0,m;
  7.    while(i<v.size()){
  8.  
  9.    if(v[i]>=v[m]){ m=i;
  10.                  }
  11.                      i++;
  12.                      }
  13.    return m;
  14.    }
  15.  
  16. void intercambia(int &a,int &b){
  17.     int m=a;
  18.     a=b;
  19.     b=m;
  20.     }
  21. void ordena(vector<int>&v){
  22.     int m=maxim(v);
  23.     v[0]=m;
  24.     for(int i=1;i<v.size();i++){
  25.             if(v[i]<v[i+1]){
  26.             intercambia(v[i],v[i+1]);}
  27.             }
  28.  
  29.     }
  30.  
  31. int main(){
  32.     int n,e;
  33.     cout<<"introduzca el tamaño del vector"<<endl;
  34.     cin>>n;
  35.     vector<int>v(n);
  36.  
  37.     for(int i=0;i<n;i++){
  38.     cout<<"introduzca el elemento"<<" "<<i<<" del vector"<<endl;
  39.             cin>>e;
  40.             v[i]=e;
  41.             }
  42.    ordena(v);
  43.  
  44.    for(int i=0;i<v.size();i++){
  45.            cout<<v[i]<<endl;
  46.            }
  47.    system("pause");
  48.    return 0;}
  49.  
15  Programación / Programación C/C++ / Re: ejercicio esperanza c++ en: 27 Junio 2013, 21:37 pm
con la suma de todos los los elementos del vector, es decir la suma de todos los e debe dar 1.

Gracias por toda la ayuda y aportaciones :)
16  Programación / Programación C/C++ / Re: ejercicio esperanza c++ en: 27 Junio 2013, 19:25 pm
Código
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4.  
  5.  
  6. bool es_esperan(vector<double>v){
  7.     double s=0;
  8.     for(int i=0;i<v.size();i++){
  9.             s=s+v[i];
  10.  
  11.             }
  12.     if(s==1){return true;}
  13.     else{return false;}
  14.     }
  15.  
  16.  
  17. int main(){int n;
  18. double esperanza=0,e,s=0;
  19. bool t;
  20.    cout<<"introduzca el tamañp de los x_i"<<endl;
  21.    cin>>n;
  22.    vector<double>v(n);
  23.  
  24.    for(int i=0;i<n;i++){
  25.            cout<<"introduzca el elemento"<<i<<endl;
  26.            cin>>e;
  27.            v[i]=e;
  28.            }
  29.    for(int i=0;i<n;i++){
  30.  
  31.            esperanza=esperanza+(i*v[i]);
  32.            }
  33.       t=es_esperan(v);    
  34.    if(t){cout<<"La esperanza existe i es"<<" "<<esperanza<<endl;}
  35.    else{cout<<"La esperanza no existe"<<endl;}
  36.  
  37.  
  38. system("pause"); return 0;}
17  Programación / Programación C/C++ / Re: ejercicio esperanza c++ en: 26 Junio 2013, 18:03 pm
La inicializo a 0 y sigue sin funcionar bien :/.
18  Programación / Programación C/C++ / Re: ejercicio esperanza c++ en: 26 Junio 2013, 00:33 am
Gracias por la ayuda :D

He pasado el vector como parámetro en la función booleana pero sigue sin funcionar.  :S

Código:
bool es_esperan(vector<double>v){
     double s=0;
     for(int i=0;i<v.size();i++){
             s=s+v[i];
             
             }
     if(s==1){return true;}
     else{return false;}
     }
19  Programación / Programación C/C++ / ejercicio esperanza c++ en: 25 Junio 2013, 19:09 pm
Hola,
quiero hacer un programa que le des una serie de elementos en tan por uno y calcule la esperanza. La esperanza será la suma de cada elemento introducido multiplicado por el valor del contador correspondiente.
Si la suma de valores introducidos no es igual a 1 se imprimirá por pantalla que no existe la esperanza en cambio si la suma de valores es igual a 1 se mostrará por pantalla que sí existe la esperanza y es ...

ejemplo: introduzco los elementos: 0.1 , 0.5 , 0.3, 0.1 la suma de estos 4 elementos es 1 luego si existe la esperanza.
Y será: 0.1 * 0 + 0.5 * 1 + 0.3 *2 + 0.1 * 3 = 1.4

Mi problema es que este mismo caso que he ejemplificado el programa me devuele que la esperanza no existe :SS

Si pudieras decirme donde está el fallo os lo agradeceria

Muchas gracias :)

Código:
#include<iostream>
#include<vector>
using namespace std;


bool es_esperan(double s){
     vector<double>v;
     for(int i=0;i<v.size();i++){
             s=s+v[i];
            
             }
     if(s==1){return true;}
     else{return false;}
     }


int main(){int n;
double esperanza,e,s=0;
bool t;
    cout<<"introduzca el tamañp de los x_i"<<endl;
    cin>>n;
    vector<double>v(n);
    
    for(int i=0;i<n;i++){
            cout<<"introduzca el elemento"<<i<<endl;
            cin>>e;
            v[i]=e;
            }
    for(int i=0;i<n;i++){
            
            esperanza=esperanza+(i*v[i]);
            }
       t=es_esperan(s);    
    if(t){cout<<"La esperanza existe i es"<<" "<<esperanza<<endl;}
    else{cout<<"La esperanza no existe"<<endl;}
  

system("pause"); return 0;}
20  Programación / Programación C/C++ / Re: invertir el orden de un vector en: 22 Junio 2013, 17:29 pm
Ya encontré el fallo era con la inicialización de los contadores.
Gracias de todas maneras.
Páginas: 1 [2] 3 4 5 6 7 8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines