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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: [1]
1  Sistemas Operativos / Unix/Unix-Like / Duda para instalar libreria g++ -multilib en: 23 Febrero 2012, 12:11 pm
Hola, estoy teniendo problemas para instalar una librería de g++ llamada multilib, que es para linkar archivos de 32 bits en un ordenador de 64.
Me podríais explicar como se hace ? Es que he buscado información pero no encuentro nada claro.

Muchísimas gracias.
Adios!.
2  Programación / Programación C/C++ / [Duda] Creación de un programa que calcule la moda en: 5 Enero 2012, 17:37 pm
Hola de nuevo, he de hacer un programa que encuentre la palabra mas frecuente dentro de cada secuencia de palabras dada y en caso de empate tengo que escribir la palabra mas grande alfabéticamente.

Este es el enunciado, pero no tengo la mínima idea de por donde cogerlo y empezar ha programar, no tengo ningún código.

Mi idea inicial era crear un vector auxiliar donde guardar la frecuencia de cada palabra, es decir, cada vez que me entra una palabra, mirar su posición y sumarle uno, pero no me sirve la idea ya que si el vector es de palabras no lo puedo usar como contador, y tampoco se como, por ejemplo, crear un vector aparte y asignarle a cada posición el contador de una palabra(no se si me explico... xD).

Necesito alguna idea para plantear bien el problema.

Muchas gracias!.
Adiós.
3  Programación / Programación C/C++ / Duda con expresión booleana en: 5 Enero 2012, 01:00 am
Hola, es que tengo una duda muy básica.
Que quiere decir este codigo:
Código
  1. bool encaixa = true;
  2. encaixa = (x[j] == y[i+j]);
  3.  

Que es una condición para que sea true o false o que es?

Esa es mi duda, muchas gracias.
Adiós.
4  Programación / Programación C/C++ / [Duda] Inserción en una tabla ordenada en: 3 Enero 2012, 14:11 pm
Hola, mirar estoy intentando hacer el ejercicio siguiente:

Hacer un procedimiento
    void insereix(vector <double>& v);

que, suponiendo que todas las posiciones de v, excepto quizas la ultima,estan ordenadas de pequeño a grande, deje v totalmente ordenado de pequeño a grande.
Un ejemplo seria, si v fuera (2,4,7,7,8,9,5), deberia quedar(2,4,5,7,7,8,9).

El codigo que yo he hecho es el siguiente:
Código
  1.  
  2. #include <iostream>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. void insereix(vector <double>& v){
  7.    int n = v.size();
  8.    int k = v[n-1];
  9.    vector <double> vi(n);
  10.    bool inserit = false;
  11.    int j;
  12.  
  13.    for(int i = 0; i < n and not(inserit); ++i){
  14.        if(v[i] <= k){
  15.            vi[i] = v[i];
  16.        } else {
  17.            vi[i] = k;
  18.            inserit = true;
  19.            j = i + 1;
  20.        }
  21.    }
  22.  
  23.    for(int i = j; i < n;++i){
  24.        vi[i] = v[i];
  25.    }
  26. }
  27.  
  28. int main(){
  29.    int n;
  30.    cin >> n;
  31.    vector <double> v1(n);
  32.    for(int i = 0; i < n; ++i)
  33.        cin >> v1[i];
  34.  
  35.    insereix(v1);
  36.  
  37.    for(int i = 0; i < n; ++i)
  38.        cout << v1[i];
  39.  
  40. }
  41.  

Pero cuando imprimo me sale el vector exactamente igual que lo he introducido.
Para explicar un poco el código de la función, lo que hago es crear un nuevo vector donde guardare el antiguo vector ordenado.
Declaro una variable(k) donde guardo el valor de la ultima posición, y con un for voy comprobando si cada posición es menor o igual a la ultima. Si no es así, introduzco en esa posición el valor de k, y con una variable booleana puesta en false, hago que no se ejecute el código.

Luego solo hago otro for para rellenar el vector desde la siguiente posición de k.

No entiendo porque no funciona.

Muchas gracias y adiós!.
5  Programación / Programación C/C++ / Dudas de recursividad en: 16 Diciembre 2011, 01:16 am
Hola, estoy aprendiendo a programar usando recursividad y no acabo de entenderlo del todo.

Os pongo un ejemplo y os presento mis dudas:
Código:
#include <iostream>
#include <string>
using namespace std;

void invertir(){
string tmp;
if(cin >> tmp){
invertir();
cout << tmp << endl;
}
}

int main(){
invertir();
}

Este código lo que hace es invertir palabras. Por ejemplo, yo le entrego tres nombres: Jaime, Ramon, Pablo y me devuelve Pablo, Ramon, Jaime.
No entiendo como lo hace, quiero decir, la función entra en un bucle mientras le estén introduciendo datos, pero es que cuando esta dentro de el bucle vuelve a llamarse a si misma, y entonces nunca llegaría al cout << tmp << endl; no? Pues cuando se acabe de introducir datos no entrara al bucle i no passara por el cout.

Ademas, como la variable tmp puede guardar tantos nombres ? No se deberían machacar, quiero decir al poner Jaime i en la siguiente vez Ramon, no se machaca la variable ? Porque sino es que escribe el cout cada vez que pasa por el bucle(que es lo que supongo que pasa) pero no se como lo hace entonces.

No se si me he explicado bien, espero que me podáis ayudar.

En el caso del factorial recursivo me pasa mas o menos lo mismo, no acabo de entender como se guardan los datos, si se deberian machar, etc.

Muchísimas gracias!!

Adiós!
6  Programación / Programación C/C++ / Problema en volver la posición del elemento maximo de un vector en: 13 Diciembre 2011, 16:39 pm
Hola, estoy intentando hacer este ejercicio pero no me sale.

Consiste en retornar la posición del elemento máximo(el mas grande) de un vector.
En caso de empate se tiene que devolver la posición minima.

Yo he hecho este codigo pero no me funciona bien, y nose por donde tirar ya, haber si alguien me puede ayudar porfavor.

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

int posicio_maxim(const vector<double>& v, int m){
    
    int max = 0;
    int pos_max;
    bool empat = false;
    for(int j = 0; j <=m and not(empat); ++j){
        if(v[j] > max){
            max = v[j];
            pos_max = j;
        } else if(v[j] == max) {
            empat = true;
        }          
    }
    
    int min = max;
    int pos_min;
    
    for(int j = 0; j <= m and empat; ++j){
        if(v[j] < min){
            min = v[j];
            pos_min = j;
        }          
    }
    
    if(empat)
     return pos_min;
    else
     return pos_max;
    

}

int main(){
    int n;
    cin >> n;
    vector<double> v(n);
    for(int i = 0; i < n; ++i){
        cin >> v[i];
    }
    int x;
    cin >> x;
    cout << posicio_maxim(v, x) << endl;
}


Muchas gracias.

Adiós.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines