estructuras de datos - … · o arreglo bidimensional: un arreglo bidimensional (de dos...
TRANSCRIPT
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
*
*
*
*
*
=
=
=
=
=