PDF de programación - 03.- Arreglos - Estructuras de datos orientadas a objetos

Imágen de pdf 03.- Arreglos - Estructuras de datos orientadas a objetos

03.- Arreglos - Estructuras de datos orientadas a objetosgráfica de visualizaciones

Publicado el 17 de Febrero del 2019
1.019 visualizaciones desde el 17 de Febrero del 2019
903,8 KB
31 paginas
Creado hace 1a (15/08/2018)
Fundamentos de Programación

CAPÍTULO 3
ARREGLOS

2

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

1

Fundamentos de Programación

Preguntas detonadoras

¿Qué es un arreglo? ¿Para qué sirve?
¿Cuáles son las características que distinguen a los

arreglos?

Un arreglo, ¿puede almacenar objetos?
Un arreglo, ¿puede ser un atributo de una clase?
¿Cómo se acceden a los datos de un arreglo?
¿Se pueden acceder a los datos de un arreglo mediante

una propiedad?

¿Cómo se recorren las celdas de un arreglo?
¿Cuáles son las operaciones básicas con arreglos?

3

4

Tipos de datos

Simples – Almacenan un valor

TIPOS DE

DATOS

Compuestos – Almacenan un conjunto

de valores



Compuesto



Simple

Fig. 3.1. Tipos de datos simples y compuestos.



Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

2

Fundamentos de Programación

Arreglos

Conjunto finit0,

homogéneo
y estático

de datos relacionados

e indexados

Homogéneo significa
que todas sus celdas
son del mismo tipo de

dato

A
43
23
12
68
97

0
1
2
3
4

Índices

Estático se refiere

a que, una vez declarado,

no cambia su tamaño

Celdas

Dimensiones de arreglos

Unidimensionales (Vectores)

1 índice

Bidimensionales (Matrices)

2 índices (renglón y columna)

Tridimensionales (Cubos)

3 índices (renglón, columna y plano)

Multidimensionales

5

6

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

3

Fundamentos de Programación

Arreglos unidimensionales

Solamente

tienen

1

índice

También
el

con
“vectores”

se
nombre

conocen
de

miArreglo
0
1
2
3
4

43
23
12
68
97

Celdas

Índice

7

Operaciones básicas con arreglos

Operaciones

básicas

con arreglos

Inicialización
Inserción

• Declaración y creación


• Eliminación
• Búsqueda
• Ordenamiento
• Recorrido

Recuerde que No se pueden agregar o eliminar

celdas del arreglo; solamente su contenido

8

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

4

Fundamentos de Programación

Declaración de arreglos

No sólo basta con declararlo, sino también

debe crearse con el operador new

int [ ] miArreglo; // declara el arreglo
miArreglo = new int[12]; // reserva memoria

double [ ] otroArreglo = new double[10];

9

Inicialización de arreglos

int [ ] miArreglo = { 1, 2, 3, 4, 5, 6 };

string [ ] nombres = { “Emilio”, “Pedro” };

double [ ] otroArreglo = { 3.4, -4.5, 7.0 };

10

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

5

Fundamentos de Programación

Manejo del tamaño del arreglo

Declarar una constante con el tamaño del

arreglo

const int intTamano = 15;

// declara el arreglo
int [ ] miArreglo;

// reserva memoria
miArreglo = new int[intTamano];

11

Creación de arreglos
Se pueden crear arreglos cuyo tamaño se pueda
establecer a partir de una expresión que produzca un
valor entero

// variable
int intTamano = 15;

// declara el arreglo
int [ ]

miArreglo;

// reserva memoria
miArreglo = new int[intTamano];

12

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

6

Fundamentos de Programación

Capturar el tamaño del arreglo

Se pueden crear arreglos capturando el

tamaño del arreglo

// variable
int intTamano;

// captura el tamaño del arreglo
Console.Write(“Teclee el tamaño del arreglo: “);
intTamano=int.Parse(Console.ReadLine());

// declara y crea el arreglo
int [ ]

miArreglo = new int[intTamano];

13

Capturar los datos de las celdas
del arreglo

Suponga que declara un
arreglo que almacena datos
numéricos enteros

El

usuario

captura

la

cantidad de celdas

Se crea el arreglo de acuerdo

a la cantidad de celdas

Se implementa un ciclo para
capturar el dato de cada una
de las celdas

miArreglo
0

?
?
?
?
?

1

2

3

4

14

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

7

Fundamentos de Programación

Diagrama de flujo

INICIO

Declarar miArreglo[ ] como entero

Declarar intCelda como entero
Declarar intTamano como entero

"Teclee el tamaño del arreglo"

intTamano

miArreglo = new int[ intTamano ]

for(intCelda = 0; intCelda < intTamano; intCelda++)

yes

miArreglo[ intCelda ]

Creación
del arreglo

no

FIN

15

Recorrido de arreglos

La longitud de un arreglo se obtiene con la

propiedad Length

int [ ] miArreglo = { 1, 2, 3, 4, 5, 6 };

for(int i=0; i< miArreglo.Length; i++)

Console.WriteLine(miArreglo[i]);

16

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

8

Fundamentos de Programación

Recorrido de un arreglo con un
ciclo foreach

string[] miArreglo = {"Pepe", "Paola"};

foreach(string strNombre in miArreglo)
{

Console.WriteLine(strNombre);

}

Arreglo de objetos
miArreglo

0

1

2

Índice

Celdas

17

18

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

9

Fundamentos de Programación

Declaración y creación de un
arreglo de objetos

Suponga que desea un
arreglo que almacene
los
artículos de un
supermercado

Datos

Clave
Descripción
Precio
Cantidad en existencia

19

Declaración y creación de un
arreglo de objetos (cont.)

Articulo [] miArreglo = new Articulo[25];

20

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

10

Fundamentos de Programación

Ordenamiento de los datos de
un arreglo

Los algoritmos que ordenan datos de los
arreglos se conocen como “sorteadores” o
“métodos de ordenamiento”

Existen muchos métodos de ordenamiento
Cada método de ordenamiento tiene una

estrategia para reacomodar sus datos

No se “mueven” las celdas del arreglo, sino

su contenido

21

Método de la burbuja

Es el método de ordenamiento de datos más

sencillo de implementar

Su nombre se debe a que durante el
ordenamiento de los datos el elemento a
ordenar “burbujea” hacia arriba en el arreglo

Existen varias versiones:

Burbuja izquierda
Burbuja derecha
Burbuja con señal

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

11

Fundamentos de Programación

Principio del funcionamiento
de la burbuja izquierda
Recorre el arreglo de derecha a izquierda
Compara los datos adyacentes en el arreglo
Hace los intercambios pertinentes
Implementa un ciclo que controla la posición

que ocupará el dato del arreglo (i)

Dentro de este ciclo hay otro ciclo que recorre
el arreglo de derecha a izquierda para hacer las
comparaciones (j)

Los desplazamientos de los datos se hacen

hacia la izquierda del arreglo

Intercambio de datos

Intercambia(Arreglo[], p, i): nulo

1.-Temporal = Arreglo[p]

2.-Arreglo[p] = Arreglo[i]

3.-Arreglo[i] = Temporal

{Fin del método}

24

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

12

Fundamentos de Programación

Pseudocódigo de la burbuja
izquierda

BurbujaIzquierda(Arreglo[]): nulo

1.- REPETIR CON i DESDE 0 HASTA Arreglo.Length-1 CON PASO 1

1.1. REPETIR CON j DESDE Arreglo.Length-1 HASTA i CON PASO -1

1.1.1 SI Arreglo[j] < Arreglo[j-1] ENTONCES
1.1.1.1 Intercambia(Arreglo, j, j-1)

1.1.2. {FIN DE LA CONDICIONAL DEL PASO 1.1.1}

1.2. {FIN DEL CICLO DEL PASO 1.1}

2.- {FIN DEL CICLO DEL PASO 1}
3.- RETURN

Diagrama de flujo del método de la burbuja
izquierda que ordena números enteros

BurbujaIzquierda( int [ ] Arreglo ) : void

Declarar i, j, temporal : int

1

for( i=0; i < Arreglo.Length -1; i = i + 1 )

no

return

yes

for( j = Arreglo.Length - 1 ; j > i ; j = j - 1 )

no

1

yes

Arreglo[ j ]

<

Arreglo[ j - 1 ]

yes

temporal = Arreglo[ j ]

Arreglo[ j ] = Arreglo[ j - 1 ]
Arreglo[ j - 1 ] = temporal

no

26

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

13

Fundamentos de Programación

¿Cómo generar números aleatorios?

Utilizar la clase Random (ubicada en el namespace

System)

Random aleatorio = new Random();
int intNumero = aleatorio.Next();

El método Next( ) genera un número aleatorio

entre 0 y la constante Int32.MaxValue
( 2, 147, 483, 647)

Generando números aleatorios
Para generar números entre 0 y 5

Random aleatorio = new Random();
int intNumero = aleatorio.Next(6);

Para generar números entre 1 y 6

Random aleatorio = new Random();
int intNumero = aleatorio.Next(1,7);

27

28

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

14

Fundamentos de Programación

Generar cadenas aleatorias

Guid.NewGuid().ToString().Substring(0,intLongitud);

string strCadena =

La variable intLongitud

representa

el tamaño de la cadena

29

¿Cómo llenar un arreglo con números
aleatorios?

// Declaración del arreglo
int [] miArreglo;

// Declaración del número aleatorio
Random aleatorio = new Random();

Console.Write("\nTeclee la cantidad de celdas del arreglo: ");
int intTamañoArreglo = int.Parse(Console.ReadLine());

// Creación del arreglo
miArreglo = new int[intTamañoArreglo];

// LLena el arreglo con números aleatorios
for (int intCelda = 0; intCelda < intTamañoArreglo; intCelda++)

miArreglo[intCelda] = aleatorio.Next();

30

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

15

Fundamentos de Programación

¿Cómo calcular el tiempo de
ejecución del algoritmo?

System.Diagnostics.Stopwatch cronometro = new System.Diagnostics.Stopwatch();

cronometro.Start(); // Inicia el cronómetro
.
.
.
.

cronometro.Stop(); // Detiene el cronómetro

// Calcula el tiempo transcurrido en milisegundos
int intMilisegundos = tiempo.Elapsed.Milliseconds;

Console.Write("Tiempo = " + intMilisegundos+" milisegundos");

31

Ejercicio
Llenar un arreglo con números aleatorios
Enviar el arreglo por referencia a un método

para ordenar sus datos

Enviar el arreglo por valor a un m
  • Links de descarga
http://lwp-l.com/pdf15271

Comentarios de: 03.- Arreglos - Estructuras de datos orientadas a objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad