You are on page 1of 7

Resumen Programacin 1 ao

Informtica: Es la ciencia que estudia el anlisis y resolucin de problemas utilizando computadoras.


Computadora: Es una mquina digital y sincrnica, con cierta capacidad de clculo numrico y lgico, controlada por un programa
almacenado y con posibilidad de comunicacin con el mundo eterior.
Programa: !on"unto de instrucciones , e"ecutables sobre una computadora, que permite cumplir una #uncin espec$#ica. %ormalmente,
alcanzan su #uncin en tiempo #inito.
Dato: Es una representacin de un ob"eto del mundo real mediante la cual se pueden modelizar aspectos de un problema que se desea
resol&er con un programa sobre una computadora.
Modelizacin de problemas del mundo real
Abstraccin: Es el proceso de anlisis del mundo real para interpretar los aspectos esenciales de un problema y epresarlo en trminos
precisos.
Modelizacin: Es 'bstraer un problema del mundo real y simpli#icar su epresin, tratando de encontrar los aspectos principales que se
pueden resol&er (requerimientos), los datos que se *an de procesar y el conteto del problema.
Pre condicin: Es una in#ormacin que se conoce como &erdadera antes de iniciar el programa.
Pos condicin: Es una in#ormacin que debiera ser &erdadera al concluir el programa, si se cumple adecuadamente el requerimiento
pedido.
Especificacin de problemas del mundo real
Especificacin: Es el proceso de analizar los problemas del mundo real, determinar en #orma clara y concreta el ob"eti&o que se desea.
+odo esto condiciona el resultado #inal del programa.
Lenguaje de programacin: Es el con"unto de instrucciones permitidas y de#inidas por sus reglas sintcticas y su &alor semntico, para
la epresin de soluciones a problemas.
Algoritmo: Es la especi#icacin rigurosa de la secuencia de pasos (instrucciones) a realizar sobre un autmata (en este caso
computadora) para alcanzar un resultado deseado en un tiempo #inito.
Las partes de un programa
Instrucciones: Representacin de las operaciones que e"ecutar la computadora al interpretar el programa.
Datos: ,on &alores de in#ormacin de los que se necesita disponer, y en ocasiones trans#ormar, para e"ecutar la #uncin del programa.
+anto los datos constantes como los &ariables deben guardarse en la memoria de datos de una computadora. En ambos casos estarn
representados simblicamente por un nombre que se asocia con una direccin -nica de memoria.
Comentarios: ,on tetos aclaratorios para el programador o usuario, que no es entendido ni e"ecutado por la computadora.
Correccin de un Programa
n programa es correcto si cumple con su especificacin! Para poder e&aluar el comportamiento de un programa es necesario tener
una especi#icacin clara de lo que debe *acer. .ay &arias formas de e"idenciar #ue un programa es correcto/
$esteo de un programa %$esting&
El ob"eti&o del proceso de prueba es e"idenciar #ue el programa trabaja. Esta bater$a de pruebas %dise'adas adecuadamente& debe
ser planteada y no implementada de #orma aleatoria. 0o que cuenta es la calidad de las pruebas( no la cantidad! ,i la prueba sale mal,
el programa debe ser corregido ) probado con la misma bater*a de test que las que tu&o cuando #all.
Debugging
El proceso de descubrir un error en el cdigo ) repararlo es lo que se conoce como debugging. 0os errores pueden aparecer en el
programa de distintas formas:
Problemas en el dise'o del programa, ser necesario corregirlo o re*acerlo.
La utilizacin de un proceso errneo!
Codificacin incorrecta!
Errores sintcticos( semnticos o lgicos, es decir errores de diseo.
Errores de +ard,are o errores del sistema %poco probables&!
El programa puede ser aplicado a situaciones no pre"istas produciendo resultados incorrectos!
' &eces *ace #alta poner c*ec1points o brea1points, o incluso *acer un seguimiento paso a paso (trace), inspeccionando los &alores de
las &ariables *asta *allar un error.
-al.t+roug+s
0a idea es seguir o leer el cdigo de programa )a escrito intentando comprender( o +aciendo comprender a otro como funciona!
2n programa bien estructurado es #cil de leer.
/
Problema del
3undo Real
abstraccin
3odelo
Programa
3odulo
anlisis
descomposicin
diseo de algoritmos
,istema
Resumen Programacin 1 ao
0erificacin
!uando probamos nuestro programa, obser"amos ) analizamos su comportamiento! ,obre la base de este anlisis podemos *acer
ciertas a#irmaciones del tipo/ si nuestro programa es utilizado con ciertos datos, produce ciertos resultados. En otras palabras se "erifica
si se cumplen las pre ) poscondiciones del programa *ntegramente!
Etapas en la resolucin de problemas con la computadora
Anlisis del problema
En esta primera etapa, se analiza el problema en su conteto del mundo real. 4eben obtenerse los requerimientos del usuario. El
resultado de este anlisis es un modelo preciso del ambiente del problema del ob"eti&o a resol&er . 2n componente importante de este
modelo don los datos a utilizar y las trans#ormaciones de los mismos que lle&an al ob"eti&o.
Dise'o de una solucin
,uponiendo que el problema es computable, a partir del modelo se debe de#inir una estructura de sistema de *ard5are y so#t5are que lo
resuel&a. El primer paso en el diseo de la solucin es la modularizacin del problema, es decir , la descomposicin del mismo en partes
que tendrn una #uncin bien de#inida y datos propios (locales). ' su &ez, debe establecerse la comunicacin entre los mdulos del
sistema de so#t5are propuesto.
Especificacin de algoritmos
!ada uno de los mdulos del sistema de so#t5are tiene una #uncin que se puede traducir en un algoritmo. 0a eleccin del algoritmo
adecuado para la #uncin del mdulo es muy importante para la e#iciencia posterior del sistema de so#t5are.
Escritura de programas
2n algoritmo es una especi#icacin simblica que debe con&ertirse en un programa real sobre un lengua"e de programacin concreto.
Este proceso de programacin tiende a automatizarse en la medida que los lengua"es algor$tmicos se acercan a los lengua"es reales de
programacin. ' su &ez el programa escrito debe compilarse, lo que permite detectar y corregir errores sintcticos que se cometan en la
escritura del programa.
0erificacin
2na &ez que se tiene un programa escrito en un lengua"e real y depurado de errores sintcticos, se debe &eri#icar que su e"ecucin
conduzca al resultado deseado, con datos representati&os del problema real. ,er$a deseable poder a#irmar que el programa es correcto
ms all de los datos particulares de la e"ecucin. ,in embargo, en los casos reales es muy di#$cil realizar una &eri#icacin e*austi&a de
todas las posibles condiciones de e"ecucin de un sistema de so#t5are.
0a #acilidad de &eri#icacin y la depuracin de errores de #uncionamiento del programa conducen a una me"or calidad del sistema y este
es el ob"eti&o central de la 6ngenier$a de ,o#t5are. %tese que un error de #uncionamiento de alguno de los programas del sistema puede
lle&ar a la necesidad de re*acer cualquiera de las etapas anteriores, incluso &ol&er a discutir los requerimientos.
Eficiencia de un algoritmo
Eficiencia: Es la mtrica de calidad de los algoritmos, asociada con una utilizacin ptima de los recursos del sistema de cmputo
donde se e"ecutar el algoritmo.
$ipos de datos
$ipo de dato: Es una clase de ob"eto ligado a un con"unto de operaciones para crearlo y manipularlo. ,e caracteriza por tener/
2n rango de &alores posibles.
2n con"unto de operaciones realizables sobre ese tipo.
,u representacin interna.
$ipo de datos simples!
0os tipos de datos simples son/
%umrico (Entero, Real, etc.).
0gico (7oolean).
!arcter(!*ar).
$ipo de dato definido por el usuario: Es aquel tipo de dato que no eiste en la de#inicin del lengua"e, donde el usuario es el
encargado de determinar su denominacin, y el con"unto de &alores operaciones que dispondr el mismo. ,us &enta"as son/
8leibilidad.
8acilitan la documentacin.
,eguridad.
0os tipos de datos de#inidos por el usuario son/
Enumerati"o: Es una coleccin de datos cuyos &alores son constantes simblicas (identi#icadores que detallan los &alores
posibles del tipo) que solo permite operaciones de asignacin o comparacin, dado que se inicializa con &alores.
1ubrango/ Es un tipo ordinal, que consiste en una secuencia de alg-n tipo ordinal, llamado tipo pase del subrango.
Conjunto: Es una coleccin de datos simples, todos del mismo tipo.
1tring: Es una sucesin de caracteres que se almacenan en un rea contigua de la memoria y puede ser le$do o escrito.
2
Resumen Programacin 1 ao
Estructura de datos
Estructura de datos/ Es un con"unto de &ariables (no necesariamente del mismo tipo) relacionadas entre si de di&ersas #ormas.
Clasificacin
Por tipo de dato: 1imples (Entero, carcter, etc.) o Compuestas (registro, pila, etc.).
Por contenido: 3omog4neas (pilas, colas, etc.) o 3eterog4neas (registros, etc.).
Por alocacin en memoria: Estticas ('rreglos, etc.) o Dinmicas (listas, arboles, etc.).
Por tipo de acceso: Inde5ado ('rreglos, etc.) o 1ecuencial (listas, etc.).
$ipo de datos compuesto
6egistro
2n registro es un conjunto de "alores , con tres caracter$sticas bsicas /
Es una estructura 3eterog4nea!
0os &alores almacenados en un registro son llamados campos, y cada uno de ellos tiene un identi#icador9 los campos son
nombrados indi&idualmente, como &ariables ordinarias.
Es una estructura Esttica!
Pilas
2na pila es una coleccin ordenada de elementos, con tres caracter$sticas/
Es una estructura 3omog4nea.
0os elementos pueden recuperarse en orden in&erso al que #ueron almacenados (LI78).
Es una estructura Dinmica.
Colas
2na cola es una coleccin ordenada de elementos, con tres caracter$sticas/
Es una estructura 3omog4nea!
0os elementos pueden recuperarse en el orden en que #ueron almacenados (7I78).
Es una estructura Dinmica.
$ipo de datos compuestos Inde5ados
Arreglo
2n arreglo es una coleccin ordenada e inde5ada de elementos, con las siguientes caracter$sticas/
Es una estructura 3omog4nea.
0os elementos pueden recuperarse en cual#uier orden, simplemente indicando la posicin que ocupan dentro de la estructura9
por este moti&o es una estructura inde5ada.
Es una estructura Esttica.
0ectores
Es un arreglo lineal, tiene solo un $ndice, o sea una sola dimensin.
Matriz
Es un tipo de dato con dos dimensiones o $ndices. +ambin puede pensarse en ella como un "ector de "ectores. Es un grupo de
elementos +omog4neo, con un orden interno y en el que se necesitan dos *ndices para referenciar un 9nico elemento de la estructura.
6ecursi"idad
0a 6ecursi"idad se da cuando se obtienen soluciones a problemas en los que una funcin o procedimientos se llama a si mismo para
resol&er el problema, entonces se obtiene subprogramas recursi&os.
Anlisis de algoritmos: El concepto de eficiencia
2n algoritmo es e#iciente si realiza una administracin correcta de los recursos del sistema en el cual se e"ecuta.
,e analizan bsicamente dos aspectos de la e#iciencia de un algoritmo/
$iempo de ejecucin!
4esde este punto de &ista se consideran mas e#icientes aquellos algoritmos que cumplan con la especificacin del problema en el
menor tiempo posible. En este caso, el recurso a optimizar es el tiempo de procesamiento. ' esta clase pertenecen aquellas
aplicaciones con tiempo de respuesta finito.
Administracin o uso de la memoria!
,ern e#icientes aquellos algoritmos que utilicen las estructuras de datos adecuadas de manera de minimizar la memoria
ocupada. ,i bien el tiempo de procesamiento no se deja de lado, en este punto se consideran los problemas donde el 4nfasis esta
puesto en el &olumen de la informacin a manejar en la memoria.
.ay dos #ormas de estimar el tiempo de ejecucin de un algoritmo/
1) Realizar un anlisis terico / ,e busca obtener una medida del traba"o realizado por el algoritmo a #in de obtener una estimacin
terica de su tiempo de e"ecucin. 7sicamente, se calculan el n-mero de comparaciones y de asignaciones que requiere el
:
Resumen Programacin 1 ao
algoritmo. 0os anlisis similares realizados sobre di#erentes soluciones de un mismo problema permiten estimar cul es la solucin
ms e#iciente.
:) Realizar un anlisis emp*rico/ se basa en la aplicacin de "uegos de datos di#erentes a una implementacin del algoritmo, de
manera de medir sus tiempos de respuesta. 0a aplicacin de los mismos datos a distintas soluciones del mismo problema presupone
la obtencin de una *erramienta de comparacin entre ellos. El anlisis emp$rico tiene la &enta"a de ser muy #cil de implementar,
pero no tiene en cuenta algunos factores como/
La "elocidad de la m#uina, esto es, la e"ecucin del mismo algoritmo en computadoras distintas produce di#erentes
resultados. 4e esta #orma no es posible tener una medida de re#erencia.
Los datos con los #ue se ejecuta el algoritmo, ya que los datos empleados pueden ser #a&orables a una de los algoritmos,
pero pueden no representar el caso general, con lo cual las conclusiones de la e&aluacin pueden ser errneas.
6eglas generales
6egla /: Para lazos incondicionales.
El tiempo de e"ecucin de un lazo incondicional es, a lo sumo, el tiempo de e"ecucin de las sentencias que estn dentro del lazo,
incluyendo testeos, multiplicada por la cantidad de iteraciones que se realizan.
6egla 2: Para lazos incondicionales anidados.
,e debe realizar el anlisis desde adentro +acia afuera. El tiempo total de e"ecucin de un bloque dentro de lazos anidados es el
tiempo de e"ecucin del bloque multiplicado por el producto de los tamaos de todos los lazos incondicionales.
6egla :: 6# ; +*en ; Else.
4ado un #ragmento de cdigo de la #orma/
6# condicin
t*en ,1
else ,:
El tiempo de e"ecucin no puede ser superior al tiempo del testeo ms el m(t1,t:) donde t1 es el tiempo de e"ecucin de ,1, y t: es el
tiempo de e"ecucin de ,:.
6egla ;/ Para sentencias consecuti&as.
Eficiencia en algoritmos recursi"os
Des"entajas desde el punto de &ista de la e#iciencia
El o"er+ead (sobrecarga) de tiempo y memoria asociado con la llamada a subprogramas.
0a ineficiencia in+erente de algunos algoritmos recursi&os.
Algoritmos de bus#ueda
4e#inicin/ El proceso de ubicar in#ormacin particular en una coleccin de datos es conocido como algoritmos de b-squeda.
<9s#ueda Lineal
<9s#ueda <inaria
0a b-squeda binaria sobre un &ector ordenado se basa en la estrategia de <di&ide y &encers= y aplica el mismo criterio que el que se
utiliza para encontrar el cero de una #uncin continua.
Algoritmos de ordenacin
4e#inicin/ el proceso por el cual, un grupo de elementos se puede ordenar se conoce como algoritmo de ordenacin.
M4todo de seleccin
Para ordenar un &ector de n elementos, a>1?, ... , a>n?, busca el elemento menor seg-n el criterio adoptado y lo ubica al comienzo. Para
mantener la dimensin del &ector , se intercambia con a>1?. ' continuacin se busca el segundo elemento menor del &ector y se
intercambia con a >:?. !ontin-a as$ sucesi&amente buscando el primo menor y lo coloca en su lugar, *asta que todos los elementos
quedan ordenados.
Para ordenar un &ector completo es necesario realizar n;1 pasadas por el &ector.
M4todo de intercambio o <urbujeo
Procede de una manera similar al de seleccin, en el sentido de que realiza n;1 pasadas sobre los datos para ordenar un &ector de n
$tems. Pero a di#erencia del anterior, no mue&e los elementos grandes distancias, sino que a lo sumo realiza correcciones locales de
distancia 1, es decir, compara $tems adyacentes y los intercambia si estn desordenados. 'l #inal de la primera pasada, se *abrn
comparado n;1 pares y el elemento ms grande *abr sido arrastrado, *acia el #inal del &ector. 'l #inal de la segunda pasada, el segundo
mimo *abr sido ubicado en la posicin n;1. En general, en la i;sima pasada, se posicionar el mimo entre los i primero elementos
del &ector, comparando i;1 pares e intercambiando en cada comparacin de ser necesario. Es importante notar que a pesar de no *aber
cambios, los elementos del &ector se siguen comparando *asta terminar, realizando de esta #orma un traba"o innecesario.
Esto puede corregirse #cilmente inspeccionando cundo *a *abido cambios y en caso de no producirse ninguno, se termina el proceso.
;
Resumen Programacin 1 ao
M4todo de insercin
Este mtodo ordena le &ector de entrada insertando cada elemento a>i? entre los i;1 anteriores que ya estn ordenados. Para realizar esto
comienza a partir del segundo elemento, suponiendo que el primero est ordenado. ,i los dos primero elementos estn desordenados, los
intercambia. 0uego, toma el tercer elemento y busca su posicin correcta con respecto a los dos primeros. En general, para el elemento i,
busca su posicin con respecto al los i;1 elementos anteriores y de ser necesario lo inserta adecuadamente.
Datos compuestos enlazados
Lista como estructura de datos
Definicin: una lista dinmica es un conjunto de elementos de tipo +omog4neo, donde los mismos no ocupan posiciones
secuenciales o contiguas de memoria, es decir, los elementos o componentes de una lista pueden aparecer #$sicamente dispersos en la
memoria, si bien mantienen un orden lgico interno. Es una estructura lineal.
Punteros
2n puntero es un tipo de &ariable, en el cual se almacena la direccin de un dato ) permite manejar direcciones <apuntando= a un
elemento determinado.
!ada elemento de una lista puede representarse de la siguiente manera/
@ 4ato @ 6ndicador @
El campo dato es la in#ormacin que se mane"a, y el campo indicador es una &ariable de tipo puntero, cuyo contenido es la direccin del
primo elemento de la estructura.
8peraciones con lista
Recorrer una lista.
'cceder al 1;simo elemento de la lista.
6ntercalar un nue&o elemento de la lista.
'gregar un elemento al #inal de la lista.
!ombinar dos listas, para #ormar una sola.
0ocalizar un elemento de la lista para conocer su posicin dentro de ella.
7orrar un elemento de la lista.
Listas circulares
Lista enlazada en la cual el 9ltimo elemento apunta al primero o principio de la lista.
0entajas :
!ada nodo de la lista circular es accesible desde cual#uier otro nodo de ella.
0as operaciones de concatenacin y di&isin de las listas son ms e#icaces con listas circulares.
Des"entajas :
,e pueden producir bucles o lazos infinitos. 2na #orma de e&itar estos bucles es disponer de un nodo especial denominado cabecera
que se puede di#erenciar de otros nodos por tener un &alor especial
Lista doblemente enlazadas
0ista enlazada la cual se puede recorrer en ambos sentidos! En este tipo de listas, adems del campo in#ormacin se cuenta con dos
&ariables del tipo puntero que apuntan al nodo anterior y siguiente.
Arboles
2n rbol es una estructura de datos que satisface tres propiedades:
(1) !ada elemento del rbol %nodo& se puede relacionar con cero o ms elementos, los cuales llama =+ijos>!
(:) ,i el rbol no est &ac$o, +a) un 9nico elemento al cual se llama ra*z ) #ue no tiene padre %predecesor&, es decir, no es *i"o
de ning-n otro.
(A) $odo otro elemento del rbol posee un 9nico padre ) es un descendiente (*i"o del *i"o del *i"o, etc.) de la ra*z!
Arbol binario
2n rbol donde cada nodo no tiene ms de dos +ijos se denomina rbol binario y se dice que est ordenado cuando cada nodo del
rbol es mayor (seg-n alg-n criterio preestablecido) que los elemento de su subrbol izquierdo (el que tiene como ra$z a su *i"o
izquierdo ) y menor o igual que los de su subrbol derec*o (el que tiene como ra$z a su *i"o derec*o).
Introduccin a tipos abstractos de datos %$AD&
Modulo: Es cada una de las partes #uncionalmente independientes en que se di&ide un programa.
Interfaz: Es la especi#icacin de las #uncionalidades del mdulo y que puede contener las declaraciones de tipos y &ariables que daban
ser conocidas eternamente. %P9blica&!
Implementacin: 'barca el cdigo de los procedimientos que concretan las #uncionalidades internas. %Pri"ado&!
?
Resumen Programacin 1 ao
Encapsulamiento
2n paso tendiente a la creacin de especi#icaciones abstractas &erdaderas o abstracc$on de datos es lograr encapsulamiento o
empa#uetamiento de los datos/ se de#ine un nue&o tipo y se integran en un mdulo todas las operaciones que se pueden *acer con l.
,i adems el lengua"e permite separar la parte "isible %interfaz& de la implementacin, se tendr ocultamiento de datos %data
+idding&!
B si se logra que la solucin del cuerpo del mdulo pueda modificar la representacin del objeto@dato( sin cambiar la parte "isible
del mdulo, se tendr independencia de la representacin.
4e *acer todo lo anterior, se tiende a mejorar la calidad de los programas, su legibilidad, su reutilizacin y su mantenimiento.
Diferencia entre tipo de dato ) tipo abstracto de dato
El concepto de tipo abstracto de dato es un tipo de dato de#inido por el programador que incluye/
Especi#icacin de la representacin de los elementos del tipo.
Especi#icacin de las operaciones permitidas con el tipo.
Encapsulamiento de todo lo anterior, de manera que el usuario no pueda manipular los datos del ob"eto, ecepto por el uso de las
operaciones de#inidas en el punto anterior.
0a #orma de programacin utilizada en los cap$tulos anteriores corresponde a la clsica ecuacin de Cirt* (Cirt*, 1DEF)/
Programa A Datos B Algoritmos
Es decir, dado un problema a resol&er, se busca representar los ob"etos que participan en el mismo e incorporar los algoritmos
necesarios para llegar a la solucin.
0a concepcin de este algoritmo se realiza pensando en la solucin del problema en su con"unto y en tal sentido se aplican las tcnicas
de modularizacin a din de reducir la comple"idad del problema original.
,e debe notar que el comportamiento de los datos no se tiene en cuenta en esta etapa. 4e esta #orma, el programa implementado se
aplica -nicamente a la solucin del problema original, ya que #unciona como un todo. 4e otra manera, la -nica relacin que eiste entre su
mdulos tiene como #in la solucin de un problema especi#ico.
,in embargo, esto puede me"orarse si se re#ina la ecuacin anterior. En la ecuacin de Cirt* la parte 'lgoritmos se puede epresar
como/
Algoritmo A Algoritmo de datos B Algoritmo de control
donde se entiende como Algoritmo de datos a la parte del algoritmo encargada de manipular las estructuras de datos del problema, y
Algoritmo de control a la parte que representa el mtodo de solucin del problema, independiente de las estructuras de datos
seleccionadas.
4ado que los +'4 re-nen en su de#inicin la representacin y el comportamiento de los ob"etos del mundo real se puede escribir la
ecuacin inicial como/
Programa A Datos B Algoritmos de Datos B Algoritmos de Control
Reemplazando <Datos B Algoritmos de Datos= como +'4 se establece la siguiente ecuacin/
Programa A $AD B Algoritmos de Control
que describe el en#oque de desarrollo utilizando +ipos 'bstractos de 4atos.
,e puede notar que en este caso, el programa principal es di#erente al que resulta al no utilizar +'4, ya que la parte 'lgoritmos de
!ontrol se re#iere a la relacin de los distintos ob"etos para resol&er el problema original pero el comportamiento de cada ob"eto se
encuentra definido en el $AD.
0entajas de uso de $AD
En el momento de disear y desarrollar el +'4 no interesa conocer la aplicacin que lo utilizar. Esto permite concentrarse
-nicamente en la implementacin del nue&o tipo.
En el momento de utilizar el +'4 no interesa saber cmo #uncionar$a internamente, solo bastar con conocer las operaciones que
permiten mane"arlo.
7ormas de Abstraccin: tipos de datos abstractos ) tipos de datos lgicos
'l de#inir pilas y colas se *a realizado abstraccin en dos direcciones/ abstraccin de datos (se de#inieron las caracter*sticas del
objeto) y abstraccin de operaciones (se de#inieron las operaciones permitidas sobre el objeto indicando la interfaz).
Este tipo de dato se denomina +40 (+ipo de dato lgico) pues eiste conein lgica, conocida por el usuario entre los tipos, por
e"emplo, la declaracin del tipo pila, y los procedimientos o #unciones asociadas con dic*o tipo.
Con los $DL no se llega a un &erdadero tipo abstracto de datos porque no eiste una &inculacin estructural entre dic*o tipo y las
operaciones asociadas al mismo9 es ms/ los datos declarados dentro del tipo podr$an ser accedidos por oras operaciones y, asimismo, las
operaciones asociadas con el tipo podr$an ser utilizadas para otros datos.
4e *ec*o no e5iste lo que se conoce como encapsulamiento del dato abstracto, sal&o en la mente del programador o usuario.
6e#uerimientos ) dese'o de un $AD
4isponer de un +'4 brinda la posibilidad de tener cdigo reusable, donde se represente no solo la estructura de los datos, sino
tambin su comportamiento. Esto requiere/
Poder encapsular dentro de un mdulo del lengua"e tanto la especificacin "isible como la implementacin de las operaciones!
C
Resumen Programacin 1 ao
Poder declarar los tipos protegidos de modo que la representacin interna est4 oculta de la parte &isible del mdulo.
Poder +eredar el $AD, es decir, crear instancias a partir de ese molde, donde se repitan o modi#iquen las #uncionalidades del
tipo, respetando sus caracter$sticas bsicas.
El dise'o de un tipo de dato abstracto lle&a consigo la seleccin de/
na representacin interna, lo que implica escoger las estructuras de datos adecuadas para representar la in#ormacin. 4ic*a
seleccin est estrec+amente relacionada con la complejidad de la implementacin de las operaciones.
0as operaciones a pro"eer para el nue&o tipo ) el grado de parametrizacin de las mismas.
Estas operaciones pueden clasi#icarse en/
Gperaciones para crear o inicializar objetos que permite inicializar la estructura de dato o generar la situacin inicial necesaria
para crear un objeto nue"o.
Gperaciones para modificar los objetos del $AD que permiten agregar o quitar elementos del +'4.
Gperaciones que permiten analizar los elementos del $AD.
Arc+i"os
Arc+i"o: Es una estructura de datos que guarda en un dispositi"o de almacenamiento secundario de una computadora una
coleccin de elementos del mismo tipo. Es una estructura de datos 3omog4nea ) Dinmica!
,e le debe asignar a una &ariable un nombre lgico, que re#erenciar indirectamente al arc*i&o #$sico, esta &ariable ser un arc*i&o
lgico.
8peraciones <sicas
0incular o relacionar el arc+i"o f*sico( que est en memoria secundaria) con el nombre lgico que se utilizar dentro del
algoritmo.
Abrir un arc*i&o para s u procesamiento.
Cerrar un arc*i&o, luego de operar con el mismo.
Leer los elementos contenidos en un arc*i&o.
Escribir nue"os elementos en un arc*i&o o modificar alguno eistentes.
8rganizacin ) acceso a los datos
Acceso 1ecuencial / En un arc*i&o con acceso secuencial, para acceder al elemento n;simo deber accederse a los n H 1 elementos
anteriores.
Acceso Directo/ El acceso directo permite re#erenciar o cambiar elementos en cualquier orden.
8peraciones frecuentes en el procesamiento de datos
Merge: Es la operacin por la cual se mezclan 2 o ms arc+i"os secuenciales ordenados en uno slo que tendr la totalidad de los
elementos. !uando se eige que el arc+i"o resultante est4 ordenado por alg9n criterio, ser necesario intercalar elementos de un
arc*i&o y de otro seg9n ese orden. 1ino se puede *acer un append.
Modificacin de un arc+i"o maestro con uno de detalle!
Altas ( bajas ) modificaciones
D

You might also like