FORO
TEMÁTICO DE LA UNIDAD 4
Descripción: Leer el material de la unidad cuatro y
responder las siguientes preguntas:
a)
Realice un algoritmo
usando arreglos.
b)
Explique cuál es la
ventaja de usar arreglos multidimensionales.
c)
Comparte tips sobre para
la elaboración de arreglos.
R:
a)
Se
desea registrar las edades de 4 grupos de personas, cada uno de ellos con 5
elementos. Los datos deberán ser mostrados en forma posterior.
variables:
edad: arreglo(1..4,1..5) de entero
g,p: enteros
Inicio
para g 1 hasta 4 hacer
escribir(‘Grupo : ‘,g)
para p 1 hasta 5 hacer
escribir(‘Edad de la persona ‘,p)
leer(edad[g,p])
para g1 hasta 4 hacer
escribir(‘Grupo ‘,g)
para p 1 hasta 5 hacer
escribir(´persona ‘,p,’ Tiene’,edad[g,p],´años´)
Fin
edad: arreglo(1..4,1..5) de entero
g,p: enteros
Inicio
para g 1 hasta 4 hacer
escribir(‘Grupo : ‘,g)
para p 1 hasta 5 hacer
escribir(‘Edad de la persona ‘,p)
leer(edad[g,p])
para g1 hasta 4 hacer
escribir(‘Grupo ‘,g)
para p 1 hasta 5 hacer
escribir(´persona ‘,p,’ Tiene’,edad[g,p],´años´)
Fin
b) Un array es un medio de
guardar un conjunto de objetos de la misma clase. Se accede a cada elemento
individual del array mediante un número entero denominado índice. 0 es el
índice del primer elemento y n-1 es el índice del último elemento, siendo n, la
dimensión del array.
La
ventaja de usar arreglos es que se puede usar ciclos para recorrer todos los
elementos. Otra ventaja de usar arreglos es que el mismo programa puede ser
utilizado para conjuntos de datos de cualquier tamaño sin requerir mayores
modificaciones. El programa para promediar seis notas es exactamente igual al
que se usaría para promediar treinta notas. Sólo basta con modificar el valor
de la constante N.
Un arreglo
multidimensional es un arreglo cuyos elementos tienen más de un índice.
Son estructuras de datos que almacenan los valores en más de una dimensión.
Un
arreglo multidimensional es simplemente una extensión de un arreglo unidimensional.
Más que almacenar una sola lista de elementos, piense en un arreglo
multidimensional como el almacenamiento de múltiples listas de elementos. Por
ejemplo, un arreglo bidimensional almacena listas en un formato de tabla de dos
dimensiones de filas y columnas, en donde cada fila es una lista. Las filas
proporcionan la dimensión vertical del arreglo, y las columnas dan la dimensión
horizontal. Un arreglo de tres dimensiones almacena listas en un formato de
tres dimensiones de filas, columnas y planos, en donde cada plano es un arreglo
bidimensional. Las filas proporcionan la
dimensión vertical; las columnas, la dimensión horizontal; y los planos, la
dimensión de profundidad del arreglo.
Los
arrays bidimensionales nos permiten trabajar con varios elementos del mismo
tipo simultáneamente y para acceder a estos se hace por medio sus índices.
Este
tipo de estructura de programación estructurada hace más fácil la ejecución, la comprensión y además se tiene
una mejor presentación de un programa.
c)
1)
Hacer
todos los ejercicios de arreglos que se pueda; hay que practicar mucho para
llegar a la perfección.
2)
PRECAUCIÓN:
Cuando se define un arreglo, C++ reserva suficiente memoria primaria para
almacenarlo. Ésta es exclusiva para el arreglo definido y no es posible
utilizarlo para otras tareas de programación o del sistema. En otras palabras,
un arreglo grande consume mucha memoria.
3)
La
definición del tamaño de un arreglo como “variable constante” en lugar de cómo
constante hace que los programas sean más claros. Esta técnica sirve para
eliminar los llamados números mágicos; por ejemplo, la mención repetida del
tamaño 10 en el código de procesamiento de un arreglo de 10 elementos da a da a
dicho número un significado artificial que, desgraciadamente, puede confundir
al lector cuando el programa contiene otros 10 que no tienen nada que ver con
el tamaño del arreglo.
4)
Busque
la claridad de los programas. A veces vale la pena perder un poco en el uso
eficiente de la memoria o del tiempo de procesador a favor de escribir
programas más claros.
5)
Algunos
programadores incluyen los nombres de variables en los prototipos de función
con la finalidad de hacer más claros los programas. El compilador los ignora.
6)
Si
en lugar de inicializar un arreglo con instrucciones de asignación en tiempo de
ejecución, lo inicializa en tiempo de compilación mediante una lista de
inicialización, el programa se ejecutará con mayor rapidez.
7)
A
veces las consideraciones de desempeño tienen mucho más peso que las de claridad.
8)
Podemos
aplicar static a las declaraciones de arreglos para no crear e inicializar los
arreglos cada vez que se llame a las funciones en que residen, además de que el
arreglo no se destruye cada vez que se sale del programa. Con esto se mejora el
desempeño.
9)
Pasar
arreglos simulando llamadas por referencia tiene sentido por cuestiones de
desempeño. Si se pasaran los arreglos mediante llamada por valor, se pasaría
una copia de cada elemento. En el caso de arreglos grandes pasados con
frecuencia, esto consumiría tiempo y un espacio de almacenamiento considerable
para las copias de los arreglos.
10) A veces los algoritmos más
sencillos tienen un mal desempeño. Su virtud es que son fáciles de escribir, probar
y depurar. A veces son necesarios algoritmos más complejos para lograr un
máximo desempeño.
11) Las enormes ganancias en
desempeño que tiene la búsqueda binaria sobre la búsqueda lineal no están exentas
de costos. El ordenamiento de un arreglo es una operación costosa en
comparación con la búsqueda de un elemento en un arreglo completo. La
sobrecarga de ordenar un arreglo vale la pena cuando es necesario hacer muchas
búsquedas a alta velocidad.
12) Cuando recorremos un arreglo
utilizando un ciclo, el índice nunca debe ser menor que 0 y siempre deberá ser
menor que el número total de elementos que tenga el arreglo (uno menos que el
tamaño del mismo). Asegúrese de que la condición de terminación del ciclo evite
acceder a elementos que estén fuera de este rango.
13) Los programas deberían validar
que todos los valores de entrada sean correctos, a fin de evitar que los cálculos
del programa sean afectados por información errónea.
14) Mediante el concepto de clases
es posible implementar un arreglo inteligente, que en tiempo de ejecución revise
automáticamente que todas las referencias a índices estén dentro de los
límites. Dichos tipos de datos inteligentes ayudan a eliminar errores.
15) Aunque es posible modificar un
contador de ciclo en el cuerpo de un for, evite hacerlo, pues es común que esto
genere fallas sutiles.
No hay comentarios.:
Publicar un comentario