1.‐Es una colección finita de n elementos homogéneos almacenados en posiciones contiguas de memoria.
2.‐Es identificado con un nombre unico, que representa a todos los elementos, y asu vez cada elemento se identifica mediante el nombre la estructura y su subindice.
Esto implica que los arreglos son estrucutras de datos que utilizan una celda para cada valor y que todos los valores están en memoria a la vez.Muchas aplicaciones requieres de este tipo de organizaciones de datos, asi: Vectores, polinomios, matrices,tablas,procesos estadisticos,etc.
Los arreglos pueden ser organizados con un solo subindice en forma de vector(unidimensionales), con dos subindices en forma de matriz(bidimensionales), con tres subindices(tridimensionales), etc.
C# utiliza corchetes [ ] para definición de arrays
string[] telefonos; //Definicion de un Arreglo de strings telefonos = new string[3]; //De 3 elementos
telefonos[0] = “1245”; //Seteo del 1er elemento del arreglo
//Definicion y asignacion de una vez telefonos = new string[] {“1”,“2”,“3”};
EJERCICIOS RESUELTOS
1.‐se tiene la relación de N notas. Escribir un programa que calcule el promedio y determine cuántas notas son mayores al promedio.
Entrada de datos N=5
Salida de Datos Promedio=14 Nro Nota Mayores=2
static void Main(string[] args) {
//declaramos nuestro arreglo y le damos un tamaño
int[] notas;
notas = new int[50];//en este caso le damos un tamaño de 50
int N,proemdio,NroNotasMayores=0,suma=0;
//ingresamos cantidad de notas Console.Write("Ingresa N:");
N = int.Parse(Console.ReadLine());
//usamos un bucle para ingresar es cantidad de notas
for (int i = 1; i <= N; i++) {
Console.Write("Ingrese Nota {0}:",i); notas[i] = int.Parse(Console.ReadLine()); suma += notas[i];
}
//calculamos el promedio proemdio = suma / N;
//ahora calculamos cuantas notas son mayores al promedio //y hacemos uso de otro bucle
for (int i = 1; i <= N; i++) {
if (notas[i] > proemdio) NroNotasMayores++; }
//al final mostramos el promedio y la cantidad //de notas que son mayores
Console.WriteLine("El Promedio es :{0}",proemdio);
Console.WriteLine("Las Notas Mayores que el Promedio son:{0}",NroNotasMayores); Console.ReadLine();
}
2.‐Hacer un programa que:
a) Cree un array unidimensional de nombre “vector” y cinco elementos, siendo sus componentes de tipo numerico entero.
b)Asigne a cada elemento o componente del array el valor cero.
c)Calcule el tamaño (en bytes) que dicho array ocupa en memoria.Mostrando el resultado obtendio en pantalla.
static void Main(string[] args) {
//declaramos nuestro arreglo y le damos un tamaño int i;
int[] numeros;
numeros = new int[5];//el tamaño del vector es de 5 //a los primeros 5 numeros le damos el valor de 0 for (i = 0; i < 5; i++)
numeros[i] = 0;
for (i = 0; i < 5; i++)
Console.Write("{0}", numeros[i]); //mostramos el espacio que una en byes
Console.Write("\n-el tamaño del array es de {0} bytes.\n", sizeof(int)*5); Console.Read();
}
2.‐Hacer un programa que:
a)cree un array unidimensional de 20 elementos de tipo númerico entero y nombre “pares”. b) Cargue el array con los 20 primeros numeros pares.
c)muestre el contenido del array por pantalla. Salida de Resultados
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
static void Main(string[] args) {
//declaramos nuestro arreglo y le damos un tamaño
int[] pares;
pares = new int[20];//tamaño del vector es de 20
int i, p=0;
//calculamos los 20 primeros pars
for(i=0;i<20;i++) {
pares[i] = p+=2; }
//mostramos los numeros pares almacenados en nuestro array
for (i = 0; i < 20; i++)
Console.Write(" {0}",pares[i]); Console.Read();
}
3.‐crear un array de 20 numeros enteros y que contabilize el numero de valores
positivos,negativos y ceros almacenados en el proceso de carga y finalmente mostrarlo por pantalla.
Entrada de Datos
2 6 13 ‐7 50 4 0 0 11 ‐3 0 8 0 0 0 45 2 2 0 0
Salida de Resultados
Hay 10 números positivos, 2 negativos y 8 ceros
static void Main(string[] args) {
int[] numeros;
numeros = new int[20]; int i;
int pos, neg, cero;
//ingresamos los 20 numeros para llenar el arreglo
for (i = 0; i < 20; i++) {
Console.Write("Ingrese los datos para el arreglo : ");
}
//inicializamos los contadores
pos = 0; neg = 0; cero = 0;
//calculamos cuantos son neutros,positivos y negativos
for (i = 0; i < 20; i++) { if (numeros[i] < 0) neg++; else if (numeros[i] > 0) pos++; else cero++; }
//finalmente mostrar todos los resultados por pantalla
Console.Write("\nHay {0} nùmeros positivos, {1} negativos y {2} ceros", pos, neg, cero);
Console.ReadKey();
}
4.‐Cree un array de 15 elementos de tipo numerico entero y halle la suma de los primeros N elementos almacenados en el array finalmente muestre el resultado obtendio, así como el contenido del array en pantalla.
static void Main(string[] args) {
int[] vector;
vector = new int[15]; int i, suma = 0, num;
Console.Write("-Introduce los valors que cargan la tabla.\n"); for (i = 0; i < 4; i++)
vector[i] = int.Parse(Console.ReadLine());
Console.Write("¿Cuántos valores quieres sumar?\n"); num = int.Parse(Console.ReadLine());
for (i = 0; i < num; i++) suma += vector[i];
Console.Write("-El resultado de sumar los {0} primeros numeros es : {1}\n", num, suma);
Console.Write("-Los elementos del vector, son :"); for (i = 0; i < 4; i++) { Console.Write("{0}", vector[i]); } Console.Read(); }
5.‐ Cree un array unidimensional de 20 valores de tipo númerico y mostar por pantalla todos aquellos elementos mayores de 30 junto con la posición que ocupan en la tabla.En caso de no existir ninguno.se mostrara el siguiente mensaje:”no hay números mayores que 30”.
static void Main(string[] args) {
int[] array;
array = new int[20]; int i;
int sw = 0;
Console.Write("-Introduce los valors que cargan la tabla.\n"); for (i = 0; i < 20; i++)
{
array[i] = int.Parse(Console.ReadLine());
}
Console.Write("-Los elementos mayores que 30 son: \n"); for (i = 0; i < 15; i++)
{
if (array[i] > 30) {
sw = 1;
Console.Write("Array[{0}]={1}\n", i, array[i]); }
}
if (sw == 0)
Console.Write("No hay números mayores que 30\n"); Console.Read();
}
5.‐Cree un array de nombre “notas” para almacenar las calificaciones correspondientes a diez asignaturas y almacenarlas en el array “notas” de forma consecutiva.Calcule e imprima su nota media.
static void Main(string[] args) {
double[] notas;
notas = new double[10]; int i;
double suma, media; for (i = 0; i < 10; i++) {
Console.Write("- Nota de la asignatura {0} : ", i + 1);
notas[i] = double.Parse(Console.ReadLine());
}
suma = 0;
for (i = 0; i < 10; i++) {
suma = suma + notas[i]; }
media = suma / 10;
Console.Write("- Nota media de las 10 asignaturas : {0:F2}", media); Console.ReadKey();
}
6.‐Lea un secuencia de 15 números enteros, almacenándolos en un array de nombre “numeros”.Escribir un programa que los visualice en el dispositivo estándar de salida en orden inverso al de entrada.
static void Main(string[] args) {
int[] numeros;
numeros = new int[15]; int i;
//ingresamos los numeros for(i=0;i<15;i++)
{
Console.Write("Ingresa Numero:");
numeros[i] = int.Parse(Console.ReadLine());
}
//mostrar los números en forma invertida
Console.WriteLine("Forma Invertida del ingreso"); for (i = 14; i >= 0; i--) { Console.WriteLine("{0}",numeros[i]); } Console.ReadLine(); }
7.‐Leer una secuencia de 20 valores numericos enteros y los almacene en un array de nombre “numero”, calcule cuál es el valor maximo, asi como la posición que ocupa en la tabla y finalmente muestre el valor maximo encontrado junto con la posicion que ocupa en el array. En caso de aparecer repetido el valor máximo se mostrará el que se ocupa la posición situada más a la izquierda.
static void Main(string[] args) {
int[] numero;
numero = new int[20]; int k, p;
int maximo;
for (k = 0; k < 10; k++) {
Console.Write("- Valor de la componente [{0}] : ", k);
numero[k] = int.Parse(Console.ReadLine());
} maximo = numero[0]; p = 0; for (k = 1; k < 10; k++) { if (maximo < numero[k]) { maximo = numero[k]; p = k; }
}
Console.Write(" \n el valor maximo es el numero {0} encontrado en la posicion {1}\n", maximo, p);
Console.ReadKey(); }