Dev - C++ - programa que lea una secuencia de movimientos y que calcule la posición final

 
Vista:

programa que lea una secuencia de movimientos y que calcule la posición final

Publicado por Javier (10 intervenciones) el 28/10/2020 12:40:25
Buenas, necesito hacer este programa:

Haga un programa que lea una secuencia de caracteres, cada uno codificando un movimiento ( 'n' para norte, 's' para sur, 'e' para este, y 'o' para oeste), y que calcule la posición final de un objeto que inicialmente se encontrara en la posición (0, 0). Suponga que la primera componente se corresponde a la dirección este-oeste, que ir hacia el este significa sumar 1 a esta componente, y que ir hacia el sur significa sumar 1 a la segunda componente. (Ir hacia el lado contrario restará 1 a su respectiva componente).

La entrada consiste en una secuencia de caracteres 'n', 's', 'e', o bien 'o'.


Hay que escribir la posición final de un objeto que inicialmente se encontrara en la posición (0, 0).

Ejemplos de input - output que tendrían que salir:

nnnn (0, -4)
sseoooon (-3, 1)
(nada) (0,0)

Agradecería vuestra ayuda, lo he probado con un método y no me salía.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder

programa que lea una secuencia de movimientos y que calcule la posición final

Publicado por Nacho (181 intervenciones) el 28/10/2020 21:58:08
Tienes que procurar no marear a la gente.

Lo que dices es procesar una cadena de entrada, no un carácter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int main() {
    while (1)
    {
        char cadena[20]{ 0 };
        int x = 0;
        int y = 0;
        cout << endl;
        int i = 0;
        cin.getline(cadena, 20);
        while (cadena[i] != '\0')
        {
            switch (cadena[i])
            {
            case 'n':
                y--;
                break;
            case 's':
                y++;
                break;
            case 'e':
                x--;
                break;
            case 'o':
                x++;
                break;
            }
            i++;
        }
        cout << "(" << x << "," << " " << y << ")" << endl;
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa que lea una secuencia de movimientos y que calcule la posición final

Publicado por Javier (10 intervenciones) el 28/10/2020 23:14:23
Siento ser tan pesado, pero no me dejan hacerlo con switch case ya que aún no me lo han enseñado, pero no encuentro la manera.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar