Publicado el 30 de Junio del 2018
553 visualizaciones desde el 30 de Junio del 2018
7,4 MB
32 paginas
Creado hace 9a (01/01/2016)
Teoría Nº 6
Lenguaje de Diseño:
Estructuración de Datos
Primer Cuatrimestre 2016
ENUNCIADO:
DADO UN NÚMERO ENTERO POSITIVO, ENCONTRAR EL
ALGORITMO QUE DETERMINE EL FACTORIAL DE DICHO NÚMERO.
• DAR UN VALOR A UN OBJETO.
• CALCULAR LA SUMA DE DOS NÚMEROS
• CALCULAR EL PRODUCTO DE DOS NÚMEROS
• MIENTRAS <condición> HACER
<acciones primitivas>
FINMIENTRAS
2016
La determinación de los objetos es una parte importante en el proceso de
resolución
Restricción: los objetos deben determinarse en función de los cuatro tipos de
datos primitivos.
Ejemplo:
Una empresa recibe mensualmente información sobre las ventas de
cada una de sus tres sucursales. Se desea obtener un listado de
aquellas sucursales cuyas ventas superan el promedio de las mismas.
2016
Versión 1:
Versión 2:
t1 - Leer los datos de las sucursales.
t2 - Determinar el promedio.
t3 - Comprobar cual o cuáles de las sucursales
tiene venta superior al promedio.
t11 - Para cada sucursal leer sus ventas y
acumularlas.
t2 - Determinar el promedio.
t31 - Para cada sucursal leer sus ventas, comparar-
las con el promedio. Si es mayor al promedio,
informar.
2016
a
m
e
l
b
o
r
P
l
e
d
e
j
a
u
g
n
e
L
n
e
n
ó
i
c
u
l
o
s
a
l
e
d
o
j
u
l
F
e
d
a
m
a
r
g
a
i
D
¿Objetos?
C
De 1 a 3
Ingresar la venta de la sucursal
.
Acumular la venta.
Calcular el promedio.
De 1 a 3
Ingresar la venta de la sucursal
.
F
venta > promedio
V
informo
F
2016
Objetos?
venta - guarda la venta de cada sucursal.
acumulo - acumula las ventas
promedio - almacena promedio.
i - lleva la cuenta de la sucursal que trato.
2016
¿Desventajas?
Algoritmo en lenguaje de diseño:
ALGORITMO “Ventas”
COMENZAR
VENTA, ACUMULO, PROMEDIO: real
I: entero
PROMEDIO
0
ACUMULO 0
PARA I DESDE 1 HASTA 3 CON PASO 1 HACER
LEER VENTA
ACUMULO ACUMULO + VENTA
FINPARA
PROMEDIO
PARA I DESDE 1 HASTA 3 CON PASO 1 HACER
LEER VENTA
SI VENTA > PROMEDIO ENTONCES
ACUMULO / 3
ESCRIBIR I, VENTA
FINSI
FINPARA
FIN
2016
Solución 2:
Objetos
vent1 - guarda la venta de sucursal 1.
vent2 - guarda la venta de sucursal 2.
vent3 - guarda la venta de sucursal 3.
promedio - acumula las ventas y saca promedio.
2016
Algoritmo en Lenguaje de Diseño:
ALGORITMO “Ventas”
COMENZAR
VENT1, VENT2, VENT3, PROMEDIO: real
LEER VENT1, VENT2, VENT3
PROMEDIO (VENT1+ VENT2 + VENT3) / 3
SI VENT1 > PROMEDIO ENTONCES
ESCRIBIR VENT1
FINSI
SI VENT2 > PROMEDIO ENTONCES
FINSI
SI VENT3 > PROMEDIO ENTONCES
ESCRIBIR VENT2
ESCRIBIR VENT3
FINSI
FIN
2016
100 Objetos?
vent1 - guarda la venta de sucursal 1.
vent2 - guarda la venta de sucursal 2.
...
vent100 - guarda la venta de sucursal 100.
2016
ALGORITMO “Ventas”
COMENZAR
VENT1, VENT2, ..., VENT100, PROMEDIO: real
LEER VENT1, VENT2, ..., VENT100
PROMEDIO (VENT1+ VENT2 + .. + VENT100) / 100
SI VENT1 > PROMEDIO ENTONCES
ESCRIBIR VENT1
FINSI
SI VENT2 > PROMEDIO ENTONCES
FINSI
ESCRIBIR VENT2
.
.
.
SI VENT100 > PROMEDIO ENTONCES
ESCRIBIR VENT100
FINSI
FIN
2016
Problema:
existen ocasiones donde los objetos no se pueden representar solamente con
primitivas.
Es necesario relacionar 2 o más tipos primitivos para poder construir
nuestro nuevo objeto.
Ejemplo:
Representar el objeto número complejo.
número complejo
real
imaginaria
real
Preal
real
Pimag
Nuevo objeto, de tipo complejo, conformado o estructurado con objetos de
tipo primitivo.
2016
Todas las formas posibles en que nosotros relacionemos lógicamente datos
primitivos para construir nuevos objetos se denomina:
ESTRUCTURACIÓN DE DATOS
Características:
primitivos.
4 toda estructura se construye a partir de objetos
4 el conjunto de datos se identifica con un único
nombre.
4una estructura se diferencia de otra por la forma en
que sus componentes están relacionadas y el tipo
4se encuentran tanto en memoria principal como en memoria secundaria.
de las mismas.
Nos concentraremos en la estructuras de memoria principal
2016
Tipos de Estructuras de Datos:
Estructuras Enlazadas: los datos no se encuentran en posiciones
adyacentes de memoria.
Estructuras Contiguas o Físicas: los datos se encuentran en
posiciones adyacentes de memoria.
Existe una estructura en particular que nos interesa denominada:
ARREGLO LINEAL DE DATOS
2016
Arreglo Lineal
Solución 3:
Reunir los 100 objetos en un solo objeto estructurado.
120
1
578
2
625
3
1230
100
99
Arreglo Lineal
VECTOR
VENTA
120
1
578
2
625
3
VENTA[3]
625
1230
100
99
2016
Donde:
4 Todos los elementos del arreglo son del mismo tipo primitivo por lo tanto
es una estructura homogénea.
4Es una estructura estática, es decir su tamaño (cantidad y tipo de
elementos del arreglo) se define en tiempo de compilación a partir de la
declaración y no cambia durante la ejecución del programa. (Es posible definir
arreglos cuya dimensión se modifique en tiempos de ejecución pero este concepto no será
abordado en este curso) .
4Es una estructura lineal de acceso directo, es decir se accede a un dato
en forma directa con sólo indicar la posición o subíndice. El número que
indica la posición (subíndice) es un número natural.
4El número de elementos o dimensión, se define con la declaración junto
con el límite mínimo y límite máximo o rango.
2016
Declaración de un Arreglo:
VENTA: arreglo[1..100] de real
<Nombre>
:
arreglo
[ Li .. Ls]
de
<tipo>
2016
Usos y operaciones:
VENTA[15]
VENTA[I]
VENTA[K+5]
Asignar un valor
Operación
(valor almacenado en la posición 15 del arreglo)
(valor almacenado en la posición indicada por el valor
almacenado en I)
I 20
VENTA[I] ≡
(valor almacenado en la posición indicada por el valor
resultante de la expresión K+5)
VENTA[20]
K 20
VENTA[K+5]
VENTA[25]
VENTA[10]
≡ VENTA[20 +5] ≡
30
J 13 * J + VENTA[I]
2016
Objetos:
VENTA - arreglo de 100 elementos de tipo
real.
I - variable índice del arreglo.
PROMEDIO - para el cálculo del promedio.
ALGORITMO “Ventas”
COMENZAR
VENTA: arreglo [1..100] de real
PROMEDIO: real
I: entero
PROMEDIO
PARA I DESDE 1 HASTA 100 CON PASO 1 HACER
0
LEER VENTA[I]
PROMEDIO
PROMEDIO + VENTA[I]
FINPARA
PROMEDIO
PARA I DESDE 1 HASTA 100 CON PASO 1 HACER
PROMEDIO / 100
SI VENTA[I] > PROMEDIO ENTONCES
ESCRIBIR I, VENTA[I]
FINSI
FINPARA
FIN
2016
Ejemplo:
Suponga Ud. que se desea hacer un programa
relacionado con los 250 empleados de una empresa.
Los datos de cada empleado que el programa va a
necesitar son: el año de ingreso de esa persona a la
empresa, género ( F para Femenino y M para
Masculino ) y si es profesional o no ( Verdadero o
Falso ).
Todos esos datos se almacenarán en un único
arreglo.
¿Es posible definir el siguiente arreglo?
2016
Ejemplo:
Diseñe y dibuje de que manera estructurar el almacenamiento de los
siguientes datos en una única estructura. A y B son matrices de nxn valores
enteros.
¿Dimensión
del arreglo?
La selección de una estructura de datos y de la manera de relacionar dichos datos es
una decisión importante, ya que ello influye decisivamente en el algoritmo que va a
usarse para resolver un determinado problema.
PROGRAMACION= ESTRUCTRAS DE DATOS + ALGORITMOS
2016
Ejemplo:
Escribir un algoritmo que dado un arreglo de 7 elementos
enteros positivos menores a 5000, los muestre ordenados de
menor a mayor.
Solución:
- Ingresar los elementos en el arreglo.
- Encontrar el menor elemento del arreglo y mostrarlo.
- Repetir la operación anterior para los restantes sin
considerar el elemento ya encontrado.
2016
Se debería controlar
que
los números
i n g r e s a d o s s e a n
positivos y no mayor
que 5000
ALGORITMO “Ordenar”
COMENZAR
V: arreglo [1..7] de entero
I,J, MIN: entero
PARA I DESDE 1 HASTA 7 CON PASO 1 HACER
LEER V[I]
FINPARA
PARA I DESDE 1 HASTA 7 CON PASO 1 HACER
MIN 1
PARA J DESDE 1 HASTA 7 CON PASO 1 HACER
SI V[J] < V[MIN] ENTONCES
MIN J
FINSI
FINPARA
ESCRIBIR V[MIN]
V[MIN] 100000
FINPARA
FIN
2016
Ejemplo:
Escribir un algoritmo que ordene de menor a mayor los elementos de un
arreglo de 7 elementos enteros positivos.
Solución:
- Encontrar el menor elemento del arreglo.
- Intercambiarlo con el primero del arreglo.
- Repetir la misma operación para los restantes sin
considerar al elemento ya ordenado.
2016
Ejemplo:
estado inicial:
21 35 17 8 14 42 2
1º intercambio:
2 35 17 8 14 42 21
2º intercambio:
2 8 17 35 14 42 21
3º intercambio:
4º intercambio:
2 8 14 35 17 42 21
2 8 14 17 35 42 21
5º intercambio:
6º intercambio:
2 8 14 17 21 42 35
2 8 14 17 21 35 42
2016
Objetos:
V - arreglo de enteros a ordenar.
I,J - variables índice del arreglo.
MIN - variable auxiliar que indica el índice donde se
encuentra el elemento mínimo.
VAL_MI - variable auxiliar usada para el intercambio
de valores.
2016
Versión 1:
t1 - Ingresar los elementos del arreglo.
t2 - Repetidamente mientras el arreglo no esté
ordenado, buscar el menor del arreglo, luego
colocarlo en la posi
Comentarios de: Teoría 6 - Lenguaje de Diseño: Estructuración de Datos (0)
No hay comentarios