2. Un "arreglo" o "array" (en inglés), es una colección de
variables relacionadas a las que se hace referencia
por medio de un nombre común.
Otra definición válida es que un arreglo es un conjunto de
datos que se almacenan en memoria de manera contigua
con el mismo nombre y para diferenciar los elementos de
un arreglo se utiliza un índice.
En el lenguaje C++ un arreglo se le conoce como un tipo
de dato compuesto. Los arreglos pueden tener una o
varias dimensiones.
ARREGLOS
4. ARREGLOS
Índice de un arreglo
Todo arreglo está compuesto por un número de elementos. El índice
es un número correlativo que indica la posición de un elemento del
arreglo. Los índices en C++ van desde la posición 0 hasta la posición
tamaño – 1.
Elemento de un arreglo
Un elemento de un arreglo es un valor particular dentro de la
estructura del arreglo. Para acceder a un elemento del arreglo es
necesario indicar la posición o índice dentro del arreglo. Ejemplo:
25 12 5 120 35 69 100
0 1 2 3 4 5 6
índice
elemento
Tamaño/num. Elementos == índice +1
Num. índices == tamaño -1
1° 2° 3° 4° 5° 6° 7°
6. ARREGLOS UNIDIMENSIONAL
Un arreglo de una dimensión es una lista de variables,
todas de un mismo tipo a las que se hace referencia por
medio de un nombre común. Una variable individual del
arreglo se llama elemento del arreglo. Para declarar un
arreglo de una sola dimensión se usa el formato general:
tipo_dato nombre_arreglo[tamaño];
Generalmente a un arreglo unidimensional se le
conoce con el nombre de VECTOR
7. ARREGLOS UNIDIMENSIONAL
VECTOR
tipo_dato nombre_arreglo[tamaño];
int vector[3];
float vector[3];
char vector[3];
int arreglo[3];
float arreglo[3];
char arreglo[3];
int unidimensional[3];
float unidimensional[3];
char unidimensional[3];
int array[3];
float array[3];
char array[3];
8. La mejor manera de crear un vector es mediante el uso del
bucle FOR, al ser un bucle de control finito permite establecer
la cantidad de elementos del vector y por otro lado permite el
ingreso de elementos al mismo.
ARREGLOS UNIDIMENSIONAL
VECTOR
PROCESO DE ESCRITURA PROCESO DE LECTURA
int i, vector[4]; // 5 elementos
for (i=0; i<=4; i++)
{
cout<<"Ingrese un elemento: ";
cin>>elemento;
vector[i]=elemento;
}
for (i=0; i<=4; i++)
{
cout<<vector[i];
}
9. ARREGLOS UNIDIMENSIONAL
VECTOR
PRACTICA
2 4 6 8 10
Crear un arreglo unidimensional (vector), que contengan los 5 primeros
números múltiplos del 2, imprimir los elementos del vector.
# include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <stdio.h>
int main()
{
int i,elemento, vector[4];
// escritura de un vector tamaño 5
for (i=0; i<=4; i++)
{
elemento=(i+1)*2;
vector[i]=elemento;
}
// escritura de un vector
for (i=0; i<=4; i++)
{
cout<<vector[i]<<"n";
}
getch();
return 0;
}
10. ARREGLOS UNIDIMENSIONAL
VECTOR
PRACTICA
Crear un arreglo unidimensional (vector), que permita al usuario ingresar N
elementos. # include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <stdio.h>
int main()
{
int i,elemento, vector[100],N;
cout<<"Cuantos elementos desea ingresar: ";
cin>>N;
N=N-1;
// escritura de un vector N
for (i=0; i<=N; i++)
{
cout<<"Ingrese un elemento: ";
cin>>elemento;
vector[i]=elemento;
// escritura de un vector
for (i=0; i<=N; i++)
{
cout<<vector[i]<<"n";
}
getch();
return 0;
}
11. Crear un arreglo unidimensional (vector), que permita ingresar las 5
vocales, imprimir los elementos del vector en orden ascendente y
descendente.
ARREGLOS UNIDIMENSIONAL
VECTOR
PRACTICA
# include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <stdio.h>
int main()
{
int i;
char elemento, vector[4];
// escritura de un vector tamaño 5
for (i=0; i<=4; i++)
{
cout<<"Ingrese una vocal: ";
cin>>elemento;
vector[i]=elemento;
}
// escritura de un vector ascendente
for (i=0; i<=4; i++)
{
cout<<vector[i]<<"n";
}
// escritura de un vector descendente
for (i=4; i>=1; i--)
{
cout<<vector[i]<<"n";
}
getch();
return 0;
}
12. Crear un vector que almacene los nombres de
5 estudiantes y un vector que almacene las
notas (/20) de dichos estudiantes; imprimir los
elementos de los vectores
correspondientemente (nombre y nota):
Juan
Pedro
Ana
Luis
Maria
20
18
19
17
15
Nombres Notas
ARREGLOS UNIDIMENSIONAL
VECTOR
EJERCICIOS
Camiseta
Zapatillas
Chompa
Medias
Gorra
Crear los vectores necesarios para que
se almacene la información de
Productos y Precios; Calcular los
elementos del vector IVA
$ 35
$ 120
$ 98
$ 12
$ 28
4,2
14,4
11,76
1,44
3,36
Producto Precio IVA*
El vector correspondiente al IVA, se
calcula en base al vector Precio (precio
* 0,12)
14. INSERCIÓN
ARREGLOS UNIDIMENSIONAL
VECTOR
El proceso de inserción en un vector, es cuando
INSERTAMOS uno o varios elemento a un vector que ya
posee elementos.
Se puede insertar un elemento en un vector en diferente
lugar (posición).
inicio
final
en la mitad
2 4 6 8 10
0
2 4 6 8 10 12
2 4 5 6 8 10
15. Antes de iniciar con la inserción es necesario especificar el
lugar o la posición; recuerde que el lugar y la posición son
referenciales al vector debido a que en un vector se utiliza el
índice para reflejar la posición y el lugar correcto.
1.- Definir el número de elementos de un vector (tamaño)
2.- Llenar el Vector con los elementos (escritura, tipo de dato)
3.- Mostrar los elementos que conforman el vector (lectura)
4.- Insertar
4.1.- Especificar la posición* del elemento a insertar.
4.2.- Indicar el elemento a insertar.
4.3.- Modificar el tamaño del Vector.
4.3.- Insertar el elemento en la posición.
5.- Imprimir el nuevo vector
INSERCIÓN
ARREGLOS UNIDIMENSIONAL
VECTOR
16. PRACTICA 1
Crear un vector con 5 elementos; permitir que el usuario inserte un nuevo
elemento al final del vector:
INSERCIÓN
ARREGLOS UNIDIMENSIONAL
VECTOR
#include <iostream.h>
#include <conio.h>
int main()
{
int vector[100],N, i, nuevo_dato;
N=4;
cout<<"PROCESO DE ESCRITURA - VECTOR 5 ELEMENTOS"<<endl;
for (i=0; i<=N; i++)
{
cout<<"Elemento "<<i+1<<" :";
cin>>vector[i];
}
17. cout<<"PROCESO DE INSERCION AL FINAL"<<endl;
cout<<"Que dato desea almancer en la ultima posición: ";
cin>>nuevo_dato;
N=N+1;
vector[N]=nuevo_dato;
cout<<"Dato Insertado con Exito"<<endl;
cout<<"PROCESO DE LECTURA NUEVO VECTOR"<<endl;
for (i=0; i<=N; i++)
{
cout<<i+1<<" = "<<vector[i]<<endl;
}
getch();
return 0;
}
PRACTICA 1
INSERCIÓN
18. Crear un vector con 5 elementos; permitir que el usuario inserte un nuevo
elemento al inicio del vector:
PRACTICA 2
INSERCIÓN
int main()
{
int vector[100],N, i, nuevo_dato;
N=4;
cout<<"PROCESO DE ESCRITURA - VECTOR 5 ELEMENTOS"<<endl;
for (i=0; i<=N; i++)
{
cout<<"Elemento "<<i+1<<" :";
cin>>vector[i];
}
cout<<"PROCESO DE LECTURA - VECTOR 5 ELEMENTOS"<<endl;
for (i=0; i<=N; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
19. PRACTICA 2
INSERCIÓN
//Proceso de Isercion Inicio
N=N+1; // aumentar el tamaño del vector
cout<<"Que elemento desea insertar al inicio del vector: ";
cin>>nuevo_dato;
//recorrido inverso
for (i=N; i>=1; i--)
{
vector[i]=vector[i-1];
}
// insercion
vector[0]=nuevo_dato;
cout<<"PROCESO DE LECTURA - VECTOR 6 ELEMENTOS"<<endl;
for (i=0; i<=N; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
getch();
return 0;
}
20. PRACTICA 2
INSERCIÓN
Crear un vector con 5 elementos; permitir que el usuario inserte un nuevo
elemento en la mitad del vector:
int main()
{
int vector[100],N, i, nuevo_dato, lugar, indice;
N=4;
cout<<"PROCESO DE ESCRITURA - VECTOR 5 ELEMENTOS"<<endl;
for (i=0; i<=N; i++)
{
cout<<"Elemento "<<i+1<<" :";
cin>>vector[i];
}
cout<<"PROCESO DE LECTURA - VECTOR 5 ELEMENTOS"<<endl;
for (i=0; i<=N; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
21. PRACTICA 2
INSERCIÓN
//Proceso de Insercion en la mitad
cout<<"Que elemento desea insertar en le vector: ";
cin>>nuevo_dato;
cout<<"En que lugar desea insertarlo: ";
cin>>lugar;
indice=lugar-1;
N=N+1; // aumentar el tamaño del vector
//recorrido inverso
for (i=N; i>=indice; i--)
{
vector[i]=vector[i-1];
}
// isercion
vector[indice]=nuevo_dato;
cout<<"PROCESO DE LECTURA - VECTOR 6 ELEMENTOS"<<endl;
for (i=0; i<=N; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
getch();
return 0;
}
22. EJERCICIOS
INSERCIÓN
Crear un vector de N notas (control nota 0-20), Imprimir el vector de notas y
calcular el promedio de las N notas ingresadas, Insertar una nueva nota*
mostrar el vector de notas y el nuevo PROMEDIO.
Crear un vector de N precios (control precio no negativos), Imprimir el
vector de precios y calcular la Sumatoria Total de Precios, Insertar un nuevo
precio* mostrar el vector de precios y el nuevo TOTAL.
Crear un vector de N edades (control solo mayores de edad), Imprimir el
vector de edades y calcular la MEDIA de las edades, Insertar una nueva
edad* mostrar el vector de edades y la nueva MEDIA.
Crear un vector de N temperaturas ºC (control -40º a 40º), Imprimir el vector
de temperaturas y mostrar la Temperatura Promedio, Insertar una nueva
temperatura* mostrar el vector de y la nueva Temperatura Promedio.
23. MODIFICACIÓN
El proceso de modificación en un vector es cuando
CAMBIAMOS/ACTUALIZAMOS el valor del elemento por
otro, es necesario para este proceso indicar cual elemento
modificar, basándose en la posición o lugar (índice) del
mismo.
Otra forma de modificar un datos es mediante un proceso
de búsqueda en el caso de que se haga referencia a un
elemento y no a un lugar o posición, pero para esto es
necesario buscar un elemento dentro de un vector.
ARREGLOS UNIDIMENSIONAL
VECTOR
24. MODIFICACIÓN
ARREGLOS UNIDIMENSIONAL
VECTOR
1.- Definir el número de elementos de un vector (tamaño)
2.- Llenar el Vector con los elementos (escritura, tipo de dato)
3.- Mostrar los elementos que conforman el vector (lectura)
4.- Especificar la posición o lugar del elemento a modificar
5.- Remplazar el elemento (pedir un elemento)
6.- Mostrar todo el vector actualizado.
Considere los siguientes pasos para modificar un
elemento dentro de un vector.
vector 2 4 6 8 10
1 2 3 4 5
0 1 2 3 4
# elementos, posición
índice
Vector actualizado 2 5 6 8 10
25. PRACTICA
Crear un vector con 5 elementos; permitir que el usuario modifique un
elemento del vector, indicando el lugar del elemento
MODIFICACIÓN
ARREGLOS UNIDIMENSIONAL
VECTOR
26. MODIFICACIÓN
ARREGLOS UNIDIMENSIONAL
VECTOR
LECCION
Crear un vector con N notas (controlar /20); mostrar todas las notas
ingresadas; ¿preguntar si desea modificar una nota (1)SI, (0)NO antes de
imprimir el promedio?:
En caso de ser NO imprimir el promedio de las notas.
En caso de ser SI ¿modificar la nota, que nota , nueva nota?, imprimir el
promedio.
27. ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
Considere los siguientes pasos para eliminar un
elemento dentro de un vector.
vector 2 4 6 8 10
1 2 3 4 5
0 1 2 3 4
# elementos, posición
índice
x
Vector actualizado 2 6 8 10
1.- Definir el número de elementos de un vector (tamaño)
2.- Llenar el Vector con los elementos (escritura, tipo de dato)
3.- Mostrar los elementos que conforman el vector (lectura)
4.- Especificar la posición o lugar del elemento a eliminar
5.- Quitar y Recorrer (- inicio o - final)
6.- Mostrar todo el vector actualizado.
28. ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
Debemos considerar que al momento de ELIMINAR el
elemento del vector, el tamaño del mismo se verá
modificado.
original 2 4 6 8 10
1 2 3 4 5
0 1 2 3 4
# elementos, posición
índice
nuevo
2 4 6 8
4 6 8 10
2 4 8 10
1 2 3 4
# elementos, posición
ultimo
primero
tercero (incide=2)
30. # include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <stdio.h>
int main()
{
int vector[100], i, n,dato;
n=4;
//ESCRITURA
cout<<endl<<"PROCESO DE ESCRITURA - VECTOR 5
ELEMENTOS"<<endl;
getch();
for (i=0; i<=n; i++)
{
cout<<"Ingrese el Elemento "<<i+1<<" :";
cin>>dato;
vector[i]=dato;
}
ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
//LECTURA
cout<<endl<<"PROCESO DE LECTURA - VECTOR 5
ELEMENTOS"<<endl;
getch();
for (i=0; i<=n; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
//ELIMINACION AL FINAL
n=n-1;
cout<<endl<<"EL ULTIMO DATO DEL VECTOR HA SIDO ELIMINADO
CON EXITO.!!!"<<endl;
getch();
//LECTURA
cout<<endl<<"IMPRESION DEL VECTOR FINAL"<<endl;
for (i=0; i<=n; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
getch();
return 0;
}
SOLUCIÓN:eliminar el ULTIMO elemento del vector
32. ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
SOLUCIÓN:eliminar el PRIMER elemento del vector
int main()
{
int vector[100], i, n,dato;
n=4;
//ESCRITURA
cout<<endl<<"PROCESO DE ESCRITURA - VECTOR 5 ELEMENTOS"<<endl;
getch();
for (i=0; i<=n; i++)
{
cout<<"Ingrese el Elemento "<<i+1<<" :";
cin>>dato;
vector[i]=dato;
}
//LECTURA
cout<<endl<<"PROCESO DE LECTURA - VECTOR 5 ELEMENTOS"<<endl;
getch();
for (i=0; i<=n; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
//ELIMINACION DEL PRIMER
//(recorrer los datos de derecha a izquierda)
for(i=0; i<=n-1; i++)
{
vector[i]=vector[i+1];
}
cout<<endl<<" PRIMER DATO ELIMINADO "<<endl;
getch();
//LECTURA
n=n-1;
cout<<endl<<"IMPRESION DEL VECTOR FINAL"<<endl;
for (i=0; i<=n; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
getch();
return 0;
}
34. ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
SOLUCIÓN:eliminar un elemento en la MITAD del vector
int main()
{
int vector[100], i, n,dato, pos ,lugar;
n=4;
//ESCRITURA
cout<<endl<<"ESCRITURA - VECTOR 5 ELEMENTOS"<<endl;
getch();
for (i=0; i<=n; i++)
{
cout<<"Ingrese el Elemento "<<i+1<<" :";
cin>>dato;
vector[i]=dato;
}
//LECTURA
cout<<endl<<"LECTURA - VECTOR 5 ELEMENTOS"<<endl;
getch();
for (i=0; i<=n; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
//ELIMINACION AL MEDIO
cout<<"Indique el lugar del elemento a eliminar: ";
cin>>lugar;
pos=lugar-1;
for(i=pos; i<=n-1; i++)
{
vector[i]=vector[i+1];
}
cout<<endl<<"ELMENTO ELIMINADO DEL VECTOR.!!"<<endl;
getch();
//LECTURA
n=n-1;
cout<<endl<<"IMPRESION DEL VECTOR FINAL"<<endl;
for (i=0; i<=n; i++)
{
cout<<"El elemento "<<i+1<<" es -> "<<vector[i]<<endl;
}
getch();
return 0;
}
35. ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
LECCIÓN
Crear un vector que almacene N números, a continuación se muestre las
opciones de Eliminar:
1. El primero (después imprimir)
2. En la mitad (después imprimir)
3. El ultimo. (después imprimir)
Después de haber eliminado mostrar un mensaje que diga:
¿Desea DESHACER la eliminación (1)SI y (0)NO.?
En caso de ser (1)SI , se mostrara La lista original de nombres.
En caso de ser (2) NO, el sistema se cerrara.(mensaje)
36. ARREGLOS UNIDIMENSIONAL
VECTOR
BUSQUEDA
El proceso de búsqueda dentro de un vector es un
proceso totalmente diferente al de los demás, sin
embargo es el mas importante; gracias a la búsqueda se
pueden hacer las demás operaciones a la hora de
modificar o eliminar un dato en particular (elemento) .
1.- Conocer el tamaño exacto de un vector.
2.- Conocer el elemento (dato) a buscar.
3.- Iniciar el proceso de recorrido de inicio a fin (viceversa)
3.1.- Comparar el elemento del vector con el dato a buscar
3.2.- Indicar si el dato existe o no "posición" (realizar cualquier
operación)
Considere los siguientes pasos para modificar un elemento
dentro de un vector.
37. ARREGLOS UNIDIMENSIONAL
VECTOR
BUSQUEDA
PRACTICA
1.- Crear un vector con 5 elementos; permitir al usuario buscar un elemento
dentro del vector (EXISTE O NO EXISTE)
2.- Crear un vector con 5 elementos; permitir al usuario buscar un elemento
e indicar cuantas veces se repite.
3.- Crear un vector con 5 elementos; permitir al usuario buscar un elemento
e indicar el lugar que le corresponde.
38. ARREGLOS UNIDIMENSIONAL
VECTOR
BUSQUEDA
EJERCICIO
Diseñar un algoritmo que permita crear un vector de N edades (0-20), a
continuación ofrezca las opciones de:
1. modificación*
2. eliminación *
3. Salir
*Para cada opción se debe buscar el dato, antes de ejecutar la acción;
posteriormente se mostrara el vector resultante.
40. VECTORES
Se entiende al proceso de reorganizar un conjunto de objetos en una
cierta secuencia de acuerdo a un criterio especificado. En general, el
objetivo de este proceso es facilitar la posterior búsqueda de elementos
en el conjunto ordenado.
Existen múltiples ejemplos reales de conjuntos que requieren ser
ordenados: la guía telefónica, índices de libros, ficheros de bibliotecas,
diccionarios, edades, actas de exámenes, etc.
A continuación se describen algunos de los algoritmos de ordenación
lineal más conocidos.
Algoritmos de Ordenamiento Lineal
Burbuja
Selección
Inserción
Shell
ORDENAMIENTO
41. METODO DE LA BURBUJA
10 2 4 1 8 2 10 4 1 8
2 10 4 1 8 2 10 4 1 8
2 4 10 1 8 1 4 10 2 8
1 4 10 2 8 1 4 10 2 8
comienza en el índice 0 comienza en el índice 1
ORDENAMIENTO VECTORES
42. 1 4 10 2 8 1 4 10 2 8
1 4 10 2 8 1 2 10 4 8
……
1 2 10 4 8 1 2 4 10 8
……
1 2 4 10 8 1 2 4 8 10
fin
comienza en el índice 0 (1º)
Llega hasta (final-1)
comienza en el índice 1 (2ª)
Llega hasta (final)
METODO DE LA BURBUJA
ORDENAMIENTO VECTORES
43. METODO DE LA BURBUJA
ORDENAMIENTO VECTORES
El bucle externo establece un desplazamiento secuencial dentro del vector desde
el primer elemento hasta el penúltimo .
El bucle interno realiza un recorrido del vector desde el elemento i+1 hasta el
último elemento del vector y va reduciendo en cada iteración del bucle externo el
número de elementos a comparar.
Al mismo instante se compara el elemento i con los subsiguientes elementos del
vector e intercambiándolo cuando sea mayor, en este intercambio es que se genera
la burbuja, donde los elementos más pequeños van subiendo y los más grandes se
van ubicando en las posiciones inferiores del vector.
for ( i=0; i<= n-1 ; i++ )
for ( j=1; i<= n ; i++ )
44. ORDENAMIENTO VECTORES
PRACTICA
Crear un vector de 5 elementos , Llenar el vector con datos numéricos
desordenados; Mostar el vector con sus elementos, aplicar el método de la
burbuja para ordenar los elementos del vector; Mostar el vector Ordenado.
Crear un vector de N elementos , Llenar el vector con datos numéricos
desordenados; Mostar el vector con sus elementos.
Mostrar al usuario las opciones de ordenación Ascendente o Descendente.
Mostrar el vector ordenado según su opción escogida.
46. ARREGLOS BIDIMENSIONAL
Un arreglo de dos dimensiones, también denominada MATRIZ, se
define como un vector de vectores, es decir, es aquella en la cual uno
de sus elementos es, a su vez, una tabla unidimensional.
Podemos comparar una matriz con una hoja de papel cuadriculado en
la que cada cuadrícula corresponderá un elemento.
En este gráfico podemos observar que
cada fila está dividida en varias
columnas.
Por lo tanto, para poder referenciar un
elemento de la matriz, hay que
especificar el nombre de la misma
(igual que con los vectores) y, entre
paréntesis, dos subíndices separados
por coma; el primero Indicará la fila en
la que se encuentra el elemento y el
segundo la columna.
FILA 1
FILA2
FILA3
COL 1 COL 2 COL 3
47. ARREGLOS BIDIMENSIONAL
MATRICES
A continuación se muestra una matriz de nombre MATRIZ, la cuál es
constituida por 4 filas y 3 columnas.
MATRIZ (4 X 3)
MATRIZ (F X C)
MATRIZ (i X j)
FORMULA: nom_mat (fila X columnas)
El resultado de multiplicar la cantidad de filas por cantidad de
columnas es el tamaño de la matriz. En nuestro ejemplo anterior el
tamaño es de (4 x 3) = 12 elementos
matriz( i , j )
1,1 1,2 1,3
2,1 2,2 2,3
3,1 3,2 3,3
4,1 4,2 4,3
MATRIZ
1 2 3
4 5 6
7 8 9
10 11 12
48. La mejor manera de crear una MATRIZ es mediante el uso del
bucle FOR, al ser un bucle de control finito permite establecer
la cantidad de elementos de la MATRIZ y por otro lado
permite el ingreso de elementos al mismo.
ARREGLOS BIDIMENSIONAL
MATRICES
Escritura de elementos Matriz (2X3) : Lectura elementos Matriz (2X3) :
for (i=1; i<=filas; i++)
{
for(j=1;j<=columnas; j++)
{
cout<<"Dato:";
cin>>matriz[i][j];
}
}
for (i=1; i<=filas; i++)
{
for(j=1;j<=columnas; j++)
{
cout<<matriz[i][j];
}
}
50. solución
# include <iostream.h>
# include<conio.h>
# include<stdlib.h>
# include <stdio.h>
# include <windows.h> //libreria para usar sleep
int main()
{
int matriz[100][100],f,c, i,j, dato;
f=5;
c=4;
cout<<"ESCRITURA - MATRIZ 5X4 = 20 "<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
cout<<"Ingrese el elemento ["<<i<<","<<j<<"]= ";
cin>>dato;
matriz[i][j]=dato;
}
}
cout<<endl<<"LECTURA - MATRIZ 5X4 = 20 "<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
cout<<"["<<i<<","<<j<<"]= "<<matriz[i][j]<<endl;
}
}
// lectura tipo matriz
/* cout<<endl<<"LECTURA - MATRIZ 5X4 = "<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
if(j==c)
{
cout<<matriz[i][j];
cout<<endl;
}
else
{
cout<<matriz[i][j]<<" ";
}
}
}*/
getch();
return 0;
}
51. PRACTICA
Crear un arreglo bidimensional (matriz), de dimensión (3x3), llenar con
nombres de personas.
juan ana Luis
julio roberto Maria
mario martha pedro
(3 filas x 3 columnas) = 9
ARREGLOS BIDIMENSIONAL
MATRICES
52. solución
/*MATRIZ (3X3) Nombres*/
# include <iostream.h>
# include<conio.h>
# include<stdlib.h>
# include <stdio.h>
int main()
{
char matriz[100][100][50];
int f,c, i,j, dato;
f=2;
c=2;
cout<<"ESCRITURA - MATRIZ 3X3 = 9 "<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
cout<<"Ingrese el elemento ["<<i<<","<<j<<"]= ";
cin>>matriz[i][j];
}
}
cout<<endl<<"LECTURA - MATRIZ "<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
cout<<"["<<i<<","<<j<<"]= "<<matriz[i][j]<<endl;
}
}
getch();
return 0;
}
53. EJERCICIO
Crear un arreglo bidimensional (matriz), que almacene 28 letras de la
alfabeto.
ARREGLOS BIDIMENSIONAL
MATRICES
A B C CH
D E F G
H I J K
L M N Ñ
O P Q R
S T U V
W X Y Z
( 7 filas x 4 columnas) = 28
A B C CH D E F
G H I J K L M
N Ñ O P Q R S
T U V W X Y Z
( 4 filas x 7 columnas) = 28
56. INSERCIÓN
ARREGLOS BIDIMENSIONAL
El proceso de inserción en una matriz es cuando INSERTAMOS una
fila o una columna, lo que representa un nuevo conjunto de datos.
Columnas:
Filas:
al inicio
al final en la mitad
MATRICES
57. INSERCIÓN
columna al final
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
1.4
2.4
3.4
Como podemos notar al insertar una columna al final de
una matriz, el numero de filas permanece constate,
mientras que el numero de columnas aumentara en 1.
Como se conoce la dimensión de la matriz (f x c) ,a la hora de crear, lo que
resta por hacer es:
1. Aumentar el tamaño a la columna (c+1)
2.- Solicitar al usuario ingresar los nuevos valores de la columna (f valores)
3.- Asignar los valores a la(columna).
1.- c=c+1
2.- (i=1; i<=fila; i++)
2.1.- dato
2.1.- matriz[i][c]=dato
3.- Leer nueva matriz
MATRICES
ARREGLOS BIDIMENSIONAL
58. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación insertar una columna al final de la matriz; Mostrar la
nueva matriz.
INSERCIÓN
columna al final
MATRICES
ARREGLOS BIDIMENSIONAL
59. solución
//1. proceso de escritura 2. proceso de lectura 3. inserción 4. lectura nueva matriz
//3. INSERCION COLUMNA AL FINAL
cout<<endl<<"INSERTAR UNA COLUMNA AL FINAL"<<endl<<endl;
c=c+1;
for(i=1; i<=f; i++)
{
cout<<"Ingrese el Dato "<<i<<"/"<<f<<" para la nueva columna: ";
cin>>nuevo_dato;
matriz[i][c]=nuevo_dato;
}
cout<<endl<<endl<<"Insertando columna....espere!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
60. INSERCIÓN
fila al final
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
Como podemos notar al insertar una fila al final de una
matriz, el numero de columnas permanece constate,
mientras que el numero de filas aumentara en 1.
Como se conoce la dimensión de la matriz (f x c) ,a la hora de insertar, lo que
resta por hacer es:
1. Aumentar el tamaño a la fila (f+1)
2.- Solicitar al usuario ingresar los nuevos valores de la fila (c valores)
3.- Asignar los valores a la(fila).
1.- f=f+1
2.- (i=1; i<=columna; i++)
2.1.- dato
2.1.- matriz[f][i]=dato
3.- Leer nueva matriz
4.1 4.2 4.3
MATRICES
ARREGLOS BIDIMENSIONAL
61. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación insertar una fila al final de la matriz; Mostrar la nueva
matriz.
INSERCIÓN
fila al final
MATRICES
ARREGLOS BIDIMENSIONAL
62. solución
//1. proceso de escritura 2. proceso de lectura 3. inserción 4. lectura nueva matriz
//3. INSERCION FILA AL FINAL
cout<<endl<<"INSERTAR UNA FILA AL FINAL"<<endl<<endl;
f=f+1;
for(i=1; i<=c; i++)
{
cout<<"Ingrese el Dato "<<i<<"/"<<c<<" para la nueva fila: ";
cin>>nuevo_dato;
matriz[f][i]=nuevo_dato;
}
cout<<endl<<endl<<"Insertando fila....espere!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
63. INSERCIÓN
columna al inicio
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
1,1 1.2 1.3 1.4
2,1 2.2 2.3 2.4
3.1 3.2 3.3 3.4
Como podemos notar al insertar una
columna al inicio de una matriz, el numero
de filas permanece constate, mientras que
el numero de columnas aumentara en 1.
Como se conoce la dimensión de la matriz (f x c) ,a la hora de insertar, lo que
resta por hacer es:
1. Aumentar el tamaño a la columna (c+1)
2. Recorrido de los elementos
(UtlimoPenultimo), para liberar la columna
inicial.
3. Solicitar al usuario ingresar los nuevos valores
de la columna (f valores)
4. Mostrar Matriz
1.- c=c+1
2.- (i=1 ; i<=fila ; i++)
(j=columna ; j>=2 ; j--)
2.1.- matriz [i][ j]=matriz[i][j-1]
3.- (i=1 ; i<=fila ; i++)
3.1.- dato
3.2.- matriz[i][1]=dato
4.- Imprimir Matriz
MATRICES
ARREGLOS BIDIMENSIONAL
64. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación insertar una columna al inicio de la matriz; Mostrar la
nueva matriz.
INSERCIÓN
columna al inicio
MATRICES
ARREGLOS BIDIMENSIONAL
65. solución
//1. proceso de escritura 2. proceso de lectura 3. inserción 4. lectura nueva matriz
//INSERCION COLUMNA AL INICIO
cout<<endl<<"INSERTAR UNA COLUMNA AL INICIO"<<endl<<endl;
c=c+1;
//recorrido izquierda a derecha
for (i=1; i<=f; i++)
{
for(j=c;j>=2; j--)
{
matriz[i][j]=matriz[i][j-1];
}
}
//lenar datos columna 1
for(i=1; i<=f; i++)
{
cout<<"Ingrese el Dato "<<i<<"/"<<f<<" para la primera columna: ";
cin>>nuevo_dato;
matriz[i][1]=nuevo_dato;
}
cout<<endl<<endl<<"Insertando columna....espere!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
66. INSERCIÓN
fila al inicio
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
1,1 1.2 1.3
2,1 2.2 2.3
3.1 3.2 3.3
4.1 4.2 4.3
Como podemos notar al insertar una fila al
inicio de una matriz, el numero de
columnas permanece constate, mientras
que el numero de filas aumentara en 1.
Como se conoce la dimensión de la matriz (f x c) ,a la hora de insertar, lo que
resta por hacer es:
1. Aumentar el tamaño a la fila (f+1)
2. Recorrido de los elementos
(UtlimoPenultimo), para liberar la columna
inicial.
3. Solicitar al usuario ingresar los nuevos valores
de la fila (c valores)
4. Mostrar Matriz
1.- f=f+1
2.- (i=f ; i>=2 ; i--)
(j=1 ; j<=c ; j++)
2.1.- matriz[i][j]=matriz [i-1][ j]
3.- (i=1 ; i<=columnas ; i++)
3.1.- dato
3.2.- matriz[i][1]=dato
4.- Imprimir Matriz
MATRICES
ARREGLOS BIDIMENSIONAL
67. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación insertar una fila al inicio de la matriz; Mostrar la nueva
matriz.
INSERCIÓN
fila al inicio
MATRICES
ARREGLOS BIDIMENSIONAL
68. solución
//1. proceso de escritura 2. proceso de lectura 3. inserción 4. lectura nueva matriz
//INSERCION FILA AL INICIO
cout<<endl<<"INSERTAR UNA FILA AL INICIO"<<endl<<endl;
f=f+1;
//recorrido arriba -> abajo
for (i=f; i>=2; i--)
{
for(j=1;j<=c; j++)
{
matriz[i][j]=matriz[i-1][j];
}
}
//lenar datos columna 1
for(i=1; i<=c; i++)
{
cout<<"Ingrese el Dato "<<i<<"/"<<c<<" para la primera fila: ";
cin>>nuevo_dato;
matriz[1][i]=nuevo_dato;
}
cout<<endl<<endl<<"Insertando fila....espere!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
69. INSERCIÓN
columna en la mitad
1 2
4 5
7 9
10 3
20 6
30 9
1 2 3
4 5 6
7 8 9
Como podemos notar al insertar una
columna al medio de una matriz, el numero
de filas permanece constate, mientras que
el numero de columnas aumentara en 1.
1. Aumentar el tamaño a la columna (c+1)
3. Especificar la posición de la columna a insertar
4. Recorrido de los elementos (UtlimoPenultimo),
a partir de la columna solicitada.
5. Solicitar al usuario ingresar los nuevos valores
de la columna (f valores)
6. Mostrar Matriz
1.- c=c+1
2.- num_colum
3.- (i=1 ; i<=fila ; i++)
(j=columna ; j>=num_colum ; j--)
2.1.- matriz[i][j]=matriz[i][j-1]
4.- (i=1 ; i<=fila ; i++)
3.1.- dato
3.2.- matriz[i][num_colum]=dato
5.- Imprimir Matriz
MATRICES
ARREGLOS BIDIMENSIONAL
70. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación insertar una columna al medio de la matriz; Mostrar la
nueva matriz.
INSERCIÓN
columna en la mitad
MATRICES
ARREGLOS BIDIMENSIONAL
71. solución
//1. proceso de escritura 2. proceso de lectura 3. inserción 4. lectura nueva matriz
//INSERCION COLUMNA AL MEDIO
cout<<endl<<"INSERTAR UNA COLUMNA AL MEDIO DE UNA MATRIZ"<<endl<<endl;
cout<<"En que posicion desea ingresar la nueva columna: ";
cin>>pos;
c=c+1;
//recorrido izq-> derecha desde la posicion indicada
for (i=1; i<=f; i++)
{
for(j=c;j>=pos; j--)
{
matriz[i][j]=matriz[i][j-1];
}
}
//lenar datos columna 1
for(i=1; i<=f; i++)
{
cout<<"Ingrese el Dato "<<i<<"/"<<f<<" para la nueva columna: ";
cin>>nuevo_dato;
matriz[i][pos]=nuevo_dato;
}
cout<<endl<<endl<<"Insertando columna....espere!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(100);
cout<<".";
}
cout<<"READY!!";
getch();
72. INSERCIÓN
fila en la mitad
1 2 3
4 5 6
10 20 30
1 2 3
4 5 6
7 8 9
Como podemos notar al insertar una fila al
medio de una matriz, el numero de
columnas permanece constate, mientras
que el numero de fila aumentara en 1.
1. Aumentar el tamaño a la fila (f+1)
3. Especificar la posición de la fila a insertar
4. Recorrido de los elementos (UtlimoPenultimo),
a partir de la fila solicitada.
5. Solicitar al usuario ingresar los nuevos valores
de la fila (c valores)
6. Mostrar Matriz
1.- f=f+1
2.- num_fila
3.- (i=f ; i>=num_fila ; i--)
(j=1 ; j<=c ; j++)
2.1.- matriz[i][j]=matriz[i-1][j]
4.- (i=1 ; i<=columnas ; i++)
3.1.- dato
3.2.- matriz[num_fila][i]=dato
5.- Imprimir Matriz
7 8 9
MATRICES
ARREGLOS BIDIMENSIONAL
73. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación insertar una fila al medio de la matriz; Mostrar la nueva
matriz.
INSERCIÓN
MATRICES
fila en la mitad
ARREGLOS BIDIMENSIONAL
74. solución
//1. proceso de escritura 2. proceso de lectura 3. inserción 4. lectura nueva matriz
//INSERCION FILA AL MEDIO
cout<<endl<<"INSERTAR UNA FILA AL MEDIO DE UNA MATRIZ"<<endl<<endl;
cout<<"En que posicion desea ingresar la nueva fila: ";
cin>>pos;
f=f+1;
//recorrido arriba-> abajo desde la posicion indicada
for (i=f; i>=pos; i--)
{
for(j=1;j<=c; j++)
{
matriz[i][j]=matriz[i-1][j];
}
}
//lenar datos fila al medio
for(i=1; i<=c; i++)
{
cout<<"Ingrese el Dato "<<i<<"/"<<c<<" para la nueva fila: ";
cin>>nuevo_dato;
matriz[pos][i]=nuevo_dato;
}
cout<<endl<<endl<<"Insertando fila....espere!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(100);
cout<<".";
}
cout<<"READY!!";
getch();
75. MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
El proceso de modificación en una matriz es cuando
CAMBIAMOS/ACTUALIZAMOS el valor del elemento por
otro, es necesario para este proceso indicar cual elemento
modificar, basándose en la posición o lugar (índice i,j).
Otra forma de modificar un datos es mediante un proceso
de búsqueda en el caso de que se haga referencia a un
elemento y no a un lugar o posición, pero para esto es
necesario buscar un elemento dentro de un vector.
76. 1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
1º 2º 3º
4º 5º 6º
7º 8º 9º
Matriz según sus índices Matriz según su numero de elementos
3 6 9
12 15 18
21 24 27
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
1º 2º 3º
4º 5º 6º
7º 8º 9º
Según la necesidad se puede modificar un elemento en particular o todo un
conjunto de elementos ya sea de una misma fila o una misma columna.
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
77. 3 6 9
12 15 18
21 24 27
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
1º 2º 3º
4º 5º 6º
7º 8º 9º
1.- i
2.- j
3.- dato
4.- matriz[i][j]=dato
5.- Imprimir Matriz
1. Solicitar la posición del dato índice i , índice j
2. Solicitar el dato a modificar
3. Insertar (actualizar) el dato en la matriz en la posición i,j.
4. Mostrar la Matriz actualizada
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
un dato, dado los índices
78. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación actualizar un elemento de la matriz(indicar sus índices) ;
Mostrar la nueva matriz.
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
un dato, dado los índices
79. solución
//1. proceso de escritura 2. proceso de lectura 3. Modificación 4. lectura nueva matriz
//MODIFICAR UN DATO segun sus indices
cout<<endl<<"Modificar un dato conociendo sus inides"<<endl;
cout<<"Inidique el indice i del elemento a modificar:";
cin>>posi;
cout<<"Inidique el indice j del elemento a modificar:";
cin>>posj;
cout<<endl<<"ELEMENTO LOCALIZADO !!!";
cout<<endl<<"Valor del elemento a modificar: ";
cin>>nuevo_dato;
// modificar
matriz[posi][posj]=nuevo_dato;
//espeere
for(i=1;i<=10; i++)
{
Sleep(100);
cout<<".";
}
cout<<"MODIFICADO!!";
getch();
80. 3 6 9
12 15 18
21 24 27
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
1º 2º 3º
4º 5º 6º
7º 8º 9º
1.- num
2.- Recorrer la matriz
2.1 cont=cont+1
2.2.- if (cont=num)
2.2.1 i
2.2.2 j
3. dato
4.- matriz[i][j]dato
5.- Imprimir Matriz
1. Solicitar el numero correspondiente al dato.
2. Contar los datos hasta llegar al solicitado.
3. Obtener los índices i, j correspondientes al Nº del elemento
4.- Solicitar dato.
5. Insertar (actualizar) el dato en la matriz en la posición i,j.
6. Mostrar la Matriz actualizada
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
un dato, dado Nº elemento
81. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación actualizar un elemento de la matriz(indicar Nº elemento)
; Mostrar la nueva matriz.
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
un dato, dado Nº elemento
82. //1. proceso de escritura 2. proceso de lectura 3. Modificación 4. lectura nueva matriz
//MODIFICAR UN DATO SEGUN SU NUMERO DE POSICION O LUGAR EN LA MATRIZ
cout<<endl<<"Modificar un dato dado su lugar"<<endl;
cout<<"Inidique el LUGAR del elemento a modificar: ";
cin>>lugar;
cout<<endl<<"ELEMENTO LOCALIZADO !!!";
cout<<endl<<"Valor del elemento a modificar: ";
cin>>nuevo_dato;
// recorrido para buscar
cont=0;
for(i=1; i<=f; i++)
{
for (j=1; j<=c; j++)
{
cont=cont+1;
if(lugar==cont)
{
posi=i;
posj=j;
}
}
}
//modificar
matriz[posi][posj]=nuevo_dato;
//espeere
for(i=1;i<=10; i++)
{
Sleep(100);
cout<<".";
}
cout<<"MODIFICADO!!";
getch();
solución
83. 1.- col
2.- Modificar la columna
2.1. (i=1; i<=f; i++)
2.2. nuevo_dato
2.3. matriz[i][col] nuevo_dato
3.- Imprimir Matriz
1. Solicitar el numero de columna a modificar
2. Modificar los datos de la columna (recorrido)
3. Mostrar la Matriz actualizada
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
1 columna
3 6 9
12 15 18
21 24 27
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
84. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación actualizar una columna de la matriz; Mostrar la nueva
matriz.
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
1 columna
85. solución
//1. proceso de escritura 2. proceso de lectura 3. Modificación 4. lectura nueva matriz
//MODIFICAR UNA COLUMNA
cout<<endl<<"Modificar una columna"<<endl;
cout<<"Que columna desea modificar?: ";
cin>>col;
// recorre y modifica
for(i=1; i<=f; i++)
{
cout<<endl<<"Ingrese el dato "<<i<<"/"<<f<<" a modificar: ";
cin>>nuevo_dato;
matriz[i][col]=nuevo_dato;
}
//espeere
for(i=1;i<=10; i++)
{
Sleep(100);
cout<<".";
}
cout<<"MODIFICADO!!";
getch();
86. 1.- fila
2.- Modificar la fila
2.1. (i=1; i<=c; i++)
2.2. nuevo_dato
2.3. matriz[fila][i] nuevo_dato
3.- Imprimir Matriz
1. Solicitar el numero de fila a modificar
2. Modificar los datos de la fila (recorrido)
3. Mostrar la Matriz actualizada
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
1 fila
3 6 9
12 15 18
21 24 27
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
87. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación actualizar una fila de la matriz; Mostrar la nueva matriz.
MODIFICACIÓN
MATRICES
ARREGLOS BIDIMENSIONAL
1 fila
88. solución
//1. proceso de escritura 2. proceso de lectura 3. Modificación 4. lectura nueva matriz
//MODIFICAR UNA FILA
cout<<endl<<"Modificar una fila"<<endl;
cout<<"Que fila desea modificar?: ";
cin>>fil;
// recorrido y modifica
for(i=1; i<=c; i++)
{
cout<<endl<<"Ingrese el dato "<<i<<"/"<<c<<" a modificar: ";
cin>>nuevo_dato;
matriz[fil][i]=nuevo_dato;
}
//espeere
for(i=1;i<=10; i++)
{
Sleep(100);
cout<<".";
}
cout<<"MODIFICADO!!";
getch();
89. LECCION
MATRICES
ARREGLOS BIDIMENSIONAL
Crear una matriz de (NxM) simétrica (control N=M), llenar con datos
numéricos; a continuación actualizar todos los elemento de la
diagonal principal o diagonal inversa e imprimir la matriz final
2 4 6
8 10 12
14 16 18
10 4 6
8 20 12
14 16 30
2 4 10
8 20 12
30 16 18
DIAGONAL PRINCIPAL
DIAGONAL INVERSA
90. El proceso de eliminación en una matriz es cuando BORRAMOS una
fila o una columna, lo que representa un nuevo conjunto de datos.
Columnas:
al inicio
al final en la mitad
Filas:
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
91. columna al final
2 4 6
8 10 12
14 16 18
2 4
8 10
14 16
3x 3 3x2
Como podemos notar al eliminar una columna al final
de una matriz, el numero de columnas disminuirá en
su valor; lo que restaría es simplemente excluir de la
lectura dicha columna así:
1. Disminuir la dimensión de la columna (f x c-1)
2. Excluir de la lectura la ultima columna
3. Mostrar la Matriz actualizada
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
1.- c= c-1
2.- Lectura
2.1 (i=1; i<=f; i++)
(j=1; j<=c; i++)
matriz(i,j)
3.- Imprimir Matriz
92. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación eliminar la columna final
columna al final
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
93. solución
//1. proceso de escritura 2. proceso de lectura 3. Emininacion 4. lectura nueva matriz
//ELIMINACION COLUMNA AL FINAL
c=c-1;
cout<<endl<<endl<<"Eliminando columna....espere!!"<<endl;
//esperar
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
// lectura matriz
cout<<endl<<endl<<"LA NUEVA MATRIZ ES:"<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
if(j==c)
{
cout<<matriz[i][j];
cout<<endl;
}
else
{
cout<<matriz[i][j]<<" ";
}
}
}
94. 2 4 6
8 10 12
14 16 18
3x 3 3x2
2 4 6
8 10 12
Como podemos notar al eliminar una fila al final
de una matriz, el numero de filas disminuirá en
su valor; lo que restaría es simplemente excluir
de la lectura dicha fila así:
1. Disminuir la dimensión de la fila (f-1 x c)
2. Excluir de la lectura la ultima fila
3. Mostrar la Matriz actualizada
1.- f= f-1
2.- Lectura
2.1 (i=1; i<=f; i++)
(j=1; j<=c; i++)
matriz(i,j)
3.- Imprimir Matriz
fila al final
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
95. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación eliminar la ultima fila
fila al final
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
96. solución
//1. proceso de escritura 2. proceso de lectura 3. Emininacion 4. lectura nueva matriz
//ELIMINACION FILA AL FINAL
f=f-1;
cout<<endl<<endl<<"Eliminando fila....espere!!"<<endl;
//esperar
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
// lectura matriz
cout<<endl<<endl<<"LA NUEVA MATRIZ ES:"<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
if(j==c)
{
cout<<matriz[i][j];
cout<<endl;
}
else
{
cout<<matriz[i][j]<<" ";
}
}
}
97. 2 4 6
8 10 12
14 16 18
4 6
10 12
16 18
3x 3 3x2
Como podemos notar al eliminar la primera
columna de una matriz, el numero de columnas
disminuirá en su valor; lo que restaría es
recorrer los elementos de la matriz de derecha a
izquierda y después excluir de la lectura la
ultima columna:
1. Recorrer los elementos de la derecha hacia la izquierda
2. Disminuir la dimensión de la columna (f x c-1)
3. Excluir de la lectura la ultima columna
4. Mostrar la Matriz actualizada
1.- (i=1; i<=f; i++)
(j=1; j<=c; j++)
matriz(i, j)=matriz(i,j+1)
2.- c=c-1
3.- Lectura
(i=1; i<=f; i++)
(j=1; j<=c; i++)
4.- matriz(i,j)
primera columna
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
98. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación eliminar la primera columna.
99. solución
//ELIMINACION COLUMNA AL INICIO
//RECORRIDO de derecha a izquierda
cout<<endl<<endl<<"ELIMINACIÓN"<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
matriz[i][j] =matriz[i][j+1];
}
}
// omitiendo la lectura del la ultima columna
c=c-1;
cout<<"primera columna....eliminada!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
// lectura tipo matriz
cout<<endl<<endl<<"LA NUEVA MATRIZ ES:"<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
if(j==c)
{
cout<<matriz[i][j];
cout<<endl;
}
else
{
cout<<matriz[i][j]<<" ";
}
}
}
100. 2 4 6
8 10 12
14 16 18
3x 3 2x3
8 10 12
14 16 18
Como podemos notar al eliminar la primera fila
de una matriz, el numero de filas disminuirá en
su valor; lo que restaría es recorrer los
elementos de la matriz de abajo hacia arria y
después excluir de la lectura la ultima fila:
1. Recorrer los elementos de abajo hacia arriba
2. Disminuir la dimensión de la fila (f-1 x c)
3. Excluir de la lectura la ultima fila
4. Mostrar la Matriz actualizada
1.- (i=1; i<=f; i++)
(j=1; j<=c; j++)
matriz(i, j)=matriz(I+1, j)
2.- c=c-1
3.- Lectura
(i=1; i<=f; i++)
(j=1; j<=c; i++)
4.- matriz(i,j)
primera fila
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
102. solución
/ELIMINACION FILA AL INICIO
//RECORRIDO de ABAJO HACIA ARRIBA
cout<<endl<<endl<<"ELIMINACIÓN"<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
matriz[i][j] =matriz[i+1][j];
}
}
// omitiendo la lectura del la ultima FILA
f=f-1;
cout<<"primera FILA....eliminada!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
// lectura tipo matriz
cout<<endl<<endl<<"LA NUEVA MATRIZ ES:"<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
if(j==c)
{
cout<<matriz[i][j];
cout<<endl;
}
else
{
cout<<matriz[i][j]<<" ";
}
}
}
103. 2 4 6
8 10 12
14 16 18
4 6
10 12
16 18
3x 3 3x2
Como podemos notar al eliminar una columna
en la mitad de una matriz, el numero de
columnas disminuirá en su valor; lo que restaría
es recorrer los elementos de la matriz de
derecha a izquierda hasta la columna por
eliminar y después excluir de la lectura la ultima
columna:
1. Indicar la columna a eliminar
2. Recorrer los elementos hacia la derecha hasta la columna
3. Disminuir la dimensión de la columna (f x c-1)
4. Excluir de la lectura la ultima columna
5. Mostrar la Matriz actualizada
1. Columna
2.- (i=1; i<=f; i++)
(j=columna; j<=c; j++)
matriz(i, j)=matriz(i,j+1)
3.- c=c-1
4.- Lectura
(i=1; i<=f; i++)
(j=1; j<=c; i++)
5.- matriz(i,j)
columna al medio
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
104. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación eliminar una columna ubicada en la mitad de la matriz.
columna al medio
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
105. solución
//ELIMINACION COLUMNA AL MEDIO
//RECORRIDO
cout<<endl<<endl<<"ELIMINACIÓN"<<endl<<endl;
cout<<"Que columna desea eliminar?";
cin>>col;
for (i=1; i<=f; i++)
{
for(j=col;j<=c; j++)
{
matriz[i][j] =matriz[i][j+1];
}
}
// omitiendo la lectura del la ultima columna
c=c-1;
cout<<endl<<"Eliminando Columna."<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
// lectura tipo matriz
cout<<endl<<endl<<"LA NUEVA MATRIZ ES:"<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
if(j==c)
{
cout<<matriz[i][j];
cout<<endl;
}
else
{
cout<<matriz[i][j]<<" ";
}
}
}
106. 2 4 6
8 10 12
14 16 18
3x 3 2x3
8 10 12
14 16 18
Como podemos notar al eliminar una fila en la
mitad de una matriz, el numero de filas
disminuirá en su valor; lo que restaría es
recorrer los elementos de la matriz de abajo
hacia arriba hasta la fila por eliminar y después
excluir de la lectura la ultima columna:
1. Indicar la fila a eliminar
2. Recorrer los elementos hacia la arriba hasta la fila
3. Disminuir la dimensión de la fila (f-1 x c)
4. Excluir de la lectura la ultima fila
5. Mostrar la Matriz actualizada
1. fila
2.- (i=fila; i<=f; i++)
(j=1; j<=c; j++)
matriz(i, j)=matriz(i+1,j)
3.- f=f-1
4.- Lectura
(i=1; i<=f; i++)
(j=1; j<=c; i++)
5.- matriz(i,j)
fila al medio
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
107. fila al medio
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación eliminar una fila ubicada en la mitad de la matriz.
108. solución
//ELIMINACION FILA AL MEDIO
//RECORRIDO
cout<<endl<<endl<<"ELIMINACIÓN"<<endl<<endl;
cout<<"Que FILA desea eliminar?";
cin>>fil;
for (i=fil; i<=f; i++)
{
for(j=1;j<=c; j++)
{
matriz[i][j] =matriz[i+1][j];
}
}
// omitiendo la lectura del la ultima columna
f=f-1;
cout<<endl<<endl<<"Eliminando fila....espere!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
// lectura tipo matriz
cout<<endl<<endl<<"LA NUEVA MATRIZ ES:"<<endl;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
if(j==c)
{
cout<<matriz[i][j];
cout<<endl;
}
else
{
cout<<matriz[i][j]<<" ";
}
}
}
109. BUSQUEDA
MATRICES
ARREGLOS BIDIMENSIONAL
El proceso de búsqueda dentro de una matriz es un
proceso totalmente diferente al de los demás, sin
embargo es el mas importante; gracias a la búsqueda se
pueden hacer las demás operaciones a la hora de
modificar o eliminar un dato en particular (elemento) .
1.- Conocer la dimensión exacta de una matriz.
2.- Conocer el elemento (dato) a buscar.
3.- Iniciar el proceso de recorrido de inicio a fin (viceversa)
3.1.- Comparar el elemento de la matriz con el dato a buscar
3.2.- Indicar si el dato existe o no "posición" (realizar cualquier
operación)
110. BUSQUEDA
MATRICES
ARREGLOS BIDIMENSIONAL
2 4 6
8 10 12
14 16 18
3x 3
Como podemos notar al buscar un elemento dentro de una
matriz, es necesario conocer el valor de dicho elemento y
posteriormente comenzar el recorrido por todos los elementos
de vector comparando si uno de ellos es igual al elemento a
buscar.
1. Indicar el elemento a buscar.
2. Recorrer los elementos de toda la matriz
3. Por cada elemento comparar si es igual
4. Indicar si existe o no existe el elemento
1. ELEMENTO
2.- (i=1; i<=f; i++)
(j=1; j<=c; j++)
3. si (elemento==matriz[i][j])
band=1
3.- si(band==1)
existe
sino
no existe
111. PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación buscar un elemento en la matriz, indicar si existe o no;
en el caso afirmativo indicar también sus índices correspondientes,
así también como el lugar que ocupa en la matriz
BUSQUEDA
MATRICES
ARREGLOS BIDIMENSIONAL
112. solución
//bUCAR/
cout<<endl<<"BUSCAR"<<endl;
cont=0;
band=0;
cout<<"Ingrese el elemnto a buscar";
cin>>elemento;
for (i=1; i<=f; i++)
{
for(j=1;j<=c; j++)
{
cont=cont+1;
if(elemento==matriz[i][j])
{
band=1;
pos=cont;
posi=i;
posj=j;
}
}
}
cout<<endl<<"Buscando!!"<<endl;
//espeere
for(i=1;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"READY!!";
getch();
//mensje de salida
if(band==1)
{
cout<<endl<<"El elemnto existe y corresponde al "<<pos<<"
elemento y su inidces son ["<<posi<<","<<posj<<"]."<<endl;
}
else
{
cout<<endl<<"No existe";
}
114. METODO DE LA BURBUJA
La idea de este método es ir tomando los elementos de a dos e ir comparándolos e
intercambiándolos de ser necesario, hasta que todos los elementos sean
comparados.
ARREGLOS BIDIMENSIONAL
MATRICES
8 3 1 4 2
4 5 22 11 10
6 12 15 13 7
14 9 21 18 16
20 25 19 17 23
for (i=1; i<=f-1 ; i++)
for(j=1; j<=c; j++)
for (a=i; a<=f ; i++)
for(b=j; b<=c; j++)
si (matriz[i][j] < matriz[a][b])
intercambio