Introduccin a la Programacin versin Orientada a Objetos - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

Introduccin a la Programacin versin Orientada a Objetos

Description:

Introducci n a la Programaci n. versi n Orientada a Objetos ... { if (i%2 == 0) pares ; else impares ; Console.WriteLine('Hay {0} impares y {1} pares. ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 35
Provided by: RodrigoS4
Category:

less

Transcript and Presenter's Notes

Title: Introduccin a la Programacin versin Orientada a Objetos


1
Introducción a la Programaciónversión Orientada
a Objetos
  • Capítulo 7 Arreglos
  • Rodrigo Sandoval

2
Contenido
  • Arreglos Unidimensionales o Vectores
  • Declaración, definición y uso.
  • foreach()
  • Métodos más usados.
  • Arreglos Multidimensionales o Matrices
  • Declaración, definición y uso
  • Métodos más usados.
  • Enumeraciones

3
Arreglos Unidimensionales
  • También llamados Vectores

4
Arreglos
  • Listas de datos de un tipo específico.
  • Cada elemento se indexa. Comenzando en 0 y
    termina en n-1.
  • Declaración
  • lttipo-basegt puede ser cualquiera de los tipos
    básicos del lenguaje, o incluso algunos complejos
    como estructuras.
  • El ltidentificadorgt es el nombre que distinguirá
    el arreglo.
  • Los corchetes son obligatorios y denotan que
    el identificador descrito, del tipo-base
    indicado, es un arreglo (lista de elementos del
    tipo base).
  • En esta declaración NO se define el tamaño que
    tendrá el arreglo (aunque se puede determinar las
    dimensiones, lo que se verá más adelante).

lttipo-basegt ltidentificadorgt
5
Arreglos
  • El tamaño del arreglo se determina en una segunda
    declaración.
  • Alternativa 1 Declaración y dimensionamiento en
    una declaración.
  • Alternativa 2 Declaración, dimensionamiento e
    inicialización en una declaración.

ltidentificadorgt new lttipo-basegt ltNumElementosgt
lttipo-basegt ltidentifgt new lttipo-basegtltNumElem
gt
lttipo-basegt ltidentifgt val1, val2, ..., valN
6
Arreglos - Ejemplos
// Arreglo para 10 enteros int
numeros numeros new int10 // Arreglo para
10 enteros int numeros new int10 //
Arreglo para 10 enteros asignados int numeros
1, 1, 1, 2, 3, 5, 2, 5, 3, 4
7
Uso de Arreglos
  • Los elementos de un arreglo son variables del
    tipo base del vector, por lo que se utilizan de
    la misma manera en expresiones y demás
    instrucciones, como la asignación. Por ejemplo,
    para asignar un valor a un elemento de un arreglo
    basta con escribir
  • ltarreglogt nombre de la variableindice hace
    referencia a la posición del elemento al que se
    le quiere asignar el ltexpresiongt.
  • Importante Puesto que los arreglos son
    estructuras complejas (es decir, no básicas), no
    es posible asignar un arreglo a otro mediante una
    simple asignación (). Para hacer esto es
    necesario escribir un ciclo y asignar elemento a
    elemento.

ltarreglogtindice ltexpresiongt
8
Arreglos - Ejemplos
// Las posiciones con índices del 10 al 19 son
inválidas. int arreglo 1,1,1,1,1,1,1,1,1,1
// 10 elementos int i for (i0 ilt20
i) arregloi 0 // Error para i gt 10
9
Funciones sobre Arreglos
  • Largo de un Arreglo ? Length
  • Ordenamiento de un Arreglo ? Sort()
  • Revertir orden de un Arreglo ? Reverse()

int numeros 1,2,3,4,5,6 Console.WriteLine
(Largo 0, numeros.Length)
int numeros 4,5,2,3,1,6 Array.Sort(numero
s) // 1,2,3,4,5,6
int numeros 1,2,3,4,5,6 Array.Reverse(num
eros) // 6,5,4,3,2,1
10
foreach()
  • Sentencia control de flujo específica para
    arreglos
  • Declaración
  • lttipogt es el tipo básico de los elementos
    contenidos en el arreglo.
  • ltarreglogt es el arreglo de elementos a revisar.
  • ltvariablegt es un identificador de una variable
    local del foreach() que se usará para ver un
    elemento del arreglo en cada iteración.

foreach ( lttipogt ltvargt in ltarreglogt )
ltinstruccionesgt
11
foreach() Ejemplo
using System class MainClass public static
void Main() int impares 0, pares 0
int arr new int 0,1,2,5,7,8,11
foreach (int i in arr) if (i2 0)
pares else impares
Console.WriteLine("Hay 0 impares y 1
pares.", impares, pares)
Console.ReadLine()
12
Ejemplo Cálculo de Notas
  • Definición del problema
  • Conceptualización El problema consiste en
    calcular el promedio, mínimo y máximo de una
    lista de notas de un curso. Cada alumno tiene una
    nota en el curso. Se supone que el usuario conoce
    a priori la cantidad de alumnos del curso y que
    entregará los datos en forma correcta.
  • Objetivo El objetivo es obtener el promedio, el
    máximo, y el mínimo de las notas del curso.
  • Elementos involucrados Los únicos elementos
    involucrados son las notas, la cantidad de
    alumnos, el promedio, el mínimo y el máximo. Como
    elemento activo, el usuario que conoce las notas
    en detalle.

13
Ejemplo Cálculo de Notas
  • Solución
  • Entidades El Curso es la única entidad
    relevante, la cual se conceptualiza como la
    agrupación de notas correspondientes a los
    alumnos.
  • Clases La clase Curso, será la representación de
    las notas de un curso cuyo promedio se quiere
    calcular.
  • Instancias La única instancia requerida es
    notas1, de la clase Curso.

14
Ejemplo Cálculo de Notas
  • Clase Curso
  • Atributos
  • notas arreglo con las notas.
  • promedio almacena el promedio calculado.
  • maximo almacena la nota máxima registrada.
  • minimo almacena la nota mínima registrada.
  • Métodos
  • Curso constructor asegura al inicio que
    existen las notas.
  • Calcular procesa la lista notas y calcula prom,
    máx, mín.
  • Mostrar muestra en pantalla los cálculos de las
    notas.

15
Ejemplo Cálculo de Notas
  • Algoritmo
  • Declarar instancia de curso
  • Obtener las notas para el curso (inicialización)
  • Calcular el promedio, mínimo y máximo
  • Mostrar los resultados.

16
Ejemplo Cálculo de Notas
  • Cómo debería verse funcionando en pantalla.

Ingrese número de alumnos en la sección
5 Ingrese la nota 1 5,6 Ingrese la nota 2
5,8 Ingrese la nota 3 6,2 Ingrese la nota 4
4,6 Ingrese la nota 5 5,1 Promedio de las 5
notas 5,46 Mínimo de las 5 notas 4,6 Máximo
de las 5 notas 6,2
17
Arreglos Multidimensionales
  • También llamados Matrices (2D)o Cubos (3D)

18
Arreglos Bidimensionales
  • Listas de doble entrada para almacenar datos del
    mismo tipo.
  • Declaración
  • lttipo-basegt puede ser cualquiera de los tipos
    básicos del lenguaje, o incluso algunos complejos
    como estructuras.
  • El ltidentificadorgt es el nombre que distinguirá
    el arreglo.
  • Los corchetes son obligatorios.
  • El separador de dimensiones es la coma (,).
  • NO es necesario que ambas dimensiones sean
    iguales (cuadrado).
  • En esta declaración NO se define las dimensiones
    que tendrá.
  • Antes de ser utilizado, ambas dimensiones deben
    estar establecidas.

lttipo-basegt, ltidentificadorgt
19
Arreglos Bidimensionales
  • El tamaño del arreglo se determina en una segunda
    declaración.
  • Alternativa 1 Declaración y dimensionamiento en
    una declaración.
  • Alternativa 2 Declaración, dimensionamiento e
    inicialización en una declaración.

ltidentificadorgt lttipo-basegtNumElem1, NumElem2
lttipogt, ltidentifgt new lttipogtltNum1gt,ltNum2gt
lttipo-basegtM,N ltidentgt val1-1, val1-2,
..., val1-N ,
val2-1, val2-2, ..., val2-N ,
...,
valM-1, valM-2, ..., valM-N

20
Uso de Arreglos 2D
  • Los elementos de una matriz se pueden entender
    como un casillero o una celda, determinada
    por fila y columna. Para asignar un valor a un
    elemento de una matriz basta con escribir
  • ltmatrizgt nombre de la variableindice1 indice2
    hacen referencia a la posición del elemento al
    que se le quiere asignar el valor.
  • Importante al igual que en el caso
    unidimensional, los arreglos multidimensionales
    no validan la posición de los índices dentro de
    las dimensiones.

ltmatrizgtindice1,indice2 valor
21
Uso de Arreglos Multidim.
  • En general para hacer una referencia a un valor
    de una celda, se indican los índices
    correspondientes en cada dimensión del arreglo
  • Métodos y Propiedades de la clase Array.
  • Length, Sort(), y Reverse() no funcionan
  • Sólo para el tamaño se usa GetLength(dim) ej
    matriz.GetLength(0) ? 1ª dimensión
  • foreach() sólo sirve para arreglos 1D.

ltmatrizgtind1,ind2,, indN valor
22
Arreglos MD - Ejemplos
1. Declaración de una matriz de 50 filas de 20
enteros int, matriz new
int50,20 2. Declaración e inicialización de
una matriz int, matriz 2, 5, 8
, 9, 1, 2 // 2 filas, 3 col. 3.
Asignando un valor a la primera posición de la
segunda fila de una matriz de enteros
matriz1,0 50 4. Imprimiendo una matriz de
100x50 enteros mediante un ciclo for int
i, j for (i0 ilt100 i)
for (j0 jlt50 j)
Console.Write("0 ", matrizi,j)
Console.WriteLine() 5. Imprimiendo una
matriz de NxN enteros mediante un ciclo for
int i, j for (i0 iltmatriz.GetLength(
0) i) for (j0 jlt
matriz.GetLength(1) j)
Console.Write("0 ", matrizi,j)
Console.WriteLine()
23
Ejemplo Cálculo de Notas 2
  • Definición del problema
  • Conceptualización El problema consiste en
    calcular la nota final obtenida por cada uno de
    los alumnos de un curso, y el promedio, mínimo y
    máximo de estas notas finales. El cálculo de la
    nota final es una función de las notas parciales
    que obtuvo durante el semestre. Se supone que
    cada alumno tiene todas y cada una de las notas
    parciales definidas, que el usuario conoce a
    priori la cantidad de alumnos del curso y que
    entregará los datos en forma correcta.
  • Objetivo El objetivo es obtener la nota final de
    cada alumno, junto con el promedio, el máximo, y
    el mínimo de éstas.
  • Elementos involucrados Los elementos
    involucrados son la cantidad de alumnos, las
    notas parciales y la nota final de cada alumno, y
    por último el promedio, el mínimo y el máximo de
    las notas finales.

24
Ejemplo Cálculo de Notas 2
  • Solución
  • Entidades El Curso es la única entidad
    relevante, la cual se conceptualiza como la
    agrupación de notas correspondientes a los
    alumnos.
  • Clases La clase Curso, será la representación de
    las notas de un curso cuyo promedio se quiere
    calcular.
  • Instancias La única instancia requerida es
    notas1, de la clase Curso.

25
Ejemplo Cálculo de Notas 2
  • Clase Curso
  • Atributos
  • notas arreglo 2D con las notas.
  • promedio almacena el promedio calculado.
  • maximo almacena la nota máxima registrada.
  • minimo almacena la nota mínima registrada.
  • Métodos
  • Curso constructor asegura al inicio que
    existen las notas y calcula las notas finales por
    alumno, que también quedan en la matriz.
  • Calcular procesa la lista notas y calcula prom,
    máx, mín.
  • Mostrar muestra en pantalla los cálculos de las
    notas.

26
Ejemplo Cálculo de Notas 2
  • Algoritmo
  • Declarar instancia de curso
  • Inicializar las Notas Para cada alumno de la
    lista
  • 2.1 Obtener las notas parciales
  • 2.2 Calcular la nota final
  • Calcular el promedio, mínimo y máximo
  • Mostrar los resultados.

27
Ejemplo Cálculo de Notas 2
Ingrese el número de alumnos en la sección
3 Alumno Nº 1 Ingrese la nota 1 4,3 Ingrese la
nota 2 4,4 Ingrese la nota 3 4,5 Ingrese la
nota 4 5,2 Ingrese la nota 5 5,6 Alumno Nº
2 Ingrese la nota 1 5,4 (. . .) Alumno Nº 3 (.
. .) Notas Finales 4,9 5,7 5,2 Promedio de las 3
notas 5,288333 Mínimo de las 3 notas
4,9 Máximo de las 3 notas 5,7175
28
Ej. Matrices Cuadradas
  • AxB C
  • A es de NxP y B debe ser de PxM
  • Una fila I por una columna J, se multiplican, se
    suman y queda en la celda I,J.

29
Multip. Matrices Cuadradas
public static Matriz Multiplicar(Matriz A, Matriz
B) Matriz m new Matriz(A.Tamano()) //
Ciclo con 3 nivel realiza la multip. for (int
i0 iltm.Tamano() i) for (int j0
jltm.Tamano() j) m.datosi,j 0
for (int k0 kltm.Tamano() k) m.datosi,j
(A.datosi,k B.datosk,j)
return(m)
30
Enumeraciones
  • Listas de Constantes

31
Enumeraciones
  • Existe una versión simplificada de arreglos, que
    se declaran con datos incluidos.
  • Opciones fijas para un programa. Conjunto de
    valores aceptados, dándole nombres más
    entendibles, y como consecuencia, el compilador
    dará aviso cuando se intente usar un valor no
    definido.
  • Por definición, todos los elementos de las
    enumeraciones son de tipo entero.

32
Enumeraciones
  • Sintaxis.

enum ltidentificadorgt ltnombre1gt
ltvalorEntero1gt, ltnombre2gt ltvalorEntero2gt, ...
ltnombreNgt ltvalorEnteroNgt
33
Enumeraciones
  • Ejemplo

public enum Sexo Femenino 1, Masculino
2 class Persona string nombre int edad
Sexo sexo public void Mostrar()
Console.WriteLine(Nombre 0,
nombre) Console.WriteLine(Edad 0,
edad) if ( sexo Sexo.Masculino
) Console.WriteLine(Sexo Masculino) else
Console.WriteLine(Sexo Femenino)
34
Enumeraciones
  • Entre los beneficios de utilizar enumeraciones se
    cuentan
  • Se hace más fácil de mantener el código, al
    permitir asegurar que las variables sólo reciben
    valores dentro de un rango definido, sin
    posibilidad de valores inválidos.
  • Las enumeraciones hacen al código más legible y
    entendible, permitiendo referenciar valores
    enteros con nombres más descriptivos, en lugar de
    números oscuros y mágicos.
Write a Comment
User Comments (0)
About PowerShow.com