You are on page 1of 3

La abstraccin: A pesar de que estamos acostumbrados a utilizar el trmino

La evolucin de la abstraccin en la programacin: En los primeros tiempos de la informtica, los programadores se comunicaban con las
abstraccin dentro del contexto de la programacin, la verdad es que esta palabra
mquinas en binario, lo cual resultaba ser una tarea extremadamente larga y complicada. Al cabo de un tiempo apareci el cdigo
tiene un origen mucho ms lejano. Desde siempre, el hombre se ha tenido que
ensamblador, cuyos nemotcnicos facilitaron notablemente el trabajo de los programadores al evitar que tuviesen que recordar las secuencias
enfrentar a problemas muy complejos, sin embargo, con el paso del tiempo hemos
de unos y ceros que formaban cada instruccin. Estos nemotcnicos constituyeron la primera escala de abstraccin de la era informtica.
descubierto un buen mtodo para enfrentarnos a ellos: la abstraccin. Abstraer
consiste en centrarse slo en la parte principal y esencial de los problemas,
dejando as a un lado todos los detalles insignificantes o menos importantes.

Abstraccin funcional y abstraccin de datos: La abstraccin funcional aparece al Cuando surge la abstraccin de datos: La abstraccin de datos surge cuando se abstrae el significado de los diferentes tipos de datos que
pensar de manera abstracta las operaciones que necesitamos para resolver un aparecen en nuestro problema. Este tipo de abstraccin nos permite crear nuevos tipos de datos pensando en los posibles valores que
problema. Este tipo de abstraccin nos permite definir operaciones nuevas en una pueden tomar y en las operaciones que los manipulan. Como cabe esperar, estas operaciones sern a su vez abstracciones funcionales.
aplicacin que anteriormente careca de ellas. La abstraccin funcional fue la
primera en aparecer ya que es fcil de llevar a la prctica debido a que su
implementacin es posible en la gran mayora de los lenguajes de programacin.
Suele corresponderse con el uso de procedimientos o funciones.

Se define como: Un tipo de dato se puede definir como un conjunto de valores y un conjunto de operaciones definidas por esos valores. Clasificar los datos en distintos tipos
Datos, tipos de datos y TAD: Los datos son los valores
aporta muchas ventajas, como por ejemplo indicarle al compilador la cantidad de memoria que debe reservar para cada instancia dependiendo del tipo de dato al que
que manejamos en la resolucin de un problema, tanto
los valores de entrada, como los de proceso y los de pertenezca.
salida. Es decir, los datos son informacin y por lo tanto
distinguimos varios tipos de datos.
Las principales ventajas que nos aportan los TAD son las siguientes:

1. Mejoran la conceptualizacin y hacen ms claro y comprensible el cdigo.


Tipos abstractos de datos: Un tipo de datos definido por el programador se
2. Hacen que el sistema sea ms robusto.
denomina tipo abstracto de datos (TAD) para distinguirlo de los tipos predefinidos
Los Tipos Abstractos de de datos. Los tipos abstractos de datos estn formados por los datos (estructuras 3. Reducen el tiempo de compilacin.
de datos) y las operaciones (procedimientos o funciones) que se realizan sobre
Datos esos datos. El conjunto de operaciones definidas sobre el TAD debe ser cerrado, es 4. Permiten modificar la implementacin sin que afecte al interfaz pblico.
decir, slo se debe acceder a los datos mediante las operaciones abstractas
definidas sobre ellos. La abstraccin de datos slo permite acceder a ellos de 5. Facilitan la extensibilidad.
manera controlada.

La modularidad tambin tiene principios y son los siguientes:


Modularidad: La programacin modular descompone un programa
en un pequeo nmero de abstracciones independientes unas de
otras, pero fciles de conectar entre s. Como hemos visto 1. Capacidad de descomponer un sistema complejo.
anteriormente, un mdulo se caracteriza principalmente por su 2. Capacidad de componer a travs de sus mdulos.
interfaz y su implementacin. La programacin modular sigue el 3. Comprensin de sistema en partes.
criterio de ocultacin de informacin: si no se necesita algn tipo de
informacin, no se debe tener acceso a ella.
Listas: Esta forma de almacenar elementos consiste en colocarlos en una lista lineal que tiene un enlace por cada elemente para determinar cul es el elemento
siguiente. La lista de cero elementos se denomina lista vaca.
Colas: En el contexto de la programacin, una cola es una lista en la que los elementos se insertan por un extremo (llamado fondo) y se suprimen por el otro (llamado
frente). En esta estructura de datos el primer elemento que entra es el primero en salir. Es un tipo de dato muy comn tanto dentro de la informtica como en la vida
TAD lineales:
real.
Pilas: Una pila es una estructura de datos en la cual todas las inserciones y las eliminaciones se realizan por el mismo extremo, denominado cima de la pila. En una pila, el
ltimo elemento en entrar es el primero en salir, al contrario de lo que pasa en las colas.

Arboles: El rbol es un TAD que organiza sus elementos (nodos) de forma jerrquica. Si una rama va del nodo a al nodo b, entonces a es el padre de b. Todos los nodos
tienen un padre, excepto el nodo principal, denominado raz del rbol.
TAD no lineales:
Grafos: Hemos visto que los rboles binarios representan datos entre los cuales existe una jerarqua. Los grafos sin embargo se utilizan para representar relaciones
arbitrarias entre datos.
public class Registro { public string getCorreo(){

public string nombre; return correo_electronico;

public string apellidos; {

public int numero_movil; public void setFecha(string


fecha_de_nacimiento){
public string correo_electronico;
this.fecha_de_nacimiento=fecha_de_nacimi
public string fecha_de_nacimiento;
ento;
public string sexo;
}
public void setNombre(string nombre){
public string getFecha(){
this.nombre=nombre;
return fecha_de_nacimiento;
}
{
public string getNombre(){
public void setSexo(string sexo){
return nombre;
this.sexo=sexo;
{
}
public void setApellidos(string apellido){
public string getSexo(){
this.apellido=apellido;
return sexo;
}
{
public string getApellido(){
Public Registro(string nombre, string
return apellido; nombre, public int numero_movil, string
correo_electronico, string
{ fecha_de_nacimiento, string sexo,){
public void setNumero(int numero_movil){ this.nombre=nombre
this.numero_movil = numero_movil; this.apellido=apellido;
} this.numero_movil = numero_movil;
public string getNumero(){ this.correo_electronico=correo_electronico;
return numero_movil; this.sexo=sexo;
{ this.fecha_de_nacimiento=fecha_de_nacimi
public void setCorreo(string ento;
correo_electronico){ {
this.correo_electronico=correo_electronico;

You might also like