OBJETIVOS
• Conocer algunas operaciones comunes sobre los arreglos.
• Introducir el concepto de método estático “static”.
• Cuando se declara una variable arreglo, como por ejemplo:
int [ ] valores;
• El grupo de elementos llamado “valores” se asocia a la clase “System.Array”
• 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.
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
Ejercicio:
Crear una aplicación de consola y agregarle en el método principal
(“Main”) la siguiente línea de código:
int [ ] valores;
Luego agregar la línea de código:
valores = new int[5];
Y a continuación teclear:
valores.
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.
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”
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;
Compile y ejecute la aplicación, paso a paso, para observar los resultados obtenidos en las variables:
nroElementos y
nroDimensiones
Operaciones comunes sobre arreglos
Ejercicio:
Operaciones comunes sobre arreglos
Sean:
int [ ] numeros = new int [5];
int suma = 0;
Un arreglo para contener un grupo de
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 ++) {
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]; }
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]; }
Operaciones comunes sobre arreglos
Ejercicio:
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
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
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]; }
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,
Operaciones comunes sobre arreglos
Ejercicio:
Elaborar un método que entregue la
Operaciones comunes sobre arreglos
Sean:
int [ ] numeros = new int [5] { 9, 3, 7, 4, 1 };
int posMenor;
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
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;
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
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.
Problema propuesto
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
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
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);
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 ++; }
}
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)
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);
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
La clase “System.Array”
Para observar la lista de métodos
estáticos que se pueden usar para procesar arreglos:
Escriba: Array.
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
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.
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) {
La instrucción de repetición “foreach”
Ejemplo:
string tira = “”;
char [ ] simbolos = new [4]{„+‟, ‟-‟, ‟*‟, ‟/‟}; foreach (char simbolo in simbolos)
{
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.
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 ++; }
La instrucción de repetición “foreach”
En el ejercicio de rediseñar el método “Contar” usando “foreach” en lugar de “for”: