• No se han encontrado resultados

Grupos de datos mediante arreglos

N/A
N/A
Protected

Academic year: 2018

Share "Grupos de datos mediante arreglos"

Copied!
42
0
0

Texto completo

(1)

OBJETIVOS

• Conocer algunas operaciones comunes sobre los arreglos.

• Introducir el concepto de método estático “static”.

(2)

• Cuando se declara una variable arreglo, como por ejemplo:

int [ ] valores;

• El grupo de elementos llamado “valores” se asocia a la clase “System.Array”

(3)

• La clase “System.Array” tiene definidas propiedades y algunos métodos.

• A los diferentes elementos de una

clase: Propiedades, métodos y campos se les asocia un símbolo que identifica al tipo de elemento.

(4)

int [ ] valores;

La clase “System.Array” tiene definidas propiedades y algunos métodos.

Las propiedades permiten, por ejemplo, obtener información acerca de las

características del arreglo

(5)

Ejercicio:

Crear una aplicación de consola y agregarle en el método principal

(“Main”) la siguiente línea de código:

int [ ] valores;

(6)

Luego agregar la línea de código:

valores = new int[5];

Y a continuación teclear:

valores.

(7)

Observar el menú emergente que se despliega en pantalla al lado del

símbolo . (punto) digitado luego del nombre del objeto “valores”

Este menú contiene una lista de los elementos públicos de la clase: las propiedades y los métodos que se aplican sobre objetos previamente creados.

(8)

Al posicionar el cursor sobre un nombre de un elemento público de la clase,

aparece un recuadro con una breve descripción del elemento de la clase. Observe por ejemplo la propiedad

“Length”

(9)

Ahora agregue la línea de código:

int [ , ] matriz = new int [5, 5];

Y a continuación teclee las siguientes líneas de código:

int nroDimensiones = matriz.Rank;

(10)

Compile y ejecute la aplicación, paso a paso, para observar los resultados obtenidos en las variables:

nroElementos y

nroDimensiones

(11)

Operaciones comunes sobre arreglos

Ejercicio:

(12)

Operaciones comunes sobre arreglos

Sean:

int [ ] numeros = new int [5];

int suma = 0;

Un arreglo para contener un grupo de

(13)

Operaciones comunes sobre arreglos

Ahora asignamos valores al azar, entre 0 y 99, al grupo de datos:

Random nroAlAzar = new Random();

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

(14)

Operaciones comunes sobre arreglos

Luego se suman, uno a uno, los elementos del grupo de datos y finalmente se

muestra el resultado obtenido.

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

suma = suma + numeros[i]; }

(15)

Cálculo de la suma de los elementos de un arreglo

class Program {

static void Main(string[] args) {

int[] numeros = new int[5]; int suma = 0;

Random nroAlAzar = new Random(); for (int i = 0; i < numeros.Length; i++) {

numeros[i] = nroAlAzar.Next(100); }

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

suma = suma + numeros[i]; }

(16)

Operaciones comunes sobre arreglos

Ejercicio:

(17)

Operaciones comunes sobre arreglos

Sean:

int [ ] numeros = new int [5] { 9, 3, 7, 4, 1 };

int menor;

Un arreglo para contener el grupo de datos y una variable para almacenar el menor

(18)

Operaciones comunes sobre arreglos

El método principal puede quedar así:

static void Main(string[] args) {

int [ ] numeros = new int [5]; int menor;

menor = CalcularMenor (numeros);

Console.WriteLine(“El menor es {0}”, menor); }

El método “CalcularMenor” retorna el menor

(19)

Operaciones comunes sobre arreglos

El método “CalcularMenor ” puede codificarse de la siguiente manera:

static int CalcularMenor (int [] arreglo) {

int valorMenor;

valorMenor = arreglo[0];

for (int indice = 1; indice < arreglo.Length; indice++) {

if (arreglo[indice] < valorMenor) {

valorMenor = arreglo[indice]; }

(20)

Operaciones comunes sobre arreglos

Problema propuesto:

Dentro de un arreglo de valores enteros encontrar el menor valor y llevarlo a la posición inicial (cero) del arreglo.

Con base en el ejercicio anterior,

(21)

Operaciones comunes sobre arreglos

Ejercicio:

Elaborar un método que entregue la

(22)

Operaciones comunes sobre arreglos

Sean:

int [ ] numeros = new int [5] { 9, 3, 7, 4, 1 };

int posMenor;

(23)

Operaciones comunes sobre arreglos

El método principal puede quedar así:

static void Main(string[] args) {

int [ ] numeros = new int [5]; int posMenor;

posMenor = PosicionMenor (numeros);

Console.WriteLine(“El menor es {0}”, numeros [posMenor]); }

El método “CalcularMenor” retorna la

(24)

Operaciones comunes sobre arreglos

El método “CalcularMenor ” puede ser:

static int PosicionMenor (int [] arreglo) {

int valorMenor, posicionMenor; posicionMenor = 0;

valorMenor = arreglo [posicionMenor];

for (int indice = 1; indice < arreglo.Length; indice++) {

if (arreglo[indice] < valorMenor) {

valorMenor = arreglo[indice]; posicionMenor = indice;

(25)

Problema propuesto

1. Dentro de un arreglo encontrar el

menor valor e intercambiarlo con el de la posición inicial (0) del arreglo.

2. Luego, excluyendo el elemento de la

posición cero, encontrar el menor valor e intercambiarlo con el de la posición inicial (1) del arreglo.

3. Ahora, excluyendo las posiciones cero y uno, encontrar el menor valor e

(26)

Problema propuesto

4. Observar los resultados obtenidos

sobre la organización de los elementos del arreglo y aplicar la operación sobre cada uno del resto de elementos (3, 4, 5, …) del arreglo.

(27)

Problema propuesto

(28)

Operaciones comunes sobre arreglos

Ejercicio:

Elaborar un método que entregue el

número de veces que se encuentra un determinado símbolo, dentro de un

(29)

Operaciones comunes sobre arreglos

Sean:

char [ ] simbolos = new char[5] {'@', „*„, „+„, „*„, '@'};

char simboloBuscado = '@'; int nroVeces = 0;

Un arreglo para contener el grupo de datos, una variable para el símbolo a

(30)

Operaciones comunes sobre arreglos

El método principal puede quedar así:

static void Main(string[] args) {

char [ ] simbolos = new char[5] {'@', „*„, „+„, „*„, '@'}; char simboloBuscado = '@';

int nroVeces = 0;

nroVeces = Contar (simbolos , simboloBuscado);

(31)

Operaciones comunes sobre arreglos

El método “Contar ” puede ser:

static int Contar (char [ ] caracteres, char buscado) {

int nroRepeticiones = 0;

for (int indice = 0; indice < caracteres.Length; indice++) {

if (caracteres[indice] == buscado) {

nroRepeticiones ++; }

}

(32)

Métodos estáticos “static”

Observe que los métodos mostrados en los ejercicios anteriores se declaran estáticos mediante la palabra “static” al comienzo de la línea de declaración del método.

Caso ejemplo:

static int Contar (char [ ] caracteres, char buscado)

(33)

Métodos estáticos “static”

Un método declarado estático “static” no requiere que exista un objeto de la clase del método, y por lo tanto, se aplica sin

hacer referencia a un objeto en particular. Caso ejemplo:

nroVeces = Contar (simbolos , simboloBuscado);

(34)

La clase “System.Array”

La clase “System.Array” es una clase abstracta del sistema.

En esta clase no se declaran campos, pero si se declaran métodos estáticos que se pueden usar para procesar arreglos.

Estos métodos estáticos se pueden

(35)

La clase “System.Array”

Para observar la lista de métodos

estáticos que se pueden usar para procesar arreglos:

Escriba: Array.

(36)

La clase “System.Array”

Al escribir la palabra “Array” seguida del símbolo punto “.” se puede observar el

menú emergente que se despliega en pantalla al lado del símbolo . (punto) Este menú contiene una lista de los métodos estáticos de la clase

(37)

La clase “System.Array”

Para más información sobre la clase “System.Array”:

1. Seleccione la palabra “Array” .

2. Haga clic con el botón secundario del mouse.

(38)

La instrucción de repetición “foreach”

Es una instrucción de repetición parecida a la instrucción “for”, pero que se usa

asociada a un grupo de datos. Forma general:

foreach (tipo nombreElemento in grupo) {

(39)

La instrucción de repetición “foreach”

Ejemplo:

string tira = “”;

char [ ] simbolos = new [4]{„+‟, ‟-‟, ‟*‟, ‟/‟}; foreach (char simbolo in simbolos)

{

(40)

La instrucción de repetición “foreach”

En el ejemplo anterior:

La variable simbolo va tomando uno a uno los valores contenidos en el grupo de

objetos llamado simbolos.

La primera vez toma el contenido del primer elemento.

(41)

La instrucción de repetición “foreach”

Ejercicio: Rediseñar el método “Contar” usando “foreach” en lugar de “for”:

static int Contar (char [ ] caracteres, char buscado) {

int nroRepeticiones = 0;

foreach (char simbolo in caracteres) {

if (simbolo == buscado) {

nroRepeticiones ++; }

(42)

La instrucción de repetición “foreach”

En el ejercicio de rediseñar el método “Contar” usando “foreach” en lugar de “for”:

Referencias

Documento similar

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Asegurar una calidad mínima en los datos es una de las tareas más difíciles de conseguir para los organismos públicos cuyo objetivo es publicar datos lo más rápidamente posible

En el caso de realizar una análisis estructural dinámico lineal de un edificio en particular, se necesita disponer de la información correspondiente a las dimensiones en planta y

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,