04 Arreglos Unidimensionales Teoría
04 Arreglos Unidimensionales Teoría
04 Arreglos Unidimensionales Teoría
Vctor Balta Franklin Gonzles Edson Mendiolaza Vctor Parasi Juan Ramrez
Definicin Declaracin e Inicializacin Elementos de un Arreglo Lectura y Escritura de Arreglos Bsqueda Secuencial Arreglos Paralelos
Problema: Elaborar un programa en Lenguaje C que lea 5 notas de un Alumno y luego las imprima en orden inverso al ingresado
Definicin de Arreglo
Un arreglo es una estructura de datos que permite almacenar N datos del mismo tipo (int, double, char, etc.). El tipo ms simple de un arreglo es el arreglo unidimensional. Para poder utilizar un arreglo es necesario: declararlo e inicializarlo.
Al declarar un arreglo unidimensional se reserva, en la memoria RAM, el espacio suficiente para almacenar todos los valores
La cantidad de memoria que se reserva esta dada por el tamao del tipo de dato y la cantidad de elementos del arreglo
AB001
AB003 AB005 AB007 AB009 AB00A AB00C
0 1 2 3
20
Valor en Vec[0]
4 5
Valor en Vec[4]
Ejemplo de declaracin de arreglos unidimensionales Definir un arreglo de 10 datos enteros: Opcin 1: Sin constantes
int main(array<System::String ^> ^args)
{ int ArregloEnteros[10];
Ejemplo de declaracin de arreglos unidimensionales Definir un arreglo de 10 datos enteros: Opcin 2: Con constantes
int main(array<System::String ^> ^args)
{ const int N=10; int ArregloEnteros[N];
Ejemplo de declaracin de arreglos unidimensionales Definir un arreglo de 10 datos enteros: Opcin 3: Con macros
#define N 10
Elementos de un Arreglo
Sea Vec un arreglo de 10 valores enteros
Vec i
89
36
15
64
37
29
18
59
75
91
Vec[0]
Vec[1] Vec[9]
89 36 91
Elementos de un Arreglo
Vec i
89
36
15
64
. N-1
De manera general:
i-simo elemento
Para un valor de i entre 0 y N-1
Vec[i]
Vec
14
5
19 20 11 10 16
2 3 4 5 6
Vec
0 14 0 5
Si deseamos inicializar con 0, por ejemplo, cada celda del arreglo debemos hacer lo siguiente:
1
2 3 4 5 6
0 19
20 0 0 11
0 10
0 16
//Generar aleatoriamente los datos del arreglo srand(time_t(0)); for (int i=0;i< nele;i++) X[i]=rand() ; _getch(); }
Vec i
29
18
59
75
91
Cmo debemos hacer para hallar el mayor valor dentro del arreglo?
Mayor elemento
Vec
29
<
18 59 75 91
Mayor de un arreglo
int main() { int nele; //numero de elementos del arreglo int Vec[10]; // Arreglo que almacenara los datos int max; //Lectura y Validacin del Numero de elementos //Lectura de los datos del arreglo //Hallar el mayor de los elementos int max = Vec[0]; for(int i = 1; i< nele; i++) if (Vec[i] > max) max = Vec[i]; printf(El mayor elemento es : %d ,max); _getch();
Y el menor elemento?....
Buscar un elemento
num 64 89 36 15 64 37 19 28
Vec
0
i
//Lectura y Validacin del Numero de elementos //Lectura de los datos del arreglo
//Bsqueda de un dato encontrado=0; //falso for(int i = 0; i < nele; i++){ if(Vec[i] == num) encontrado=1; //verdad } if (encontrado ==1) printf(Se encontr el dato); else printf(No se encontr el dato);
x i
89
36
15
64
37
29
18
59
75
91
x i
Ejercicios
Ejercicio 1 Repetido
Elaborar un programa que busque un numero dentro de un arreglo e imprima el numero de veces que se encontr Para ello el programa debe solicitar:
El Numero de elementos nele del Arreglo Un Arreglo de enteros Vec Un Numero num a buscar
Ejercicio 2 - Aprobados
Elaborar un programa que imprima las notas aprobatorias que hay dentro de un arreglo de Notas. Para ello el programa debe solicitar:
El Numero de elementos nele del Arreglo Un Arreglo de enteros Vnotas
Ejercicio 3 - Promedio
Elaborar un programa que devuelva el promedio de notas de un alumno. Sabiendo que la menor nota no debe ser considera para el promedio
Para ello el programa debe solicitar:
El Numero de elementos nele del Arreglo Un Arreglo de notas del alumno Vnotas
Ejercicio 4 - Frecuencia
Elaborar un programa que dado un Arreglo de Notas de un saln de 40 alumnos devuelva un Arreglo de Frecuencia de Notas
Para ello el programa debe solicitar:
Un Arreglo de notas del saln VSalon
Ordenamiento
Los arreglos son estructuras de datos cuya informacin no est, necesariamente, ordenada.
Para ordenar un arreglo hay que seguir algoritmos establecidos, siendo uno de los ms sencillos el de intercambio de valores
Ordenamiento
Sea Vec un arreglo de 3 datos enteros que tiene la siguiente informacin
89
36
15
Ordenamiento
Vec
i
0 1 2
89
36
15
j
0 1 2
Ordenamiento
Dado un vector Vec[] de enteros y un numero de elementos nele. El cdigo de ordenamiento ascendente sera.
int aux; //un temporal que ayuda al intercambio for(int i=0;i<nele-1;i++) { for(int j=i+1;j<nele;j++) if (Vec[i]>Vec[j]) { aux=Vec[i]; Vec[i]=Vec[j]; Vec[j]=aux; } }
Arreglos Paralelos
Los arreglos paralelos son estructuras de datos que se usan cuando se desea manejar informacin, simultanea o en paralelo, relacionadas por la posicin.
Por ejemplo, si deseo guardar los pesos y edades de 5 alumnos del Saln de Ingles deber usar 2 arreglos , uno para los pesos y otro para las edades
Vedades VPesos
18 89
15 46
17 55
18 16 64 65
Se aprovecha la variacin del ndice para ingresar datos a los dos arreglos unitarios
_getch(); }