jueves, 4 de junio de 2020

Aplicacion de productos

Agrega tu producto

// Product Constructor class Product { constructor(nombre, precio, año) { this.nombre = nombre; this.precio = precio; this.año = año; } } // UI Constructor class UI { addProduct(producto) { const productList = document.getElementById('product-list'); const element = document.createElement('div'); element.innerHTML = `
Producto: ${producto.nombre} - Precio: ${producto.precio} - año: ${producto.año} Eliminar
`; productList.appendChild(element); } resetForm() { document.getElementById('product-form').reset(); } deleteProduct(element) { if (element.name === 'Eliminar') { element.parentElement.parentElement.remove(); this.showMessage('Producto eliminado correctamente', 'info'); } } showMessage(message, cssClass) { const div = document.createElement('div'); div.className = `alert alert-${cssClass} mt-2`; div.appendChild(document.createTextNode(message)); // Show in The DOM const container = document.querySelector('.container'); const app = document.querySelector('#App'); // Insert Message in the UI container.insertBefore(div, app); // Remove the Message after 3 seconds setTimeout(function () { document.querySelector('.alert').remove(); }, 5000); } } // DOM Events document.getElementById('product-form') .addEventListener('submit', function (e) { const name = document.getElementById('name').value, price = document.getElementById('price').value, year = document.getElementById('year').value; // Create a new Oject Product const product = new Product(name, price, year); // Create a new UI const ui = new UI(); // Input User Validation if (name === '' || price === '' || year === '') { return ui.showMessage('Por favor complete los datos', 'danger'); } // Save Product ui.addProduct(product); ui.showMessage('Producto agregado correctamente', 'success'); ui.resetForm(); e.preventDefault(); }); document.getElementById('product-list') .addEventListener('click', function (e) { const ui = new UI(); ui.deleteProduct(e.target); e.preventDefault(); });

viernes, 22 de mayo de 2020

PARADIGMAS DE PROGRAMACIÓN

Un paradigma de programación es un estilo de desarrollo de programas. Es decir, un modelo para resolver problemas computacionales. Los lenguajes de programación, necesariamente, se encuadran en uno o varios paradigmas a la vez a partir del tipo de órdenes que permiten implementar, algo que tiene una relación directa con su sintaxis.
¿Cuáles son los principales paradigmas de programación?
  • Imperativo. Los programas se componen de un conjunto de sentencias que cambian su estado. Son secuencias de comandos que ordenan acciones a la computadora.
  • Declarativo. Opuesto al imperativo. Los programas describen los resultados esperados sin listar explícita mente los pasos a llevar a cabo para alcanzarlos.
  • Lógico. El problema se modela con enunciados de lógica de primer orden.
  • Funcional. Los programas se componen de funciones, es decir, implementaciones de comportamiento que reciben un conjunto de datos de entrada y devuelven un valor de salida.
  • Orientado a objetos. El comportamiento del programa es llevado a cabo por objetos, entidades que representan elementos del problema a resolver y tienen atributos y comportamiento.
Otros son de aparición relativamente reciente y no forman parte del grupo principal:
  • Dirigido por eventos. El flujo del programa está determinado por sucesos externos (por ejemplo, una acción del usuario).
  • Orientado a aspectos. Apunta a dividir el programa en módulos independientes, cada uno con un comportamiento bien definido.
Cada paradigma es ideal para la resolución de un conjunto de problemas particular, por lo que no puede decirse que uno sea necesariamente mejor que otro.


CARACTERÍSTICAS DE LOS TIPOS DE PARADIGMAS DE PROGRAMACIÓN

Paradigma Imperativo 
  • Describe cómo debe realizarse el cálculo, no el porqué. 
  • Un cómputo consiste en una serie de sentencias, ejecutadas según un control 
          de flujo explícito, que modifican el estado del programa. 
  •  Las variables son celdas de memoria que contienen datos (o referencias),
          pueden ser modificadas, y representan el estado del programa.
  • La sentencia principal es la asignación. 
  • Es el estándar ‘de facto’. 
    • |Asociados al paradigma imperativo se encuentran los paradigmas
                     procedural, modular, y la programación estructurada. 
    • El lenguaje representativo sería FORTRAN-77, junto con COBOL, BASIC,
          PASCAL, C, ADA. 
    •  También lo implementan Java, C++, C#, Eiffel, Python, ...            
Paradigma Declarativo 
  • Describe que se debe cálcular, sin explicitar el cómo. 
  • No existe un orden de evaluación prefijado. 
  • Las variables son nombres asociados a definiciones, y una vez instanciadas
            son inmutables. 
  • No existe sentencia de asignación. 
  •  El control de flujo suele estar asociado a la composición funcional, la 
           recursividad y/o técnicas de reescritura y unificación. 
    • Existen distintos grados de pureza en las variantes del paradigma. 
    •  Las principales variantes son los paradigmas funcional, lógico, la 
                     programación  reactiva y los lenguajes descriptivos.
  • Algunos lenguajes declarativo son Haskell (Programación funcional), 
         ML (Programación funcional), Lisp (Programación funcional), Prolog 
         (Programación lógica), F-Prolog (Programación lógica difusa), Curry
         (Programación lógico-funcional)
Programación Funcional 
  •  Basado en los modelos de cómputo cálculo lambda (Lisp, Scheme)
            y lógica combinatoria (familia ML, Haskell) 
  •  Las funciones son elementos de primer orden 
  •  Evaluación por reducción funcional. Técnicas: recursividad,
             parámetros acumuladores, CPS, Mónadas. 
  •  Familia LISP (Common-Lisp, Scheme): 
    •  Basados en s-expresiones. 
    •  Tipado debil. 
    • Meta-programación 
  • Familia ML (Miranda, Haskell, Scala): 
    •  Sistema estricto de tipos (tipado algebraico) 
    •  Concordancia de patrones. 
    • Transparencia referencial 
    •  Evaluación perezosa (estruct. de datos infinitas)
  • Entre los lenguajes de programación funcional más importantes 
        se encuentran los siguientes: LISP., ML., Haskell., OCaml., F#,Erlang.
Programación Lógica 
  • Basado en la lógica de predicados de primer orden 
  • Los programas se componen de hechos, predicados y relaciones. 
  •  Evaluación basada en resolución SLD: unificación + backtracking. 
  • La ejecución consiste en la resolución de un problema de decisión, los 
          resultados se obtienen mediante la instanciación de las variables libres. 
  • Lenguaje representativos: ALF, CLP ,Elf, Flang, Godel
Programación Reactiva (Dataflow) 
  • Basado en la teoria de grafos. 
  •  Un programa consiste en la especificación del flujo de datos entre
            operaciones. 
  •  Las variables se encuentran ligadas a las operaciones que 
           proporcionan sus valores. Un cambio de valor de una variable se

           propaga a todas las operaciones en que participa. 
  • Las hojas de cálculo se basan en este modelo. 
  •  Lenguajes representativos: Simulink, LabView.

DESCARGAR LENGUAJES DE PROGRAMACIÓN

Aplicacion de productos Aplicacion de productos ...