Академический Документы
Профессиональный Документы
Культура Документы
Arreglos en C
Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un
nombre común.
Características
● Un arreglo consta de posiciones de memoria contigua de igual tamaño consecutivas que tienen el
mismo tipo de variable.
● La dirección más baja corresponde al primer elemento y la más alta al último.
● Un arreglo puede tener una o varias dimensiones.
● Para acceder a un elemento en particular de un arreglo se usa el nombre del arreglo seguido de
un índice entre corchetes.
● La cantidad total de espacio que se usa por un arreglo depende de 2 cosas: El número de
elementos en el arreglo y El tamaño del arreglo.
● Los arreglos en C es que no se pueden modificar los limites superior e inferior (y por tanto el
rango) durante el programa. El límite inferior se fija siempre en 0 y el superior lo fija el
programador.
Arreglo Unidimensional
El formato para declarar un arreglo unidimensional es:
tipo nombre_arr [ tamaño ]
Para declarar un arreglo de enteros llamado listanum con diez elementos se hace de la siguiente forma:
int listanum[10];
En C, todos los arreglos usan cero como índice para el primer elemento. Por tanto, el ejemplo anterior
declara un arreglo de enteros con diez elementos desde listanum[0] (primer elemento) hasta
listanum[9] (último elemento).
Ejemplo
#include <stdio.h>
void main()
{
int lista[9];
int i;
void main()
{
Como el elemento buscado (3) es menor que el central (5), debe estar en el primer subarray: {1,2,3,4}
#include <stdio.h>
void main()
{
int lista[9]= {0, 4,5 ,7, 32, 40, 77, 100,123};
int i,inicio,final,medio,num;
/*busqueda binaria*/
printf("Ingresar el numero a buscar:\n");
scanf("%d",&num);
inicio = 0;
final = 9 - 1; /*n-1, n es la cantidad de elementos del arreglo*/
if (num == lista[medio])
printf(" %d encontrado en la posicion %d\n",num,medio);
else
printf(" %d no esta en el arreglo\n",num);
}
Operaciones de Ordenamiento
Es la operación de ordenar un arreglo en algún orden de acuerdo a un criterio de ordenamiento.
El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una
secuencia tal que represente un orden
Tipos de ordenamientos:
Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.
Los internos:
Son aquellos en los que los valores a ordenar están en memoria principal.
Los externos:
Son aquellos en los que los valores a ordenar están en memoria secundaria (disco, cinta, cilindro
magnético, etc).
Algoritmos de ordenamiento:
Internos:
1. Inserción directa.
1. Inserción directa.
2. Inserción binaria.
2. Selección directa.
1. Selección directa.
3. Intercambio directo.
1. Burbuja.
2. Shake.
4. Inserción disminución incremental.
1. Shell.
5. Ordenamiento de árbol.
1. Heap.
2. Tournament.
6. Sort particionado.
1. Quick sort.
7. Merge sort.
8. Radix sort.
9. Cálculo de dirección.
Externos:
1. Straight merging.
2. Natural merging.
3. Balanced multiway merging.
4. Polyphase sort.
5. Distribution of initial runs.
Clasificación de los algoritmos de ordenamiento de información:
El hecho de que la información está ordenada, implica que sirve para poder encontrarla y accesarla de
manera más eficiente ya que de lo contrario se tendría que hacer de manera secuencial.
A continuación se describirán 4 grupos de algoritmos para ordenar información:
Algoritmos de inserción:
En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a la vez. Cada
elemento es INSERTADO en la posición apropiada con respecto al resto de los elementos ya ordenados.
Entre estos algoritmos se encuentran el de INSERCION DIRECTA, SHELL SORT, INSERCION BINARIA
y HASHING.
Algoritmos de intercambio:
En este tipo de algoritmos se toman los elementos de dos en dos, se comparan y se INTERCAMBIAN si
no están en el orden adecuado. Este proceso se repite hasta que se ha analizado todo el conjunto de
elementos y ya no hay intercambios.
Entre estos algoritmos se encuentran el BURBUJA y QUICK SORT.
Algoritmos de selección:
En este tipo de algoritmos se SELECCIONA o se busca el elemento más pequeño (o más grande) de
todo el conjunto de elementos y se coloca en su posición adecuada. Este proceso se repite para el resto
de los elementos hasta que todos son analizados.
Entre estos algoritmos se encuentra el de SELECCION DIRECTA.
Algoritmos de enumeración:
En este tipo de algoritmos cada elemento es comparado contra los demás. En la comparación se cuenta
cuántos elementos son más pequeños que el elemento que se está analizando, generando así una
ENUMERACION. El número generado para cada elemento indicará su posición.
Los métodos simples son: Inserción (o por inserción directa), selección, burbuja y shell, en dónde el
último es una extensión al método de inserción, siendo más rápido. Los métodos más complejos son el
quick-sort (ordenación rápida) y el heap sort.
Guía de Trabajos Prácticos:ARREGLOS
Ejercicio Nº 1:A partir del siguiente código realizar las siguientes actividades:
■ Completar los siguientes códigos en C y ejecutarlos.
■ ¿Qué se muestra en pantalla cuando se ejecutan las sentencias de cada uno
de los casos siguientes:
1)
int n,m;
int producto[3][3];
for(n=1; n<=3;n++)
for(m=1;m<=3;m++)
producto[n-1][m-1] = n*m;
for(n=2; n>=0;n--)
for(m=2;m>=0;m--)
cout<<producto[n][m];
2)
int n,m;
double promedio[3]={0.0,0.0,0.0};
for(n=1; n<=3;n++)
{
for(m=1;m<=3;m++)
{
promedio[n-1] = promedio[n-1] +n*m;
}
promedio[n-1] = promedio[n-1]/3.0;
}
for(m=2;m>=0;m--)
cout<<promedio[m];
Ejercicio N°2:
Realizar un programa que permita realizar las siguientes tareas en un arreglo numérico de 15 elementos
en el siguiente orden:
2. Ingresar por pantalla los 15 elementos, verificando que solo sean mayores que 10 y
menores que 100.
3. Hallar la suma de los números ingresados.
4. Mostrar e indicar la cantidad de números pares.
5. Eliminar los elementos repetidos e indicar cuantos elementos fueron eliminados y la
dimensión actual.
6. Ordenar el arreglo de menor a mayor.
7. Usando búsqueda binaria, indicar si en el arreglo se encuentra un numero ingresado
por pantalla. La búsqueda finaliza cuando se ingresa un 0.
8. Reemplazar por 2 los números primos.
Ejercicio Nº 3:
Para el siguiente arreglo de números enteros, realizar los ejercicios propuestos:
2 6 8 9 1 3 5 5 7 8 9 3 4 5 1
3 7 5 0
0
a) Ingresar los elementos del arreglo por teclado y mostrar por pantalla los elementos del arreglo
indicando su posición.
c) Calcular la suma de los elementos del arreglo, la suma de los elementos pares, la suma de elementos
impares. Verificar que la suma de los elementos sea igual a la suma de los elementos pares e impares.
e) Eliminar los elementos repetidos, indicar el nuevo tamaño del arreglo y mostrar su composición.
Ordenar el arreglo en orden creciente y mostrar el resultado obtenido.
Ejercicio Nº 4:
Dada las siguientes temperaturas observadas en un experimento del laboratorio de quimica:
23 11 34 5 6 31 35 56 40 22
a) Mostrar el valor mínimo y el valor máximo e indicar a que observación corresponde. Calcular el
promedio de las temperaturas observadas.
Ejercicio Nº 5:
Se tienen 10 empleados en una compañía y se ha decidido completar :
● Un arreglo que contiene los sueldos de los empleados,
● Un arreglo que contiene las asignaciones totales de cada empleado.
● Un arreglo con las deducciones de cada empleado.
Se pide:
● Calcular el neto a pagar a cada empleado y guardarlo en otro arreglo.
● Mostrar el sueldo neto a pagar a cada empleando indicando: sueldo bruto, asiganaciones y
deducciones.
● Indicar el máximo y mínimo sueldo a pagar.
Ejercicio Nº 5:
Realizar la búsqueda de un elemento en un arreglo desordenado sin elementos repetidos. No ordenar el
arreglo.
Ejercicio Nº 7:
Realizar la búsqueda de un elemento en un arreglo desordenado con elementos repetidos. No ordenar el
arreglo. Indicar cuantas veces esta repetido el elemento en el arreglo.
Ejercicio Nº 8:
Realizar la búsqueda de un elemento en un arreglo ordenado sin elementos repetidos. No ordenar el
arreglo.
Ejercicio Nº 9:
Realizar la búsqueda de un elemento en un arreglo ordenado con elementos repetidos. No ordenar el
arreglo. Indicar cuantas veces está repetido el elemento en el arreglo.
Arreglo Bidimensional
Se declaran de la siguiente manera:
tipo nombre_arreglo_bi[tamaño][tamaño];
Estos también son comúnmente conocidas como Matrices, El tamaño en la declaración
de la matriz estipula Renglon-Columna y se representarían así:
1
Arreglos