Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Auxilio con array bidimencional en c++ :(

Estas en el tema de Auxilio con array bidimencional en c++ :( en el foro de C/C++ en Foros del Web. Hice este codigo en c++. la idea es tener el abecedario contenido en un array, luego el usuario insertara un valor el cual hara que ...
  #1 (permalink)  
Antiguo 28/03/2015, 17:54
Avatar de Alexhg42  
Fecha de Ingreso: febrero-2015
Mensajes: 33
Antigüedad: 9 años, 2 meses
Puntos: 2
Pregunta Auxilio con array bidimencional en c++ :(

Hice este codigo en c++.
la idea es tener el abecedario contenido en un array, luego el usuario insertara un valor el cual hara que el abecedario se recorra.

el abecedario normal y recorrido estarian guardadas en el mismo array bidimencional.
abc[][] = {{abcnormal},{abccorrido}} <- algo asi.

o asi:
abc[][1] = abecedario normal;
abc[][2] = abecedario recorrido;

y luego se imprimirian en pantalla. pero de la forma que lo hice no me jala, en otros lenguajes puedo hacerlo con codigo similar, ya lo he hecho.
ojala puedan hecharme una mano.


Código:
#include <iostream.h>
int main(){
	char abc[27][1] = "abcdefghijklmnñopqrstuvwxyz";
	int codnum;
    cout<<"Introduce un número de codificación";
    cin>>codnum;
    int a = 0;
    for(int i = codnum; i <= 27; i++){
    	abc[a][2] = abc[i][1];
    	a++;
    }
    for(int i = 0; i <= codnum; i++){
    	abc[a][2] = abc[i][1];
    	a++;
    }
    cout<<"abecedario normal: "<<abc[][1]<<"\nabcedario encriptado: "<<abc[][2];
}
  #2 (permalink)  
Antiguo 28/03/2015, 21:21
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Auxilio con array bidimencional en c++ :(

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main (){
  5.     const int TAM = 27+1; // tamaño de cada cadena  de maximo 27 letras + el nulo que marca el fin de cada cadena.
  6.    
  7.     char abc[][TAM] = {{"abcnormal"},{"abccorrido"},{"abcnormal"}};
  8.     int nCadenas = sizeof(abc)/TAM ; //numero de cadenas
  9.    
  10.     cout << "Tienes " << nCadenas << " cadenas de " << TAM << " letras cada.\n" << endl;
  11.     for (int i = 0; i < sizeof(abc)/TAM; i++ ){
  12.         cout << "Cadena " << i+1 << ": " << abc[i] << endl;
  13.     }
  14.    
  15.     cin.ignore();
  16.     return 0;
  17. }

¿Esto es?
  #3 (permalink)  
Antiguo 29/03/2015, 03:13
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: Auxilio con array bidimencional en c++ :(

Hola Alexhg42
Cita:
Iniciado por Alexhg42 Ver Mensaje
...
la idea es tener el abecedario contenido en un array, luego el usuario insertara un valor el cual hara que el abecedario se recorra.

el abecedario normal y recorrido estarian guardadas en el mismo array bidimencional.
abc[][] = {{abcnormal},{abccorrido}} <- algo asi.

o asi:
abc[][1] = abecedario normal;
abc[][2] = abecedario recorrido;
...
No estoy seguro de haber entendido a que te refieres con que el abecedario se recorra, hubiera ayudado mucho ver un ejemplo concreto...

Pero a ver si lo que buscas es algo parecido a esto:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX = 27;
  7.  
  8. int main() {
  9.   char v[2][MAX] = {{"abcdefghijklmnopqrstuvwxyz"},{""}};
  10.   int n;
  11.  
  12.   cout << "Desplazamiento: ";
  13.   cin >> n;
  14.   cin.ignore();
  15.  
  16.   for(int i = n, c=0; i < MAX; i++, c++)  
  17.     v[1][c] = v[0][i];
  18.   strncat(v[1], v[0], n);
  19.  
  20.   cout << "\nOriginal  : " << v[0] << endl;
  21.   cout << "Desplazado: " << v[1];
  22.  
  23.   cin.get();
  24.   return 0;
  25. }

Usando un arreglo de string es mas simple:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX = 27;
  7.  
  8. int main() {
  9.   string v[2]= {{"abcdefghijklmnopqrstuvwxyz"},{""}};
  10.   int n;
  11.  
  12.   cout << "Desplazamiento: ";
  13.   cin >> n;
  14.   cin.ignore();
  15.  
  16.   v[1] = v[0].substr(n, MAX-n) +  v[1].append(v[0].substr(0, n));
  17.  
  18.   cout << "\nOriginal  : " << v[0] << endl;
  19.   cout << "Desplazado: " << v[1];
  20.  
  21.   cin.get();
  22.   return 0;
  23. }

Saludos.
  #4 (permalink)  
Antiguo 29/03/2015, 03:19
Avatar de HelThunk  
Fecha de Ingreso: marzo-2015
Ubicación: std::cout<<"En mi PC";
Mensajes: 33
Antigüedad: 9 años
Puntos: 0
Respuesta: Auxilio con array bidimencional en c++ :(

Cita:
Iniciado por Alexhg42 Ver Mensaje
Hice este codigo en c++.
la idea es tener el abecedario contenido en un array, luego el usuario insertara un valor el cual hara que el abecedario se recorra.

el abecedario normal y recorrido estarian guardadas en el mismo array bidimencional.
abc[][] = {{abcnormal},{abccorrido}} <- algo asi.

o asi:
abc[][1] = abecedario normal;
abc[][2] = abecedario recorrido;

y luego se imprimirian en pantalla. pero de la forma que lo hice no me jala, en otros lenguajes puedo hacerlo con codigo similar, ya lo he hecho.
ojala puedan hecharme una mano.


Código:
#include <iostream.h>
int main(){
	char abc[27][1] = "abcdefghijklmnñopqrstuvwxyz";
	int codnum;
    cout<<"Introduce un número de codificación";
    cin>>codnum;
    int a = 0;
    for(int i = codnum; i <= 27; i++){
    	abc[a][2] = abc[i][1];
    	a++;
    }
    for(int i = 0; i <= codnum; i++){
    	abc[a][2] = abc[i][1];
    	a++;
    }
    cout<<"abecedario normal: "<<abc[][1]<<"\nabcedario encriptado: "<<abc[][2];
}
El problema que ve yo (aun soy muy novato) es que te has comido el std::, usa después del #include <iostream> un " using namespace std; "
  #5 (permalink)  
Antiguo 29/03/2015, 18:38
 
Fecha de Ingreso: marzo-2015
Mensajes: 1
Antigüedad: 9 años
Puntos: 0
Respuesta: Auxilio con array bidimencional en c++ :(

Cita:
Iniciado por Alexhg42 Ver Mensaje
Hice este codigo en c++.
la idea es tener el abecedario contenido en un array, luego el usuario insertara un valor el cual hara que el abecedario se recorra.

el abecedario normal y recorrido estarian guardadas en el mismo array bidimencional.
abc[][] = {{abcnormal},{abccorrido}} <- algo asi.

o asi:
abc[][1] = abecedario normal;
abc[][2] = abecedario recorrido;

y luego se imprimirian en pantalla. pero de la forma que lo hice no me jala, en otros lenguajes puedo hacerlo con codigo similar, ya lo he hecho.
ojala puedan hecharme una mano.


Código:
#include <iostream.h>
int main(){
	char abc[27][1] = "abcdefghijklmnñopqrstuvwxyz";
	int codnum;
    cout<<"Introduce un número de codificación";
    cin>>codnum;
    int a = 0;
    for(int i = codnum; i <= 27; i++){
    	abc[a][2] = abc[i][1];
    	a++;
    }
    for(int i = 0; i <= codnum; i++){
    	abc[a][2] = abc[i][1];
    	a++;
    }
    cout<<"abecedario normal: "<<abc[][1]<<"\nabcedario encriptado: "<<abc[][2];
}
Yo veo un par de errores en el código. Primero cuando declaras el array de caracteres tendrías que declararlo
Código:
char abc[2][28]
para que reserve el espacio para arrays compuesto cada uno de una cadena de 27 caracteres mas el caracter \0 de fin de cadena de c.
Despues los arrays en c/c++ empiezan a contar de 0 entonces tendrias dos arrays de cadenas
Código:
abc[0][i] y abc[1][i]
para inicializar el primer array de 27 caracteres basta con hacer un
Código:
strcpy(abc[0],"abcdefghijklmnñopqrstuvwxyz")
para lo que tendrías que agregar la librería <cstring> y posiblemente el using namespace std; como comentan en otro post dependiendo del compilador.

Y al hacer el cout.
Código:
cout<<"abecedario normal: "<<abc[0]<<"\nabcedario encriptado: "<<abc[1];

Etiquetas: arrays, c++, matrices
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:02.