logica de programacion: arreglos

20
Arreglos

Upload: kenny-merle

Post on 02-Aug-2015

39 views

Category:

Technology


2 download

TRANSCRIPT

Arreglos

8-2 Temas Conceptos básicos de arreglos

Secuencialmente buscando en arreglos

Procesar el contenido de un arreglo

Arreglos paralelas

Arreglos bidimensionales

Arreglos de tres o más dimensiones

8-3

Conceptos básicos de arreglos

Un arreglo permite almacenar un grupo de elementos del mismo tipo de datos juntos en la memoria

¿Por qué? En lugar de crear múltiples variables similares, como Employee1, Employee2, employee3 etc…

Es más eficiente para crear un solo variable

Declare String employees[50]

Declare Real salesAmounts[7]

El número en el [] es el tamaño de la matriz

8-4

Arreglos básicos

Los lugares de almacenamiento en una matriz son elementos

Cada elemento de la matriz tiene un número único llamado un subíndice que lo identifica - el subíndice siempre empieza en 0

Subindice de arreglos

8-5Arreglos básicos

Asignación de valores se pueden hacer de forma individual mediante un subíndice…

Set numbers[0] = 20

Set numbers[1] = 30

Set numbers[2] = 40

Set numbers[3] = 50

Set numbers[4[ = 60Pero, es mucho más eficaz utilizar un bucle para recorrer la matriz

8-6

Arreglos básicos

Contenido del arreglo hourse

8-7

Arreglos básicos

Las matrices se pueden inicializar a 0 o valores específicos

Declare String days[7] = “Sunday”, “Monday”, “Tuesday”, Wednesday”, “Thursday”, “Friday”, “Saturday”

Límites de la matriz de comprobación se debe realizar para evitar la utilización de un subíndice no válido

Days[7] = “Saturday” is invalid because there is no 7 index

Un error común está ejecutando un bucle una vez más de lo necesario, superando la cuota de la matriz

Apagado por uno de error

8-8

Arreglos básicos

Matriz parcialmente lleno

A veces, un arreglo sólo se llena parcialmente

Para evitar el procesamiento de los elementos sin relleno, deben tener una variable entera acompañada que contiene el número de elementos almacenados en la matriz.

Cuando la matriz está vacía, 0 se almacena en esta variable

La variable se incrementa cada vez que se agrega un elemento a la matriz

El valor de la variable se utiliza como el tamaño de la matriz al entrar a través de la matriz.

Constant Integer SIZE = 100

Declare Integer values[SIZE]

Declare Integer count = 0

Declare Integer number

Declare Integer Index

Display "Enter a number, or -1 to quit."

Input number

While (number != -1 AND count < SIZE)

Set values[count] = number

Set count = count + 1

Display "Enter a number, or -1 to quit."

Input number

End While

Display "Here are the values you entered:"

For index = 0 To count - 1

Display values[index]

End For

8-9

Arreglos básicos

Ejemplo de

Matriz parcialmente lleno

La variable de recuento contiene el número

de elementos almacenados en la matriz.

8-10Arreglos básicos

El For Each Loop Algunos lenguajes proporcionan un bucle For Each Se trabaja con una matriz, la iteración es una vez para cada

elemento de la matriz Durante cada iteración, el bucle copia de un elemento de valor a

una variable.

8-11Arreglos básicos

Constant Integer SIZE = 5

Declare Integer numbers[SIZE] = 5, 10, 15, 20, 25

Declare Integer num

For Each num In numbers

Display num

End For

Ejemplo For Each

8-12

Secuencialmente Buscando en un arreglo

Un algoritmo de búsqueda secuencial es una técnica sencilla para encontrar un elemento en una cadena o una matriz numérica Utiliza un bucle secuencial a través de una matriz Compara cada elemento con el valor que se busca Detiene cuando el valor se encuentra o el final de la matriz

es golpeado Set found = False

Set index = 0While found == False AND index <= SIZE -1

If (array[index] == searchValue ThenSet found = True

ElseSet index = index + 1

End IfEnd While

8-13

Procesando el contenido de un arreglo

Para un total de los valores en una matriz y el cálculo de la media

Los Loops se utilizan para acumular los valores

Entonces, el total se divide simplemente Por el tamaño

8-14

Ejemplo

8-15

Procesando el contenido de un arreglo

Encontrar a los más altos y más bajos valores en una matriz

El más alto Crear una variable para contener el valor más alto Asigne el valor en el elemento 0 al más alto Utilice un bucle al paso por el resto de los

elementos Cada iteración, se hace una comparación con la

variable más alto Si el elemento es mayor que el valor más alto, que

el valor es entonces la asigna a la variable más alto El mas bajo

Mismo proceso, pero comprueba si el elemento es menor que el valor más bajo

8-16

Procesando el contenido de un arreglo

Copia de un arreglo se puede hacer utilizando bucles

For index = 0 to SIZE – 1

Set secondArray[index] = firstArray[index]

End For

Pasando un arreglo como argumento

Por lo general debe pasar la matriz y el tamaño

Llamad del modulo

getTotal(numbers, SIZE)

Header del modulo

Function Integer getTotal (Integer array[], Integer arraySize)

8-17

Arreglos paralelos

Al utilizar el mismo subíndice, se puede establecer una relación entre los datos almacenados en dos o más matrices.

Los nombres y direcciones arreglos

8-18

Arreglos de dos dimensiones

Un arreglo bidimensional es como varios arreglos idénticos juntos Supongamos que un profesor tiene seis estudiantes que toman cinco

pruebas

Array de dos dimensiones con seis filas y cinco columnas

8-19

Arreglos de dos dimensiones

Se requieren dos variables de tamaño al declarar

Constant Integer ROWS = 3

Constant Integer COLS = 4

Declare Integer values[ROWS][COLS]

Acceso se realiza con dos loops, y ambos subíndices

For row = 0 To ROWS -1

For col = 0 To COLS – 1

Display “Enter a number.”

Input values[row][col]

End For

End For

8-20

Arreglos de tres o mas dimensiones

Los arreglos también pueden ser tres o más dimensiones

Declare Real seats[3][5][8]

Ejemplo de un arreglo

De tres dimensiones