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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


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

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Programando Arreglos
« en: 23 Abril 2016, 07:27 am »

Hola Buenas a todos, estoy intentando realizar un programa en c++ que me diga la cantidad de ceros que hay en un arreglo bidimensional, las dimensiones del arreglo son dadas por el usuairo las cuales no pueden exeder de 15, y al final debe mostrar

la cantidad de ceros que tiene el arreglo.
la cantidad de ceros que tiene cada renglón del arreglo.
la cantidad de ceros que tenga cada una de las columnas del arreglo.

Este es el avance que llevo hasta ahorita
Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. /* El progrma debera contar la cantidad de 0's en un arreglo bidimensional
  8. * cuyas dimensiones son dadas por el usuario */
  9.  
  10. int main(int argc, char *argv[]) {
  11.  
  12. int y;
  13. int x;
  14. cout<<"Numero de filas: ";
  15. cin>>x;
  16. cout<<"Numero de columnas: ";
  17. cin>>y;
  18. srand(time(0));
  19. int dimension [15][15];
  20.  
  21. cout<<"\nEl arreglo es: \n\n";
  22.  
  23. for(int i=0; i<x; i++){
  24.  
  25. for (int a=0; a<y; a++){
  26.  
  27. dimension[i][a]= rand() % 9;
  28. cout<<dimension[i][a]<<" ";
  29. }
  30. cout<<endl;
  31. }
  32. cout<<"\n";
  33.  
  34. cout<<"\n";
  35.  
  36. system ("PAUSE");
  37. return EXIT_SUCCESS;
  38. }


« Última modificación: 23 Abril 2016, 10:24 am por phooeenix » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Programando Arreglos
« Respuesta #1 en: 23 Abril 2016, 10:16 am »

Oh, que bueno!
El primero que veo que incuye todas las cabeceras correctas de C++.  ;-) ;-)

Pero fallas en la definicion de la tabla. No debería ser
Código:
int dimension[15][15]
porque así el tamaño lo decides tu, no el usuario: si este usa números más grandes te buscará para que le devuelvas el dinero.


En línea

phooeenix

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Programando Arreglos
« Respuesta #2 en: 23 Abril 2016, 10:30 am »

Creo que olvide poner en el post que las dimensiones no pueden exceder a 15  :xD  :silbar:
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Programando Arreglos
« Respuesta #3 en: 23 Abril 2016, 17:13 pm »

Ah, pues lo primero que debes hacer es avisar al usuario si se excede en las dimensiones, o son muy pequeñas (imagínate que pone 0 o menor a 0).

Después con bucles anidados haces (te lo voy a dejar en seudocódigo porqué es muy fácil.
Código:
por i = 1 hasta num_filas
    cuenta = 0
    por j = 1 hasta num_columnas
        si elemento(i,j) es 0
            cuenta = cuenta + 1
    imprimir "El número de 0s en fila " i " es " cuenta
Similar para conseguir el número de 0s para las columnas.
Para toda la tabla es
Código:
cuenta = 0
por i = 1 hasta num_filas
    por j = 1 hasta num_columnas
        si elemento(i,j) es 0
            cuenta = cuenta + 1
imprimir "El número de 0s en la tabla es " cuenta
En línea

phooeenix

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Programando Arreglos
« Respuesta #4 en: 25 Abril 2016, 09:02 am »

Muchas Gracias hermano MAFUS, al final el programa me quedo asi:
Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. /* El progrma debera contar la cantidad de 0's en un arreglo bidimensional
  8. * cuyas dimensiones son dadas por el usuario */
  9.  
  10. int main(int argc, char *argv[]) {
  11.  
  12. int ceros=0;
  13. int sum;
  14. int y;
  15. int x;
  16. cout<<"Numero de filas: ";
  17. cin>>x;
  18. cout<<"Numero de columnas: ";
  19. cin>>y;
  20. srand(time(0));
  21. int dimension [x][y];
  22.  
  23. cout<<"\nEl arreglo es: \n\n";
  24.  
  25. for(int i=0; i<x; i++){
  26.  
  27. for (int a=0; a<y; a++){
  28. dimension[i][a]= rand() % 10;
  29. cout<<dimension[i][a]<<" ";
  30.  
  31.  
  32. }
  33. cout<<endl;
  34.  
  35. }
  36. cout<<"\n";
  37. ceros=0;
  38. sum=0;
  39. for(int i=0; i<x;i++){
  40.  
  41. for(int a=0; a<y;a++){
  42.  
  43. if(dimension[i][a]==ceros){
  44. sum= sum+1;
  45. }
  46.  
  47. }
  48.  
  49. }
  50.  
  51. cout<<"La cantidad de 0's en el arreglo es de: "<<sum<<endl;
  52.  
  53. cout<<"\nCeros por fila: "<<endl;
  54. for(int i=0; i<x;i++){
  55. ceros=0;
  56. sum=0;
  57. for(int a=0; a<y;a++){
  58. if (dimension[i][a]==ceros){
  59. sum= sum+1;
  60. }
  61. }
  62. cout<<"Cantidad de 0's en la fila "<<i+1<<" es: "<<sum<<endl;
  63. sum=0;
  64. }
  65. cout<<"\nCeros por Columna: "<<endl;
  66. for(int a=0; a<y;a++){
  67. ceros=0;
  68. sum=0;
  69. for(int i=0; i<x;i++){
  70.  
  71. if (dimension[i][a]==ceros){
  72. sum= sum+1;
  73. }
  74. }
  75. cout<<"Cantidad de 0's en la columna "<<a+1<<" es: "<<sum<<endl;
  76. sum=0;
  77. }
  78.  
  79. cout<<"\n";
  80.  
  81. system ("PAUSE");  
  82. return EXIT_SUCCESS;
  83. }
En línea

LordOfD96

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Programando Arreglos
« Respuesta #5 en: 25 Abril 2016, 17:07 pm »

me gusta tu código ;D
 solo que al crear un arreglo bi-dimensional no puedes darle los atributos de X y Y dentro del código, debe primero reservar memoria.

por que no intentas con un arreglo dinámico.
ahorita no recuerdo como se hace pero llegando a mi casa reviso mis apuntes de arreglos dinámicos. :P
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Programando Arreglos
« Respuesta #6 en: 25 Abril 2016, 18:24 pm »

C++ y C a partir del estándar del 99 sí se puede declarar el array con variables.
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Programando Arreglos
« Respuesta #7 en: 25 Abril 2016, 19:47 pm »

Si, bueno, pero como introduzcas valores muy grandes la pila se te va al traste xD
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
Re: Programando Arreglos
« Respuesta #8 en: 26 Abril 2016, 05:25 am »

hola amigo class_OpenGl tenes algun proyecto en mente para realizar ? algun video juego? 

te cuento que hice algunos proyectos desde cero sin utilizar librerias, pero se demora demasiado y estaria encantado en poder utilizar opengl para librarme del peso de algunas cosas

saludos...
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Programando Arreglos
« Respuesta #9 en: 26 Abril 2016, 15:04 pm »

Tanto como proyectos no he hecho, simplemente he hecho "demos gráficas" sobre diversos aspectos de OpenGL, tales como reflexión y refracción dinámicos, iluminación... Es cierto que trabajar puramente con OpenGL puede llegar a ser pesado, porque tienes que definir todos los aspectos (cargar texturas, shaders, framebuffers...), pero te digo que si te lo propones, es satisfactorio :D
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programando server
Programación Visual Basic
amtapias 4 1,380 Último mensaje 4 Marzo 2006, 18:52 pm
por sch3m4
Programando con gtk+
Programación C/C++
Khronos14 5 3,151 Último mensaje 6 Enero 2011, 18:54 pm
por paju1986
hp programando
Programación General
bengy 1 2,165 Último mensaje 5 Agosto 2011, 11:07 am
por Debci
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines