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 - ivancea96

#3691
Aquí corregí el código:

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

using namespace std;

const int MAX = 'z' - 'a' + 1;

int cript(const vector<char>& Dic, char c) {

    for (int i = 0; i < MAX; ++i)
        if (c == Dic[i]) return i;

    return 0;

}

int main() {

    vector<char> Dic(MAX);

    while (true) {
        cout << "Ponga el diccionario:" << endl << " - ";
        for (int i = 0; i < MAX; ++i) cin >> Dic[i];
        int cas;
        cout << "Ponga numero de lineas:" << endl << " - ";
        cin >> cas;

        for (int i = 0; i < cas; ++i) {

            string c;

            cin >> c;
                for(int j=0; j<c.length(); j++)
                    if (c[j] == '_') cout << " ";
                    else {
                        int k = cript(Dic, c[j]);
                        cout << char(k+ 'a');
                }

            cout << endl;
        }
        cout << endl;
    }
}


Puse un par de couts explicando lo que pid een cada caso. Ahora te explico:

Tenías un "while(cin << c)". Eso hacía que no saliera del ciclo, y continuaba pidiendo caracteres.
Te convertí 'c' e un string, y lo cambié un poco.

Tenías 1 fallo, que erradicaba en un uso obligado de otro:

Tenías: "for(int i=1;i<MAX;i++) ..."
Por ese motivo, tenias que poner "while(cin >> c[0])" Ese '0' se evita ponerlo, si le I del for la inicializas en 0. Ademásde cambiar eso, podrías quitar el while, o dejarlo como lo puse yo, para que pida infinitamente. (O lo que tu quieras)

En fin, creo que eso es todo. Suerte.
#3692
En la imagen, no me explicas nada. Son 1 o 2 entradas diferentes?

Has probado a poner cout << endl << endl;? Quizás es lo que buscas.



PD:Se dice linea, no linia. Por favor, revisa lo que escribiste antes de postear, tienes muchas faltas. Usa signos de puntuación por favor.
#3693
Naada era de coña. Pero más explicado no puede estar xD
#3694
Haced la clase String para C jaja. Al menos haced una réplica de las funciones y operadores básicos xDD
#3695
Si solo es un laberinto de 1 carril, puedes hacer esto:

En unas variables X e Y guardas la posición actual. (Por donde estás en cada momento).
Buscas cuál es el 1 o 2 que hay delante. Haces que unas variables tempX y tempY guarden los datos de X e Y, y X e Y las igualas a la nueva posición.
Ahora vuelves a buscar, con una condición: El nuevo 1 o 2 a buscar no puede estar en la posición anterior (tempX o tempY).
Con cada paso, muestras la pantalla.

Es el algoritmo que se me ocurre. Solo para recorridos con 1 dirección y 1 de grosor en el camino.


Código (cpp) [Seleccionar]
/** Buscar unos o doses **/
for(int i=-1; i<2; i++)
    for(int j=-1; j<2; j++)
        if(!(x+i == tempX && y+j == tempY) && (i || j) && (vector[x+i][y+j] == 1 || vector[x+i][y+j] == 2)){
            tempX = X;
            tempY = Y;
            X = X+i;
            Y = Y+j;
        }
//.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
// - Mostrar pantalla, comprobar si es un 2 para finalizar, etc, etc... -
//'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'



----------------Breve explicación de las condiciones:----------------

Código (cpp) [Seleccionar]
!(x+i == tempX && y+j == tempY)

-Los nuevos valores NO pueden ser iguales a los anteriores (Para no retroceder en el laberinto)

Código (cpp) [Seleccionar]
(i || j)

-I y J NO pueden ser 0 (Significaría que nos situaremos en la misma casilla, donde estamos)

Código (cpp) [Seleccionar]
(vector[x+i][y+j] == 1 || vector[x+i][y+j] == 2)

-El siguiente paso en el laberinto DEBE ser un 1 o un 2 (Es el número asociado al camino)



Y bueno, suerte :3 Espero no haberme equivocado en nada jaja
#3696
Yo me metí a la programación porque me da, entre otros, control sobre la computadora. Además, la programación es una forma de mejorar y darle uso a la lógica, cosa que no se hace en muchos otros hobbies/trabajos.

Y en cuanto a dinero y trabajo, la informática está ampliando sus fronteras, y está dando muchos  puestos de trabajos.
#3697
Programación C/C++ / Re:
8 Diciembre 2013, 10:27 AM
Te pasa solo con el 50? O con más números?

Puede ser que tu programa busque donde no es?

Haz una prueba: coge un address que haya detectado tu programa, y mira q valor le encuentra el CE.
#3698
Ya estaríamos hablando de IA algo avanzada. Podrías probar a clasificar las palabras en determinantes - sustantivos, y proposiciones sustantivas, y todo eso. Pero no tengo ni idea de qué algoritmo se suele usar.
#3699
Mm no te puedo responder, no tengo ni idea jaja

Pero si me pudieras echar una mano, te daría mil gracias xD

Estoy con mi proyecto de editor de memoria, y tengo una duda: Cómo saber cuál es la última address de un proceso? :o

Yo le daría a buscar desde el address 0000 hasta el address XXXXX. ¿Sabes cual es? O cómo saberlo.

Gracias adelantadas :p
#3700
Esto lo acabo de buscar en google, no se si te vale:

http://sdl.beuc.net/sdl.wiki/Pixel_Access

A lo mejor esa función te vale :o