SlideShare una empresa de Scribd logo
1 de 117
ARREGLOS
LENGUAJE C++
Mgs. Diego
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
ARREGLOS
ARREGLO UNIDIMENSIONAL
ARREGLO BIDIMENSIONAL ARREGLO TRIDIMENSIONAL
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°
ARREGLOS
1
2
3
1 2 3
UNIMENSIONALES
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
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];
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];
}
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;
}
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;
}
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;
}
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)
OPERACIONES
ARREGLOS UNIDIMENSIONAL
VECTOR
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
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
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];
}
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
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;
}
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;
}
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;
}
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;
}
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.
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
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
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
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.
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.
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)
ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
PRACTICA
Crear un vector con 5 elementos; permitir que el usuario elimine un
elemento al final del vector:
# 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
ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
PRACTICA
Crear un vector con 5 elementos; permitir que el usuario elimine el primer
elemento del vector:
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;
}
ARREGLOS UNIDIMENSIONAL
VECTOR
ELIMINACIÓN
PRACTICA
Crear un vector con 5 elementos; permitir que el usuario elimine un
elemento en la mitad del vector:
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;
}
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)
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.
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.
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.
ORDENAMIENTO
ARREGLOS UNIDIMENSIONAL
VECTOR
1
10
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
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
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
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++ )
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.
ARREGLOS
1
4
7
BIDIMENSIONALES
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
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
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];
}
}
PRACTICA
Crear un arreglo bidimensional (matriz), de dimensión (5x4), llenar con
números enteros.
2 4 6 8
10 12 14 16
18 20 22 24
26 28 30 32
34 36 38 40
(5 filas x 4 columnas) = 20
ARREGLOS BIDIMENSIONAL
MATRICES
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;
}
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
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;
}
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
LECCION
Nº atletas Tiempo (h)
1 8
2 6
3 7
4 5
5 4
6 1
Nº
ATLETAS
1 2 3 4 5 6
Tiempo (H.) 8 7 6 5 4 1
0
1
2
3
4
5
6
7
8
9
0 1 2 3 4 5 6
TIEMPOS
(H.)
ATLETAS (Nº)
OPERACIONES
ARREGLOS BIDIMENSIONAL
MATRICES
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
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
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
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();
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
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
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();
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
(UtlimoPenultimo), 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
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
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();
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
(UtlimoPenultimo), 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
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
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();
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 (UtlimoPenultimo),
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
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
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();
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 (UtlimoPenultimo),
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
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
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();
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.
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
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
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
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();
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
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
//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
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
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
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();
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
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
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();
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
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
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
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
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]<<" ";
}
}
}
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
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
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]<<" ";
}
}
}
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
PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación eliminar la primera columna.
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]<<" ";
}
}
}
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
primera fila
ELIMINACION
MATRICES
ARREGLOS BIDIMENSIONAL
PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos; a
continuación eliminar la primera fila.
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]<<" ";
}
}
}
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
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
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]<<" ";
}
}
}
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
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.
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]<<" ";
}
}
}
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)
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
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
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";
}
ORDENAMIENTO
ARREGLOS BIDIMENSIONAL
MATRICES
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
ORDENAMIENTO
MATRICES
ARREGLOS BIDIMENSIONAL
PRACTICA
Crear una matriz de dimensión (3x3), llenar con datos numéricos de
forma desordenada; a continuación ordenar la matriz mediante el
método de la burbuja; Imprimir la matriz ordenada.
solución
//ordeno la matriz de MENOR a MAYOR
for(i=1; i<=f; i++)
{
for(j=1; j<=c; j++)
{
for(x=1; x<=f;x++)
{
for(y=1; y<=c; y++)
{
if(matriz[i][j]<matriz[x][y])
{
aux=matriz[i][j];
matriz[i][j]=matriz[x][y];
matriz[x][y]=aux;
}
}
}
}
}
//proceso espera
cout<<endl<<"INICIANDO PROCESO DE
ORDENACION"<<endl;
for(i=0;i<=10; i++)
{
Sleep(200);
cout<<".";
}
cout<<"ORDENADO!!!";
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]<<" ";
}
}
}
GRACIAS
Mgs. Diego
Reina Haro.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Sql presentacion
Sql presentacionSql presentacion
Sql presentacion
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++
 
Cuestionario 1.2 Base de Datos
Cuestionario 1.2 Base de DatosCuestionario 1.2 Base de Datos
Cuestionario 1.2 Base de Datos
 
Pilas
PilasPilas
Pilas
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & Arrays
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Javascript
JavascriptJavascript
Javascript
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Entorno de Programacion
Entorno de ProgramacionEntorno de Programacion
Entorno de Programacion
 
Lenguaje de-programacion-c++
Lenguaje de-programacion-c++Lenguaje de-programacion-c++
Lenguaje de-programacion-c++
 
NoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de DatosNoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de Datos
 
Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
 
Ejercicios del 1 al 20
Ejercicios del 1 al 20Ejercicios del 1 al 20
Ejercicios del 1 al 20
 
Listas y fecha en Python
Listas y fecha en PythonListas y fecha en Python
Listas y fecha en Python
 
JavaScript Programming
JavaScript ProgrammingJavaScript Programming
JavaScript Programming
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 

Similar a 4. ARREGLOS C++.pptx

Similar a 4. ARREGLOS C++.pptx (20)

Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
 
Algoritmos computacionales y programación: 4
Algoritmos computacionales y programación: 4Algoritmos computacionales y programación: 4
Algoritmos computacionales y programación: 4
 
Tipos De Datos En Java
Tipos De Datos En JavaTipos De Datos En Java
Tipos De Datos En Java
 
Uso vectores
Uso vectoresUso vectores
Uso vectores
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
7.arreglos en java
7.arreglos en  java7.arreglos en  java
7.arreglos en java
 
Vectors
VectorsVectors
Vectors
 
arreglos.ppt
arreglos.pptarreglos.ppt
arreglos.ppt
 
11 arreglos-multidimensionales
11 arreglos-multidimensionales11 arreglos-multidimensionales
11 arreglos-multidimensionales
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
Programación en c++_u5
Programación en c++_u5Programación en c++_u5
Programación en c++_u5
 
Vectores
VectoresVectores
Vectores
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectores
 

Más de Dieguess

6. PROGRAMACION OO.pptx
6. PROGRAMACION OO.pptx6. PROGRAMACION OO.pptx
6. PROGRAMACION OO.pptxDieguess
 
5. PROGRAMACION ESTRUCTURADA C++.pptx
5. PROGRAMACION ESTRUCTURADA C++.pptx5. PROGRAMACION ESTRUCTURADA C++.pptx
5. PROGRAMACION ESTRUCTURADA C++.pptxDieguess
 
3. ESTRUCTURAS DE CONTROL C.pptx
3. ESTRUCTURAS DE CONTROL C.pptx3. ESTRUCTURAS DE CONTROL C.pptx
3. ESTRUCTURAS DE CONTROL C.pptxDieguess
 
2. DESARROLLO DE SOFTWARE.pptx
2. DESARROLLO DE SOFTWARE.pptx2. DESARROLLO DE SOFTWARE.pptx
2. DESARROLLO DE SOFTWARE.pptxDieguess
 
1. TIPOS DE DATOS.pptx
1. TIPOS DE DATOS.pptx1. TIPOS DE DATOS.pptx
1. TIPOS DE DATOS.pptxDieguess
 
MANUAL DE DIBUJO TECNICO.pdf
MANUAL DE DIBUJO TECNICO.pdfMANUAL DE DIBUJO TECNICO.pdf
MANUAL DE DIBUJO TECNICO.pdfDieguess
 
MULTIMEDIA.pptx
MULTIMEDIA.pptxMULTIMEDIA.pptx
MULTIMEDIA.pptxDieguess
 
Diagrama de Procesos - Vinculación
Diagrama de Procesos - VinculaciónDiagrama de Procesos - Vinculación
Diagrama de Procesos - VinculaciónDieguess
 
Diagrama de Procesos - Vinculación
Diagrama de Procesos - VinculaciónDiagrama de Procesos - Vinculación
Diagrama de Procesos - VinculaciónDieguess
 
Significado pacie
Significado pacieSignificado pacie
Significado pacieDieguess
 
Agenda nivelbasico
Agenda nivelbasicoAgenda nivelbasico
Agenda nivelbasicoDieguess
 
Introducción EVA
Introducción EVAIntroducción EVA
Introducción EVADieguess
 
¿ Qué es pacie
¿ Qué es pacie ¿ Qué es pacie
¿ Qué es pacie Dieguess
 
Arquitectura de von neuman sistemas
Arquitectura de von neuman   sistemasArquitectura de von neuman   sistemas
Arquitectura de von neuman sistemasDieguess
 
SISTEMAS MULTIMEDIALES - IMAGEN
SISTEMAS MULTIMEDIALES - IMAGENSISTEMAS MULTIMEDIALES - IMAGEN
SISTEMAS MULTIMEDIALES - IMAGENDieguess
 
Sistemas Multimedial - VIDEO
Sistemas Multimedial - VIDEOSistemas Multimedial - VIDEO
Sistemas Multimedial - VIDEODieguess
 
Sistemas Multimediales - AUDIO
Sistemas Multimediales - AUDIOSistemas Multimediales - AUDIO
Sistemas Multimediales - AUDIODieguess
 

Más de Dieguess (20)

6. PROGRAMACION OO.pptx
6. PROGRAMACION OO.pptx6. PROGRAMACION OO.pptx
6. PROGRAMACION OO.pptx
 
5. PROGRAMACION ESTRUCTURADA C++.pptx
5. PROGRAMACION ESTRUCTURADA C++.pptx5. PROGRAMACION ESTRUCTURADA C++.pptx
5. PROGRAMACION ESTRUCTURADA C++.pptx
 
3. ESTRUCTURAS DE CONTROL C.pptx
3. ESTRUCTURAS DE CONTROL C.pptx3. ESTRUCTURAS DE CONTROL C.pptx
3. ESTRUCTURAS DE CONTROL C.pptx
 
2. DESARROLLO DE SOFTWARE.pptx
2. DESARROLLO DE SOFTWARE.pptx2. DESARROLLO DE SOFTWARE.pptx
2. DESARROLLO DE SOFTWARE.pptx
 
1. TIPOS DE DATOS.pptx
1. TIPOS DE DATOS.pptx1. TIPOS DE DATOS.pptx
1. TIPOS DE DATOS.pptx
 
MANUAL DE DIBUJO TECNICO.pdf
MANUAL DE DIBUJO TECNICO.pdfMANUAL DE DIBUJO TECNICO.pdf
MANUAL DE DIBUJO TECNICO.pdf
 
MULTIMEDIA.pptx
MULTIMEDIA.pptxMULTIMEDIA.pptx
MULTIMEDIA.pptx
 
Diagrama de Procesos - Vinculación
Diagrama de Procesos - VinculaciónDiagrama de Procesos - Vinculación
Diagrama de Procesos - Vinculación
 
Diagrama de Procesos - Vinculación
Diagrama de Procesos - VinculaciónDiagrama de Procesos - Vinculación
Diagrama de Procesos - Vinculación
 
Significado pacie
Significado pacieSignificado pacie
Significado pacie
 
PACIE
PACIEPACIE
PACIE
 
HV-DMRH
HV-DMRHHV-DMRH
HV-DMRH
 
Agenda nivelbasico
Agenda nivelbasicoAgenda nivelbasico
Agenda nivelbasico
 
Introducción EVA
Introducción EVAIntroducción EVA
Introducción EVA
 
Tema 2
Tema 2Tema 2
Tema 2
 
¿ Qué es pacie
¿ Qué es pacie ¿ Qué es pacie
¿ Qué es pacie
 
Arquitectura de von neuman sistemas
Arquitectura de von neuman   sistemasArquitectura de von neuman   sistemas
Arquitectura de von neuman sistemas
 
SISTEMAS MULTIMEDIALES - IMAGEN
SISTEMAS MULTIMEDIALES - IMAGENSISTEMAS MULTIMEDIALES - IMAGEN
SISTEMAS MULTIMEDIALES - IMAGEN
 
Sistemas Multimedial - VIDEO
Sistemas Multimedial - VIDEOSistemas Multimedial - VIDEO
Sistemas Multimedial - VIDEO
 
Sistemas Multimediales - AUDIO
Sistemas Multimediales - AUDIOSistemas Multimediales - AUDIO
Sistemas Multimediales - AUDIO
 

Último

3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdfGustavoAdolfoDiaz3
 
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfUNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfronypap
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfWILLIAMSTAYPELLOCCLL1
 
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdfMyoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdfFtimaMontserratZaraz
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cerealescarlosjuliogermanari1
 
S01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfS01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfSalomeRunco
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfELIZABETHCRUZVALENCI
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................Juan293605
 
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbantoniolfdez2006
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)samuelsan933
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptNombre Apellidos
 
Balance materia y energia procesos de Secado
Balance materia y energia procesos de SecadoBalance materia y energia procesos de Secado
Balance materia y energia procesos de SecadoGualbertoLopez2
 
Practica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdfPractica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdffredyflores58
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasDerlyValeriaRodrigue
 
Mecatronica Automotriz .pdf
Mecatronica Automotriz              .pdfMecatronica Automotriz              .pdf
Mecatronica Automotriz .pdfleonardocahua1
 
8 mejores máquinas virtuales para Windows.pdf
8 mejores máquinas virtuales para Windows.pdf8 mejores máquinas virtuales para Windows.pdf
8 mejores máquinas virtuales para Windows.pdfGustavoAdolfoDiaz3
 
Cuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdfCuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdffredyflores58
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricasurAN077
 
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdfTrabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdfChristianMOntiveros1
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxjhorbycoralsanchez
 

Último (20)

3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
 
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfUNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdfMyoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
S01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfS01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdf
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................
 
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Balance materia y energia procesos de Secado
Balance materia y energia procesos de SecadoBalance materia y energia procesos de Secado
Balance materia y energia procesos de Secado
 
Practica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdfPractica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdf
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
Mecatronica Automotriz .pdf
Mecatronica Automotriz              .pdfMecatronica Automotriz              .pdf
Mecatronica Automotriz .pdf
 
8 mejores máquinas virtuales para Windows.pdf
8 mejores máquinas virtuales para Windows.pdf8 mejores máquinas virtuales para Windows.pdf
8 mejores máquinas virtuales para Windows.pdf
 
Cuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdfCuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdf
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas
 
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdfTrabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 

4. ARREGLOS C++.pptx

  • 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)
  • 29. ARREGLOS UNIDIMENSIONAL VECTOR ELIMINACIÓN PRACTICA Crear un vector con 5 elementos; permitir que el usuario elimine un elemento al final del vector:
  • 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
  • 31. ARREGLOS UNIDIMENSIONAL VECTOR ELIMINACIÓN PRACTICA Crear un vector con 5 elementos; permitir que el usuario elimine el primer 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; }
  • 33. ARREGLOS UNIDIMENSIONAL VECTOR ELIMINACIÓN PRACTICA Crear un vector con 5 elementos; permitir que el usuario elimine un elemento en la mitad del vector:
  • 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]; } }
  • 49. PRACTICA Crear un arreglo bidimensional (matriz), de dimensión (5x4), llenar con números enteros. 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 (5 filas x 4 columnas) = 20 ARREGLOS BIDIMENSIONAL MATRICES
  • 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
  • 54. LECCION Nº atletas Tiempo (h) 1 8 2 6 3 7 4 5 5 4 6 1 Nº ATLETAS 1 2 3 4 5 6 Tiempo (H.) 8 7 6 5 4 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 TIEMPOS (H.) ATLETAS (Nº)
  • 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 (UtlimoPenultimo), 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 (UtlimoPenultimo), 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 (UtlimoPenultimo), 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 (UtlimoPenultimo), 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
  • 101. primera fila ELIMINACION MATRICES ARREGLOS BIDIMENSIONAL PRACTICA Crear una matriz de dimensión (3x3), llenar con datos numéricos; a continuación eliminar la primera fila.
  • 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
  • 115. ORDENAMIENTO MATRICES ARREGLOS BIDIMENSIONAL PRACTICA Crear una matriz de dimensión (3x3), llenar con datos numéricos de forma desordenada; a continuación ordenar la matriz mediante el método de la burbuja; Imprimir la matriz ordenada.
  • 116. solución //ordeno la matriz de MENOR a MAYOR for(i=1; i<=f; i++) { for(j=1; j<=c; j++) { for(x=1; x<=f;x++) { for(y=1; y<=c; y++) { if(matriz[i][j]<matriz[x][y]) { aux=matriz[i][j]; matriz[i][j]=matriz[x][y]; matriz[x][y]=aux; } } } } } //proceso espera cout<<endl<<"INICIANDO PROCESO DE ORDENACION"<<endl; for(i=0;i<=10; i++) { Sleep(200); cout<<"."; } cout<<"ORDENADO!!!"; 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]<<" "; } } }