You are on page 1of 6

PARADIGMAS DE PROGRAMACIN

RESUMEN Y EJEMPLOS

PRESENTADO A : PROFESOR JORGE PACHN

PRESENTADO POR:

VICTOR MANUEL MANCIPE NEIRA

CORPORACIN UNIVERSITARIA MINUTO DE DIOS FACULTAD DE INGENIERA INGENIERA DE SISTEMAS DISEO DE SOFTWARE BOGOTA D.C. 2012

Paradigmas de programacin
Introduccin: Generalmente, en la vida real pensamos de una manera particular y muy definida, es decir, con pocas variaciones. Cuando empezamos a programar, a los inicios de la carrera, fue muy difcil para muchos, el adaptarse a esa forma de pensar tan diferente. Pero, con el tiempo comprendimos el por qu de la existencia de ese paradigma y nos sera difcil, ms adelante adaptarnos a otros. En este trabajo se explica brevemente el concepto, funcionamiento con ejemplos y las caractersticas de algunos paradigmas de programacin. Definicin Un paradigma de programacin es una manera de pensar o de resolver problemas de programacin, que se ha convertido en propuesta aceptada y aplicada por una comunidad de programadores. Tiene una estrecha relacin con la formalizacin de determinados. Generalmente, sufren cambios que o mejoras en el tiempo, o simplemente entran en desuso, ya que van otros que aportan nuevas o mejores soluciones. A la hora de programar, es comn no ceirse a un paradigma en concreto, sino tomar caractersticas de varios. Esto se conoce como programacin multiparadigma.

Programacin estructurada
Es una forma clara de escribir el cdigo, usando solamente 3 estructuras: secuencia, seleccin o condicin, e iteracin. Este paradigma no usa siendo innecesario el uso de la instruccin o instrucciones de transferencia incondicional como GOTO mltiples RETURN). Surge en los 70s y hoy en da es poco eficiente, comparada con la Programacin Orientada a Objetos. Lenguajes: Pascal, BASIC, otros. Ejemplo en Pascal:
Program Potenciacion; Uses Crt,Dos; Var a,b,c,i:Integer; Begin ClrScr; Write('Base: '); ReadLn(a); Write('Exponente: '); ReadLn(b); c:=1; For i:=1 To b Do Begin c:=c*a; End; WriteLn(''); Write('Resultado: ',c);

ReadKey; End.

Programacin orientada a objetos (POO)


Es la forma en la que ms se acerca la realidad al cdigo. Se abstrae de la realidad, pensando en trminos de objetos clases, atributos y mtodos. Empez a ser popular a principios de los 90s . Bsicamente, una clase es cualquier cosa de la cual podemos identificar acciones y caractersticas. El objeto es una de varias instancias posibles de dicha clase.

Caractersticas

Herencia: Una clase puede heredar a otra, teniendo as sus mismos mtodos y atributos. Abstraccin: identificar comportamientos comunes para definir nuevas clases en las que se puedan basas otras. Encapsulamiento: Reunir a todos los elementos que pertenecen a la misma clase, como mtodos get/set. Modularidad: subdividir una aplicacin en partes ms pequeas. Principio de ocultacin: Otorgar cierta visibilidad a las Clases, mtodos y atributos. Polimorfismo: Varias formas de realizar algo, dependiendo de la necesidad particular. Se representa por la sobrecarga de mtodos.

Se conoce a Simula (1967) como el primer lenguaje que posee las caractersticas principales de un lenguaje orientado a objetos. Lenguajes: Hay muchos lenguajes orientados a objetos. Los ms reconocidos son:

ActionScript C++ C# Gambas Java JavaScript PHP (a partir de su versin 5) Python Ruby VB.NET Visual FoxPro (en su versin 6) Visual Basic 6.0

Ejemplo: Lenguaje Java


import java.util.Scanner; public class Triangulo implements Figura { int base; int altura; public void leerDatos()

{ Scanner obj= new Scanner (System.in); base=obj.nextInt(); altura=obj.nextInt(); } public void imprimirDatos() { System.out.println("El area del triangulo es:" + hallarArea()); } public float hallarArea() { return ((base*altura)/2); } public static void main(String[] args) { System.out.println("Ingrese el valor para la base y altura del triangulo:"); Triangulo x = new Triangulo(); x.leerDatos(); x.imprimirDatos(); System.out.println("Ingrese el valor del lado del cuadrado:"); Cuadrado a = new Cuadrado(); a.leerDatos(); a.imprimirDatos(); System.out.println("Ingrese el valor del radio del circulo:"); Circulo z = new Circulo(); z.leerDatos(); z.imprimirDatos(); } } public interface Figura { public float hallarArea(); }

Programacin lgica
Se construyen programas basados nicamente en expresiones lgicas, es decir, que son ciertas o falsas, en vez de una expresin interrogativa (una pregunta) o expresiones imperativas (una orden). La programacin lgica se usa en aplicaciones de inteligencia artificial como Sistemas expertos, donde un sistema de informacin imita las recomendaciones de un experto sobre algn dominio de conocimiento; y de reconocimiento de lenguaje natural, donde un programa es capaz de comprender (parcialmente) la informacin contenida en lenguaje humano. Lenguajes: Prolog y algunas variaciones del mismo Ejemplo: Lenguaje Prolog

Base de conocimiento:
legusta(pepe,pesca). legusta(maria,bailar). legusta(ana,pesca). legusta(pepe,musica). legusta(maria,musica). legusta(ana,bailar).

Preguntas sobre la base de informacin:


-Le gusta la msica a Pepe y a Maria? : ?-legusta(pepe,musica),legusta(maria,musica). - Le gusta bailar a Pepe o a Maria le gusta la msica?: ?-legusta(pepe,musica);legusta(maria,musica). -Le gusta bailar a Pepe y a Maria no le gusta la msica?: ?-legusta(pepe,musica),not(legusta(maria,musica)).

Programacin funcional
Los clculos se ven como una funcin matemtica que hacen corresponder entradas y salidas. No hay nocin de posicin de memoria y por tanto, necesidad de una instruccin de asignacin. Los bucles se modelan a travs de la recursividad ya que no hay manera de incrementar o disminuir el valor de una variable. La mayora de los lenguajes funcionales soportan el concepto de variable, asignacin y bucle. Este paradigma surgi a principios de los 60s, debido a las necesidades de los investigadores en el campo de la inteligencia artificial y en sus campos secundarios del clculo simblico, pruebas de teoremas, sistemas basados en reglas y procesamiento del lenguaje natural. Lenguajes puros: Se destacan Haskell y Miranda. Ejemplo: Lenguaje Haskell Las funciones en Haskell se definen en dos partes. La primera identifica el nombre, el dominio y el intervalo de la funcin, mientras que la segunda describe el significado de la funcin:
max3 :: Int -> Int-> Int -> Int max3 x y z | x >= y && x>=z =x | y >= x && y>=z =y | otherwise =z

Esta sera la salida:


Main> max3 4 7 5 7 Main> max3 'a' 'b' 'c' ERROR - Type error in application *** Expression : max3 'a' 'b' 'c' *** Term : 'c'

*** Type : Char *** Does not match : Int Main> max3 1 'a' 3 ERROR - Type error in application *** Expression : max 1 'a' 3 *** Term : 'a' *** Type : Char *** Does not match : a -> b

You might also like