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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con array... (Resuelto)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con array... (Resuelto)  (Leído 6,855 veces)
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Ayuda con array... (Resuelto)
« en: 9 Septiembre 2010, 00:23 am »

Bueno tengo que hacer un programa en c++ donde el usuario ingrese el tamaño de un arreglo bidimensional... y me pide que el usuario también ingrese los valores de este arreglo...

Esto es lo que llevo hasta ahora:
Código:
using namespace std; 
void main()
{
int x;
int y;

cout << "A continuación se pedirá que indiques el tamaño de un arreglo de 2 dimensiones" << endl;

cout << "Primer valor del arreglo" << endl;
cin >> x;

cout << "Segundo valor del arreglo" << endl;
cin >> y;

cout << "el tamaño del arreglo es: " << x << " por " << y << endl;

int arreglo[x][y];

system("PAUSE");


}

Y el ejercicio que me piden es el siguiente:
Citar
Desarrolla un programa que solicite al usuario la cantidad de renglones y de columnas de un arreglo de 2 dimensiones y luego pida los datos para llenar el arreglo.

El programa sirve para decirle al usuario si un dato dado se encuentra o no en el arreglo, y si se encuentra indicar en qué posición se encuentra.

Por ejemplo:

Supón que los datos del arreglo son los siguientes:

2 4 6 8
3 5 7 9

Si el usuario teclea el valor 5, el programa le dirá: El dato 5 se encuentra en el renglón 1 columna.

Alguien me puede ayudar?


-----


Antes que nada gracias por la ayuda a Leo Gutierrez...

Bueno, ya resolví esto, y creo que no quedó "perfecto" pero bueno sirve para su propósito. Dejo el código por si alguien tiene un problema similar o si ven algo que pueda mejorar también pónganlo.
Código:
#include "stdafx.h"
#include <iostream>
#include<cstdlib>

using namespace std;

typedef int* ApuntArregloInt;
 
void llenar_filas(int a[], int tamanio)
{
   cout << "Escriba " << tamanio << " enteros";
   for(int indice=0; indice<tamanio; indice++)
        cin>>a[indice];

}
void llenar_columnas(int a[], int tamanio)
{
cout << "Escriba " << tamanio << " enteros: ";
   for(int indice=0; indice<tamanio; indice++)
        cin>>a[indice];
}

int main()
{
cout << "Este programa es un arreglo dinamico..." << endl;

int tamanio_arreglo;
int *p;

cout << "Ingresa el tamaño de las filas en enteros : " << endl;
cin >> tamanio_arreglo;
p = new int[tamanio_arreglo];
if(p==NULL)
{
cout << "No hay memoria suficiente..." << endl;
exit(1);
}
llenar_filas(p, tamanio_arreglo);

cout << "Los numeros del arreglo son..."  << endl;
for(int i=0; i<tamanio_arreglo; i++)
cout << p[i] << endl;


cout << "Ingresa el tamaño de las columnas en enteros : " << endl;
cin >> tamanio_arreglo;
p = new int[tamanio_arreglo];
if(p==NULL)
{
cout << "No hay memoria suficiente..." << endl;
exit(1);
}
llenar_columnas(p, tamanio_arreglo);

cout << "Los numeros del arreglo son..."  << endl;
for(int i=0; i<tamanio_arreglo; i++)
cout << p[i] << endl;



system ("PAUSE");
}


« Última modificación: 9 Septiembre 2010, 06:46 am por miketru » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda con array...
« Respuesta #1 en: 9 Septiembre 2010, 01:05 am »

Necesitas asignación dinámica de memoria para esto, ya que el usuario dará la cantidad de filas y columnas.

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4. using std::cin;
  5. int main(void)
  6. {
  7.    unsigned int filas, columnas;
  8.    cout << "Filas : ";
  9.    cin >> filas;
  10.    cout << "Columnas : ";
  11.    cin >> columnas;
  12.    signed int **matriz = new int*[filas];
  13.    for(unsigned int i = 0; i < filas; i++)
  14.    matriz[i] = new int[columnas];
  15.    // Algoritmo para lo demás
  16.    for(unsigned int i = 0; i < filas; i++)
  17.    delete[] matriz[i];
  18.    delete[] matriz;
  19.    return 0;
  20. }
  21.  

Solo falta el algoritmo para saber en qué posición está el número, publica tus avances y te ayudaremos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Re: Ayuda con array...
« Respuesta #2 en: 9 Septiembre 2010, 01:12 am »

No entendí mucho lo del algoritmo, podrías explicarme mas?
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda con array...
« Respuesta #3 en: 9 Septiembre 2010, 01:14 am »

Es decir, como saber en qué posición está el elemento.

Dí si no sabes hacerlo para ayudarte.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Re: Ayuda con array...
« Respuesta #4 en: 9 Septiembre 2010, 01:20 am »

No no se hacerlo,  :-(
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda con array...
« Respuesta #5 en: 9 Septiembre 2010, 01:32 am »

Simplemente es una busqueda secuencial, vas recorriendo las filas y columnas y comparando con el valor a buscar, si son iguales guardas las filas y guardas las columnas, algo así:

Código
  1. void encontrar(const int **m, const int& f, const int &c, const int &valor)
  2. {
  3.    int posF = -1, posC = -1;
  4.    for(unsigned int i = 0; i < f; i++)
  5.        for(unsigned int j = 0; j < c; j++)
  6.            if(m[i][j] == valor)
  7.            {
  8.                posF = i;
  9.                posC = j;
  10.                break;
  11.            }
  12.    if(posF != -1)
  13.    cout << "El dato " << valor << " se encuentra en la fila " << posF << " columna " << posC << endl;
  14.    else
  15.    cout << "Valor no encontrado" << endl;
  16. }
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Re: Ayuda con array...
« Respuesta #6 en: 9 Septiembre 2010, 01:35 am »

Muchas gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Bash] Problema con array [resuelto]
Scripting
hervasiop12345 8 7,909 Último mensaje 21 Julio 2011, 10:15 am
por hervasiop12345
[RESUELTO] CopyMem Array VarTypes
Programación Visual Basic
Miseryk 7 4,987 Último mensaje 29 Junio 2013, 07:55 am
por Miseryk
[Resuelto] Allegro 5 - Array de BITMAPS
Programación C/C++
NOIS 0 1,646 Último mensaje 14 Noviembre 2014, 10:06 am
por NOIS
[Resuelto] incrementar clave de un array ()
PHP
Crarmon 3 1,925 Último mensaje 20 Enero 2015, 01:54 am
por T. Collins
[Resuelto] Problemas con un Array
PHP
DeXon18 2 1,779 Último mensaje 3 Junio 2015, 20:22 pm
por DeXon18
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines