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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda acerca de matriz en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda acerca de matriz en c++  (Leído 3,789 veces)
laura_55

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Duda acerca de matriz en c++
« en: 19 Mayo 2014, 04:23 am »

Hola a todos mi nombre es Laura y soy nueva por aquí, espero que todos estén bien. Mi duda es la siguiente yo quiero crear una matriz con ciertos elementos. Luego de llenarla quiero poder un elemento de mi matriz posición por posición según lo que ingrese el usuario, sea norte, sur, este, oeste, para así ir acumulando un puntaje. Yo cree el siguiente código pero no me funciona y no se que estoy haciendo mal. Disculpen la molestias y entiendan que soy principiante por lo que debo de tener los errores mas estúpidos, solo les muestro el norte porque mi código esta hecho un desastre y es muy largo, y como siempre se repite lo mismo quiero saber que tengo mal y así poder arreglarlo en los demás. Gracias de antemano, y sean un poco pacientes todavía soy principiante.

Código
  1. #include <iostream>
  2. #include <string>
  3. char matriz[20][20];
  4. using namespace std;
  5. //----------------------------------------------------------------------
  6. float Puntaje(int x, int y){
  7. float Pts;
  8. if (matriz[x][y]=='$'){
  9. Pts=1.0;
  10. }else if (matriz[x][y]=='%'){
  11. Pts=1.5;
  12. }else if (matriz[x][y]=='&'){
  13. Pts=2.0;
  14. }
  15. return Pts;
  16. }
  17. //----------------------------------------------------------------------
  18. void Mover_posicion( int fil, int col, char matriz[][20]){
  19. bool estado=false;
  20. int i,j,c,pasos,x,y,l,m,Ac;
  21. string mov;
  22. do{
  23. for( i=0;i<fil;i++){
  24. for( j=0;j<col;j++){
  25. if(matriz[i][j]=='I'){
  26. x=i;
  27. y=j;
  28. }
  29. if(matriz[i][j]=='F'){
  30. l=i;
  31. m=j;
  32. }
  33. }
  34.    }
  35.    cin>>mov>>pasos;
  36.  
  37.    for(c=0;c<pasos;c++){
  38. if(mov=="N"){
  39.  
  40.    if((x-pasos) < 0){
  41. Ac=Ac + Puntaje(x,y);
  42.    if(matriz[x][y]==matriz[l][m]){
  43.  for (i = 0; i < fil; i++){
  44.        for ( j = 0; j < col; j++)
  45.           cout << matriz[i][j] << " ";
  46.        cout << endl;  
  47.    }
  48. }else{  
  49.         matriz[x][y] = matriz[x][y];
  50.            matriz[x][y] = '#';
  51.  
  52.             if(matriz[i][j]=='I'  && matriz[x][y]!='|'  ){
  53.  
  54. for (x = 0; x < fil; x++){
  55.        for ( y = 0; y < col; y++)
  56.           cout << matriz[x][y] << " ";
  57.           cout << endl;
  58.  
  59.         }
  60.         }else if(matriz[x--][y]!='|'){
  61.  
  62. for (i = 0; i < fil; i++)
  63.    {
  64.        for ( j = 0; j < col; j++)
  65.           cout << matriz[i][j] << " ";
  66.        cout << endl;  
  67.    }
  68.    }
  69. }
  70. }
  71. x--;
  72. }  
  73. }
  74. if(matriz[x][y]==matriz[l][m]){
  75. estado=true;
  76. }
  77.  
  78.  
  79.    }while(estado!=true);
  80.    cout<<"Ha llegado"<<"su acumulado es:"<<Ac<<endl;
  81. }
  82. //----------------------------------------------------------------------
  83. int main(){
  84. int fil,col,i,j;
  85.  
  86. cout<<"Ingrese filas y columnas"<<endl;
  87. cin>>fil>>col;
  88.  
  89. for( i=0;i<fil;i++){
  90. for( j=0;j<col;j++){          
  91. do{
  92.        cin >> matriz[i][j];
  93.  
  94. }while(matriz[i][j]!='I' && matriz[i][j]!='F' && matriz[i][j]!='$' && matriz[i][j]!='&' && matriz[i][j]!='|' && matriz[i][j]!='%');
  95. }
  96. }    
  97. Mover_posicion( fil, col, matriz);
  98. }


« Última modificación: 19 Mayo 2014, 09:52 am por Eternal Idol » En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #1 en: 19 Mayo 2014, 05:29 am »

Mi duda es la siguiente yo quiero crear una matriz con ciertos elementos. Luego de llenarla quiero poder un elemento de mi matriz posición por posición según lo que ingrese el usuario, sea norte, sur, este, oeste, para así ir acumulando un puntaje.

Podrias explicar de forma mas clara que es lo que quieres hacer exactamente; la función Mover_posicion carece totalmente de consistencia que intentas hacer con ella

Saludos 


En línea

laura_55

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #2 en: 19 Mayo 2014, 05:53 am »

lo siento si no se entiende, estoy comenzando. Lo que yo intente hacer fue que según la coordenada que ingrese es el usuario (norte, sur, este, oeste) se mueva el carácter
I tantas veces como lo indico el usuario. Ej si el usuario ingresa N 2, el carácter debería moverse nos espacios al norte y en su camino ir colocando el #. Yo trate de colocar el x-- para que fuera de posición en posición y así poder ir acumulando los puntos que hace la acción puntaje. Cambien le coloque un do while para que se saliera cuando la posición de I fuera igual  a F, se saliera y me escribiera el mensaje de ha llegado y de cuanto es mi acumulado. Lo siento si mi código es un desastre solo que parece que las matrices y yo no nos llevamos. No se, si estoy responde a tu pregunta
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #3 en: 19 Mayo 2014, 06:32 am »

http://foro.elhacker.net/programacion_cc/ayuda_con_programa_urgente-t404470.0.html
Voy a echar un ojo y después pongo algo que valga, aquí te dejo este enlace para que veas unos ejemplos muy buenos, porque así con prisa me ha salido to mal.  :-(

« Última modificación: 19 Mayo 2014, 12:56 pm por vangodp » En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #4 en: 19 Mayo 2014, 19:08 pm »

Lo que yo intente hacer fue que según la coordenada que ingrese es el usuario (norte, sur, este, oeste) se mueva el carácter I tantas veces como lo indico el usuario. Ej si el usuario ingresa N 2, el carácter debería moverse nos espacios al norte y en su camino ir colocando el #.

Te dejo un sencillo codigo que hace exactamente lo que pides, que es mover un elemento de la matriz hacia arriba la cantidad de posiciones que el usuario indique y rellenar el hueco dejado con '#'

Código
  1. if (mov == 'N' && x-pasos >= 0){
  2.   matriz[x-pasos][y] = matriz[x][y];
  3.  for (i = 0;  i < pasos; i++ )
  4.      matriz[x-i][y] = '#';
  5.   }

Yo trate de colocar el x-- para que fuera de posición en posición y así poder ir acumulando los puntos que hace la acción puntaje. Cambien le coloque un do while para que se saliera cuando la posición de I fuera igual  a F, se saliera y me escribiera el mensaje de ha llegado y de cuanto es mi acumulado.

Que quieres hacer con estos caracteres I F  $  &  | % y con la condición de do while no entiendo a que quieres llegar

Saludos
« Última modificación: 19 Mayo 2014, 23:09 pm por Blaster » En línea

laura_55

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #5 en: 20 Mayo 2014, 02:10 am »

Bueno con el do while del int main lo que quiero es que el usuario llene la matriz solo con los caracteres  I F  $  &  | % . Y el do while de la acción mover posición lo que hace es que cuanto la posición donde esta el carácter I es igual a F mi variable estado se vuelve verdad por lo que se sale y me imprime el mensaje ha llegado con el acumulado de los puntos de las posiciones por donde paso el carácter I. No se, si eso responde a tu pregunta, pero eso es lo que intento hacer y gracias por tratar de ayudarme a todos.
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #6 en: 20 Mayo 2014, 09:19 am »

... lo que hace es que cuanto la posición donde esta el carácter I es igual a F mi variable estado se vuelve verdad ...

Posición del carácter I igual a F ????

¿¿¿???

Perdón por el comentario, pero te explicas como un libro cerrado
En línea

laura_55

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #7 en: 20 Mayo 2014, 11:59 am »

si, lo siento de verdad trata de explicar lo mejor que puedo pero las palabras no salen como debería. Lo que trato de decir es que a medida que mi carácter va subiendo y en el numero de pasos que indico llega al caracter F, es decir,  la posición  del carácter I pasa a ser la misma que el F. El se sale y no pide mas paso, para eso es el do while. Espero que me entienda, ya se que no debo ser profesora explico pésimo.
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #8 en: 20 Mayo 2014, 12:06 pm »

A ver si me entero.

* Tienes una matriz con valores determinados, entre ellos al menos una I y una F.

* Se elige una I y se le van pidiendo al usuario una serie de pasos. Cada paso desplaza I por la matriz.

* Si en uno de los pasos resulta que I va a estar ubicada en la posición donde se encuentra una F el programa deja de pedir más pasos

¿Es así?

Si estoy en lo cierto, tengo algunas dudas:

* Solo hay una I y una F o puede haber varias de cada una??

* Si se desplaza I por la matriz... que valor se pone en el espacio que queda vacío? Si I está en (1,0) y se mueve a (2,0), qué valor se pone en (1,0)??

Si no estoy en lo cierto, deberías replantearte un pequeño esfuerzo adicional para que se entienda el problema.

Un saludo.
En línea

laura_55

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Duda acerca de matriz en c++
« Respuesta #9 en: 20 Mayo 2014, 12:35 pm »

 En cuanto a tus preguntas:
*El usuario solo va a ingresar una I y una F.
*Cuando se mueve se le coloca a la posición anterior el carácter #.
Y de verdad discúlpenme si no se entiende lo que trato de explicar.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda con arrays o matriz?
Programación Visual Basic
ricardovinzo 4 3,281 Último mensaje 10 Junio 2008, 23:36 pm
por CeLaYa
Duda - Buscar si existe una matriz dentro de otra matriz
Programación Visual Basic
EddyW 2 5,062 Último mensaje 14 Agosto 2010, 06:18 am
por EddyW
duda resultado de matriz [resuelto y con for incluido :) ]
Programación C/C++
flony 7 3,545 Último mensaje 16 Octubre 2010, 01:53 am
por Akai
Duda con la matriz de cadena en C.
Programación C/C++
orehmu 1 1,157 Último mensaje 1 Abril 2015, 05:12 am
por rir3760
Duda con matriz
Programación C/C++
bistec 1 1,091 Último mensaje 7 Abril 2017, 17:37 pm
por n-utz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines