43
Los paradigmas de programación Diagramación y programación algorítmica

Los paradigmas de programación

Embed Size (px)

DESCRIPTION

programación

Citation preview

  • Los paradigmas de programacin

    Diagramacin y programacin algortmica

  • Que es un paradigma?Paradigma es un modelo o patrn en cualquier disciplina cientfica.

    Etimolgicamente significa modelo o ejemplo . A su vez tiene las mismas races que demostrar.

  • Que son paradigmas de programacin?Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que unvocamente trata de resolver uno o varios problemas claramente delimitados.

  • Tipos de paradigmas de programacin ms comunes :Imperativo o por procedimientos: es considerado el ms comn y est representado, por ejemplo, por C, BASIC o Pascal. Los programas imperativos son un conjunto de instrucciones que le indican al computador cmo realizar una tarea.

    Declarativo: por ejemplo la programacin funcional, la programacin lgica, o la combinacin lgico-funcional. est basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solucin.

    Funcional: est representado por Scheme o Haskell. Esta basado en la utilizacin de funciones aritmticas que no maneja datos mutables o de estado.

    Lgico: est representado por Prolog. La programacin lgica encuentra su hbitat natural en aplicaciones de inteligencia artificial o relacionadas: sistema experto|Sistemas expertos, donde un sistema de informacin imita las recomendaciones de un experto sobre algn dominio de conocimiento.

    Orientado a objetos: est representado por Smalltalk, un lenguaje completamente orientado a objetos. La programacin orientada a objetos es un paradigma que utiliza objetos como elementos fundamentales en la construccin de la solucin. Un objeto es una abstraccin de algn hecho o ente del mundo real que tiene atributos que representan sus caractersticas o propiedades y mtodos que representan su comportamiento o acciones que realizan.

  • Que es un programa de computador?

    Un programa informtico es un conjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una computadora

  • Que pasos debo seguir para realizar un programa de computador?

    PasosEtapaDescripcin1Anlisis del problemaConducen al diseo detallado por medio un pseudocdigo escrito en forma de un algoritmo y creacin de un diagrama de flujo2Diseo de algoritmo y diagramacin 3CodificacinSe implementa el algoritmo en un cdigo escrito en un lenguaje de programacin. Refleja las ideas desarrolladas en las etapas de anlisis y diseo4Compilacin y ejecucinTraduce el programa fuente a programa en cdigo de mquina y lo ejecuta.5VerificacinBusca errores en las etapas anteriores y los elimina.6Depuracin7DocumentacinSon comentarios, etiquetas de texto, que facilitan la comprensin del programa

  • Algoritmos de programacin Concepto de algoritmoLos seres humanos realizamos una serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema, esto se repite innumerables veces durante el da. En realidad estamos aplicando un algoritmo para resolver un problema.

    Definicin de Algoritmo.- secuencia ordenada y cronolgica de pasos que llevan a la solucin de un problema o a la ejecucin de una tarea (o actividad).

  • El algoritmo debe tener las siguientes caractersticas:

    Tener un principioSer simples, claros, precisos, exactos.Tener un orden lgico.Debe ser finito.Tener un fin.

    La definicin de un algoritmo debe describir tres partes:

    Entrada.Proceso.Salida

  • PseudocdigoLa serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema a travs de algoritmos, los desarrollamos por medio de pseudocdigo.

    El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje comn, instrucciones de programacin y palabras clave que definen las estructuras bsicas.

    El objetivo del pseudocdigo es permitir que el programador se centre en los aspectos lgicos de la solucin, evitando las reglas de sintaxis de los lenguajes de programacin.

    No siendo el pseudocdigo un lenguaje formal, los pseudocdigo varan de un programador a otro, es decir, no hay un pseudocdigo estndar.

  • Estructura y diseo de un algoritmoExiste una gran cantidad de problemas que requieren de un anlisis profundo y de un pensamiento flexible y estructurado para la solucin.

    La idea es ofrecer un conjunto de tcnicas y herramientas metodolgicas que permitan flexibilizar y estructurar el razonamiento utilizado en la solucin de problemas, esto provocar finalmente la construccin de algoritmos eficientes.

    A continuacin en la figura podemos observar las etapas que debemos seguir para la solucin de un problemaProblemaAnlisisprofundo delproblemaConstruccindelalgoritmoVerificacinelalgoritmo

  • La secuenciacin es una estructura de control que permite a la computadora ejecutar una accin, despus otra, luego la que sigue y as sucesivamente hasta la ltima.Dichas acciones pueden consistir en operaciones primitivas elementales como declaraciones de variables, leer datos, imprimir datos o calcular alguna expresin.Es conveniente etiquetar cada accin con nmeros desde el uno en forma ascendente de uno en uno, para denotar el orden secuencial.Por lo tanto los elementos bsicos que integran la estructura de un algoritmo son:

    Construccin de algoritmos

  • Encabezado.- todo algoritmo debe tener un encabezado como identificacin, el cual debe empezar con la palabra Algoritmo seguida por una descripcin del problema a resolver.Inicio.- todo algoritmo debe empezar con la etiqueta 1, que marca el inicio del mismo.Declaraciones.- despus de marcar el inicio se debe hacer las declaraciones que se necesiten como: variables, constantes, tipos de datos, etc.Leer, calcular e imprimir.- los siguientes pasos pueden consistir en acciones tales como: leer datos, calcular algunas expresiones aritmticas e imprimir datos tantas veces como se requiera y en el orden apropiado para resolver el problema en cuestin.Fin del algoritmo.- el ltimo paso del algoritmo consiste en incluir la indicacin fin.Construccin de algoritmos

  • Ejemplo No 1 Calcular e imprimir el sueldo de un empleado, se pedir la clave del empleado, las horas trabajadas y el pago por hora trabajada.

    Algoritmo 1: Calcular el sueldo de un empleado

    1. Inicio2. Declaracin de variables:cve, ht: enteropht, sueldo: real (flotante)3. Leer cve, ht, pht4. sueldo = ht * pht5. Imprimir cve, sueldo6. Fin

  • Ejemplo No 2Desarrollar un algoritmo que permita leer un nmero en radianes e imprima su equivalencia en grados; as mismo, leer un nmero en grados e imprima su equivalencia en radianes.

    Algoritmo 2: Convierte radianes a grados y grados a radianes

    1. Inicio2. Declaracin de variables:PI = 3.145926536: real (flotante) rad, grad, numrad, numgrad: real (flotante)3. Leer rad, grad4. numgrad = rad * (180 / PI)5. numrad = grad * (PI / 180)6. Imprimir numgrad, numrad7. Fin

  • Ejemplo No 3Desarrollar un algoritmo para calcular el promedio de un estudiante, se pedir la matricula del estudiante y cuatro calificaciones de los exmenes. Se imprimir la matricula del estudiante y el promedio.

    Algoritmo 3: Calcular promedio de un estudiante

    1. Inicio2. Declaracin de variablesmatest: enterocal1, cal2, cal3, cal4, calfin: real (flotante)3. Leer matest, cal1, cal2, cal3, cal44. calfin = (cal1 + cal2 + cal3 + cal4) / 45. Imprimir matest, calfin6. Fin

  • Diagramas de flujoDebemos recordar que un diagrama de flujo debe ilustrar grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema.

    Los smbolos colocados adecuadamente, permiten crear una estructura grfica flexible que ilustra los pasos a seguir para alcanzar un resultado especfico.

    El diagrama de flujo facilitar ms tarde la escritura del programa en algn lenguaje de programacin

  • Reglas para la construccin de diagramas de flujoTodo diagrama de flujo debe tener un inicio y un fin. Todas las lneas utilizadas para indicar la direccin del flujo del diagrama deben estar conectadas. La conexin puede ser a un smbolo que exprese lectura, proceso, decisin, impresin, conexin o fin de diagrama.El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a derecha (right to left).Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser rectas, verticales y horizontales.La notacin utilizada en el diagrama de flujo debe ser independiente del lenguaje de programacin.Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a entender lo que hicimos.Si el diagrama de flujo requiere ms de una hoja para su construccin, debemos utilizar los conectores adecuados y enumerar las pginas convenientemente.No puede llegar ms de una lnea a un smbolo.

  • Smbolos para la creacin de diagramas de flujo

    Smbolo utilizado para marcar el inicio y el fin del diagrama flujo. Smbolo utilizado para introducir los datos de entrada. Expresa lectura.

    Smbolo utilizado para representar un proceso. En su interior se expresan asignaciones, operaciones aritmticas, cambios de valor de celdas en memoria, etc.

    Smbolo utilizado para representar una decisin. En su interior se almacena una condicin y dependiendo del resultado de la evaluacin de la misma se sigue por una de las ramas o caminos alternativos: verdadero o falso.

  • Smbolo utilizado para representar la impresin de un resultado. Expresa escritura.

    Smbolo utilizado para expresar conexin dentro de una misma pgina. Smbolos utilizados para expresar la direccin del flujo del diagrama

    Smbolo utilizado para expresar conexin entre pginas diferentes.Smbolo utilizado para representar una decisin mltiple. En su interior se almacena un selector y dependiendo del valor de dicho selector se sigue por una de las ramas o caminos alternativos.

  • Diagrama de flujo Ejemplo 1iniciocve, htphtsueldo = ht * phtcvesueldofin

  • Diagrama de flujo Ejemplo 2inicioradgradnumgrad = rad * (180 / PI)numgradnumradfin

    numrad = grad * (PI / 180)

  • Diagrama de flujo Ejemplo 3iniciomatest, cal1cal2, cal3cal4calfin = (cal1 + cal2 + cal3 + cal4) / 4matestcalfinfin

  • Ejemplo 4Crear un algoritmo y un Diagrama de flujo que encuentra la suma de los primeros N nmeros naturales

  • Algoritmo 4: Suma de los primeros N nmeros naturales

    1. Inicio2. Declaracin de variablesN, i, suma: entero3. Leer N4. suma=05. i=16. Si i>N al paso 8 7. Si no suma= suma +i i=i+1 pasar al paso 6 8. Imprima suma 9. fin

  • Ejemplo 5Crear un algoritmo y un Diagrama de flujo que permita escribir los 100 primeros pares

  • Algoritmo 5: Escribe los 100 primeros pares

    1. Inicio2. Declaracin de variablesN, p: entero 3. N=100 p=04. Si N>=0 imprima p p=p+2 N=N-1 pasar al paso 4 5. Si no pasar al siguiente 6. fin

  • Ejemplo 6Crear un algoritmo y un Diagrama de flujo que pida 3 nmeros y diga cual es el mayor

  • Algoritmo 6: Determina cual es el mayor de 3 nmeros

    1. Inicio2. Declaracin de variablesa,b,c,mayor: entero 3. Leer a,b,c 4. mayor=a 5. Si mayor>b Si mayor>c 6. imprima a es el mayor pasar 11 7. Si no imprima c es el mayor pasar 11 8. Si no haga mayor=b 9. Si mayor>c imprima b es el mayor pasar 11 10. si no imprima c es el mayor pasa11 11. fin

  • Encuentra el mayor de N nmeros

  • Ejemplo 7La sucesin de Fibonacci se define de la siguiente forma: a1=1 a2=1 a3=2 a4=3 an=an-1 + an-2 Para n>2, es decir, los dos primeros son 1 y el resto cada uno es la suma de los dos anteriores, los primeros son: 1, 1, 2, 3, 5, 8, 13, 21, . Hacer un algoritmo y un diagrama de flujo para calcular el N-simo trmino de la sucesin.

  • Algoritmo 7: Determina el N-simo termino de la sucesin de Fibonacci

    1. Inicio 2. Declaracin de variablesN,a,b,c: entero 3. Leer N 4. Si N

  • InicioNN
  • Ejemplo 8Hacer un algoritmo y un diagrama de flujo que lea N nmeros y escriba la suma de los pares y el producto de los impares

  • Algoritmo 8:Determina la suma de pares y producto de impares de N nmeros 1. Inicio 2. Declaracin de variablesN,sp,pi, A: entero 3. Leer N 4. sp=0 5. pi=1 6 leer A 7 Si A MOD 2=0 sp=sp+A pasar 9 8.Si no pi=pi*A 9. N=N-1 10. Si N=0 imprimir sp, pi pasar 12 11. Si no pasar al paso 6 12. fin

  • InicioFinNsp=0pi=1pi=pi*Asp=sp+AAA MOD 2=0N=N-1N=0sp,piSiNoNoSi

  • Ejemplo 9Hacer un algoritmo y un diagrama de flujo para calcular AB , siendo B un entero, ntese que B puede ser cero o negativo. No se puede emplear logaritmos.

  • Algoritmo 9: Calcular AB 1. Inicio 2. Declaracin de variablesA,B,p: entero 3. Leer A,B 4. p=1 5. Si B=0 pasar 12 6. Si no Si B>0 pasar a 8 7. Si no A=1/A B=-B 8. p=p*A 9. B=B-1 10. Si B=0 pasar 12 11 Si no pasar 8 12.imprimir p 13. fin

  • InicioFinA,Bp=1B=B-1A=1/AB=0p=p*AB=0pB>0SiNoB=-BSiNoNoSi

  • Ejemplo 10Hacer un algoritmo y un diagrama de flujo para calcular el factorial de N (N!=1*2*3*.*N)