Lenguajes de programación LÓGICA COMPUTACIONAL LENGUAJES DE PROGRAMACIÓN. Sintaxis y semántica formales. Lenguaje IMP

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Lenguajes de programación LÓGICA COMPUTACIONAL LENGUAJES DE PROGRAMACIÓN. Sintaxis y semántica formales. Lenguaje IMP"

Transcripción

1 Lenguajes de programación LÓGICA COMPUTACIONAL LENGUAJES DE PROGRAMACIÓN Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM Página Web: Facultad de Ciencias Con el fin de ilustrar algunas aplicaciones de la lógica a la computación, presentaremos tres tipos de lenguajes: Dos lenguajes imperativos: IMP y el lenguaje de comandos custodiados de Dijkstra. Dos lenguajes funcionales. La sintaxis de los dos es igual y se distinguen únicamente por su semántica. Un lenguaje de descripción de procesos concurrentes: Calculus of Concurrent Systems, el cual es más abstracto que un lenguaje de programación en sentido estricto. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 1 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 2 / 35 Sintaxis y semántica formales La notación de Backus-Naur (BNF) es ya un estándar para la presentación de la sintaxis de lenguajes de programación. Sin embargo, en el terreno de la semántica siguen predominando las explicaciones informales. Aquí se usará una notación formal: la semántica operacional estructural. Aunque no es el único formalismo para describir los lenguajes de programación (por ejemplo, la semántica denotacional es una opción matemáticamente más elegante) sí es el más cercano a las intuiciones del programador típico. Semántica operacional estructural Lenguaje IMP No determinismo La sintaxis del lenguaje IMP se describe a continuación en la notación de Backus-Naur. Empezaremos con las expresiones aritméticas EA: A ::= n X (A + A ) (A A ) (A A ) donde n Z, X Loc y A, A EA. Tenemos ahora las expresiones booleanas EB: B ::= V F (A = A ) (A A ) B (B B ) (B B ) donde A, A EA y B, B EB. Finalmente, los comandos del lenguaje IMP se definen así: C ::= skip X := A (C ; C ) (if B then C else C ) (while B do C) donde A EA, B EB y C, C IMP. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 3 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 4 / 35

2 Semántica operacional estructural I Semántica operacional estructural II La forma más común de definir el significado de las construcciones de un lenguaje es por medio de explicaciones en una lengua natural (inglés, generalmente). Sin embargo, el lenguaje natural se presta a las ambigüedades y éstas, a los errores o a las divergencias entre las diferentes implementaciones de un mismo lenguaje. Para evitar estos problemas, aquí se usarán reglas de semántica operacional estructural o SOE, para abreviar. Una regla de inferencia tiene la forma siguiente: Las reglas de SOE son un tipo particular de reglas de inferencia en las que las premisas y la conclusión son transiciones. Una transición tiene la forma α β La forma concreta de las expresiones α y β, así como las transiciones aceptables, se definirán más adelante. p 1,..., p n q donde p 1,..., p n son las premisas y q es la conclusión. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 5 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 6 / 35 Qué es la programación imperativa? Estados de la memoria IMP es un lenguaje imperativo típico: el comando básico es la asignación de valor a las localidades de la memoria de la computadora. Para definir el significado de una asignación se parte de la existencia de una máquina virtual que posee una memoria con localidades con nombre: Loc = {X, Y, Z, X 0,... } Las localidades pueden tomar valores de Z. Un estado de la memoria es una función σ : Loc Z. La expresión σ(x) nos dice qué valor contiene la localidad X en el estado σ. La alteración del valor de una sola localidad de la memoria cuando se encuentra en el estado σ se representa con la función σ [m/x], donde X es la localidad modificada y m es el nuevo valor. Formalmente: { σ(y) si X Y σ [m/x] (Y) = m en caso contrario. El conjunto de estados es Σ. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 7 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 8 / 35

3 Semántica operacional estructural No determinismo SOE para IMP. Expresiones aritméticas En el caso de las expresiones aritméticas, las transiciones α β tienen la forma a, σ n donde a EA, σ Σ y n Z. Diremos que evaluar operacionalmente la expresión a en el estado σ da como resultado el valor n. Dicha evaluación se realiza de acuerdo con las siguientes reglas: Semántica operacional estructural No determinismo SOE para IMP. Expresiones booleanas I En las expresiones booleanas, una transición es b, σ T, con b EB, σ Σ y T {V, F}. Las reglas operacionales son: V, σ V a 0, σ n a 1, σ m (a 0 = a 1 ), σ V F, σ F sii n y m son iguales n, σ n X, σ σ(x) a 0, σ n 0 a 1, σ n 1 n 0 op n 1 = n a 0 op a 1, σ n En esta regla op puede ser +, o y op, + Z, Z o Z (ambos operadores deben coincidir). a 0, σ n a 1, σ m (a 0 = a 1 ), σ F a 0, σ n a 1, σ m (a 0 a 1 ), σ V sii n y m no son iguales sii n es menor o igual a m Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 9 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 10 / 35 SOE para IMP. Expresiones booleanas II SOE para IMP. Comandos I a 0, σ n a 1, σ m (a 0 a 1 ), σ F b, σ V b, σ F sii n no es menor o igual a m b, σ F b, σ V Las reglas de transición de los comandos son así: c, σ σ, donde c IMP y σ, σ Σ. El valor de σ se infiere de este modo: b 0, σ T 0 b 1, σ T 1 (b 0 b 1 ), σ T b 0, σ T 0 b 1, σ T 1 (b 0 b 1 ), σ T con T = V si T 0, T 1 = V y T = F en caso contrario con T = V si T 0 = V o T 1 = V y T = F en caso contrario skip, σ σ Comandos atómicos a, σ m X := a, σ σ [m/x] Composición secuencial c 0, σ σ c 1, σ σ (c 0 ; c 1 ), σ σ Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 11 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 12 / 35

4 SOE para IMP. Comandos II Ejemplo Condicionales b, σ V c 0, σ σ b, σ F c 1, σ σ (if b then c 0 else c 1 ), σ σ (if b then c 0 else c 1 ), σ σ Ciclos b, σ F (while b do c), σ σ b, σ V c, σ σ (while b do c), σ σ (while b do c), σ σ Dadas las reglas anteriores, no es difícil ver que el programa de IMP siguiente calcula el factorial del número n (si n 0) y lo guarda en la localidad Y : X := 1; Y := 1; while X n do (X := X + 1; Y := Y X) Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 13 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 14 / 35 No determinismo Un lenguaje no determinista Como primera aproximación a la computación, IMP es bastante bueno. No obstante, hay una serie de fenómenos computacionales que no pueden modelarse con IMP. Uno de estos es el no determinismo: la posibilidad de que la ejecución de un programa dé resultados distintos en distintas ocasiones a pesar de que recibe los mismos datos de entrada siempre. El no determinismo puede surgir en diversas situaciones. La más común es la concurrencia de procesos, pero también puede presentarse por una decisión en el diseño mismo de los lenguajes de programación. Ahora se presentará un lenguaje imperativo con no determinismo explícito. Para esto necesitaremos una categoría especial de comandos llamados comandos resguardados (guarded commands): G ::= (B C) (G G ) donde G y G son comandos resguardados y B EB. Como los comandos resguardados son básicos en nuestro lenguaje, lo llamaremos GCL: guarded command language. He aquí la sintaxis de GCL: C ::= skip abort X := A (C ; C ) if g fi do g od donde abort es un nuevo programa primitivo, G es un comando resguardado y C, C GCL. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 15 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 16 / 35

5 Semántica operacional I Semántica operacional I Comencemos con las reglas de comandos resguardados: b, σ V b c, σ c, σ g 0, σ c, σ (g 0 g 1 ), σ c, σ b, σ F b c, σ fail g 1, σ c, σ (g 0 g 1 ), σ c, σ g 0, σ fail g 1, σ fail (g 0 g 1 ), σ fail Ahora seguimos con las reglas para comandos generales: skip, σ σ a, σ m X := a, σ σ [m/x] c 0, σ σ c 1, σ σ (c 0 ; c 1 ), σ σ c 0, σ c 0, σ (c 0 ; c 1 ), σ c 0 ; c 1, σ g, σ fail do g od, σ σ g, σ c, σ if g fi, σ c, σ g, σ c, σ do g od, σ c ; do g od, σ Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 17 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 18 / 35 Ejemplo Programación funcional El lector puede verificar, haciendo uso de las reglas anteriores y de su conocimiento del, que El siguiente programa implementa el viejo algoritmo de Euclides para calcular el máximo común divisor de los enteros positivos n y m. El resultado queda guardado en las localidades X y Y. X := n; Y := m; do X > Y X := X Y Y > X Y := Y X od Nota: X > Y es una abreviatura, obviamente, de Y X (X = Y). Un estilo de programación radicalmente distinto al imperativo es el funcional. La idea básica es que en lugar de programas con instrucciones detalladas para la computadora, se deben usar definiciones de funciones. La ejecución de un programa consiste en la evaluación de una función definida anteriormente con argumentos concretos. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 19 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 20 / 35

6 Sintaxis Declaraciones Nuevamente, usaremos la notación Backus-Naur: t ::= n x (t+t) (t t ) (t t ) (if t then t else t) f i (t 1,..., t n ) t, t y t designan términos del lenguaje funcional. Obsérvese como en el condicional no se usan expresiones booleanas sino términos como condición. El valor 0 tendrá el papel de verdadero y cualquier otro valor se considerará falso. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 21 / 35 El estilo funcional de programación permite prescindir de la referencia a una máquina virtual y su memoria. Las funciones tomarán su significado a partir de declaraciones. Una declaración es un conjunto finito de ecuaciones. Del lado izquierdo aparece una función con variables como argumentos; del derecho, aparecen términos del lenguaje funcional. f 1 (x 1,..., x n1 ) = d 1 f k (x 1,..., x nk ) = d k donde d 1,..., d k son términos del lenguaje funcional. No se permite más de una ecuación por cada función, pero sí se acepta la recursividad. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 22 / 35. Semántica operacional Semántica con llamada por valor Las transiciones ahora son de la forma t d s t donde t y t son términos del lenguaje, d es una declaración y s puede tomar el valor v (llamada por valor) o n (llamada por nombre). Las transiciones dependen de declaraciones específicas. En el estilo de llamada por valor, los argumentos de las funciones son evaluados antes de evaluar la función misma. En el estilo de llamado por nombre, la evaluación se pospone hasta que se evalúa el cuerpo mismo de la función. La diferencia entre los dos estilos se manifiestan sólo en una regla de evaluación de términos. Números n d v n Operadores Condicional verdadero t 0 d v 0 t 1 d v n 1 if t 0 then t 1 else t 2 d v n 1 Funciones t 0 d v n 0 t 1 d v n 1 (t 0 op t 1 ) d v (n 0 op n 1 ) Condicional falso t 0 d v n 0 t 2 d v n 2 n 0 0 if t 0 then t 1 else t 2 d v n 2 t 1 d v n 1 t mi d v n mi d i [n1 /x 1,...,n mi /x mi ] d v n f i (t 1,..., t mi ) d v n Conviene prestar atención a la última regla, pues es la que varía con respecto a la llamada por nombre. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 23 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 24 / 35

7 Llamada por nombre Ejemplos I Números n d n n Operadores t 0 d n n 0 t 1 d n n 1 (t 0 op t 1 ) d n (n 0 op n 1 ) Supóngase que se tiene la siguiente declaración: Condicional verdadero t 0 d n 0 t 1 d n n 1 if t 0 then t 1 else t 2 d n n 1 Funciones d i [t1 /x 1,...,t mi /x mi ] d n n f i (t 1,..., t mi ) d n n Condicional falso t 0 d n n 0 t 2 d n n 2 n 0 0 if t 0 then t 1 else t 2 d n n 2 f 1 (x) = if x then 1 else f 1 (x 1) x f 2 (x, y) = x f 3 (x) = f 3 (x + 1) Entonces el programa f 1 (n) calcula el factorial de n, en cualquiera de los dos estilos de programación. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 25 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 26 / 35 Ejemplos II En cambio, considérese el programa Ejemplos III f 2 (2, f 3 (1)). De acuerdo con las reglas de llamado por nombre, para realizar la evaluación del programa debemos evaluar la expresión x [x/2,y/f3 (1)] = 2 que, de acuerdo con la regla para números, nos da 2. En cambio, las reglas de llamada por valor nos piden que primero evaluemos los términos Nota Si se adopta el estilo de llamada por valor, el lenguaje funcional se asemeja a un subconjunto de ML. Si se adopta llamada por nombre, será parecido a un subconjunto de Haskell. 2 y f 3 (1) el segundo de los cuales nunca nos da un resultado, como se puede deducir de la tercera ecuación de la declaración. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 27 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 28 / 35

8 Concurrencia Communicating Concurrent Systems La idea de que un sistema de cómputo se basa en la ejecución secuencial de una serie de instrucciones por parte de un ente aislado es obsoleta. Los sistemas actuales contienen subsistemas que actúan de manera simultánea y que intercambian información. Estos sistemas se llaman concurrentes. Hay dos modelos fundamentales de cómo se realiza el intercambio de información: 1 memoria compartida; 2 envío de mensajes. En el primero, hay un área de la memoria (variables, buffers, etc.) a la que varios sistemas concurrentes tienen acceso para guardar o leer datos. El envío de mensajes se realiza por un medio abierto (difusión) o por medio de canales específicos. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 29 / 35 En los 80, Robin Milner propuso un lenguaje de especificación para procesos concurrentes: CCS (Communicating Concurrent Systems). Dicho lenguaje consta de: Un conjunto de valores (enteros, por ejemplo) que se envían o reciben a través de canales α, β, etc. Operadores para la composición secuencial o paralela de procesos. Un operador de elección Operaciones para reetiquetar canales y restringir el acceso a éstos. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 30 / 35 Sintaxis I Sintaxis II Para comenzar, las acciones básicas de comunicación entre procesos: ::= τ α!m α?m τ es la acción nula, α!m es el envío de m por el puerto de salida del canal α y α?m es la recepción de m por el puerto de entrada del mismo canal. Los procesos de CCS se definen así: p ::= nil. p i I p i p p p\l p[f] P En términos informales, la sintaxis contiene los siguientes elementos: nil es un proceso que no realiza ninguna acción y se considera primitivo; es una acción; Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 31 / 35 es la elección arbitraria de un proceso tomado del conjunto de procesos indexado por I; es la composición paralela de procesos (intuitivamente, ambos procesos pueden realizarse simultáneamente); L es un conjunto de canales (cuyo acceso se restringirá a otros procesos, como se verá más adelante); P designa a un proceso definido por medio de una expresión del tipo que puede tener carácter recursivo. P def p Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 32 / 35

9 Semántica I En términos de reglas SOE: Procesos resguardados. p p Semántica II p q Restricción p\l q\l L L p j i I p i Sumas q q j I Reetiquetamiento p q p[f] f() q[f] p 0 p 0 p 0 p 1 p 0 p 1 Composición p 1 p 1 p 0 p 1 p 0 p 1 p 0 p 0 p 1 τ p 1 p 0 p 1 p 0 p 1 p q P q Identificadores donde P def p. Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 33 / 35 Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 34 / 35 Ejemplos Veamos un ejemplo muy sencillo: un buffer de capacidad 1. Un buffer es un dispositivo de almacenamiento con capacidad finita en el que un proceso (el productor) puede guardar información a la espera de que otro proceso (el consumidor) lea esta información. La lectura destruye la información guardada. Es importante que la información se guarde y se consuma de acuerdo con los permisos de los procesos. El siguiente proceso de CCS se comporta de acuerdo con la descripción anterior: B def ((α?m. β!m. nil) (β?m. γ!m. B))\{β} Francisco Hernández Quiroz Lógica Computacional Lenguajes de Programación 35 / 35

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales

Más detalles

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

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

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

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>} Bloque II. 2. Objetos y acciones elementales Bloque II. 2. Objetos y acciones elementales Objetivos: Familiarizarse con conceptos de entorno, objeto y tipo Entender qué significa que un objeto sea de un

Más detalles

Tema 7. Generación de código

Tema 7. Generación de código Departamento de Tecnologías de la Información Tema 7 Generación de código Ciencias de la Computación e Inteligencia Artificial Índice 7.1 Visión general 7.2 Código de tres direcciones 2 Índice 7.1 Visión

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

Java para no Programadores

Java para no Programadores Java para no Programadores Programa de Estudio Java para no Programadores Aprende a programar con una de las tecnologías más utilizadas en el mercado de IT. Este curso está orientado a quienes no tienen

Más detalles

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten 22//22 REDES DE PETRI: PROPIEDADES Y MÉTODOS DE ANÁLISIS PROGRAMACIÓN CONCURRENTE MASTER EN COMPUTACIÓN DEPARTAMENTO DE ELECTRÓNICA Y COMPUTADORES UNIVERSIDAD DE CANTABRIA CURSO 22/3 REDES DE PETRI: PROPIEDADES

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

Análisis de Algoritmos

Análisis de Algoritmos Análisis de Algoritmos Amalia Duch Barcelona, marzo de 2007 Índice 1. Costes en tiempo y en espacio 1 2. Coste en los casos mejor, promedio y peor 3 3. Notación asintótica 4 4. Coste de los algoritmos

Más detalles

1. Computadores y programación

1. Computadores y programación 1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción. 2007/2008 Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS 1.-Introducción. -Comprender cómo funciona un lenguaje de programación 2. Características del lenguaje C -Entender las

Más detalles

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

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor

Más detalles

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx

Más detalles

Introducción a la programación

Introducción a la programación Introducción a la programación Resolución de Problemas El objetivo principal para que las personas aprendan a programar en algún lenguaje de programación en particular es utilizar el computador como una

Más detalles

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

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

Nociones Básicas de Sémantica: Semántica Denotacional

Nociones Básicas de Sémantica: Semántica Denotacional Nociones Básicas de Sémantica: Semántica Denotacional Análisis de Lenguajes de Programación Mauro Jaskelioff 21/08/2015 Acerca de la Semántica Operacional En la semántica operacional el significado de

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación

Más detalles

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

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

Computación II. Introducción a Visual Basic

Computación II. Introducción a Visual Basic Computación II Introducción a Visual Basic Introducción a Visual Basic Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida

Más detalles

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

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC. Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL 1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto

Más detalles

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características

Más detalles

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I Gramáticas independientes del contexto UTÓMTS Y LENGUJES FORMLES LENGUJES INDEPENDIENTES DEL CONTEXTO Y UTÓMTS DE PIL Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNM E-mail:

Más detalles

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje. Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe

Más detalles

Operadores y Expresiones

Operadores y Expresiones Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los

Más detalles

Universidad de Managua

Universidad de Managua Universidad de Managua Introducción a la Programación Tema 7 Introducción a la programación en lenguaje C# Objetivos - Describir la estructura básica de un programa en Lenguaje C# - Explicar las estructuras

Más detalles

Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1

Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1 Pág. N. 1 Índice general Capítulo 1 Conceptos básicos Qué es Visual Basic? La programación basada en objetos Propiedades Métodos Eventos Funcionamiento de las propiedades, métodos y eventos Ingreso al

Más detalles

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

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario

Más detalles

Resolución de Problemas

Resolución de Problemas Resolución de Problemas con algoritmos Colaboratorio de Computación Avanzada (CNCA) 2015 1 / 27 Contenidos 1 Introducción 2 Elementos de algoritmos Elementos Variables Estructuras de Control Condicionales

Más detalles

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

Estatutos de Control C# Estatutos de Decisión (Selección) SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

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

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos

Más detalles

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN PRODUCCIÓN INDUSTRIAL. UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia

Más detalles

Lenguaje de programación C. Introducción

Lenguaje de programación C. Introducción Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la

Más detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

Más detalles

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación. ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente

Más detalles

Ejercicios de Lógica Proposicional *

Ejercicios de Lógica Proposicional * Ejercicios de Lógica Proposicional * FernandoRVelazquezQ@gmail.com Notación. El lenguaje proposicional que hemos definido, aquel que utiliza los cinco conectivos,,, y, se denota como L {,,,, }. Los términos

Más detalles

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

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

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

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira Informática IV Algoritmos Diagramas de Flujo L. S. C. Heriberto Sánchez Costeira Algoritmos 1 Definición Es una serie finita de pasos o instrucciones que deben seguirse para resolver un problema. Es un

Más detalles

Algoritmos y Programas

Algoritmos y Programas Introducción a la Programación Pontificia Universidad Javeriana Generado con LAT E X Febrero de 2010 Recorderis Algoritmos Recorderis Estado Una configuración determinada del sistema en un tiempo-espacio

Más detalles

Matemáticas. ticas Discretas. Lenguajes y Gramáticas. Tenemos dos clases de lenguaje: Lenguaje Formal

Matemáticas. ticas Discretas. Lenguajes y Gramáticas. Tenemos dos clases de lenguaje: Lenguaje Formal Matemáticas ticas Discretas y Gramáticas y Gramáticas Tenemos dos clases de lenguaje: Lenguaje Natural Lenguaje Formal Lenguaje Formal De acuerdo al diccionario Webster, un lenguaje es un cuerpo de palabras

Más detalles

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO Recursividad: La recursividad es una técnica de programación

Más detalles

APUNTES PARA LENGUAJES Y COMPILADORES

APUNTES PARA LENGUAJES Y COMPILADORES APUNTES PARA LENGUAJES Y COMPILADORES Cuando se define un lenguaje de programación, se determina su sintaxis y su semántica La sintaxis se refiere a las notaciones necesarias para escribir programas, y

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

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

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

Programación en java. Estructuras algorítmicas

Programación en java. Estructuras algorítmicas Programación en java Estructuras algorítmicas Estructuras algoritmicas 1. Conceptos basicos 1. Dato 2. Tipos de datos 3. Operadores 2. dsd Conceptos Basicos DATO: se considera una representación simbólica

Más detalles

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman) CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman) Las dos herramientas utilizadas comúnmente para diseñar algoritmos son: Diagrama de Flujo Pseuducodigo 1 Diagrama

Más detalles

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

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo

Más detalles

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

Shell Script Sistemas Operativos III - ITS EMT - CETP

Shell Script Sistemas Operativos III - ITS EMT - CETP Shell Script SHELL tiene dos formas distintas de ejecutar comandos : Archivos binarios Programas compilados y de los cuales existe un ejecutable archivos.exe ó.com en MS-DOS Archivos de texto Contienen

Más detalles

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

Actividad de Evaluación Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L. Actividad de Evaluación 2.4.1 Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L. Las técnicas de programación constituyen parte fundamental

Más detalles

Tema: Autómata de Pila

Tema: Autómata de Pila Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas

Más detalles

Capítulo 4. Lógica matemática. Continuar

Capítulo 4. Lógica matemática. Continuar Capítulo 4. Lógica matemática Continuar Introducción La lógica estudia la forma del razonamiento, es una disciplina que por medio de reglas y técnicas determina si un teorema es falso o verdadero, además

Más detalles

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison Algoritmos Intro Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison La Computadora Las computadoras trabajan con una base de 0 y 1 llamado sistema binario. En principio todo lo que sucede en un dispositivo

Más detalles

Un. VI. Generador de código intermedio.

Un. VI. Generador de código intermedio. Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

Normas de estilo para la codificación de programas

Normas de estilo para la codificación de programas Normas de estilo para la codificación de programas v.1.0 11/09/97 12.17 Departamento de Informática e Ingeniería de Sistemas Centro Politécnico Superior Universidad de Zaragoza María de Luna 3 50015, Zaragoza

Más detalles

CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC

CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC PROGRAMACIÓN DE PLC Procedimiento para programar y cargar: Determinar los requisitos del sistema al cual se aplica el PLC. Identificar los

Más detalles

ESTRUCTURAS ALGORITMICAS

ESTRUCTURAS ALGORITMICAS ESTRUCTURAS ALGORITMICAS El proceso de resolución de problemas en un ordenador conduce a la escritura de un programa y su ejecución. Las fases en el desarrollo de un programa pueden resumirse de la siguiente

Más detalles

Guía práctica de estudio 03: Algoritmos

Guía práctica de estudio 03: Algoritmos Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:

Más detalles

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION VICERRECTORADO ACADÉMICO DIRECCIÓN DE GESTIÓN, DESARROLLO E INNOVACIÓN CURRICULAR FACULTAD: INGENIERIA ESCUELAS: COMPUTACION - SISTEMA UNIDAD CURRICULAR: ALGORITMOS, ESTRUCTURAS Y PROGRAMACION FECHA DE

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería

Más detalles

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO CAPITULO 1 ALGORITMOS Y PROGRAMAS CONTENIDO 1.1. Los sistemas de procesamiento de la información. 1.2. Concepto de algoritmo. 1.3. Los lenguajes de programación. 1.4. Datos, tipos de datos y operaciones

Más detalles

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño Univ. Cantabria Fac. de Ciencias Patricia López Introducción al Diseño Modelamos la estructura software del sistema (incluida la arquitectura) para

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

PROGRAMACION CONCURRENTE Y DISTRIBUIDA PROGRAMACION CONCURRENTE Y DISTRIBUIDA V.2 Redes de Petri: Análisis y validación. J.M. Drake 1 Capacidad de modelado y capacidad de análisis El éxito de un método de modelado es consecuencia de su capacidad

Más detalles

INICIACIÓN A LA PROGRAMACIÓN II

INICIACIÓN A LA PROGRAMACIÓN II INICIACIÓN A LA PROGRAMACIÓN II 1. Caracteres... 2 2. Identificadores... 4 3. Palabras clave o reservadas... 5 4 Variables y constantes. Datos... 6 5 Arrays... 8 6. Comentarios... 9 7. Expresiones... 11

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya CADENAS DE CARACTERES Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena)

Más detalles

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González. Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad

Más detalles

Lógica proposicional. Ivan Olmos Pineda

Lógica proposicional. Ivan Olmos Pineda Lógica proposicional Ivan Olmos Pineda Introducción Originalmente, la lógica trataba con argumentos en el lenguaje natural es el siguiente argumento válido? Todos los hombres son mortales Sócrates es hombre

Más detalles

Fundamentos de Programación 2017-I

Fundamentos de Programación 2017-I Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis

Más detalles

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

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.

Más detalles

Ejercicios. Arquitectura de Computadoras. José Garzía

Ejercicios. Arquitectura de Computadoras. José Garzía jercicios de rquitectura de Computadoras José Garzía n la figura se representa el diagrama de flujo de un algoritmo. B X Y +B í + 7=? No B B+ C +B Los registros, B y C tienen una longitud de 8 bits. 7

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

encontramos dos enunciados. El primero (p) nos afirma que Pitágoras era griego y el segundo (q) que Pitágoras era geómetra.

encontramos dos enunciados. El primero (p) nos afirma que Pitágoras era griego y el segundo (q) que Pitágoras era geómetra. Álgebra proposicional Introducción El ser humano, a través de su vida diaria, se comunica con sus semejantes a través de un lenguaje determinado (oral, escrito, etc.) por medio de frases u oraciones. Estas

Más detalles

Matemáticas Básicas para Computación

Matemáticas Básicas para Computación Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 6 Nombre: Álgebra Booleana Objetivo Durante la sesión el participante identificará las principales características

Más detalles

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

Técnicas de Programación

Técnicas de Programación Técnicas de Programación 2.1.- Introducción: unos conceptos previos y primeros conceptos de la API Introducción La resolución de un problema con medios informáticos implica generalmente la siguiente secuencia

Más detalles

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas Universidad Centroccidental Lisandro Alvarado Decanato de Ciencias y Tecnología Departamento de Sistemas PROGRAMA INSTRUCCIONAL PROGRAMA: ANALISIS DE SISTEMAS DEPARTAMENTO: SISTEMAS ASIGNATURA: INTRODUCCIÓN

Más detalles

Semántica Denotacional

Semántica Denotacional Semántica Denotacional Idea: El significado de un programa es la función denotada por el programa Componentes del metalenguaje para la definición semántica denotacional de un L.P.: Dominios sintácticos

Más detalles

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6 MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6 NOMBRE DE LA PRÁCTICA. Estructuras secuénciales 6.1 OBJETIVO GENERAL El alumno desarrollará la habilidad para diseñar algoritmos secuenciales,

Más detalles

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios.

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios. DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios. SUBSECTOR: Informática y Comunicación. Nombre del Módulo: Lógica Computacional Código: CSTI0167 total: 60 horas Objetivo General: Resolver

Más detalles

PHP: Lenguaje de programación

PHP: Lenguaje de programación Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054

Más detalles

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

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un

Más detalles

Ejemplo, generación de #s aleatorios

Ejemplo, generación de #s aleatorios Ejemplo, generación de #s aleatorios Supón que tienes un generador de números aleatorios enteros [0,2] con distribución uniforme, y tu necesitas generar números con distribución uniforme [0,4]. Alguien

Más detalles

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO INTRODUCCION A LA PROGRAMACION Y COMPUTADORAS 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias

Más detalles

Estructuras Algebraicas

Estructuras Algebraicas Tema 1 Estructuras Algebraicas Definición 1 Sea A un conjunto no vacío Una operación binaria (u operación interna) en A es una aplicación : A A A Es decir, tenemos una regla que a cada par de elementos

Más detalles

Metodología para la solución de problemas programables

Metodología para la solución de problemas programables Metodología para la solución de problemas programables Nosotros efectuamos día a día una serie de pasos, acciones y procedimientos para solucionar problema y esto es de forma natural y casi inconscientemente

Más detalles

TEMA 2: Estructuras de Control: Condicionales

TEMA 2: Estructuras de Control: Condicionales UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE MATEMÁTICA INTRODUCCIÓN A LA COMPUTACIÓN TEMA 2: Estructuras de Control: Condicionales Estructuras Condicionales En un algoritmo se tiene

Más detalles

Métodos, Algoritmos y Herramientas

Métodos, Algoritmos y Herramientas Modelado y Simulación de Sistemas Dinámicos: Métodos, Algoritmos y Herramientas Ernesto Kofman Laboratorio de Sistemas Dinámicos y Procesamiento de la Información FCEIA - Universidad Nacional de Rosario.

Más detalles

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa PROGRAMACIÓN 10. Prof. Dolores Cuiñas H. Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía recomendada APUNTES Nº 4 ESTRUCTURA SECUENCIAL GENERAL La estructura secuencial

Más detalles