PDF de programación - 08c.- Métodos de ordenamiento con Delegados - Programación Orientada a Objetos en C# .NET

Imágen de pdf 08c.- Métodos de ordenamiento con Delegados - Programación Orientada a Objetos en C# .NET

08c.- Métodos de ordenamiento con Delegados - Programación Orientada a Objetos en C# .NETgráfica de visualizaciones

Publicado el 18 de Febrero del 2019
440 visualizaciones desde el 18 de Febrero del 2019
993,7 KB
25 paginas
Creado hace 1a (15/08/2018)
Programación Orientada a Objetos en C# .NET

CAPÍTULO 8

MÉTODOS DE ORDENAMIENTO

CON

DELEGADOS

2

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

1

Programación Orientada a Objetos en C# .NET

Métodos de ordenamiento

Introducción

Criterios de ordenamiento

Tipos de ordenamiento

Métodos de ordenamiento interno

Objetivo
Conocer un algoritmo para ordenar datos almacenados en un arreglo de
tal forma que puedan ser fácilmente procesados en aplicaciones para
resolver problemas cotidianos.

Introducción
Ordenar un conjunto de datos almacenados en un

arreglo

El ordenamiento de datos es una actividad que consiste
en reorganizarlos o recolocarlos
en un lugar
determinado para que cumplan con una secuencia
específica.

Al ordenar los datos, se pretende que su ubicación,
acceso y uso sea lo más rápido posible y esto se logra de
acuerdo al criterio de ordenamiento.

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

2

Programación Orientada a Objetos en C# .NET

Criterios de ordenamiento
Ascendente: Los datos se acomodan en secuencia del
menor al mayor, es decir, cada dato sucesor debe ser
mayor ó igual que su antecesor. En este caso DATO0 ≤
DATO1 ≤ DATO2 ≤ …. ≤ DATOn.

Descendente: Los datos se colocan sucesivamente del
mayor al menor, o sea, cada dato sucesor debe ser
menor ó igual que su antecesor. En este caso DATO0 ≥
DATO 1 ≥ DATO 2 ≥ …. ≥ DATO n.

Tipos de ordenamiento
Ordenamiento interno: Este tipo de ordenamiento
se aplica cuando los elementos a ordenar
se
encuentran almacenados en alguna estructura de datos
ubicada en la memoria principal. Típicamente se
utilizan en arreglos, sin embargo, pueden aplicarse a
cualquiera de las estructuras de datos analizadas
previamente.

Ordenamiento externo: Este se aplica cuando los
datos están almacenados en archivos que se ubican en
dispositivos de almacenamiento secundario como
discos duros, cintas, memorias, etc.

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

3

Programación Orientada a Objetos en C# .NET

Arreglo
Conjunto 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

Declaración de arreglos

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

crearse con el operador new

int [ ] arreglo; // declara el arreglo
arreglo = new int[12];

// reserva memoria

double [ ] arreglo2 = new double[10];

7

8

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

4

Programación Orientada a Objetos en C# .NET

Manejo del tamaño del arreglo

Declarar una constante con el tamaño del arreglo

const int Tamaño= 15;
int [ ] arreglo;
arreglo = new int[Tamaño];
// reserva memoria

// declara el arreglo

Arreglos “dinámicos”

Se pueden crear arreglos cuyo tamaño se pueda

establecer dinámicamente a partir de una expresión
que produzca un valor entero

int x = 15; // variable
int [ ] arreglo;
// declara el arreglo
arreglo = new int[x]; // reserva memoria

9

10

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

5

Programación Orientada a Objetos en C# .NET

Recorrido de arreglos
int [ ] a = { 1, 2, 3, 4, 5, 6 };

for(int i=0; i<= a.Length; i++)
Console.Write(“\n{0}”, a[i]);

La longitud de un arreglo se obtiene con la

expresión Length

11

Recorrido de un arreglo con ciclo
foreach

string[] Alumno= new string[]{"Pepe",
“Rodolfo", "Maria", “Fabiola",
"Miguel"};

foreach(string nombre in Alumno)
{

Console.WriteLine("\n{0}",nombre);

}

12

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

6

Programación Orientada a Objetos en C# .NET

Intercambio de datos de un arreglo

1. Copiar el valor del primer dato en la variable auxiliar.
2. Copiar el valor del segundo dato en la variable del

primer dato.

3. Copiar el valor de la variable auxiliar en la variable del

segundo dato.

Intercambia(Arreglo[], entero a, entero b): nulo

1. Auxiliar = Arreglo[a]

2. Arreglo[a] = Arreglo[b]

3. Arreglo[b] = Auxiliar

4. RETURN

Diagrama de flujo de un método para
ordenar un arreglo de números enteros

Ordenar(int [ ] Arreglo, int intTamaño) : void

Declarar p, e, temporal : int

1

for(p=0; p < intTamaño -1; p=p+1)

yes

for( e=p+1; e < intTamaño; e=e+1)

no

no

return

1

yes

Arreglo[e]

<

Arreglo[p]

yes

temporal = Arreglo[p]
Arreglo[p] = Arreglo[e]
Arreglo[e] = temporal

no

14

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

7

Programación Orientada a Objetos en C# .NET

Diseño de una aplicación sencilla
(sin delegados)
Ordenar datos de estudiantes
Datos de los estudiantes

Matrícula (string)
Nombre (string)
Grado (int)
Grupo (char)
Promedio (double)

Ordenar los objetos de manera ascendente por

promedio

15

Definición de la clase con los datos

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

8

Programación Orientada a Objetos en C# .NET

Arreglo de objetos de tipo
Estudiante

const int Tamaño = 10;

Estudiante [] miArreglo;

miArreglo = new Estudiante[Tamaño];

17

Diagrama de flujo del método de
comparación CompareTo( )

Estudiante.CompareTo(Estudiante otroEstudiante) : int

this.Promedio > otroEstudiante.Promedio

no

this.Promedio < otroEstudiante.Promedio

no

return( 0 )

yes

return( 1 )

yes

return( -1 )

18

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

9

Programación Orientada a Objetos en C# .NET

Diagrama de flujo del método para ordenar un
arreglo de objetos de tipo Estudiante

Ordenar(Estudiante [ ] Arreglo, int intTamaño) : void

Declarar p, e : int

Declarar temporal : Estudiante

1

for(p=0; p < intTamaño -1; p=p+1)

yes

for( e=p+1; e < intTamaño; e=e+1)

yes

no

no

return

1

Arreglo[e].CompareTo

(Arreglo[p]) < 0

yes

temporal = Arreglo[p]
Arreglo[p] = Arreglo[e]
Arreglo[e] = temporal

no

Diseño de la forma

19

20

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

10

Programación Orientada a Objetos en C# .NET

Características de la aplicación

Ordena datos de estudiantes
Criterio de ordenamiento: Ascendente
Considera el campo del promedio para hacer las

comparaciones de los objetos

¿Cómo seleccionar el criterio de ordenamiento?

Ascendente o descendente

¿Cómo seleccionar el campo a utilizar para

comparar los objetos?

21

Diseño de una aplicación con
delegados
Ordenar datos de estudiantes
Seleccionar el criterio de ordenamiento

Ascendente
Descendente

Seleccionar el campo para hacer las comparaciones

Matrícula (string)
Nombre (string)
Grado (int)
Grupo (char)
Promedio (double)

22

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

11

Programación Orientada a Objetos en C# .NET

Definición de la clase con los datos

Diagrama de flujo del método de
comparación para ordenar por
matrícula

Estudiante.CompararPorMatricula(Estudiante x, Estudiante y) : int

return( x.Matricula.CompareTo( y.Matricula ) )

24

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

12

Programación Orientada a Objetos en C# .NET

Diagrama de flujo del método de
comparación para ordenar por
nombre

Estudiante.CompararPorNombre(Estudiante x, Estudiante y) : int

return( x.Nombre.CompareTo( y.Nombre) )

Diagrama de flujo del método de
comparación para ordenar por
grado

Estudiante.CompararPorGrado(Estudiante x, Estudiante y) : int

yes

return ( 1 )

yes

return ( -1 )

x.Grado

>

y.Grado

no

x.Grado

<

y.Grado

no

return ( 0 )

25

26

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

13

Programación Orientada a Objetos en C# .NET

Diagrama de flujo del método de
comparación para ordenar por
grupo

Estudiante.CompararPorGrupo(Estudiante x, Estudiante y) : int

yes

return ( 1 )

yes

return ( -1 )

x.Grupo

>

y.Grupo

no

x.Grupo

<

y.Grupo

no

return ( 0 )

Diagrama de flujo del método de
comparación para ordenar por
promedio

Estudiante.CompararPorPromedio(Estudiante x, Estudiante y) : int

yes

return ( 1 )

yes

return ( -1 )

x.Promedio

y.Promedio

>

<

no

x.Promedio

y.Promedio

no

return ( 0 )

27

28

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

14

Programación Orientada a Objetos en C# .NET

El delegado AtributoComparable

Permite declarar una variable como:

Estudiante.AtributoComparable campo;

La variable campo representa un método que puede
contener la referencia a cualquiera de los siguientes
métodos estáticos de la clase Estudiante:
Estudiante.CompararPorMatricula

Estudiante.CompararPorNombre

Estudiante.CompararPorGrado

Estudiante.CompararPorGrupo

Estudiante.CompararPorPromedio

29

30

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

15

Programación Orientada a Objetos en C# .NET

El delegado AtributoComparable
(cont.)

Recibe 2 parámetros que representan los
objetos de los estudiantes que se desean
comparar:
Estudiante x

Estudiante y

Esos objetos están ubicados en el arreglo

en las celdas p y e respectivamente.

El delegado AtributoComparable
(cont.)

Devuelve un valor de tipo entero:

1 cuando el Estudiante x es mayor que el

Estudiante y

-1 cuando el Estudiante x es menor que el

Estudiante y

0 cuando el Estudiante x es igual que el

Estudiante y

31

32

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

16

Programación Orientada a Objetos en C# .NET

Definición de la clase con el
método de o
  • Links de descarga
http://lwp-l.com/pdf15276

Comentarios de: 08c.- Métodos de ordenamiento con Delegados - Programación Orientada a Objetos en C# .NET (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