PRAGMATICA DE P. Se definirán macros para las sentencias, expresiones, condiciones y constantes. Macros para las sentencias;
|
|
- Isabel Peña Ojeda
- hace 6 años
- Vistas:
Transcripción
1 PRAGMATICA DE P Se utilizará el lenguaje P para escribir programas más complejos que los vistos hasta ahora. Por razones de comodidad, introduciremos nuevas construcciones, "abreviaciones" de secuencias de instrucciones en P. Se mantiene así la semántica que se le ha dado a P. Lo que haremos será introducir macros que se expandirán completamente en el texto del programa. Se definirán macros para las sentencias, expresiones, condiciones y constantes. Macros para las sentencias; SENT abreviación MACRO: -- declaraciones <sent> END En las macros se utilizan macrovariables Y0,Y1,... las que en la expansión, serán sustituídas por una variable P. Ejemplo: SENT ASSIGN(Y1,Y2) MACRO: -- Y1:Var, Y2:Var Y1 := SUC(Y2) ; Y1 := PRED(Y1) END Al introducir macros, es un buen hábito probar que se comportan exactamente como queremos. [E2] [E4] <SUC(y),σ> s(σ(y)) <PRED(x),σ[x s(σ(y))]> σ(y) [A] [A] <X:=SUC(y),σ> σ[x s(σ(y))] <X:=PRED(x),σ[x s(σ(y)]> σ [S] <ASSIGN(x,y),σ> σ[x σ(y)] donde σ = σ[x s(σ(y)), x σ(y)] = σ[x σ(y)]
2 Ejemplo. En el texto de la macros se puede usar también variables locales. SENT IF Y1=/ 0 THEN Y2 MACRO -- Y1: Var, Y2:Sent -- Y3: Var (variable local) ASSIGN(Y3,Y1) ; WHILE Y3=/ 0 DO Y2 ; Y3:= 0 END END Las variables locales se cambian a variables con índices mayores que el mayor índice que haya en el programa (o mejor aún, en el programa expandido). Las macro-definiciones para las expresiones son: EXPR abreviación MACRO: -- declaraciones <sent> RESULT (<macro-var>) Ejemplo. EXPR Y1+Y2 MACRO: -- Y1,Y2:Var WHILE Y2 =/ 0 DO Y1:= SUC(Y1) ; Y2:= PRED(Y2) END RESULT(Y1) El tratamiento de las macros para las expresiones, es más complejo que el de las sentencias dado que se deben evitar cambios no deseados en los valores de las variables. Por lo tanto, trataremos a las variables como variables locales inicializadas con las expresiones dadas en la macro-llamada. Ejemplo: Considere el siguiente programa. PROGRAM (X1) X2:= X1+X1 RESULT(X2) 1
3 se expande en : PROGRAM (X1) ASSIGN (X3,X1) ; X3 := SUC(X1); ASSIGN (X4,X1) ; X3 := PRED(X3); WHILE X4 =/ 0 DO X3:= SUC(X3) ; X4:= PRED(X4) ; END; ASSIGN (X2,X3) RESULT (X2) Definiremos también macros para constantes, como por ejemplo; EXPR 1 MACRO: Y1:= 0 ; Y1:= SUC(Y1) RESULT (Y1) etc. EXPR 2 MACRO: Y1:= 1 ; Y1:= SUC(Y1) RESULT (Y1) Macros de Condición. COND "abreviación" MACRO: -- declaraciones <sent> RESULT (<macro-var>) Ejemplo. COND (Y1=/ 0 ) & (Y2=/ 0 ) MACRO -- Y1,Y2:Var; Y3:= 0 ; IF Y1=/ 0 THEN IF Y2=/ 0 THEN Y3:= SUC(Y3) RESULT (Y3) 2
4 Más adelante se van a usar: ES_PRIMO(n) da como resultado 1 si n es primo y 0 si no es PRIMO(n) para obtener el n-ésimo número primo PRIMEXP(m,n) devuelve el exponente del m-ésimo número primo en la descomposición en factores primos del número n EXPR ES_PRIMO (Y0) MACRO: Y1:= 1 ; Y2:= 1 ; WHILE Y2 =/ 0 DO Y1:= SUC(Y1) ; Y2:= Y0 MOD Y1 END ; Y3:= Y0 -Y1 ; IF Y3 =/ 0 THEN Y4:= 0 ELSE Y4:= 1 RESULT (Y4) 3
5 CODICACION DE PROGRAMAS Consideraremos computaciones con objetos distintos de los números naturales. Supongamos que tenemos una función g : A B La podremos computar si encontramos una función de codificación c : A N una función de decodificación d : N B y una función computable tal que f : N N g = d f c Los programas en P están restringidos a una sola entrada y una salida. Para manejar entradas o salidas múltiples codificaremos enuplas de naturales por naturales. Para lograr esto bastará con codificar pares. <x,y> A x B si x A, y B fst (<a,b>) = a snd (<a,b>) = b Para codificar A x B definimos : cod (<a,b>) = 2 {a} 3 {b} (Usaremos a veces la notación <a,b> para referirnos a la codificación del par). En lenguaje P tendremos las siguientes macros : Para codificar : EXPR PAR(Y1,Y2) MACRO Y3 := (2**Y1)*(3**Y2) RESULT(Y3) 4
6 y para decodificar : EXPR FST(Y1) MACRO Y2 := PRIMEXP(1,Y1) RESULT(Y2) EXPR SND(Y1) MACRO Y2 := PRIMEXP(2,Y1) RESULT(Y2) Construiremos programas en P cuyos datos de entrada y de salida son otros programas en P, eventualmente con sus datos. Para eso necesitamos codificar y decodificar programas escritos en P. El conjunto de los programas P es un conjunto definido inductivamente; daremos funciones de codificación y decodificación para cada uno de los elemento sintácticos de P. Las funciones de codificación tienen como dominio el conjunto del que se trate y como codominio los naturales. Las funciones de decodificación son funciones de naturales en el conjunto sintáctico del que se trate ; son, en general, funciones parciales. Daremos a continuación los nombres de las funciones de codificación y decodificación y una expresión para las funciones de codificación. VARIABLE : cod-var (Xi) = i + 1 decod-var CONDICION : cod-cond (Xi /= 0) = i + 1 decod-cond EXPRESION : cod-expr(0) = 2 cod-expr(suc(xi)) = 3 {Xi} cod-expr(pred(xi)) = 5 {Xi} decod-expr ASSIGN : cod-ass (ass(x,e)) = 2 {x} 3 {e} decod-ass-var decod-ass-expr WHILE : cod-wh(while(c,s)) = 5 {c} 7 {s} decod-wh-cond decod-wh-sent SECUENCIA : cod-sec(sec(s1,s2)) = 11 {s1} 13 {s2} decod-sec-1 decod-sec-2 5
7 Dado que (s1;s2);s3 es, de acuerdo a la semántica, equivalente a s1;(s2;s3) se implementa cod-sec de modo que en ambos casos la codificación sea : 11 {s1} 13 {s2;s3} donde s1 no es una secuencia PROGRAMA : cod-prog(prog(x,c,y)) = 2 {x} 3 {c} 5 {y} decod-prog-vare decod-prog-sent decod-prog-vars Por ejemplo, al siguiente programa R PROGRAM(X0) X0 := 0 RESULT(X0) le corresponde el número = Las funciones de codificación y decodificación se implementan mediante macros en P (de tipo expresión). En algún caso nos interesará chequear la pertenencia de un elemento de nuestro lenguaje a determinada categoría sintáctica. Esto se traduce en macros de condición : es-0, es-pred, es-suc es-ass, es-while, es-sec Llamaremos índice de un programa al número que le corresponde en la codificación. Dado el índice q Ix(q) - programa de índice q Ix : N Prog φq - función computada por el programa Ix(q) φq(m) = n sii <Ix(q),m> n Dado que no todo natural es el índice de algún programa, para que Ix sea una función total definimos : Ix(q) = (PROGRAM(X0) X0 := 0 RESULT(X0)) si q no es el índice de ningún programa. 6
8 UN INTERPRETE PARA P EN P Construiremos en P un programa IP que, recibiendo como entrada un programa en P Q (su codificación) y un natural m, realiza la ejecución de Q con entrada m, devolviendo el resultado correspondiente. IP utiliza las reglas de evaluación de las instrucciones de P, o sea, la semántica operacional que hemos definido para el lenguaje P. Definiremos previamente un método para codificación del estado de un programa y las correspondientes funciones de acceso y actualización El estado es una función de variables en naturales σ : {Var} N cod-estado(σ) = 2 σ(x0).3 σ(x1).5 σ(x2).... esto implica cod-estado(ω) = 1 valor-de (x,σ) se implementa mediante PRIMEXP y actualizar(x,n,σ) mediante PRIMEXP y operaciones aritméticas. Notar que si bien un estado es un conjunto infinito (cantidad infinita de variables), logramos codificar un estado mediante un natural, aprovechando el hecho de que sólo una cantidad finita de variables puede tener valor distinto de 0. Las siguientes macros, además de las ya mencionadas,serán utilizadas : eval-ass(sent-ass,estado) - modifica el estado eval-cond(cond,estado) - evalúa en un booleano es-sec(sent) - chequea si una sentencia es una secuencia es-ass(sent) - chequea si una sentencia es una asignación cod-sec(s1,s2) - codifica una secuencia a partir de las sentencias s1 y s2 La entrada a IP es la codificación de un par <q,n> ; se cumple: < IP,{<q,n>} > m si < Ix(q),n > m y < IP,{<q,n>} > si < Ix(q),n > 7
9 IP : PROGRAM(X0) X1 := FST(X0); X1 - programa Q prog(x,c,y) X2 := SND(X0); X2 - entrada n a Q X3 := DECOD-PROG-VARE(X1); X4 := DECOD-PROG-SENT(X1); X5 := DECOD-PROG-VARS(X1); X6 := OMEGA; X6 - estado X6 := ACTUALIZAR(X3,X2,X6); WHILE X4 0 DO IF ES-SEC(X4) THEN X7 := DECOD-SEC-1(X4); X4 := DECOD-SEC-2(X4) ELSE X7 := X4; X4 := 0 ; IF ES-ASS(X7) THEN X6 := EVAL-ASS(X7,X6) ELSE X8 := DECOD-WH-COND(X7); X8 := EVAL-COND(X8,X6); IF X8 = 1 THEN X9 := DECOD-WH-SENT(X7); IF X4 0 THEN X4 := COD-SEC(X7,X4) ELSE X4 := X7 ; X4 := COD-SEC(X9,X4) END; X10 := VALOR-DE(X5,X6) RESULT(X10) Asociada al programa IP podemos construir la macro MIP, para manejar IP como una expresión. Utilizaremos a menudo la macro eval-prog(p,n) que codifica el par <p,n> y evalúa Ix(p) con entrada n mediante la macro MIP. EXPR EVAL-PROG (Y0,Y1) MACRO Y2 := COD-PAR(Y0,Y1); Y3 := MIP(Y2) RESULT(Y3) En algunas situaciones necesitaremos utilizar la expresión : eval-prog-step(p,n,m) = <1,w> si <Ix(p),n> w en a lo sumo m pasos = <0,0> en otro caso 8
10 Para poder construir una macro en P debemos modificar el intérprete de modo que evalúe el programa que se interpreta una cantidad dada de pasos. Intérprete modificado - IPS PROGRAM(X0) X0 - <p,<n,m>> X1 := FST(X0); X1 - programa Q prog(x,c,y) X2 := SND(X0); X2 - <n,m> X11 := SND(X2); X11 - m X2 := FST(X2); X2 - n X3 := DECOD-PROG-VARE(X1); X4 := DECOD-PROG-SENT(X1); X5 := DECOD-PROG-VARS(X1); X6 := OMEGA; X6 - estado X6 := ACTUALIZAR(X3,X2,X6); WHILE X4 0 & X11 0 DO IF ES-SEC(X4) THEN X7 := DECOD-SEC-1(X4); X4 := DECOD-SEC-2(X4) ELSE X7 := X4; X4 := 0 ; IF ES-ASS(X7) THEN X6 := EVAL-ASS(X7,X6) ELSE X8 := DECOD-WH-COND(X7); X8 := EVAL-COND(X8,X6); IF X8 = 1 THEN X9 := DECOD-WH-SENT(X7); IF X4 0 THEN X4 := COD-SEC(X7,X4) ELSE X4 := X7 ; X4 := COD-SEC(X9,X4) ; X11 := PRED(X11) END; IF X4 0 THEN X10 := COD-PAR(0,0) ELSE X10 := VALOR-DE(X5,X6); X10 := COD-PAR(1,X10) RESULT(X10) Mediante la macro MIPS asociada a IPS podemos construir la macro eval-progstep en modo análogo a eval-prog 9
11 Ejercicio 1.- Escribir las siguientes macros en P : IF <cond> THEN <sent> ELSE <sent> X - Y si X Y X 5 Y = X - Y 0 en caso contrario X = Y X < Y X MOD Y PRIMO(n) el resultado es el enésimo número primo PRIMEXP(m,n) el resultado es el exponente del enésimo número primo en la descomposición en factores primos del número m ES_PRIMO(n) el resultado es verdadero si n es primo, falso en caso contrario DECOD-ASSIGN-VAR(X) DECOD-ASSIGN-EXPR(X) VALOR-DE (X,σ) - Valor de la variable X en el estado σ ACTUALIZAR (X,Y,σ) - Nuevo estado σ [X Y ] EVAL-ASSIGN(X,σ) - Estado resultante de evaluar la asignación X en σ COD-SEC (S1,S2) - Dados los códigos de sentencias S1 y S2 calcula el código de la secuencia. Recordar que S1 puede ser el código de una secuencia. LOOP - Ciclo infinito SKIP - Ningún efecto Ejercicio 2.- Sean los programas : P Q PROGRAM (Xi) C RESULT (Xj) PROGRAM(Xi) C Xmax+1 := 0 RESULT(Xj) Construir una macro en P que dado el código de un programa (P) p devuelva el de un par <p',n> donde p' es el código de Q y n el número de la sentencia "Xmax+1 := 0". 10
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
Estructuras de Control. Secuencia y Selección
Estructuras de Control. Secuencia y Selección InCo - FING Programación 1 InCo - FING Estructuras de Control. Secuencia y Selección Programación 1 1 / 35 Estructuras de control InCo - FING Estructuras de
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
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Equivalencia Entre PDA y CFL
Equivalencia Entre PDA y CFL El Lenguaje aceptado por un Autómata con Pila Universidad de Cantabria Esquema 1 Introducción 2 3 Lenguaje Aceptado por un Autómata Como en los autómatas finitos, se puede
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
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
Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A)
aprenderaprogramar.com Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A) Sección: Cursos Categoría: Curso Bases de la programación Nivel I Fecha revisión: 2024 Autor:
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
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
Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S
Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,
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
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
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
La Máquina de Acceso Aleatorio (Random Access Machine)
La Máquina de Acceso Aleatorio (Random Access Machine) Nuestro modelo de cómputo secuencial es la máquina de acceso aleatorio (RAM, Random Access Machine) mostrada en la Figura 2.1, y que consiste de:
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
Programación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
GENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
Introducción a los códigos compresores
Introducción a los códigos compresores Parte I de la Lección 2, Compresores sin pérdidas, de CTI Ramiro Moreno Chiral Dpt. Matemàtica (UdL) Febrero de 2010 Ramiro Moreno (Matemàtica, UdL) Introducción
Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL
Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos
Bases Formales de la Computación
Modal Bases Formales de la Computación Pontificia Universidad Javeriana 3 de abril de 2009 Modal LÓGICAS MODALES Contenido Modal 1 Modal 2 3 Qué es la lógica Modal? Modal Variedad de diferentes sistemas
Estructuras de control
Estructuras de control Condicionales Ejemplo: Resolución de la ecuación de primer grado In [1]: # Solución de la ecuación ax+b=0 def solucion1grado(a, b): return -float(b) / a In [2]: solucion1grado(2,4)
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
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
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
Convertir un AFND a un AFD
Convertir un AFND a un AFD Existe una equivalencia entre los AFD y AFN, de forma que un autómata M es equivalente a un autómata M' si L(M) ) L(M'). Ejemplo: Los autómatas de la siguiente figura son equivalentes.
Teoría de Lenguajes. Teoría de la Programación I
Teoría de Lenguajes Soluciones Consideraciones generales i) Escriba nombre y C.I. en todas las hojas. ii) Numere todas las hojas. iii) En la primera hoja indique el total de hojas. iv) Comience cada ejercicio
Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.
Conjuntos Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por se entiende que a pertenece a R. a R Normalmente, podremos definir a un conjunto de dos maneras: Por
Compuertas Lógicas. Sergio Stive Solano Sabié. Agosto de 2012 MATEMÁTICA. Sergio Solano. Compuertas lógicas NAND, NOR, XOR y XNOR
XOR y Lógicas Sergio Stive Solano Agosto de 2012 XOR y Lógicas Sergio Stive Solano Agosto de 2012 XOR y XOR y Con las puertas básicas podemos implementar cualquier función booleana. Sin embargo existen
Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones
UNSL Repaso de Inducción, y Inducción Matemática (Sección 1.7 del libro) Supongamos que queremos demostrar enunciados del siguiente tipo: P(n) : La suma de los primeros n números naturales es n(n+1)
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
LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE
LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Entender el funcionamiento de las estructuras iterativas en general; la(s) condición(es)
4.2. Funciones inyectivas, sobreyectivas y biyectivas
4.. Funciones inyectivas, sobreyectivas y biyectivas En esta sección estudiaremos tres conceptos básicos sobre funciones. 4... Funciones inyectivas Definición 4.. Sea f una función de en. Diremos que f
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
Programación en Visual Basic Ricardo Rodríguez García
Manual Básico de Programación en Visual Basic 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único paquete que denominaremos proyecto.
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
Conjuntos, relaciones y funciones Susana Puddu
Susana Puddu 1. Repaso sobre la teoría de conjuntos. Denotaremos por IN al conjunto de los números naturales y por ZZ al de los enteros. Dados dos conjuntos A y B decimos que A está contenido en B o también
Programación Dinámica 1
Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir
Preliminares Interpolación INTERPOLACIÓN Y APROXIMACIÓN POLINOMIAL
INTERPOLACIÓN Y APROXIMACIÓN POLINOMIAL Contenido Preliminares 1 Preliminares Teorema 2 Contenido Preliminares Teorema 1 Preliminares Teorema 2 Teorema Preliminares Teorema Teorema: Serie de Taylor Supongamos
Las operaciones aritméticas básicas en MATLAB son las más sencillas que se pueden
CAPÍTULO 5 TEMAS 5.1 Aritmética 5.1.1 Variables y Operaciones Básicas Las operaciones aritméticas básicas en MATLAB son las más sencillas que se pueden realizar en este programa. Si asignamos valores a
//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
GUÍA BÁSICA DE SCHEME v.4
Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los
$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal
Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).
ALGEBRA La primera parte del presente libro está dedicada a las estructuras algebraicas. En esta parte vamos a iniciar agregándole a los conjuntos operaciones. Cuando las operaciones tienen determinadas
Unidad II. 2.1 Concepto de variable, función, dominio, condominio y recorrido de una función.
Unidad II Funciones 2.1 Concepto de variable, función, dominio, condominio y recorrido de una función. Función En matemática, una función (f) es una relación entre un conjunto dado X (llamado dominio)
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
El Autómata con Pila: Transiciones
El Autómata con Pila: Transiciones El Espacio de Configuraciones Universidad de Cantabria Esquema Introducción 1 Introducción 2 3 Transiciones Necesitamos ahora definir, paso por paso, como se comporta
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
TI 89. Cómo sobrevivir en Precálculo
TI 89 Cómo sobrevivir en Precálculo TI-89 Menús que más utilizaremos: Operaciones Numéricas Simplificar: 3 + 1 5 ( 4)2 9 3 4 Notar la diferencia entre el símbolo de resta y el signo negativo. Notar el
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
Funciones como Subprogramas en C++
FUNCIONES Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes.
Semana03[1/17] Funciones. 16 de marzo de Funciones
Semana03[1/17] 16 de marzo de 2007 Introducción Semana03[2/17] Ya que conocemos el producto cartesiano A B entre dos conjuntos A y B, podemos definir entre ellos algún tipo de correspondencia. Es decir,
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
Estructuras de Repetición (Hacer-Mientras)
Estructuras de Repetición (Hacer-Mientras) Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería
Código Intermedio. Compiladores II 1
Código Intermedio Compiladores II 1 Usos del Código Intermedio Múltiples lenguajes y compiladores n+m módulos -> n*m compiladores Optimización Representación de fácil modificación Modelos de generación
Unidad Temática 3: Probabilidad y Variables Aleatorias
Unidad Temática 3: Probabilidad y Variables Aleatorias 1) Qué entiende por probabilidad? Cómo lo relaciona con los Sistemas de Comunicaciones? Probabilidad - Definiciones Experimento aleatorio: Un experimento
Estructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45
Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 45 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales
Manejo de Bases de Datos Mysql en Lenguaje C
http://undersecurity.net Servidor irc : irc.ircnode.com Canal irc : #undersec Manejo de Bases de Datos Mysql en Lenguaje C By: S[e]C Entendiendo el tratamiento de una base de datos MySQL. Antes de ir al
5. Subprogramas Fundamentos de Informática
5. Subprogramas Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Subprogramas 1. Cálculo de la función Coseno 2. Suma 3. Ecuación de 2º grado 2 1. Cálculo de
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
Práctica de constantes, expresiones y operadores. Programación en C 1
Práctica de constantes, expresiones y operadores Programación en C 1 Definición de variables (II) Las variables (automáticas) no inicializadas tienen cualquier valor. Una variable (automática) se inicializa
Taller de Resolución de Problemas Computacionales
Taller de Resolución de Problemas Computacionales Clase1: 27/9 Presentación: Equipo de Trabajo Encuentros Certificación del Taller: Por Asistencia Por Aprobación Sitio Web. Etapas en la Resolución de Problemas
M. en E. Noemí López García
La forma de indicar al servidor que nuestro código PHP comienza es: M. en E. Noemí López García sentencias php Existen otros métodos de indicar el inicio de código php pero el indicado es el más común
Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42
Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 42 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales
LENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Tema 3. Tipos de datos simples
Tema 3. Tipos de datos simples Contenido del tema: Concepto de tipo. Tipos simples. Operadores. Expresiones. Semántica. Tipos y expresiones en lenguaje C++ Francisco J. Veredas Dpto. Lenguajes y Ciencias
Tema 6: Teoría Semántica
Tema 6: Teoría Semántica Sintáxis Lenguaje de de las las proposiciones Lenguaje de de los los predicados Semántica Valores Valores de de verdad verdad Tablas Tablas de de verdad verdad Tautologías Satisfacibilidad
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
APRENDIZAJE DE LAS HERRAMIENTAS DE DESARROLLO DESARROLLO DE LA BASE DE DATOS DESARROLLO DEL INTERFAZ DE USUARIO Y DEL CÓDIGO VBA
4.- PLAN DE TRABAJO Llegados a este punto, vamos a establecer el siguiente plan de trabajo para dar solución a la problemática presentada y con ello alcanzar los objetivos que nos hemos marcado: FASE I
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
Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3
PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia
Funciones. Parámetros por valor
Funciones I Parámetros por valor Fundamentos de Programación Fundamentos de Programación I Llamada a la función definición subprograma Subprogramas en C++ Funciones 1 Una función es un subprograma que
SEMANA N 9 NOMBRE EXPERIENCIA: Funciones, variables y arreglos en BASH UNIDAD DE APRENDIZAJE: Introducción a los SCRIPTS
SEMANA N 9 NOMBRE EXPERIENCIA: Funciones, variables y arreglos en BASH UNIDAD DE APRENDIZAJE: Introducción a los SCRIPTS I. Objetivo Que el alumno tenga una idea general de las posibilidades que BASH ofrece
Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo
Autómatas Mínimos Encontrar el autómata mínimo. Universidad de Cantabria Introducción Dado un lenguaje regular sabemos encontrar un autómata finito. Pero, hay autómatas más sencillos que aceptan el mismo
Conjuntos finitos y conjuntos numerables
Tema 3 Conjuntos finitos y conjuntos numerables En este tema vamos a usar los números naturales para contar los elementos de un conjunto, o dicho con mayor precisión, para definir los conjuntos finitos
LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Datos y tipos de datos
Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato
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
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
Macros en Lisp. 4.1. Cómo funcionan las macros?
Capítulo 4 Macros en Lisp Resumen Las macros en Lisp permiten al programador definir operadores que están implementados por transformación. La definición de una macro es esencialmente una función que genera
Isabelle como un lenguaje funcional
Capítulo 1 Isabelle como un lenguaje funcional 1.1 Introducción Nota 1.1.1. Esta notas son una introducción a la demostración asistida utilizando el sistema Isabelle/HOL/Isar. La versión de Isabelle utilizada
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
3 Polinomios y funciones racionales
Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023 Clase #19: viernes, 24 de junio de 2016. 3 Polinomios y funciones racionales
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Material diseñado para los estudiantes del NUTULA, alumnos del profesor Álvaro Moreno.01/10/2010 Lógica Proposicional
Lógica Proposicional INTRODUCCIÓN El humano se comunica con sus semejantes a través de un lenguaje determinado (oral, simbólico, escrito, etc.) construido por frases y oraciones. Estas pueden tener diferentes
Retículos y Álgebras de Boole
Retículos y Álgebras de Boole Laboratorio de Matemática Discreta Jesús Martínez Mateo jmartinez@fi.upm.es Práctica 1. Ordenación topológica A. Herramientas necesarias Para la práctica que vamos a realizar
Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]
Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Estructura
Tiempo de Ejecución. Midiendo el Tiempo de Ejecución
Tiempo de Ejecución Arturo Díaz Pérez Sección de Computación Departamento de Ingeniería Eléctrica CINVESTAV-IPN Av. Instituto Politécnico Nacional No. 2508 Col. San Pedro Zacatenco México, D. F. CP 07300
Derivadas Parciales (parte 2)
40 Derivadas Parciales (parte 2) Ejercicio: Si donde y. Determinar Solución: Consideraremos ahora la situación en la que, pero cada una de las variables e es función de dos variables y. En este caso tiene
GENERALIDADES DEL LENGUAJE C
GENERALIDADES DEL LENGUAJE C La cadena con formato debe ir encerrada entre comillas dobles, no simples. El carácter de retorno de carro (\n) es obligatorio si se desea finalizar la impresión con un salto
INTRODUCCIÓN DEL TEMA 2 ESPACIOS VECTORIALES
INTRODUCCIÓN DEL TEMA 2 ESPACIOS VECTORIALES Vamos a construir una serie de objetos sobre el plano z = 0. Al principio solamente tenemos dicho plano (en verde) Antes de empezar a construir algo, empezamos
Una función arroja un valor (y sólo uno) por cada valor que se le introduce. En otras palabras, para cada valor de x, hay un solo valor de y.
Qué es una función? Una función es una relación entre dos variables: la variable independiente, y la variable dependiente y. Sin embargo, no toda relación es una función. Una función arroja un valor (y
TEORÍA DE SISTEMAS PRÁCTICA 7 SISTEMAS. SISTEMAS DISCRETOS Y MUESTREADOS 1. INTRODUCCIÓN DE SISTEMAS DISCRETOS EN SIMULINK
TEORÍA DE SISTEMAS PRÁCTICA 7 SISTEMAS. SISTEMAS DISCRETOS Y MUESTREADOS OBJETIVOS DE LA PRÁCTICA Estudiar las funciones disponibles en Matlab y Simulink para el modelado y simulación de sistemas discretos
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
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
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