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 - K-YreX

#651
Por lo que he leído es tener una matriz inicial e ir realizando una serie de operaciones con el fin de modificar alguno de los valores de esta. Si lo tienes hecho en papel, fíjate en las condiciones que se tienen que ir cumpliendo para tener una idea de cómo implementarlo.
Y estoy dando por hecho que ya conoces la matriz inicial.
#652
Qué parte es la que no sabes implementar??
Y qué datos tienes para empezar la ejecución??
Aparte te recomiendo que insertes tu programa para ver los avances  :-X
#653
Elimina la librería <conio.h> ya que no la usas para nada y no es recomendable usarla porque no es estándar.
Mira a ver la línea 34... :silbar:
Aparte tienes escrito <mostRarArbol()> y <mostarArbol()>
Cambia los <system("pause")> por <cin.get()> y evitas hacer una llamada al sistema.

Por lo demás el programa compila, otra cosa es que funcione correctamente... :-X
#654
Programación C/C++ / Re: AYUDA EN C++
20 Marzo 2019, 00:31 AM
No se hacen tareas. Incluye tu código para que podamos ayudarte a seguir.
#655
Usando el comando <system("color XX")> puedes cambiar el color de la letra y el de fondo.
Me parece que no tiene la opción de cambiar la letra a negrita, pero igual existe alguna librería externa más completa para trabajar con colores. Suerte :-X
#656
Lo primero, el código de tu programa colócalo entre etiquetas de código GeSHi (están encima del cuadro de texto cuando escribes o modificas un mensaje)...

Y creo que la forma más fácil sería sin usar <strtok()>. Tienes en <arma> el nombre que quieres buscar, y en <buffer> una línea que parece que empieza por el nombre del arma, seguido de "/" y de sus características.
Entonces puedes usar <strncmp()> para comparar <arma> con los <n> primeros caracteres de <buffer> (siendo n el tamaño de la palabra <arma>. Cuando coincida, muestra el <buffer> y se mostrará la línea completa.

Suerte :-X
#657
Pues a mí sí me funciona aunque la salida es un poco fea (todo seguido)... Esta es la salida que he tenido yo:

¿Que numero deseas buscar en el arreglo?: 3
Lo siento, tu numero no se encuentra en el arreglo

¿Que numero deseas buscar en el arreglo?: 10
Mediante la Busqueda lineal, tu numero se encuentra en la posicion 2, con 3 comparaciones hechas.Mediante la Busqueda binaria, tu numero se encuentra en la posicion 2


También te digo que ese código podría mejorarse bastante. Para empezar no sé si estás compilando en C o en C++ ya que tienes una mezcla ahí que no puede ser buena... Si estás compilando en C te estará dando de error la librería <iostream> que es de C++, si compilas en C++, funcionar funciona, pero <stdio.h> y <stdbool.h> son de C...

La búsqueda lineal la has complicado más de lo necesario, si al encontrar un valor haces un <return> no hace falta que modifiques la variable <x>, va a funcionar igual... Además los nombres de variables son bastante insignificantes <a, k, jeje, ...>... Mejor nombres como <array, elemento_buscado, longitud_array> que te permiten entender cómo funciona simplemente leyendo.

Tienes dos funciones distintas que hacen exactamente lo mismo, primero usas una y luego otra... (es la búsqueda lineal por si no sabes a cual me refiero).

Si vas a poner dos <return> en el <main>, uno al final del <if> y otro al final del <else>, pon sólo uno al final, fuera de ambos y te ahorras los dos anteriores...

Y ya un par de saltos de línea en las salidas y queda perfecto. Suerte :-X
#658
Te pongo otro caso de ejemplo para que lo veas en otra situación, pero la respuesta de srWhiteSkull es correcta tambien:
Código (cpp) [Seleccionar]

// uso una struct para que los miembros sean publicos, pero tambien sirve usando clases
struct MyStruct{
    double a;
    double b;
};

class MyClass{
    MyStruct private_struct;

    public:
        MyStruct getStruct()const{
            return this->private_struct;
        }
};

int main(){
    MyClass *p_class = new MyClass;
    p_class->private_struct.a = 10;
    // ...
    cout << p_class->getStruct().a << endl; // salida: 10
}


Si por ejemplo la <struct> tuviera una función que fuese <getA()> también puedes usar eso y hacer:
Código (cpp) [Seleccionar]

p_class->getStruct().getA();


Como ves sirve para "concatenar". Puedes ir analizando de izquierda a derecha cada paso. Tienes un puntero a <MyClass> que al llamar a <getStruct()> devolvería la <private_struct> que tiene la clase como miembro. Pero a esa <struct> le aplicas el <.a> para que devuelva sólo el valor a de toda la <struct>.
Esto también te permite concatenar más de dos funciones o miembros. Si trabajas con POO te encontrarás esto en códigos que usan varias clases y estas están relacionadas. Suerte :-X
#659
Si la entrada del usuario puede ser de más de un caracter, entonces guárdalo en un <string>. Si sólo va a ser un caracter puedes usar un <char>.
Te dejo un código simple donde implemento un filtro para que se introduzca un número:
Código (cpp) [Seleccionar]

char respuesta;
do{
    cout << "Introduce un numero: ";
    cin >> respuesta;
}  while(respuesta < '0' || respuesta > '9');


También puedes usar la función <isdigit()> de la librería <cctype>:
Código (cpp) [Seleccionar]

char respuesta;
do{
    cout << "Introduce un numero: ";
    cin >> respuesta;
}  while(!isdigit(respuesta));


Si por ejemplo se aceptan como respuestas válidas los números de más de una cifra, tendrías que guardarlo en un <string> y comprobar que el <string> lo que contiene son dígitos. Suerte :-X
#660
Lo cierto es que sí que se puede usar un único array. Se inicializa con tamaño suficiente para todas las letras posibles pero con valores nulos. Y cada vez que el usuario introduce un caracter, se comprueba si ya está en el array; si está, se solicita otro caracter y si no está se da por válido y se introduce.
Yo había dado la otra idea porque es más visual y he creído que es mejor si está empezando. :-X