Вы находитесь на странице: 1из 12

Teoría

Definición: un arreglo es una estructura de datos, o más técnicamente, un espacio de


memoria que permite almacenar una colección de elementos, todos del mismo tipo.
conviene imaginar un arreglo como una secuencia contigua de celdas (espacios de
memoria), o casillas, en cada una de las cuales se puede guardar un elemento de la
colección. Bien pueden ser arreglos unidimensionales, bidimensionales o
multidimensionales.

Arreglo unidimensional: Un arreglo unidimensional es un tipo de datos estructurado que


está formado por una colección finita y ordenada de datos del mismo tipo. Es la estructura
natural para modelar listas de elementos iguales. Pueden almacenar datos de tipo :

 Entero: Un vector unidimensional puede tomar valores enteros positivos y


negativos ejemplo: int Vector[10]={-1,0,1,2,3,4,5,6,7,8}
 Reales: Un vector puede tomar valores tanto enteros como decimales negativos y
positivos ejemplo float Vector[4]={-1.5 ,1 ,1.3 ,7.5}
 Caracter: Un vector puede contener caracteres alfanuméricos donde en cada
casilla esta almacenada cada carácter dada su capacidad finalizado por un carácter
Nulo ejemplo: char nombre[10]= {'H','o','l','a','\0'};

Arreglo Bidimensional: Los arreglos bidimensionales son tablas de valores. Cada elemento
de un arreglo bidimensional está simultáneamente en una fila y en una columna. En
matemáticas, a los arreglos bidimensionales se les llama matrices, y son muy utilizados en
problemas de Ingeniería. En un arreglo bidimensional, cada elemento tiene una posición
que se identifica mediante dos índices: el de su fila y el de su columna. Pueden ser de tipo:

Enteros: las matrices al igual que los vectores, almacenan datos enteros ejemplo int
Matriz[3][3]={ [1,2,3],[4,5,6],[7,8,9] }.

Reales: Las matrices al igual que los vectores, almacenan datos de tipo reales, ejemplo:
float matriz[2][2]={ [2.2, 1],[7.6,3.9] }

Carácter: Las matrices almacenan caracteres alfanuméricos referenciados de la siguiente


forma: por ejemplo, se debería usar un arreglo de dos dimensiones nombre[I,J]. El primer
subíndice (I) indica el número de filas o elementos de la lista y el segundo (J) indica el
número de columnas o el máximo de caracteres por nombre como: char nombre[4][20]=
{"Alexis","Jose","Estrella","Alberto"};
Cadena de Caracteres.

Una cadena se define como un array de caracteres terminado con un carácter nulo (“\0”).
Ejemplo: char cedula[10] = "V17005269";

La biblioteca estándar de C++ proporciona muchas funciones relacionadas con las


cadenas. Las cuatro más importantes son strcpy(), strcat(), strcmp() y strlen(). Estas
funciones requieren el archivo de cabecera string.h. Revisemos las funcionalidades de
cada una de ellas.

La función strcpy() tiene el siguiente formato general: strcpy(s1,s2); Por ejemplo, este
fragmento copia la cadena “hola” en str y la muestra en pantalla:

char str[80];
strcpy(str,”hola”);
cout<< str;

La función strcat() añade el contenido de una cadena al final de otra. Este proceso se
llama concatenación, su formato general es: strcat(s1,s2);El siguiente fragmento de
código imprime ¡Hola, que tal!

char str[80];
strcpy(str,”¡Hola,”);
strcat(srt,” que tal!”);
cout<<srt;

La función strcmp(). Por lo general su formato es strcmp(s1,s2); Sirve para comparar la


cadena cadena1 con la cadena2.
1. Devuelve el valor devuelve 0 si son iguales.
2. Devuelve menor que cero si cadena1 es menor que cadena2.
3. Devuelve mayor que cero si cadena1 es mayor que cadena2.

Las cadenas se comparan de forma lexicográfica, es decir, según el orden de un


diccionario. Por lo tanto, una cadena es menor a otra cuando aparece en un diccionario
antes que esta. Además, la comparación distingue entre mayúsculas y minúsculas, en que
lo caracteres en minúsculas son mayores que lo que en mayúscula.

La función strlen() devuelve la longitud, en caracteres de una cadena. Su formato general


es: strlen(str); La función strlen() no cuenta el carácter de terminación nulo. Esto significa
que si strlen() es llamada usando la cadena “test”, devolverá 4.
2) Cargar y mostrar la diagonal principal de una matriz.

#include<iostream.h>
#include<conio.h>

int main()
{
int numeros[3][3],i,j;

cout<<"Cargando Matriz \n";

for(i=0;i<3;i++) // recorrido de filas


{
for(j=0;j<3;j++) //reccorido de columnas
{
cout<<”ingrese número ”<<”de la fila ”<<i<<”columna<<j<<endl;
cin>><<numeros[i][j];
}
cout<<"\n";
}

cout<<"\n\nMostrando diagonal principal de la matriz\n";

for(i=0;i<3;i++)
{
for( j=0;j<3;j++)
{
if(i==j) //si i y j son iguales
{
cout<<numeros[i][j]<<endl;
}
}
}

getch();
}

3) Cargar Y mostrar un Vector Unidimensional

 TIPO ENTERO
#include<iostream.h>
#include<conio.h>

int main()
{
int i,enteros[4];

//Cargando Vector Entero


for(i=0;i<4;i++)
{ cout<<" Ingrese Numero entero "<<(i+1)<<endl;
cin>>enteros[i];
}

//Mostrando Vector

cout<<"Su lista es "<<endl;


for(i=0;i<4;i++)
{
cout<<enteros[i]<<endl;
}
getch();
}

 TIPO REAL
#include<iostream.h>
#include<conio.h>

int main()
{
int i;
float real[4];

//Cargando Vector tipo Real


for(i=0;i<4;i++)
{ cout<<" Ingrese Numero real "<<(i+1)<<endl;
cin>>real[i];
}

//Mostrando Vector
cout<<"su lista es "<<endl;
for(i=0;i<4;i++)
{
cout<<real[i]<<endl;
}
getch();

 TIPO Caracter

#include<iostream.h>
#include<conio.h>

int main()
{
int i;
char nombre[4][20];

//Cargando Vector Caracter


for(i=0;i<4;i++)
{ cout<<" Ingrese Nombre "<<(i+1)<<endl;
cin>>nombre[i];
}

//Mostrando Vector
cout<<"su lista de nombres es "<<endl;
for(i=0;i<4;i++)
{
cout<<nombre[i]<<endl;
}
getch();
}

4) como cargar y Mostrar un arreglo bidimensional.

 Real

#include<iostream.h>
#include<conio.h>

int main()
{
int i,j;
float real[3][3];

//Cargando Vector tipo Real


for(i=0;i<3;i++)//recorrer filas
{
for(j=0;j<3;j++)//recorrer columnas
{
cout<<" Ingrese Numero real "<<" de la fila"<<(i+1)<<" de la columna "<<(j+1)<<"
";
cin>>real[i][j];
}
}

//Mostrando Vector
for(i=0;i<3;i++)//recorrer filas
{
for(j=0;j<3;j++)//recorrer columnas
{
cout<<real[i][j]<<" ";
}
cout<<endl;
}
getch();
}

 Entero

#include<iostream.h>
#include<conio.h>

int main()
{
int i,j;
float entero[3][3];

//Cargando Vector tipo entero


for(i=0;i<3;i++)//recorrer filas
{
for(j=0;j<3;j++)//recorrer columnas
{
cout<<" Ingrese Numero entero "<<" de la fila"<<(i+1)<<" de la columna "<<(j+1)<<" ";
cin>>entero[i][j];
}
}

//Mostrando Vector
for(i=0;i<3;i++)//recorrer filas
{
for(j=0;j<3;j++)//recorrer columnas
{
cout<<entero[i][j]<<" ";
}
cout<<endl;
}
getch();
}

 Carácter

#include<iostream.h>
#include<conio.h>

int main()
{
int i,j;
char letras[3][3];

//Cargando Vector tipo Real


for(i=0;i<3;i++)//recorrer filas
{
for(j=0;j<3;j++)//recorrer columnas
{
cout<<" Ingrese letra "<<" de la fila"<<(i+1)<<" de la columna "<<(j+1)<<" ";
cin>>letras[i][j];
}
}

//Mostrando Vector
for(i=0;i<3;i++)//recorrer filas
{
for(j=0;j<3;j++)//recorrer columnas
{
cout<<letras[i][j]<<" ";
}
cout<<endl;
}
getch();
}

5) Ordenar Un vector tipo entero

Existen varios métodos y el más simple es el método de la burbuja que consiste en


organizar los datos contenidos en un arreglo (vector) según un criterio especificado
(Ascendente/Descendente).

Ejemplo:
Un arreglo de n elementos en este caso números enteros como:
[ 3, 5, 1, 9, 2 ] y la idea es de llegar a un arreglo ordenado de menor a mayor, analizando
y comparando dos elementos a la vez, y nos preguntarnos si el primer elementos es mayor
que el segundo de tal manera que habría que cambiarlos, en este caso están ordenados,
ahora analizamos el segundo elemento con el tercer elemento [ 3, 5, 1, 9, 2 ] y nos
volvemos a preguntar lo mismo y como no están ordenados de menor a mayor tenemos
que cambiarlos. Para hacerlo debemos tomar el segundo elemento y guardarlo en una
variable auxiliar, luego tomar el tercer elemento llevarlo al lugar del segundo elemento y
finalmente tomar el segundo elemento guardado y ubicarlo al lugar del tercer elemento.
[ 3, , 1, 9, 2 ] [ 3, 1 , , 9, 2 ] [ 3, 1 , 5 , 9, 2 ]
[ 5 ] Auxiliar [ 5 ] Auxiliar [ ] Auxiliar

Y así con cada elemento hasta el final y luego volver a empezar desde el primer elemento
hasta que el vector quede completamente ordenado. En código se interpreta de la
siguiente manera:

#include<iostream.h>
#include<conio.h>

void main()
{
int lista[5]={ 3, 5, 1, 9, 2 };
int i,j,Aux;
for(i=0;i<5;i++) /* For externo que recorra el arreglo tantas veces sea necesario para
que estén los elementos ordenados.*/
{ for(j=0;j<5-i;j++) // For interno recorre elemento por elemento para compararlo
{
if ( lista[j] > lista[j+1] ) /*Si el elemento donde estoy parado es mayor al siguiente se
hace el cambio*/
{
Aux=lista[j] ; /*El elemento que cambia se guarda en la variable Aux*/
lista[j]=lista[j+1]; /* se hace el intercambio*/
lista[j+1]=Aux;
}
}
}
for(i=0;i<5;i++)
{ cout<<lista[i]<<" "; /*Se muestra el resultado en pantalla*/
}
getch();
}

6) Ordenar Una matriz Tipo Entero.


De manera similar en este metodo se usa para ordenar el metodo de ordenamiento tipo
Burbuja.

#include <iostream>

using namespace std;

int main()
{
int f=2,c=2,mayor=0;
int matriz[f][c];
//lleno la matriz
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
cout<<"introducir datos:";
cin>>matriz[i][j];
}
}

//ordeno la matriz de mayor a menor


for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
for(int x=0; x<f;x++)
{
for(int y=0; y<c; y++)
{
if(matriz[i][j]>matriz[x][y])
{
mayor=matriz[i][j];
matriz[i][j]=matriz[x][y];
matriz[x][y]=mayor;
}

}
}
}
}

//imprimo la matriz como ordenada


cout<<"\nLos Datos De La Matriz Fueron Ordenados de Mayor a Menor"<<endl;
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
cout<<matriz[i][j]<<" ";
}
cout<<endl;
}

getch();
}

Вам также может понравиться