Conceptos Fundamentales. Programación Lógica y Funcional MTI. Eduardo Cruz Romero

Documentos relacionados
Tema 2 Introducción a la Programación en C.

Principios de Computadoras II

1. Computadores y programación

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Unidad II: Análisis semántico

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Unidad I: Introducción a las estructuras de datos

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Operadores y Expresiones

Conceptos básicos sobre gramáticas

Algoritmos y programas. Algoritmos y Estructuras de Datos I

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Tema 3. Tipos de datos simples

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

Evolución del software y su situación actual

Expresiones y sentencias

Diseño Estructurado de Algoritmos

Computación I Curso 2016 Facultad de Ingeniería Universidad de la República

Sistemas de información Administrativa II

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Técnicas de Programación

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Tema 4. Operadores y Expresiones

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Área: INFORMÁTICA. Saber- Saber: Identificar DFD como herramienta para escribir los algoritmos de forma lógica.

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Guía práctica de estudio 05: Diagramas de flujo

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}

Algoritmos y Lenguajes de Programación

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Módulo 2: Algoritmos (continuación)

PROGRAMACIÓN UNIDADES

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

ALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

Conceptos y definiciones básicos en computación

El lenguaje C. 1. Identificadores, constantes y variables

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Programación en java. Estructuras algorítmicas

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

RECORDAR TIPOS DE DATOS

Programación en Lenguaje C

GLOSARIO DE TÉRMINOS

Fundamentos de Programación 2017-I

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Generación de Código Intermedio

Breve Guía Buenas Prácticas de Programación en C

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

Cliente- Servidor. Bases de Datos Distribuidas

Pseudocódigo. La forma en que se escribe un pseudocódigo es la siguiente:

1.- Sistemas Numéricos 2.- Diferencia entre señal analógica y Digital 3.- Postulados básicos del Algebra de Boole

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

5.- Definición de Unidades y Monedas

Escribir programas a partir de un diagrama de flujo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño

Qué es un programa informático?

Computadora y Sistema Operativo

Cuales son los 6 lenguajes de programacion mas usados actualmente. Cuales son los 6 lenguajes de programación mas usados actualmente.

FÓRMULAS Y FUNCIONES

Ficha de Aprendizaje N 13

Informática Ingeniería en Electrónica y Automática Industrial

Datos y tipos de datos

Tema: Estructuras de Selección en C#.

Universidad Autónoma del Estado de México Facultad de Medicina

Expresiones y sentencias

Cristian Blanco

Construcción de tablas de análisis sintáctico LL(1)

TIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software:

4. Operadores Operador asignación

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Operadores. Javier Fernández Rivera -

Tema 01: Algoritmia y diagramas de flujo. Estructuras de datos (Prof. Edgardo A. Franco)

LÓGICA DE PROGRAMACIÓN

Estatutos de Control C# Estatutos de Decisión (Selección)

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

Estructuras de Datos. La pila es un objeto dinámico en constante cambio.

Metodología de Desarrollo de Programas

INSTITUTO TECNOLÓGICO SUPERIOR DEL SUR DEL ESTADO DE YUCATAN SUBDIRECCIÓN ACADÉMICA DEPARTAMENTO DE INGENIERÍA INDUSTRIAL

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

LA HOJA DE CÁLCULO HOJA DE CÁLCULO:

Programación para Ingeniería Eléctrica

Actividad de Evaluación Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L.

CAPÍTULO 4: VARIABLES Y RAZONES

SEMANA N 9 NOMBRE EXPERIENCIA: Funciones, variables y arreglos en BASH UNIDAD DE APRENDIZAJE: Introducción a los SCRIPTS

: Algorítmica y Estructura de Datos I

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

Programación Modular. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Transcripción:

Conceptos Fundamentales Programación Lógica y Funcional MTI. Eduardo Cruz Romero www.tics-tlapa.com

Estilos de Programación (1/3) Estilo de programación (también llamado estándares de código o convención de código) es un término que describe convenciones para escribir código fuente en ciertos lenguajes de programación. El estilo de programación es frecuentemente dependiente del lenguaje de programación que se haya elegido para escribir. Por ejemplo el estilo del lenguaje de programación C variará con respecto al del lenguaje BASIC.

Estilos de Programación (2/3) El buen estilo, al tratarse de algo subjetivo, es difícil de categorizar concretamente; con todo, existen un número de características generales. Con el advenimiento de software que da formato al código fuente de forma automática, el foco en cómo éste debe de ser escrito debe evolucionar de forma más amplia a la elección de nombres, lógica y otras técnicas. Desde un punto de vista práctico, el uso de un computador para dar formato al código fuente ahorra tiempo, y es posible forzar el uso de estándares a nivel de una compañía completa sin debates religiosos.

Estilos de Programación (3/3) Estilo K&R es el más utilizado en el lenguaje C y PHP, el estilo fue llamado de esta forma porque fue usado por Kernighan y Ritchies en su libro The C Programming Lenguage. Estilo Allman fue definido por Eric Allman, se trata de crear una nueva línea para las llaves, e identificar el código debajo de ellas. Estilo BSD KNF también conocido como estilo Kernel Normal From, es la manera más usada para el código de la distribución del software del sistema operativo de Berkeley. Estilo Whitesmiths también llamado estilo wishart, se coloca las llaves asociadas con la instrucciones de control.

Evaluación de Expresiones (1/6) Una expresión es una combinación de operandos y operadores. La evaluación de una expresión consiste en reducirla, esto es, realizar todas las operaciones contenidas en ella para obtener un valor final. Para evaluar una expresión es necesario conocer la prioridad de los operadores, con lo cual se puede determinar cuál operación se va a realizar antes que las demás. Una expresión entre paréntesis se evalúa primero que las demás. Si hay paréntesis se evalúa primero la expresión contenida en los paréntesis más internos.

Evaluación de Expresiones (2/6) Programación Funcional: es un estilo de programación que enfatiza la evaluación de expresiones, en lugar de la ejecución de comandos. Las expresiones en estos lenguajes se forman utilizando funciones para combinar valores básicos. Lenguaje Funcional: es un lenguaje que soporta e incentiva la programación en un estilo funcional.

Evaluación de Expresiones (3/6) Que son las expresiones? Son el método fundamental que tiene el programador de expresar computaciones. Las expresiones están compuestas de operadores, operandos, paréntesis y llamadas a funciones. Los operadores pueden ser: Unarios: Cuando tan solo tienen un operando. Son operadores prefijos. Binarios: 2 Operandos. Son operadores infijos. Ternarios: 3 operandos.

Evaluación de Expresiones (4/6) Orden de la evaluación de los operadores. El orden en que se evalúan los operandos viene dado por unas reglas: Reglas de procedencia Reglas de asociatividad Uso de paréntesis

Evaluación de Expresiones (5/6) Evaluación de expresiones Toda expresión regresa un valor. Si hay más de un operador, se evalúan primero operadores mayor precedencia, en caso de empate, se aplica regla asociatividad. Para evaluar una expresión no hay que hacer nada del otro mundo, pues es bien sencillo. Sólo hay que saber sumar, restar, si un número es mayor que otro.

Evaluación de Expresiones (6/6) Hay tres reglas de prioridad a seguir para evaluar una expresión: Primero, los paréntesis (si tiene) Después, seguir el orden de prioridad de operadores Por último, si aparecen dos o más operadores iguales, se evalúan de izquierda a derecha. Las expresiones son secuencias de constantes y/o variables separadas por operadores válidos.

Definición de Funciones (1/5) Las funciones se crearon para evitar tener que repetir constantemente fragmentos de código. Una función podría considerarse como una variable que encierra código dentro de sí. Por lo tanto cuando accedemos a dicha variable (la función) en realidad lo que estamos es diciendo al programa que ejecute un determinado código predefinido anteriormente.

Definición de Funciones (2/5) Todos los lenguajes de programación tienen algunos elementos de formación primitivos para la descripción de los datos y de los procesos o transformaciones aplicadas a estos datos (tal como la suma de dos números o la selección de un elemento que forma parte de una colección). Estos elementos primitivos son definidos por reglas sintácticas y semánticas que describen su estructura y significado respectivamente.

Definición de Funciones (3/5) Cuando escribas un nuevo programa o biblioteca, sigue un estilo consistente de ubicación de llaves y de indentación. Si no tienes ninguna preferencia personal de estilo, recomendamos el estilo de programación del núcleo de Linux o el estilo de programación de GNU. Lee el nodo de info (Standards)Writing C en la documentación de GNU. Luego, obtén el código fuente de Linux y lee el archivo linux/documentation/codingstyle, e ignora los chistes de Linus. Estos dos documentos te darán una buena idea de nuestras recomendaciones para el código de GNOME.

Definición de Funciones (4/5) Para el código del núcleo de GNOME preferimos el estilo de indentación del núcleo de Linux. Usa tabuladores de 8 espacios para la indentación. Usar tabuladores de 8 espacios para indentación proporciona un número de beneficios. Permite que el código sea más fácil de leer, ya que la indentación se marca claramente. También ayuda a mantener el código ordenado forzando a dividir funciones en trozos más modulares y bien definidos si la indentación va más allá del margen derecho, significa que la función está mal diseñada y que debiera dividirse para hacerla más modular o bien, repensarla.

Definición de Funciones (5/5) Los tabuladores de 8 espacios para indentación también ayudan al diseño de funciones que encajen bien en la pantalla, lo cual significa que las personas puedan entender el código sin tener que desplazarse atrás y adelante para entenderlo.

Disciplina de Tipos (1/5) DISCIPLINA: Es la coordinación de actitudes con las cuales se instruye para desarrollar habilidades, o para seguir un determinado código de conducta u "orden". Un ejemplo es la enseñanza de una materia, ciencia o técnica, especialmente la que se enseña en un centro (Docente asignatura).

Disciplina de Tipos (2/5) En los lenguajes de programación con disciplina de tipos, cada tipo representa una colección de valores (datos) similares. Una función cuyo tipo sea A1 ->... An -> espera n parámetros con tipos A1,... An y devuelve un resultado de tipo R. El conocer los tipos de las funciones ayuda a documentar los programas y a evitar errores en tiempo de ejecución.

Disciplina de Tipos (3/5) Disciplina estática de tipos: Los programas bien tipados se pueden reconocer en tiempo de compilación, un programa bien tipado se puede utilizar sin efectuar comprobaciones de tipo en tiempo de ejecución. Estando garantizado que no se producirán errores de tipo durante el cómputo.

Disciplina de Tipos (4/5) En los lenguajes de programación de la familia C se recomienda también evitar el uso de caracteres tabulador en medio de una línea, ya que diferentes editores de textos muestran su anchura de forma diferente. El lenguaje de programación Python usa indentación para indicar estructuras de control, por tanto se requiere obligatoriamente una buena indentación.

Disciplina de Tipos (5/5) Haciendo esto, la necesidad de marcar con llaves ({ y }) es eliminada, y la legibilidad es mejorada sin interferir con los estilos de codificación comunes. Con todo, esto lleva frecuentemente a problemas donde el código es copiado y pegado dentro de un programa Python, requiriendo un tedioso reformateado. Adicionalmente, el código Python se vuelve inusable cuando es publicado en un foro o página web que elimine el espacio en blanco.

Tipos de Datos (1/2) Tipos de Datos En lenguajes de programación un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Los Tipos de Datos En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre estos valores. Casi todos los lenguajes de programación explícitamente incluyen la notación del tipo de datos, aunque lenguajes diferentes pueden usar terminología diferente.

Tipos de Datos (2/2) La mayor parte de los lenguajes de programación permiten al programador definir tipos de datos adicionales, normalmente combinando múltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo de dato. Por ejemplo, un programador puede crear un nuevo tipo de dato llamado "Persona" que especifica que el dato interpretado como Persona incluirá un nombre y una fecha de nacimiento.

Referencias Bibliográficas http://www.itpn.mx/recursosisc/8semestre/programacionlogicayfuncional/unidad%20i.pdf http://karlaprogramacionfuncional.blogspot.mx/2014/02/unidad-1-conceptos-fundamentales.html https://programacionlogicayfuncional.wordpress.com/2014/02/12/evaluacion-de-expresiones/ http://tics-tlapa.com/wp/2016/01/paradigmas-de-programacion/