27
UNIVERSIDAD NACIONAL EXPERIMENTAL "FRANCISCO DE MIRANDA" COMPLEJO DOCENTE EL SABINO DEPARTAMENTO DE GERENCIA Prof. Dubraska Delgado 1/27 ESTRUCTURAS DE DATOS Arreglos Unidimensionales CONTENIDO: 1. VARIABLES DE TIPO SIMPLE 2. ESTRUCTURA DE DATOS a. Definición b. Clasificación 3. ARREGLOS a. Definición b. Características c. Elementos de los Arreglos d. Clasificación 4. ARREGLOS UNIDIMENSIONALES a. Declaración o Definición AUTOEVALUACIÓN EJERCICIOS 5. OPERACIONES a. Asignación b. Lectura/Escritura c. Actualización y Recorrido AUTOEVALUACIÓN EJERCICIOS 2 4 6 8 10 1 2 3 4 5 Arreglo

ESTRUCTURAS DE DATOS - … · o Arreglo Bidimensional: Un arreglo bidimensional (de dos dimensiones) también denominado tabla o Matriz se define como un conjunto de datos del mismo

Embed Size (px)

Citation preview

UNIVERSIDAD NACIONAL EXPERIMENTAL

"FRANCISCO DE MIRANDA"

COMPLEJO DOCENTE EL SABINO

DEPARTAMENTO DE GERENCIA

Prof. Dubraska Delgado

1/27

ESTRUCTURAS DE DATOS

Arreglos Unidimensionales

CONTENIDO:

1. VARIABLES DE TIPO SIMPLE

2. ESTRUCTURA DE DATOS

a. Definición

b. Clasificación

3. ARREGLOS

a. Definición

b. Características

c. Elementos de los Arreglos

d. Clasificación

4. ARREGLOS UNIDIMENSIONALES

a. Declaración o Definición

AUTOEVALUACIÓN

EJERCICIOS

5. OPERACIONES

a. Asignación

b. Lectura/Escritura

c. Actualización y Recorrido

AUTOEVALUACIÓN

EJERCICIOS

2

4

6

8

10

1

2

3

4

5

Arreglo

Dubraska Delgado Estructuras de datos

2/27

1. VARIABLES DE TIPO SIMPLE

Todas las variables consideradas hasta ahora son de tipo simple. Es decir, consiste de una sola caja de

memoria y puede contener sólo un valor a la vez.

Los tipos de datos estudiados: entero, real, alfabético, carácter. Son considerados como datos de tipo simple,

puesto que una variable que se define con alguno de estos tipos, sólo puede almacenar un valor a la vez, es

decir, existe una relación uno a uno entre la variable y el número de elementos (valores) que es capaz de

almacenar. Veamos algunos ejemplos:

Edad: entero; Letra: carácter; PromedioNota: real;

Nota1: real; Apellidos: alfanumérico; Calculo, suma: entero;

2. ESTRUCTURAS DE DATOS

En cambio, una variable de tipo estructurado consiste en toda una colección de casillas de memoria, que

puede almacenar más de un elemento (valor) a la vez, con la condición de que todos los elementos deben

ser del mismo tipo, es otras palabras, se puede tener un conjunto de datos enteros, reales, etc. Por tanto:

a. DEFINICIÓN

Una Estructura de Datos es una colección de datos que se

caracterizan por su organización y las operaciones que se

definen en ella.

nombre: alfanumerico;

Tipo de Dato

Identificador o

Nombre de la

variable

Dubraska Delgado Estructuras de datos

3/27

3. ARREGLO

a. DEFINICIÓN

UN ARREGLO es una estructura de datos utilizada

para almacenar un conjunto de datos del mismo tipo.

b. CARACTERÍSTICAS

Un arreglo es una colección de datos del mismo tipo caracterizada por:

o Finita: Todo arreglo tiene un límite; es decir, debe determinarse cuál será el número máximo de

elementos que podrán formar parte del arreglo.

o Homogénea: Todos los elementos del arreglo deben ser del mismo tipo.

o Ordenada: Se puede determinar la organización, cuál es el primer elemento, el segundo, el tercero,....

y el n-ésimo elemento.

c. ELEMENTOS DEL ARREGLO

• Nombre de un arreglo: Es la identificación utilizada para referenciar el arreglo y los elementos que la

forman. Un elemento o componente es cada uno de los datos que forman parte integrante del mismo se

almacenan en posiciones de memoria continua.

• Tamaño de un arreglo: Es la longitud de un arreglo, vienen determinada por el número máximo de

elementos que la forman, siendo la cantidad mínima un elemento (1) y la cantidad máximo de n

elementos (n).

• Los subíndices: Es un valor numérico entero y positivo a través del cual podemos acceder

directamente e individualmente a los distintos componentes que forman parte integrante del arreglo,

pues marca la situación relativa de cada elemento o componente dentro de la misma.

En la figura 1 se muestran estos elementos:

SEMANA

Figura 1. Elementos del arreglo

Nombre del

Arreglo

Subíndices

Tamaño= 7

Lunes Martes Miércoles Jueves Viernes Sábado Domingo

1 2 3 4 5 6 7

Dubraska Delgado Estructuras de datos

4/27

d. CLASIFICACIÓN

Los arreglos se clasifican de acuerdo con el número de dimensiones en:

ARREGLOS

o Arreglo Unidimensional: Es una estructura da datos homogénea porque está formada por elementos

del mismo tipo (tipo simple: enteros, alfanuméricos…) que se almacenan en posiciones consecutivas

de memoria y reciben un nombre común. Para referirse a un determinado elemento de la estructura se

deberá utilizar un índice [1, 2, …, i, i+1,.., n], que especifique su posición relativa en el arreglo

unidimensional. Ejemplo 1:

NombreArreglo

Un único índice

Ejemplo 1: Representación de Arreglo Unidimensional

o Arreglo Bidimensional: Un arreglo bidimensional (de dos dimensiones) también denominado tabla

o Matriz se define como un conjunto de datos del mismo tipo organizados en dos o más columnas y

una o más filas, donde se hace referencia a cada elemento por medio de dos índices. El primero se

utiliza para las filas y el segundo para las columnas. Ejemplo 2:

Matriz

Ejemplo 2: Representación de Arreglo Bidimensional

Arreglo

Unidimensional

Elemento 1

Elemento 2

Elemento 3

…….

Elemento n

1

2

3

n

Arreglo

Bidimensional

Elemento 1,1 ……. Elemento 1,m

Elemento 2,1 ……. Elemento 2,m

Elemento 3,1 ……. Elemento 3,m

…… ……. …….

Elemento n,1 ……. Elemento n,m

1 … m Columnas

Filas

1

2

3

n Dos índices:el primero

Representa n filas, el

segundo m columnas

o Unidimensionales

o Bidimensionales

o Multidimensionales

o Vectores

o Tablas o Matrices

Dubraska Delgado Estructuras de datos

5/27

4. ARREGLOS UNIDIMENSIONALES

Tal como se expresó previamente, denominaremos arreglo a una variable que contiene un conjunto de datos

del mismo tipo, y cada dato se encuentra identificando la posición que ocupa en la estructura.

El nombre de un arreglo es elegido por usted, y debe cumplir las mismas condiciones que el nombre de una

variable, es decir:

o Tener uno (1) o más caracteres.

o El primer Carácter debe ser una letra, a partir del segundo puede emplearse indistintamente letras o

dígitos.

o No debe llevar espacios en blancos y puede emplearse un guión tipo piso ( _ )

a. DECLARACIÓN (DEFINICIÓN)

Para definir un arreglo en un programa estructurado, se pondrá al comienzo una instrucción que lo defina con

el nombre elegido y la posición que tendrá la variable final del arreglo. Esta instrucción tendrá la forma:

DONDE:

nombreArreglo: Representa un identificador de variable válido, y representará la estructura de dato.

ARREGLO: Representa la palabra Reservada o Especial para definir la Estructura de dato.

Liminf: Es un valor numérico entero y positivo que representa el valor inferior de posiciones del arreglo

Limsup: Es un valor numérico entero y positivo que indica el valor máximo de posición del arreglo.

DE: Palabra Reservada que precede al tipo de Dato.

Tipodedato: Puede ser de cualquiera de los tipos simples (enteros, reales, alfanuméricos, carácter) e indican

el contenido de cada elemento perteneciente a la estructura de dato.

Ejemplo:

Suponiendo que, tenemos un arreglo denominado “SEMANA” cuyos contenido está representado por los

días de la semana, es decir, tiene siete (7) elementos comenzando por: Lunes y finalizando en Domingo, se

puede definir un arreglo de Tamaño siete (7). En la Figura 2 se muestra la estructura:

nombreArreglo: ARREGLO[ liminf .. Limsup ] DE Tipodedato ;

Rango del

Subíndice

Dubraska Delgado Estructuras de datos

6/27

SEMANA

Figura 2. Representación del arreglo Semana

La declaración del arreglo quedaría de la siguiente Forma:

Donde:

SEMANA representa el nombre de la estructura de dato, seguido de dos puntos pues estamos declarando una

variable, y la palabra reservada ARREGLO que indica la definición de la estructura. Dentro de corchetes se

indica el valor inferior del Subíndice que es 1 separado de dos puntos(..) y continuando con el valor superior

del subíndice en el ejemplo es un 7. Para culminar se emplea la palabra reservada DE que precede al tipo de

dato simple seleccionado, para efectos de este ejercicio el contenido está formado por letras por tanto es de

tipo alfanumérico.

Nota: Los arreglos unidimensionales (también llamados vectores) se pueden representar como fila de datos o

como columnas de datos.

Veamos otro ejemplo:

Los elementos de un arreglo unidimensional OTRO_VECTOR (Ver Figura 3 ). Elementos del arreglo

de cinco (5) elementos cuyo contenido son números reales se muestran a continuación:

OTRO_VECTOR

Tamaño= 5

Este es un vector tipo Fila de Datos

Figura 3. Representación del arreglo OTRO_VECTOR

La Declaración Quedaría

Nombre del

Arreglo

Subíndices

Tamaño= 7

Lunes Martes Miércoles Jueves Viernes Sábado Domingo

1 2 3 4 5 6 7

El contenido está

formado por letras

SEMANA: ARREGLO [1 . . 7] DE alfanumérico;

Nombre del

arreglo

17 19 17,5 12 10,5

5 6 7 8 9 Subíndices

OTRO_VECTOR: ARREGLO [5. . 9] DE real;

El contenido está

formado por números

con decimales

Dubraska Delgado Estructuras de datos

7/27

OTRO_VECTOR representa el nombre de la estructura de dato, seguido de dos puntos pues estamos

declarando una variable, y la palabra reservada ARREGLO que indica la definición del arreglo. Dentro de

corchetes se indica el valor inferior del Subíndice que en este caso se inició en 5 separado de dos puntos(..) y

continuando con el valor superior del subíndice en el ejemplo es un 9. Para culminar se emplea la palabra

reservada DE que precede al tipo de dato simple seleccionado, para efectos de este ejemplo el contenido está

formado por números con decimales por tanto es de tipo real.

OBSERVE QUE: el valor inferior no necesariamente debe iniciar en 1 y culminar en una cifra

equivalente a la cantidad de elementos, tal como refleja el ejemplo: inicia en 5 y culmina en 9, su tamaño

sigue siendo exactamente el mismo, 5 elementos.

Hagamos un resumen de las estructuras declaradas hasta el momento y veamos su equivalente en el lenguaje

de Programación Pascal empleada en el laboratorio:

PSEUDOCÓDIGO PASCAL

DEFINIR SEMANA: ARREGLO [ 1 . . 7 ] DE alfanumérico;

V1: ARREGLO [ 1 . . 5 ] DE entero;

OTRO_VECTOR: ARREGLO [ 5. . 9 ] DE real;

VAR SEMANA: ARRAY [ 1 . . 7 ] OF string[20];

V1: ARRAY [ 1 . . 5 ] OF integer;

OTRO_VECTOR: ARRAY [ 5. . 9 ] OF real;

Ahora bien, recordemos que hasta ahora se ha dicho que un arreglo es una estructura de dato cuyos elementos

son del mismo tipo. Si se van a definir varias estructuras de datos que empleen el mismo tipo de datos e

incluso contendrá la misma cantidad de elementos es aconsejable declarar un nuevo tipo de dato utilizando el

área reservada para tal definición. Veamos algunos ejemplos

PSEUDOCÓDIGO PASCAL

DEFINIR SEMANA: ARREGLO [1 . . 7] DE alfanumérico;

NOMBRES: ARREGLO [1 . . 7] DE alfanumérico;

APELLIDOS: ARREGLO [1 . . 7] DE alfanumérico;

TYPE PALABRAS: ARRAY [1 . . 7] OF string[20];

VAR

SEMANA, NOMBRES, APELLIDOS: PALABRAS;

En pseudocódigo hemos creado tres estructuras de datos que tienen la misma longitud y el mismo tipo de

dato, sin embargo es evidente que los valores incluidos variarán de una estructura a otra. Para ahorrar líneas

de código y reducir errores en pascal un arreglo se declara en la sección Type, si desea declarar un tipo de

dato y posteriormente en el área de declaración de variables VAR se listan las variables cuyo tipo de dato

será una estructura de dato previamente definida.

Note que tanto SEMANA, NOMBRES y APELLIDOS son arreglos de siete elementos y cuyo tipo de dato

es alfanumérico, para evitar escribir tanto se optó por declara un nuevo tipo de dato en el área de TYPE y

posteriormente en el área reservada para la declaración de variables se realiza el llamado a la estructura de

dato previamente creada.

Dubraska Delgado Estructuras de datos

8/27

1. ¿Qué es una Estructura de Dato?

2. ¿Cuál es la clasificación de las estructuras de datos?

3. ¿Cuáles son los elementos de un Arreglo?

4. ¿Cuál es la clasificación de los arreglos según el Número de dimensiones?

5. Las condiciones a seguir para asignar el nombre de un arreglo son:

El primer carácter es un número, a partir del segundo puede emplearse letras o dígitos; puede

usarse guión; No permite espacios en blanco

El primer carácter es una letra, a partir del segundo puede emplearse letras o dígitos; puede

usarse guión; Permite espacios en blanco

El primer carácter es un número, a partir del segundo puede emplearse letras o dígitos; puede

usarse guión; Permite espacios en blanco

El primer carácter es una letra, a partir del segundo puede emplearse letras o dígitos; puede

usarse guión; No permite espacios en blanco

6. Observe la siguiente Figura. ¿Cuál sería la Declaración correcta en Pseudocódigo?

LETRAS: ARREGLO [ 1 . . 6 ] DE alfanumérico;

LETRAS: ARREGLO [ 2 . . 5 ] DE alfanumérico;

LETRAS: ARREGLO [ 1 . . 6 ] DE caracter;

LETRAS: ARREGLO [ 2 . . 6 ] DE caracter;

AUTOEVALUACIÓN

A B C D E

2 3 4 5 6 LETRAS

Dubraska Delgado Estructuras de datos

9/27

1. IDENTIFIQUE NOMBRES DE VARIABLES VÁLIDOS

Instrucciones: De los nombres de variables (identificadores) Presentados a Continuación Encierre en un

círculo la letra “ C ” cuando el identificador represente un nombre válido y encierre en un círculo la letra

“I” cuando el identificador no corresponda a un nombre no válido.

1. 45Nombres C I 8. Tres numeros C I

2. estaciones C I 9. 12letras y 5vocales C I

3. D C I 10. Unaletra y 5 vocales C I

4. Varias Ciudades C I 11. Precios unitarios C I

5. Prome-Notas5 C I 12. 19edificios C I

6. 3cosas C I 13. M2 C I

7. Canciones baladas C I 14. M-45 C I

2. INDIQUE LOS ELEMENTOS DE LOS ARREGLOS.

a. Nombre del arreglo

b. Índice [ LimInf . . LímiteSup ]

c. Tamaño

Instrucciones: Para cada Estructuras de datos presentada en la Columna A, indique en la línea punteada de

la Columna B la información solicitada

COLUMNA A COLUMNA B

LETRAS

a. Nombre del arreglo

_____________________________

b. Índice ________________________

c. Tamaño______________________

A B C D

1 2 3 4

EJERCICIOS

Dubraska Delgado Estructuras de datos

10/27

ESTUDIANTE a. Nombre del arreglo

_____________________________

b. Índice ________________________

c. Tamaño______________________

NÚMEROS

a. Nombre del arreglo

_____________________________

b. Índice ________________________

c. Tamaño______________________

MESES a. Nombre del arreglo

_____________________________

b. Índice ________________________

c. Tamaño______________________

3. Del ejercicio 2 realice las declaraciones correspondientes en pseudocódigo.

LETRAS

ESTUDIANTE

NÚMEROS

MESES

Luisa Ana Pedro Eduardo Carlos

10 11 12 13 14

17

34

12

19,3

08

6

7

8

9

10

Enero Febrero … Diciembre

1 2 . . . 12

A B C D

1 2 3 4

10 11 12 13 14

Luisa Ana Pedro Eduardo Carlos

17 34 12 19,3 08

6 7 8 9 10

Enero Febrero . . . Diciembre

1 2 . . . 12

Dubraska Delgado Estructuras de datos

11/27

5. OPERACIONES EN ARREGLOS UNIDIMENSIONALES

Las operaciones que se pueden realizar con vectores durante el proceso de resolución de un problema son:

a. Asignación

b. Lectura/ escritura

c. Recorrido ó Actualización (inserción, eliminación, modificación)

En general las operaciones con arreglos (vectores, listas) implican el procesamiento de los elementos

individuales del arreglo.

a. ASIGNACIÓN

Es la operación que permite fijar o guardar temporalmente en una variable un valor, que puede ser una

constante, una variable o el resultado de operaciones aritméticas, lógicas o alfanuméricas. En otras palabras;

a un Arreglo se puede:

ASIGNAR

No es posible asignar directamente un valor a todo el arreglo; sino que se debe asignar el valor deseado

en cada elemento. Esto puede realizarse a cada elemento por separado como si se tratara de una variable de

tipo simple o bien a cada uno de los elementos de la estructura mediante un ciclo que fije el valor deseado en

cada casilla del arreglo. La sintaxis de Asignación (ver Figura 4) es como sigue:

Figura 4. Formato de Asignación en un arreglo

DONDE:

nombreArreglo: Representa un identificador de variable válido, y representará la estructura de dato.

[Subíndice]: Representa la posición del elemento en el arreglo.

:= Representa el símbolo de asignación que designa a la variable del lado izquierdo (antes del signo := )el

valor ubicado al lado derecho del símbolo.

Valor: Puede ser de cualquiera de los tipos simples (enteros, reales, alfanuméricos, carácter) e indican el

contenido de una casilla determinada perteneciente a la estructura de dato.

nombreArreglo [ Subíndice] : = Valor;

Debe ser de

los tipos de

Dato simple

Identificador o

Nombre de la

variable

Posición donde se quiere

asignar el valor

Símbolo de

Asignación

1. Valores constantes de Forma Directa.

2. El resultado de una operación.

3. Obtener el valor de un elemento y almacenarlo en otra variable; es decir, el

contenido de una casilla determinada es asignarlo en otra variable, ambas deben ser

compatibles en el tipo de dato.

Dubraska Delgado Estructuras de datos

12/27

Ejemplos:

V1[ 4 ] := 8; (asignar el valor constante 8 en la casilla 4 del arreglo V1)

MiVector [ 5 ]:= 16; (asignar el valor constante 16 en la casilla 5 del arreglo MiVector)

Nombre[ 12 ]:= „México‟ (asignar el valor constante México en la casilla 12 del arreglo Nombre)

MiVector[ 2 ]:= MiVector [ 1 ] / 2 (asignar el resultado de una operación, el cual es la división del

contenido del arreglo MiVector en la posición 1 (MiVector[1])

dividido entre 2 , ese resultado se almacena en la casilla 2 del arreglo

MiVector (MiVector[2])

Auxiliar:= V1[ 4 ]; (asignar el valor de un elemento ubicado en la casilla 4 del arreglo V1

y almacenarlo en la variable Auxiliar)

ASIGNACIÓN DE VALORES A ELEMENTOS INDIVIDUALES EN UN ARREGLO

En la Figura 5 se muestra el contenido del arreglo V1:

Figura 5. Estructura del arreglo V1

Recordemos que un Arreglo puede ser representado de forma indiferente como fila o como columna

Supongamos que se desea asignar un valor constante en la posición 1del arreglo V1 tal como muestra la

Figura 5.1

V1

Figura 5.1. Asignación de una constante en la casilla 1 del arreglo V1

o Se puede ASIGNAR UNA OPERACIÓN a un elemento, tal como se muestra en la Figura 5.2:

V1[2]:= V1[1] * 2 Se asigna en la posición 2 del arreglo V1 el valor

resultante de multiplicar el contenido del arreglo

V1[1] en la posición 1 multiplicado por 2; es

decir, V1[2]:= V1[1] * 2

V1[2]:= 2 * 2

V1[2]:= 4

Figura 5.2. Asignación de una operación en la casilla 2 del arreglo V1

V1

El Arreglo de nombre V1 hace referencia a una estructura de datos, es decir;

todos los elementos tienen el mismo nombre (V1) y se referencia a través del

subíndice que indica la posición que ocupan en el arreglo.

Dichos elementos se manipulan como variables individuales.

o De esta manera se puede ASIGNAR UN VALOR a un elemento,

por ejemplo:

V1[1]:= 2 Se asigna en la posición 1 del arreglo V1 el valor de 2

2 1

2

3

4

5

2 4 6 8 10

1 2 3 4 5 V1

2

4

1

2

3

4

5

Dubraska Delgado Estructuras de datos

13/27

ASIGNACIÓN DE VALORES EMPLEANDO OPERACIONES CON LOS ÍNDICES

No sólo se puede Jugar con el Contenido de cada casilla del arreglo, sino que también se puede jugar con los

índices del mismo tomando en cuenta que estos son de tipo entero

Continuando con el ejemplo de la Figura 5 correspondiente al arreglo V1.Se debe tomar en cuenta que los

subíndices de un vector pueden ser enteros, variables o expresiones enteras. Esto es:

Suponiendo que el índice del arreglo V1 es representado por la variable entera i, la primera vez el i := 1

entonces

V1 [ i ] Representa el primer elemento del vector

V1 [ i + 1 ] Representa el segundo elemento del vector

ASIGNACIÓN DE VALORES MEDIANTE ESTRUCTURAS REPETITIVAS

Por otra parte; si el objetivo es asignar valores a todos los elementos de un arreglo, entonces se pueden

utilizar las estructuras repetitivas (DESDE- HASTA, MIENTRAS-HAGA, REPETIR-HASTA)

A continuación se mostrará como asignar datos en cada una de las casillas del arreglo V1. Partiendo de las

ideas previas de asignación esta idea podemos encontrar otra forma de ubicar valores diferentes en el arreglo

V1 sin necesidad de solicitar datos sino mas bien jugando con los índices del arreglo.

DESDE – HASTA EXPLICACIÓN

DESDE i:= 1 HASTA 5 HAGA

V1[ i ] := i * 2 ;

i es una variable entera que tomará valores entre 1 y 5, la primera vez i

toma el valor de 1, es decir, en todas las instrucciones donde la

aparezca la letra i estaremos sustituyéndola por el valor de 1, cuando la

i está contenida dentro de paréntesis hace referencia a la posición o una

casilla determinada del arreglo, sino simplemente representa un número

por ende se puede operar con ella.

Figura 5.1 Contenido del arreglo V1 en la casilla 1 2 4 6 8 10

[ i ] 2 3 4 5

V1

Figura 5.2 Contenido del arreglo V1 en la casilla 2 2 4 6 8 10

1 [ i+1] 3 4 5

V1

Figura 5 Estructura del arreglo V1 2 4 6 8 10

i :=1 2 3 4 5

V1

Dubraska Delgado Estructuras de datos

14/27

En las Figuras 5.1 a la Figura 5.3 se muestran los cambios que se van dando en la estructura cada vez que

se produce una iteración en el ciclo DESDE-HAGA :

Para i := 1 La primera vez a i se le asigna el valor de 1

al efectuar la operación el resultado es

asignado a la Variable V1 en la posición 1 de

la siguiente manera: V1[ 1 ] := 1 * 2

V1[ 1 ] := 2

Para i := 2 La segunda vez a i se le asigna el valor de 2

al efectuar la operación el resultado es

asignado a la Variable V1 en la posición 2 de

la siguiente manera: V1[ 2 ] := 2 * 2

V1[ 2 ] := 4

El proceso se repite hasta llegar a la última iteración en donde la variable entera i toma el valor de 5

Para i := 5 La quinta vez a i se le asigna el valor de 5 al

efectuar la operación el resultado es asignado

a la Variable V1 en la posición 5 de la

siguiente manera: V1[ 5 ] := 5 * 2

V1[ 5 ] := 8

ASIGNACION DE VALORES EMPLEANDO VARIAS ESTRUCTURAS DE DATOS

Se pueden realizar Asignaciones empleando operaciones con diferentes arreglos, la condición es que

deben ser de tipo compatible y contener la misma cantidad de elementos. Veamos un ejemplo:

Las operaciones que se pueden realizar son: Suma, resta, multiplicación, División, DIV(Obtiene el cociente

de la división) y MOD(Obtiene el resto de la División). Los arreglos deben ser del mismo tipo o tipos

compatibles y de la misma Longitud.

2

i := 1 2 3 4 5

V1

Figura 5.1 Contenido del arreglo V1 en la casilla 1

2

4

6

8

10

1

2

3

4

5

V1

15

20

34

50

80

1

2

3

4

5

NUM

17

24

40

58

90

1

2

3

4

5

RESULTADO

+

+

+

+

+

=

=

=

=

=

2 4

1 i := 2 3 4 5

V1

Figura 5.2 Contenido del arreglo V1 en la casilla 2

2 4 6 8 10

1 2 3 4 i:=5

V1

Figura 5.3 Contenido del arreglo V1 en la casilla 5

Dubraska Delgado Estructuras de datos

15/27

En este caso se quiere guardar el resultado de la Suma del contenido de los Arreglos V1 y NUM en el arreglo

RESULTADO, los tres arreglos tienen el mismo tamaño y manejan el mismo tipo de dato, por tanto se

puede resolver la operación.

Queremos sumar:

RESULTADO [ 1 ] := V1 [ 1 ] + NUM [ 1 ]

RESULTADO [ 1 ] := 2 + 15

RESULTADO [ 1 ] := 17

RESULTADO [ 2 ] := V1 [ 2 ] + NUM [ 2 ]

RESULTADO [ 2 ] := 4 + 20

RESULTADO [ 2 ] := 24

RESULTADO [ 3 ] := V1 [ 1 ] + NUM [ 1 ]

RESULTADO [ 3 ] := 6 + 34

RESULTADO [ 3 ] := 40

RESULTADO [ 4 ] := V1 [ 4 ] + NUM [ 4 ]

RESULTADO [ 4 ] := 8 + 50

RESULTADO [ 4 ] := 58

RESULTADO [ 5 ] := V1 [ 5 ] + NUM [ 5 ]

RESULTADO [ 5 ] := 10 + 80

RESULTADO [ 5 ] := 90

Como se desea realizar la operación para todos los elementos del arreglo se incluirá dentro de una estructura

cíclica, en este caso tomaremos la Estructura DESDE – HAGA. Usted puede realizar el mismo ejercicio

empleando estructuras Repetitivas MIENTRAS – HAGA y REPETIR - HASTA

PSEUDOCÓDIGO PASCAL

DESDE – HASTA

DESDE i:= 1 HASTA 5 HAGA

RESULTADO[ i ]:= V1[ i ] + NUM[ i ]; FOR i:= 1 TO 5 DO

RESULTADO[ i ]:= V1[ i ] + NUM[ i ];

b. LECTURA /ESCRITURA

La lectura y escritura de datos de arreglos se realizan utilizando los elementos individuales si ese es el caso o

con estructuras repetitivas (Desde-Haga, Mientras-Haga, Repetir-Hasta).

La sintaxis para la lectura es:

La sintaxis para la Escritura es:

LEER ( nombreArreglo[ Subíndice] )

IMPRIMIR ( nombreArreglo[ Subíndice] )

Dubraska Delgado Estructuras de datos

16/27

DONDE:

LEER: Palabra Reservada que permite obtener el valor ingresado por el usuario.

IMPRIMIR: Palabra Reservada que permite mostrar una salida por pantalla al usuario.

nombreArreglo: Representa un identificador de variable válido, y representará la estructura de dato.

[Subíndice]: Representa la posición del elemento en el arreglo.

EJEMPLO DE LECTURA:

Suponiendo que tenemos una estructura de Datos llamado OTRO_VECTOR y se desea LEER los

valores por teclado y almacenarlos en la estructura. La Instrucción sería como sigue

Solicitando cada Elemento Individualmente Empleando Estructuras Repetitivas

IMPRIMIR ( „ Ingrese el elemento 1 del arreglo „);

LEER ( OTRO_VECTOR [ 5 ] );

IMPRIMIR ( „ Ingrese el elemento 2 del arreglo „);

LEER ( OTRO_VECTOR [ 6 ] );

IMPRIMIR ( „ Ingrese el elemento 3 del arreglo „);

LEER ( OTRO_VECTOR [ 7 ] );

IMPRIMIR ( „ Ingrese el elemento 4 del arreglo „);

LEER ( OTRO_VECTOR [ 8 ] );

IMPRIMIR ( „ Ingrese el elemento 5 del arreglo „);

LEER ( OTRO_VECTOR [ 9 ] );

DESDE- HAGA

DESDE X:= 5 HASTA 9 HAGA

INICIODESDE

IMPRIMIR („ Ingrese el elemento‟, X ,‟del arreglo „); LEER ( OTRO_VECTOR [ X ] );

FINDESDE;

Lo presentado en la tabla anterior es el fragmento de código que da solución al algoritmo. Sin embargo, para

proporcionarle una visión de lo que ocurre en cada línea de instrucción se mostrará a continuación como

quedaría el Pseudocódigo completo, así como también los mensajes visualizados en pantalla y la forma en la

que se insertan los elementos en el arreglo.

ENUNCIADO:

Suponiendo que tenemos una estructura de Datos llamado OTRO_VECTOR y se desea

LEER los valores por teclado y almacenarlos en la estructura. Elabore la solución

algorítmica empleando Pseudocódigo

17 19 17,5 12 10,5

5 6 7 8 9 OTRO_VECTOR

Figura 6 estructura del arreglo OTRO-VECTOR

Dubraska Delgado Estructuras de datos

17/27

PSEUDOCÓDIGO CORRIDA EN FRÍO ARREGLO

INICIO DEL ALGORITMO lectura;

DEFINIR

X: Entero; OTRO_VECTOR: ARREGLO [ 5 . . 9 ] DE real; INICIO

DESDE X:= 5 HASTA 9 HAGA

INICIODESDE

IMPRIMIR („ Ingrese el elemento‟, X ,‟del arreglo „); LEER ( OTRO_VECTOR [ X ] );

FINDESDE;

FIN DEL ALGORITMO lectura.

(Cuando se declara el arreglo se

crea la estructura de dato sin

información en su contenido

Para X:= 5 Ingrese el elemento 5 del arreglo

17

Para X:= 6 Ingrese el elemento 6 del arreglo

19

EXPLICACIÓN

Inicialmente deben ser declaradas las variables a

emplear en el algoritmo, en este caso necesitamos

declarar una variable entera que controle el ciclo y la

estructura de dato en la cual se almacenarán los valores

ingresados por el usuario. El algoritmo únicamente está

tratando el proceso de lectura, por tal motivo,

emplearemos una estructura repetitiva, como se conoce

el número exacto de elementos se emplea la estructura

DESDE-HASTA cuyo valor inicial es 5 y valor final 9.

Dentro del ciclo se realizarán dos instrucciones una que

muestre el mensaje en pantalla para solicitar cada valor

y otra que lea el valor ingresado y lo almacene en el

arreglo; como el ciclo comprende dos instrucciones se

requiere una instrucción que marque el INICIO y el FIN

del Ciclo.

Ahora Bien, cuando se efectúa la corrida las

instrucciones contenidas dentro del ciclo se repetirán

tantas veces como indique el ciclo, note que en la salida

las reglas de sintaxis (paréntesis, comillas, puntos y

comas…) son obviados así como las Instrucciones

(Imprimir, Leer…) Mostrando sólo los mensajes y el

contenido de la variable X cuyo valor cambia en cada

iteración del ciclo( X=5, X=6, …)

Para X:= 7 Ingrese el elemento 7 del arreglo

17,5

Para X:= 8 Ingrese el elemento 8 del arreglo

12

Para X:= 9 Ingrese el elemento 9 del arreglo

10,5

EJEMPLO DE ESCRITURA:

ENUNCIADO:

Suponiendo que tenemos una estructura de Datos llamado OTRO_VECTOR y se desea

Mostrar el contenido del arreglo en pantalla. Elabore la solución algorítmica empleando

Pseudocódigo

OTRO_VECTOR

5 6 7 8 9

17

OTRO_VECTOR

X:=5 6 7 8 9

17 19 17,5

OTRO_VECTOR

5 6 X:= 7 8 9

17 19 17,5 12

OTRO_VECTOR

5 6 7 X:= 8 9

17 19 17,5 12 10,5

OTRO_VECTOR

5 6 7 8 X:= 9

17 19

OTRO_VECTOR

5 X:= 6 7 8 9

Guarda el valor

ingresado por el

usuario en el arreglo

Dubraska Delgado Estructuras de datos

18/27

PSEUDOCÓDIGO CORRIDA EN FRÍO SALIDA

INICIO DEL ALGORITMO escribir;

DEFINIR

X: Entero; OTRO_VECTOR: ARREGLO [ 5 . . 9 ] DE real; INICIO

IMPRIMIR („ Los valores del Arreglo son: „);

DESDE X:= 5 HASTA 9 HAGA

INICIODESDE

IMPRIMIR (OTRO_VECTOR [ X ]); LEER ();

FINDESDE;

FIN DEL ALGORITMO escribir.

(Se supone que

previamente se ingresaron

los valores en la estructura

de dato por tal motivo se

muestra el contenido del

arreglo)

Los valores del Arreglo son:

Para X:= 5 17

17

EXPLICACIÓN Para X:= 6 19

17 19 Primero se declaran las variables, el algoritmo

únicamente está tratando el proceso de escritura,

(asumimos que el ingreso de dato se realizó

previamente).

Para realizar la impresión o escritura, emplearemos

una estructura repetitiva, ya que se conoce el número

exacto de elementos se eligió la estructura DESDE-

HASTA cuyo valor inicial es 5 y valor final 9.

Dentro del ciclo se realizarán dos instrucciones una

que muestre el contenido del arreglo en pantalla y

otra que nos permita una pausa para leer el valor

almacenado en el arreglo; como el ciclo comprende

dos instrucciones se requiere una instrucción que

marque el INICIO y el FIN del Ciclo.

Lo primero que se muestra es el mensaje antes del

ciclo, por ende sólo se muestra una vez. Luego sigue la

instrucción del ciclo cuyo valor inicial es 5 y muestra

el contenido de la primera casilla del arreglo, luego la

lectura permite al usuario ver el valor en pantalla y al

presionar cualquier tecla, se devuelve al inicio del

ciclo se repite la instrucción hasta llegar a la última

iteración.

Para X:= 7 17,5

17 19 17,5

Para X:= 8 12

17 19 17,5 12

Para X:= 9 10,5

17 19 17,5 12 10,5

17 19 17,5 12 10,5

OTRO_VECTOR

5 6 X:= 7 8 9

17 19 17,5 12 10,5

OTRO_VECTOR

5 6 7 X:= 8 9

17 19 17,5 12 10,5

OTRO_VECTOR

5 6 7 8 X:= 9

17 19 17,5 12 10,5

OTRO_VECTOR

5 6 7 8 9

Muestra el valor

almacenado en el

arreglo

17 19 17,5 12 10,5

OTRO_VECTOR

5 X:= 6 7 8 9

17 19 17,5 12 10,5

OTRO_VECTOR

X:=5 6 7 8 9

Dubraska Delgado Estructuras de datos

19/27

c. RECORRIDO O ACTUALIZACIÓN

Se accede a los elementos de un arreglo para introducir datos en él, es decir, actualizarlos ya sea de manera

individual o a través del procesamiento general del arreglo. La actualización consiste en la asignación de

valores a los elementos del vector Incluye añadir (insertar), borrar o modificar algunos de los ya existentes.

El recorrido entonces, está referido a la operación de efectuar una acción general sobre todos los elementos

del arreglo. Estas operaciones se realizan utilizado estructuras repetitivas, cuya variable de control se utiliza

como subíndice del arreglo. El incremento de la variable de control produce el tratamiento sucesivo e

individual de los elementos del Arreglo.

EJEMPLO DE ACTUALIZACIÓN y RECORRIDO:

Suponga ahora que se desea Modificar el contenido del arreglo OTRO_VECTOR, en las posiciones

pares del arreglo se desea reemplazar el valor existente por cero ( 0 ) y posteriormente mostrar los

cambios en pantalla. El Algoritmo quedaría como se muestra a continuación:

PSEUDOCÓDIGO CORRIDA EN FRÍO ARREGLO

INICIO DEL ALGORITMO actualizar;

DEFINIR

X: Entero; OTRO_VECTOR: ARREGLO [ 5 . . 9 ] DE real; INICIO

DESDE X:= 5 HASTA 9 HAGA

SI ( X MOD 2 = 0 ) ENTONCES OTRO_VECTOR [ X ]:= 0;

IMPRIMIR („El contenido del arreglo modificado es „);

DESDE X:= 5 HASTA 9 HAGA

INICIODESDE

IMPRIMIR (OTRO_VECTOR [ X ]); LEER ();

FINDESDE;

FIN DEL ALGORITMO actualizar.

Asumimos que el arreglo está

lleno

Para X:= 5 SI 5 MOD 2 = 0

SI 1 = 0

El resto de esta división es 1,

como no es igual a cero la

condición no se cumple y por

ende no se modifica el

contenido.

Para X:= 6 SI 6 MOD 2 = 0

SI 0 = 0

El resto de esta división es 0, la

condición se cumple y por ende

se modifica el contenido. Ahora

el contenido ya no es 19 sino 0

EXPLICACIÓN DE LA MODIFICACIÓN

El algoritmo está tratando la modificación de datos

en el arreglo, a tal efecto, emplearemos la estructura

repetitiva, DESDE-HASTA cuyo valor inicial es 5 y

valor final 9.

El primer ciclo, recorre todo el arreglo y evalúa una

condición toma la variable de control del ciclo y la

divide entre dos mediante la función MOD que trae el

resto de la división, SI el resto es igual a cero la

condición se cumple y por ende se modifica el

Para X:= 7 SI 7 MOD 2 = 0

SI 1 = 0

El resto de esta división es 1,

como no es igual a cero la

condición no se cumple y por

ende no se modifica el

contenido.

17 19 17,5 12 10,5

OTRO_VECTOR

5 6 7 8 9

17 19 17,5 12 10,5

OTRO_VECTOR

X:=5 6 7 8 9

17 0 17,5 12 10,5

OTRO_VECTOR

5 6 X:= 7 8 9

17 0 17,5 12 10,5

OTRO_VECTOR

5 X:= 6 7 8 9

Muestra el

contenido

del arreglo

Evalúa si es

una posición

par

Dubraska Delgado Estructuras de datos

20/27

contenido del arreglo en esa posición.

Para X:= 8 SI 8 MOD 2 = 0

SI 0 = 0

El resto de esta división es 0, la

condición se cumple y por ende

se modifica el contenido. Ahora

el contenido ya no es 19 sino 0

Para X:= 9 SI 9 MOD 2 = 0

SI 1 = 0

El resto de esta división es 1,

como no es igual a cero la

condición no se cumple y por

ende no se modifica el

contenido.

EXPLICACIÓN DEL RECORRIDO CORRIDA EN FRÍO SALIDA

Una vez modificado el valor y culminado el ciclo

anterior (el de la actualización), se continúa con el

resto de las instrucciones del algoritmo, por lo tanto la

siguiente instrucción es una impresión que muestra el

siguiente mensaje:

El contenido del arreglo modificado es.

Posteriormente, se encuentra con otra estructura

repetitiva que mostrará el contenido del arreglo luego

de su modificación tal como se muestra en la segunda

columna que hace referencia a la Corrida en Frío, en

la tercera columna se muestra la salida que se presenta

al usuario.

(Se mostrará el contenido de la

estructura de dato luego de la

actualización)

El contenido del arreglo modificado es

Para X:= 5

17

Para X:= 6

17 0

Para X:= 7

17 0 17,5

Para X:= 8

17 0 17,5 0

Para X:= 9

17 0 17,5 0 10,5

17 0 17,5 0 10,5

OTRO_VECTOR

5 6 7 X:= 8 9

17 0 17,5 0 10,5

OTRO_VECTOR

5 6 7 8 X:= 9

17 0 17,5 0 10,5

OTRO_VECTOR

5 6 7 8 X:= 9

17 0 17,5 0 10,5

5

OTRO_VECTOR

5 6 7 8 9

17 0 17,5 0 10,5

OTRO_VECTOR

X:=5 6 7 8 9

17 0 17,5 0 10,5

OTRO_VECTOR

5 X:= 6 7 8 9

17 0 17,5 0 10,5

OTRO_VECTOR

5 6 X:= 7 8 9

17 0 17,5 0 10,5

OTRO_VECTOR

5 6 7 X:= 8 9

Dubraska Delgado Estructuras de datos

21/27

Ahora que hemos trabajado con las operaciones en los arreglos Unidimensionales, declaraciones…

Realicemos un ejercicio en el que se trabajan con varias Estructuras de datos simultáneamente y con

distintos tipos de datos. La idea es que no se limite a trabajar con una sola estructura. A tal efecto se

presenta el siguiente Ejercicio

Análisis Inicial:

Según el enunciado se sabe que nuestra estructura sólo considerará a 15 clientes, y en ella se almacenará los

descuentos otorgados (el tipo de dato a emplear es real), aún cuando de forma explícita no se indica vamos a

emplear otras estructuras: Una para almacenar los nombres de los clientes y otra para almacenar el Plato

principal; ambas son de tipo alfanumérico pues su contenido está constituidos por letras. Gráficamente las

estructuras serían como siguen:

Como los tres arreglos tienen el mismo tamaño (15 posiciones) podemos en un solo ciclo de lectura

almacenar el nombre del cliente, el plato y el descuento otorgado.

Otra estructura repetitiva para recorrer el arreglo, buscando el mayor descuento otorgado para lo cual se

requiere una variable auxiliar cuyo valor sea tan bajo que el primer valor del arreglo se convierta

automáticamente en el mayor descuento otorgado. Recuerde que adicionalmente se desea conocer la

posición y el plato solicitado. Incluso acumular la suma de todos los descuentos otorgados para

posteriormente calcular el Promedio de descuentos otorgados.

Finalmente se mostrará la salida del algoritmo mediante impresiones de mensajes y variables.

La cadena de restaurantes “El Gran Sabor” han establecido una promoción solo por un día,

a los primeros 15 clientes que consuman un monto mayor a 600 BsF. se les otorgará un

descuento del 15%, se desea:

a. Guardar los descuentos otorgados en un arreglo.

b. Mostrar el mayor descuento otorgado, en que posición está, a quien se otorgó y el

plato principal solicitado por el cliente.

c. Calcular el promedio de descuentos otorgados.

Eduardo Mendoza

Liliana Ventura

Miguel Duarte

. . . . .

Andrés Urbina

1

2

3

15

CLIENTE

Parrilla

Pizza

Pollo a la Broster

. . . . .

Parrilla

1

2

3

15

PLATO

97,5

120

105

142,5

1

2

3

15

DESCUENTO

Dubraska Delgado Estructuras de datos

22/27

PSEUDOCÓDIGO CORRIDA EN FRÍO LECTURA

INICIO DEL ALGORITMO variosArreglos;

DEFINIR

M,posicion: Entero; DESCUENTO: ARREGLO [ 1 . . 15 ] DE real; CLIENTE, PLATO: ARREGLO [ 1 . . 15 ] DE alfanumérico;

sumaDesto, PromGral, mayor: real;

INICIO

DESDE M:= 1 HASTA 15 HAGA

INICIODESDE

IMPRIMIR („ Ingrese el Nombre del cliente: „);

LEER (CLIENTE [ M ]);

IMPRIMIR („ Ingrese el Plato principal: „);

LEER (PLATO[ M ]);

IMPRIMIR („ Ingrese el Descuento otorgado: „);

LEER (DESCUENTO [ M ]); FINDESDE;

SumaDesto, mayor:= 0;

DESDE M:= 1 HASTA 15 HAGA

INICIODESDE

SI ( DESCUENTO [ M ] > mayor ) ENTONCES

INICIOSI

mayor := DESCUENTO [ M ];

posicion:= M;

FINSI;

SumaDesto:= SumaDesto + DESCUENTO [ M ];

FINDESDE;

PromGral:= SumaDesto / M ;

IMPRIMIR(„El mayor descuento otorgado es:„, mayor);

IMPRIMIR(„Está ubicado en la posición:„, posición);

IMPRIMIR(„Fue otorgado a:„, CLIENTE [ posicion ]);

IMPRIMIR(„El plato principal fue:„, PLATO[ posicion ]);

FIN DEL ALGORITMO variosArreglos.

(Las estructura de dato están sin información)

Para M:= 1 Ingrese el Nombre del cliente:

Ingrese el Plato principal:

Ingrese el Descuento otorgado:

Para M:= 2 Ingrese el Nombre del cliente:

Ingrese el Plato principal:

Ingrese el Descuento otorgado:

EXPLICACIÓN LECTURA

El algoritmo emplea tres estructuras de datos: Una de tipo

real para almacenar los descuentos y dos estructuras de

datos de tipo alfanumérico para almacenar los nombres

. . . . . .

DESCUENTO

1 2 3 … 15

Este ciclo: Almacena

los valores en los

arreglos

Recorre el

Arreglo buscando

mayor Descuento

CLIENTE

1 2 3 … 15 PLATO

1 2 3 … 15

DESCUENTO

97,5

M:=1 2 3 … 15

PLATO

Parrilla

M:=1 2 3 … 15

CLIENTE

Eduardo

M:=1 2 3 … 15

DESCUENTO

97,5 120

1 M:=2 3 … 15

PLATO

Parrilla Pizza

1 M:= 2 3 … 15

CLIENTE

Eduardo Liliana 1 M:=2 3 … 15

Dubraska Delgado Estructuras de datos

23/27

de los clientes y el plato principal. Se emplean otras

variables dos enteras para controlar el ciclo y almacenar la

posición del mayor descuento y tres variables de tipo real,

para acumular los descuentos, almacenar el mayor

descuento y calcular el Promedio general de descuentos .

Luego de la sección de declaraciones se da INICIO al

cuerpo principal del Algoritmo, el primer Ciclo es

empleado para la lectura de datos de entrada se trabajan las

tres estructuras de datos simultáneamente. A tal efecto se

emplea la estructura DESDE-HASTA cuyo valor inicial es

1 y valor final 15.

Dentro del ciclo se realizarán seis instrucciones tres

mensajes para solicitar los datos al usuario y tres

instrucciones de lectura para almacenar dichos valores en la

estructura de dato respectiva; como el ciclo comprende más

de una instrucción se requiere un INICIO y un FIN del

Ciclo.

Para M:= 15 Ingrese el Nombre del cliente:

Ingrese el Plato principal:

Ingrese el Descuento

SumaDesto, mayor:= 0;

EXPLICACIÓN CICLO DE RECORRIDO CORRIDA EN FRÍO RECORRIDO

Una vez que se han ingresado los valores a los

respectivos arreglos, se realiza el recorrido únicamente

en la estructura de datos que nos interesa, en este caso

es DESCUENTO. La variable de control M tendrá

como valor inicial 1 y valor final 15. Básicamente tiene

dos instrucciones: Evaluar una condición (SI el

contenido del arreglo en una determinada posición es

mayor que el valor almacenado en la variable Mayor)

y acumular en la Variable SumaDesto los valores

almacenados en el arreglo DESCUENTO.

A su vez en la condición se realizan dos instrucciones

cuando ésta se cumple: cambiar el valor de Mayor y

guardar en la variable Posición el lugar que ocupa el

mayor descuento; cuyo valor nos servirá de referencia

para obtener el resto de la información en los otros

arreglos. Este proceso se lleva a cabo 15 veces hasta

llegar al último elemento del arreglo.

Para M:= 1

SI ( DESCUENTO [ M ] > mayor )

SI ( 97,5 > 0 )

Como la condición se cumple se realizan dos acciones

mayor := 97,5;

posicion:= 1

Posteriormente sigue con la siguiente instrucción en

el ciclo por lo tanto modifica el valor del acumulador

SumaDesto:= SumaDesto + DESCUENTO [ M ];

SumaDesto:= 0 + 97,5;

SumaDesto:= 97,5

Para M:= 2

SI ( DESCUENTO [ M ] > mayor )

SI ( 120 > 97,5 )

Como la condición se cumple se realizan dos acciones

mayor := 120;

posicion:= 2

Posteriormente sigue con la siguiente instrucción en

el ciclo por lo tanto modifica el valor del acumulador

SumaDesto:= SumaDesto + DESCUENTO [ M ];

SumaDesto:= 97,5 + 120;

SumaDesto:= 217,5;

EXPLICACIÓN LUEGO CICLO DE RECORRIDO

Una vez que se ha recorrido el arreglo, y se han

sumado todos los descuentos del arreglo mediante un

acumulador, se calcula el promedio General de

descuento dividiendo el acumulador entre el número

de elementos por esa razón usamos M que tiene el

número total de casillas del arreglo.

Por último se imprimen los mensajes…

DESCUENTO

97,5 120 105 . . . 142,5

1 2 3 … M:=15

PLATO

Parrilla Pizza Pollo a la ….. Parrilla

1 2 3 … M:= 15

CLIENTE

Eduardo Liliana Miguel …. Andrés 1 2 3 … M:=15

DESCUENTO

97,5 120 105 . . . 142,5

M:=1 2 3 … 15

DESCUENTO

97,5 120 105 . . . 142,5

1 M:=2 3 … 15

Dubraska Delgado Estructuras de datos

24/27

1. ¿Cuáles son las Operaciones que se pueden realizar sobre los arreglos?

2. Es posible ¿Asignar directamente Un valor a todo el arreglo? Justifique su respuesta.

3. SELECCIÓN SIMPLE

a. Dada la siguiente Declaración PALABRAS: ARREGLO [1 . . 15] DE carácter ¿Cuál es la Asignación

válida?

PALABRAS [17]:= „ m „;

PALABRAS [12]:= „ paralelepípedo „;

PALABRAS [ 7]:= „125‟

PALABRAS [ 8 ]:= „ x „

b. ¿Cuál es la Asignación válida para obtener el elemento 5 del Arreglo VALOR, sabiendo que i:= 3?

VALOR[ i + 2 ]:= i + 4;

VALOR[ i + 2]:= VALOR[ i - 1 ] + 9;

VALOR[ i + 2]:= i * 4;

VALOR[ i + 2 ]:= VALOR[ i - 2 ] + 6 ;

c. ¿Cuál es la instrucción de Asignación que permite GENERAR los valores del Arreglo CUENTA?

CUENTA [ J ]:= J * 2 + 3;

CUENTA [ J ]:= CUENTA [ J ] * 2;

CUENTA [ J ]:= J * 5;

CUENTA [ J ]:= J + 4;

d. ¿Cuál es la operación válida entre los arreglos VALOR y CUENTA para obtener el resultado

del arreglo M3?

M3 [ J ]:= VALOR [ J ] + CUENTA [ J ];

M3 [ J ]:= VALOR [ J ] - CUENTA [ J ];

M3 [ J ]:= VALOR [ J ] * CUENTA [ J ];

M3 [ J ]:= VALOR [ J ] / CUENTA [ J ];

AUTOEVALUACIÓN

12 15 18 21 24

1 2 i:= 3 4 5

VALOR

5 10 15 20 25

J:= 1 2 3 4 5

CUENTA

CUENTA

1

2

3

4

5

5

10

15

20

25

VALOR

1

2

3

4

5

12

15

18

21

24

M3

1

2

3

4

5

7

5

3

1

1

Dubraska Delgado Estructuras de datos

25/27

e. Se desea almacenar en un tercer Arreglo “ACUM”, la suma de los arreglos NOTA y N2. ¿Cuál

sería la Declaración correcta en Pseudocódigo del Arreglo ACUM? Si se cuenta con las siguientes

declaraciones NOTA: ARREGLO [1. . 30] DE real; y N2: ARREGLO [1..30] DE entero.

ACUM: ARREGLO [ 1 . . 30 ] DE entero;

ACUM: ARREGLO [ 1 . . 30 ] DE real;

ACUM: ARREGLO [ 5 . . 35 ] DE alfanumérico;

ACUM: ARREGLO [ 1 . . 30 ] DE carácter;

4. SELECCIÓN MÚLTIPLE

a. Dada la siguiente Declaración LETRAS: ARREGLO [5. . 35] DE alfanumérico ¿Cuáles Asignaciones

son válidas?

LETRAS [ 3 ]:= „ Araguaney „

LETRAS [ 13 ]:= „ p„

LETRAS [ 15 ]:= „ 215 „

LETRAS [ 6 ]:= „ Turpial „

LETRAS [ 25 ]:= 712

LETRAS [ 36 ]:= „ Orquídea„

LETRAS [ 15]:= „ m „

LETRAS [ 37]:= „ 3Palabras „

LETRAS [ 5]:= „ Esmeralda „

LETRAS [ 4]:= „ Perlas„

b. Dada la siguiente Declaración NUME: ARREGLO [10. . 55] DE entero ¿Cuáles Asignaciones son

válidas?

NUME [ 13 ]:= „ 245 „

NUME [ 45 ]:= 243

NUME [ 15 ]:= 24,3

NUME [ 6 ]:= 1040

NUME [ 25 ]:= 44,2

NUME [ 36 ]:= 267

NUME [ 55]:= 0,5

NUME [ 57]:= 45

NUME [ 15]:= 15

NUME [ 44]:= 21,9

c. ¿Cuáles instrucciones de Asignación permiten GENERAR los valores del Arreglo CALCULO?

CALCULO [ J ]:= J * 2;

CALCULO [ J ]:= (J * 4) / 2;

CALCULO [ J ]:= CALCULO [ J - 1]+ 2;

CALCULO [ J ]:= J + J;

CALCULO [ J ]:= CALCULO [ J + 1] - 2;

CALCULO [ J ]:= (J * 6) / 2;

CALCULO

J

5

6

7

8

9

10

12

14

16

18

Dubraska Delgado Estructuras de datos

26/27

1. COMPLETE EL PSEUDOCÓDIGO

Instrucciones: Representa a continuación por cada enunciado un Fragmento de código que permite la

solución del algoritmo. Usted deberá completar el pseudocódigo respectivo y Dibujar la estructura de Dato

correspondiente.

a. Elabore un Algoritmo que permita Asignar el valor cero (0) a todos los elementos del Arreglo “A “

de longitud 100.

FRAGMENTO DE CÓDIGO ALGORITMO COMPLETO ESTRUCTURA

DESDE X:= 1 HASTA 100 HAGA

A[X]:= 0;

b. Mostrar los datos contenidos en el arreglo “ M ” de longitud 50, Indicando mediante un mensaje

Los Valores del Arreglo son: .Se asume que el arreglo ya está lleno.

FRAGMENTO DE CÓDIGO ALGORITMO COMPLETO ESTRUCTURA

DESDE i:= 1 HASTA 50 HAGA

IMPRIMIR ( M [ i ] );

EJERCICIOS

Dubraska Delgado Estructuras de datos

27/27

2. RESUELVA

a. Elabore un algoritmo en pseudocódigo, que Solicite al usuario los valores enteros del Arreglo

“PRUEBAS”, adicionalmente se desea sumar el contenido de los de 45 elementos y calcular el

promedio. Se desea mostrar en pantalla La Suma Total y el promedio de los 45 elementos del

arreglo.

ALGORITMO COMPLETO ESTRUCTURA

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

b. La cadena de restaurantes “El Gran Sabor” han establecido una promoción solo por un día, a los

primeros 15 clientes que consuman un monto mayor a 600 BsF. se les otorgará un descuento del

15%, se desea:

a. Mostrar el menor descuento otorgado, en que posición está, a quien se otorgó y el plato

principal solicitado por el cliente.

b. Conocer cuántos clientes solicitaron como Plato Principal Parrilla.

c. La suma total de los Descuentos otorgados para aquellos clientes que solicitaron Pizza como

Plato Principal.

c. Elabore un algoritmo que resuelva las operaciones mostradas en la siguiente Figura:

NOTA: Ningún dato es solicitado al usuario todos se generan automáticamente.

CUENTA

1

2

3

4

5

6

12

18

24

30

VALOR

1

2

3

4

5

5

10

15

20

25

M3

1

2

3

4

5

30

120

270

480

750

*

*

*

*

*

=

=

=

=

=