Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
lenguaje algoritmico 5

lenguaje algoritmico 5

Ratings: (0)|Views: 1,290 |Likes:
Published by anon-68902

More info:

Published by: anon-68902 on Jul 02, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

06/16/2009

pdf

text

original

 
TUPLASIntroducción a las Estructuras de DatosDefinición de nuevos tipos de datosManipulación de tuplasVectores de tuplasLectura/escritura de Tuplas desde teclado y ficheroFunciones y acciones que devuelven tuplasEjercicio completoEjercicios propuestosIntroducción a las Estructuras de Datos
Hasta ahora hemos centrado básicamente nuestro estudio en una forma adecuada dealgoritmizar problemas, o lo que es lo mismo, de encontrar algoritmos de solución paraciertos problemas del mundo real. Para conseguirlo nos hemos basado en:
Utilización eficiente de las estructuras de control básicas: asignación, secuencia,alternativa e iteración
Dividir el problema en subproblemas más fáciles de solucionar, construyendo programas según un diseño descendente o top-down (diseño modular)
Reutilización de algoritmos mediante la utilización de librerías de componentes yadesarrollados y probadosSin embargo, existe otro gran area de conocimiento que hemos tratado con poca profundidad hasta ahora y es la de utilizar tipos de datos “avanzados”. En nuestroestudio hemos introducido los tipos básicos (predefinidos) como el entero, el real, elcarácter, o el lógico, y con posterioridad hemos visto como agrupar datos del mismotipo (homogeneos) en “almacenes” como son las tablas
1
. A la vez hemos estudiado quelos datos pueden proceder del dispositivo de entrada estandar (el teclado) o bien pueden proceder de un almacenamiento permanente en disco (un fichero
2
). Asimismo laescritura de resultados puede realizarse en pantalla o bien en ficheros.En programación existe una igualdad que debe intentar cumplirse:
PROGRAMA = ALGORITMO + ESTRUCTURAS DE DATOS
De tal forma que los programas desarrollados con estructuras de datos adecuadas,resultan de mayor nivel y legibilidad, redundando esto en su costo de mantenimiento, deactualización y de desarrollo.Como estructuras de datos (EDs) se conoce a todo aquello que sirva para almacenar de forma organizada distintas informaciones que se deban manipular en los algoritmos.Existen distintos tipos de EDs como son las listas, colas, árboles, grafos, etc., que sesalen fuera de nuestros objetivos. Sin embargo vamos a estudiar como crear nuevos
1
Comúnmente en programación se llama vectores o
arrays
a las tablas unidimensionales, y matrices a las bidimensionales. Además, los arrays de caracteres se denominan cadenas o
 strings
.
2
Los ficheros que hemos estado utilizando han sido de texto (que contienen caracteres ASCII o de otrocódigo), pero también pueden utilizarse ficheros binarios, cuya manipulación es más eficiente ycompacta, pero que no pueden ser abiertos con un editor de texto.
 
tipos de datos a partir de los ya existentes, de forma que las nuevas variables de estosnuevos tipos puedan contener información diversa (hetereogenea). A estos tipos dedatos los llamaremos
estructuras, registros o tuplas
.Ejemplo: si queremos almacenar algunas de las distintas informaciones quecaracterizan a una persona, podremos crear una tupla que contenga un espacio paraalmacenar su nombre, otro para su edad y otro para su teléfono (cada una de estasinformaciones se denomina campo, y cada uno será del tipo adecuado a los datos quetenga que albergar):
Nombre: cadenaEdad: enteroTeléfono: cadena
Definición de nuevos tipos de datos
Definiremos en lenguaje algorítmico los nuevos tipos de datos dentro del párrafo
Utilizando
, de forma que podremos utilizarlos en el fichero en el que se incluya
3
.Veamosun ejemplo concreto:Ejemplo: definición de un tipo de datos tupla para contener información relativa a una persona. Al nuevo tipo lo llamamos
persona
.
UtilizandoTipo
Persona=
tupla
Nombre:
cadena
Edad:
entero
Telefono:
cadenaftuplaFtipo
A partir de esta definición podemos crear variables de ese nuevo tipo, y por supuesto podemos dar valores a sus campos, para lo que utilizaremos el operador de selección decampo ( . ):
p, q: persona;p.nombre:= ”pepe”p.edad:= 23p.telefono:= ”956662112”
Podemos asignar variables de tipo estructura directamente (por ejemplo, para doshermanos gemelos):
q:=pq.nombre:= ”manolo”
Se pueden crear tipos aún más avanzados, a partir de los ya existentes:
3
Podemos hacerlo también de otra forma: crear un fichero independiente con los nuevos tipos de datosque queramos utilizar en nuestra aplicación en incluir éste posteriormente en todos aquellos archivos enlos que se pretenda hacer uso de esos tipos.
 
Ejemplo: creación de un tipo tupla
alumno
, a partir del tipo
persona
(damos por hechoque cualquier 
alumno
es una
persona
, y además tiene otras características)
Tipo
Alumno=
tupla
Datos: personaNotas:
tabla
[50] de
real
Curso:
enteroftuplaFtipo
De esta forma, podemos definir variables de este nuevo tipo y darle valores:
x,y: alumnox.curso:= 1x.notas[0]:= 5.0x.notas[1]:= 7.5x.datos.nombre:= “carlos”
Manipulación de tuplas
Aparte de dar valores individuales a los campos de una variable de tipo estructura,debemos estudiar por su importancia y amplia utilización la forma de crear tablas ovectores de tuplas y como rellenar éstas con informaciones procedentes ya sea deteclado o de fichero.
Creación de vectores de tuplas
De la misma manera que creabamos tablas de números reales o de enteros, es posiblecrear variables que sean tablas de registros. Por ejemplo:
lista_amigos: tabla[100] de personalista_clase: tabla[400] de alumno
Con estas definiciones podemos hacer, por ejemplo, que “pepe” sea nuestro primer amigo:
lista_amigos[0]:=p
 // ya que “pepe” era la variable persona p
O podemos rellenar individualmente algún campo de alguno de nuestros amigos:
lista_amigos[1].nombre:= “alfonso”
Evidentemente sobre los vectores de tuplas se pueden utilizar los mismos mecanismosque sobre las tablas de enteros o reales que estabamos acostumbrados a manejar. Esdecir, se pueden atacar de la misma forma (con los mismos esquemas) problemas derecorrido y de búsqueda. Veremos algunos ejemplos después del apartado siguiente.

Activity (2)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->