12 OTRO MUNDO ES POSIBLE: AL

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

Download "12 OTRO MUNDO ES POSIBLE: AL"

Transcripción

1 12 OTRO MUNDO ES POSIBLE: AL En este capítulo presentaremos AL [12], un lenguaje tipificado para expresar algoritmos Este lenguaje tiene como objetivo expresar de manera precisa problemas computacionales, por lo tanto debe ser completo, en el sentido de que cualquier computación intuitiva, pueda ser especificada por medios finitos Debe poseer una sintaxis que permita la construcción de algoritmos complejos a partir de partes más simples y una semántica que defina el significado de los algoritmos: Qué se va a computar y en alguna medida, cómo Con un lenguaje como el presentado en este capítulo es posible tender un puente entre el nivel algorítmico y la especificaciones de una máquina capaz de ejecutar tales descripciones algorítmicas El puente es el cálculo-, una teoría de las funciones computables que expresa propiedades elementales de operadores y operandos, aplicaciones y el rol de las variables en la computación Ese será el tema del siguiente capítulo El enfoque adoptado por AL está orientado a expresiones, donde los algoritmos mismos son expresiones que al computarse producen valores Las computaciones se definen mediante un conjunto definido de reglas de transformación Estas reglas se aplican sistemáticamente hasta que ya no es posible aplicar regla alguna El valor encontrado en la última transformación es el valor que deseábamos computar Debe observarse que los valores tienen una interpretación más general en este lenguaje, que en los lenguajes tradicional Los valores no son necesariamente atómicos, como los números, sino que pueden ser agregados complejos de expresiones que no pueden ser transformados en nada más y son por tanto, en cierto sentido, constantes Tales expresiones constantes pueden incluir funciones, aplicaciones de funciones y variables en contextos específicos Denotemos a las expresiones como e o e i con i 2 {0,, n} Podemos describir una computación como una secuencia: e 0! e 1!!e i! e i+1!!e n donde e 0 es la expresión inicial y e n es la expresión terminal ó el valor de e 0 La transformación de e i a e i+1 se da por la aplicación de una única regla de transformación Las expresiones en esta secuencia tienen una propiedad muy importante: si e n es el valor de e 0, entonces podemos decir que ambas expresiones significan lo mismo o que tienen la misma semántica, aunque sintácticamente difieran Siendo este el caso, también podemos decir que e 1 es equivalente a e n y lo mismo para todas las expresiones en la secuencia menores que n Es decir, las reglas de transformación que definen las computaciones llevadas a cabo preservan el significado, pues obviamente remplazan 145

2 146 : iguales por iguales Esta idea puede ilustrarse evaluando en tres transformaciones las siguiente expresión aritmética: Ejemplo 48 La evaluación de una expresión aritmética preserva significado: ((5 + 3) (8/4))! (8 (8/4))! (8 2)! 16 Es evidente que todas las sub-expresiones en esta computación son, debido a las reglas de la aritmética, remplazadas sistemáticamente de adentro hacía afuera por números Las expresiones en la cadena difieren sintácticamente, pero son equivalentes semánticamente, tienen el mismo significado La equivalencia semántica, por otro lado, no nos dice nada sobre lo que significa una expresión por si misma, otro nivel de interpretación es necesario para ello En un sentido estricto, podremos hablar de figuras sintácticas y transformaciones puramente sintácticas de expresiones, en otras expresiones que consideramos semánticamente equivalentes; sin que podamos hablar del significado o semántica de las expresiones en si mismas Aunque el lenguaje que estamos presentando no es un lenguaje estrictamente funcional, si tiene como implementación más cercana a Lisp [16] y a su intérprete EVAL - APPLY Esta es la razón para comenzar la segunda parte de este curso con esta revisión Las expresiones simbólicas en AL incluyen valores constantes tales como números (por ahora no distinguiremos entre enteros y reales), cadenas de caracteres, valores booleanos (falso y verdadero), variables y los símbolos primitivos para operadores aritméticos, lógicos y relacionales Estas expresiones se llaman átomos o términos de base (en inglés grounded), puesto que no están compuestos por otras expresiones del lenguaje Con los átomos como base, procederemos a definir algunos constructores sintácticos o formas sintácticas que están compuestas de expresiones y son a su vez expresiones Estas formas se usaran para construir expresiones más complejas substituyendo expresiones en posiciones sintácticas reservadas para expresiones En las definiciones asumimos que e 0, e 1,, e n y e denotan expresiones válidas en el lenguaje; y que v 1, v 2,, v m y f 1,, f k denotan variables o identificadores Informalmente los constructores son los siguientes: (e 0 e 1 e n ) denota la aplicación de una expresión e 0 a las expresiones e 1 e n La expresión e 0 está en la posición del operador y las otras expresiones en la posición de los operandos Las aplicaciones son las expresiones más importantes del lenguaje ya que son a ellas que las reglas de transformación se aplican Observen el uso de la notación prefija con fines de uniformidad if e 0 then e 1 else e 2 es una forma sintáctica especial que denota la aplicación del predicado e 0 a las expresiones consecuente e 1 y alternativa e 2 Su objetivo es elegir e 1 o e 2 para su posterior evaluación, dependiendo del valor del predicado e 0 (true o false)

3 147 lambda v 1 v n in e 0 denota una abstracción de las variables v 1 v n de la expresión e 0 ; o una función sin nombre de n parámetros formales v 1 v n cuya expresión cuerpo e 0 especifica la computación de los valores funcionales Se dice que lambda liga las variables v 1 v n en el cuerpo e 0 que determina su alcance en lo que se conoce como abstracción lambda he 1 e n i denota una lista n-aria ó una secuencia de expresiones en un orden particular, en el que tiene sentido hablar del primer, último e i-ésimo elemento La lista vacía se denota por hi letrec f 1 = e 1 f k = e k in e 0 es la expresión más compleja del lenguaje letrec precede a un conjunto de ecuaciones que igualan las variables f 1,, f k con las expresiones e 1,, e k recursivamente y las ligan en las expresiones e 1,, e k y también en e 0 De hecho, esas variables pueden verse como nombres o identificadores de funciones, por medio de las cuales puede hacerse referencia a la parte derecha de la ecuación más adelante en la expresión letrec El valor de la expresión es el valor de la expresión meta e 0 en la cual la ocurrencia de los identificadores f 1,, f k es remplazada recursivamente por el lado derecho de sus definiciones let v 1 = e 1 v n = e n in e 0 es una versión no recursiva de letrec Ninguna otra expresión es válida en el lenguaje De manera concisa las formas sintácticas pueden escribirse como: e = s const var oper (e 0 e 1 e n ) if e 0 then e 1 else e 2 let v 1 = e 1 v n = e n in e 0 lambda v 1 v n in e 0 hi he 1 e n i letrec f 1 = e 1 f n = e n in e 0 donde el signo = s denota equivalencia sintáctica const denota el conjunto de valores constantes, var el de variables y oper el de las operaciones primitivas del lenguaje AL Ahora estamos listos para definir la forma en que las expresiones en AL serán evaluadas Para ello solo debemos definir reglas para computar el valor de las formas sintácticas definidas en la sección anterior Como un primer paso, lo primero que haremos será definir estas reglas de forma independientemente de cualquier mecanismo o maquinaria para proveer una idea general de como debemos proceder en principio Con este propósito definiremos un evaluador abstracto llamado EVAL Se le debe considerar una meta-función que mapea cada forma sintáctica en otra que representa

4 148 : su valor, o significado En este sentido, EVAL puede considerarse la función sintáctica del lenguaje Este meta-función se define mediante aplicaciones recursivas sobre todas las sub-expresiones, o algunas de ellas seleccionadas, de las formas sintácticas del lenguaje La selección de las sub-expresiones estará determinada por una estrategia de evaluación que debería computar valores resultantes con un casi mínimo costo computacional Definiremos EVAL con una estrategia intuitiva: los operandos de una aplicación generalmente deberán evaluarse antes que el operador se aplique a ellos Si algún caso causa problemas, se aislará y se le procesará de forma diferente Esta estrategia es directamente implementable y conlleva una alta eficiencia en tiempo de ejecución De hecho, esta estrategia se implemente en la mayoría de los lenguajes de programación imperativos, y en ese contexto se conoce como estrategia de llamada por valor La aplicación de EVAL a una expresión e se denota EVALJ e K y recorriendo en forma descendente las formas sintácticas tenemos: Las expresiones atómicas como constantes, variables y operadores primitivos evalúan a si mismos: EVALJ atomo K = atomo Para aplicaciones con expresiones no especificadas en las posiciones de operador y operandos: EVALJ (e 0 e 1 e n ) K = EVALJ (EVALJ e 0 K EVALJ e 1 K EVALJ e n K) K Para los condicionales tenemos: EVALJ if e 0 then e 1 else e 2 K = 8 < EVALJ e 1 K EVALJ e : 2 K if EVALJ e 0 K then e 1 else e 2 Si EVALJ e 0 K = true Si EVALJ e 0 K = false En cualquier otro caso Observen que si la forma e 0 no tiene un valor booleano, la expresión de queda casi idéntica, excepto que la expresión e 0 es evaluada Para las expresiones let tenemos: EVALJ let v 1 = e 1 v n = e n in e 0 K = EVALJ e 0 [ v 1 EVALJ e 1 K v n EVALJ e n K ] K esto es, la forma evalúa al valor de e 0 en donde todas las ocurrencias de las variables ligadas por let han sido substituidas por sus valores respectivos, mediante EVALJ e i K i 2 {1,, n} denotando las substituciones Para las abstracciones anónimas que ocurren en una posición distinta a la del operador, tenemos que: EVALJ lambda v 1 v n in e 0 K = lambda v 1 v n in EVALJ e 0 K lo que significa que las abstracciones necesitan tener su cuerpo evaluado para determinar sus valores

5 149 Para las listas: EVALJ hi K = hi y EVALJ he 1 e n i K = hevalj e 1 K EVALJ e n Ki se computan recursivamente los valores de sus sub-expresiones preservando su estructura Para las expresiones letrec: EVALJ letrec f i = e i in e 0 K = EVALJ e 0 [ f i EVALJ e i [ f i letrec in f i ] K ] K esta definición aparentemente complicada, debe leerse como sigue: el valor de la expresión letrec completa es el valor de su término meta e 0, computado al expandir todas las ocurrencias de los identificadores de función f i con los valores e i en la mano derecha de sus ecuaciones definitorias Estos valores a su vez deben computarse substituyendo las ocurrencias de los identificadores f i en las expresiones nuevamente, por copias de las expresiones completas en letrec, las cuales sin embargo, tienen su expresión meta remplazada por los mismos f i Las formas sintácticas especializada letrec f i = e i in f i de hecho representa las expresiones e i en su forma no evaluada Tan pronto como los f i desaparecen de la expresión, la expresión letrec misma desaparece pues ya no es necesaria para que la computación continúe Hemos recorrido todas las formas sintáctica y sin embargo, la definición de EVAL está lejos de ser completa Hasta el momento sólo hemos cubierto los casos generales de las aplicaciones que tienen expresiones no específicas en las posiciones de operador y operandos Lo que falta son los casos especiales donde las expresiones en la posición del operador son (o evalúan a) abstracciones y operaciones primitivas Estas aplicaciones definen realmente las acciones de transformación de expresiones, por ejemplo, los casos estándar de aplicaciones completas se transforman con EVAL como sigue: EVALJ (lambda v 1 v n in e 0 e 1 e n ) K = EVALJ e 0 [v 1 EVALJ e 1 K v n EVALJ e n K] K Son evaluadas al valor de los cuerpos de abstracción e 0 en los cuales todas las ocurrencias de las variables lambda-ligadas (los parámetros formales de las abstracciones) son substituidos de izquierda a derecha por los valores de las expresiones operando en el orden en que ocurren en las aplicaciones Sin embargo, la sintaxis del lenguaje también permite desigualdades entre la aridad n de la expresión y el número m de argumentos En esos casos podemos optar por una aproximación cobarde, definiendo el valor de tal aplicación como una cadena de caracteres denotando el error: EVALJ (lambda v 1 v n in e 0 e 1 e m ) K m>n= función de aridad n recibiendo m argumentos La computación puede entonces detenerse y regresar esa cadena como el valor de la expresión completa De manera alternativa se puede intentar mejores soluciones, por ejemplo:

6 150 : Si el número de argumentos m es mayor que la aridad de la abstracción n, debemos definir el valor como una nueva aplicación cuyo operador es una expresión resultado de la aplicación de la abstracción de aridad n a n argumentos y cuyos operandos son los restantes m - n argumentos evaluados: EVALJ (lambda v 1 v n in e 0 e 1 e m ) K m>n= EVALJ ( EVALJ e 0 [ v 1 EVALJ e 1 K v n EVALJ e n K ] K EVALJ e n+1 K EVALJ e m K ) K Si la aridad n de la abstracción excede el número de argumentos m, en cuyo caso tenemos una aplicación parcial, el valor es definido como sigue: EVALJ (lambda v 1 v n in e 0 e 1 e m ) K m<n= lambda v m+1 v n in EVALJ e 0 [ v 1 EVALJ e 1 K v m EVALJ e m K ] K Aunque aún no contamos con los elementos para resolver el problema, es necesario señalar que el caso donde m<npuede introducir potencialmente conflictos entre nombres entre las variables lambda-acotadas renombradas que resultan de la abstracción y las variables libres en las expresiones argumento que están siendo substituidas bajo la abstracción lambda Los casos n = m y m>ny la evaluación de abstracciones aisladas no están completamente libres de este problema, ya que el cuerpo de la abstracción puede incluir recursivamente otras abstracciones que pueden ser penetradas por las substituciones El renombrado de variables no se considera una solución apropiada a este problema, dada la complejidad inherente al crecer el tamaño y la complejidad de los algoritmos Por el momento, si queremos seguridad al respecto, podemos adoptar una estrategia conservadora definiendo las evaluaciones parciales como: EVALJ (lambda v 1 v n in e 0 e 1 e m ) K m<n= [ EVALJ e m K EVALJ e 1 K lambda v 1 v n in e 0 ] expresión que tiene los argumentos evaluados y la abstracción empaquetados entre corchetes, en lo que se conoce como una cerradura Este mecanismo representa el valor de una nueva abstracción de aridad n - m sin realmente computarlo, y por tanto, evitando las substituciones bajo las abstracciones y los conflictos entre nombres que las acompañan Las cerraduras deben tratarse como abstracciones normales, es decir, pueden ser usadas como operadores y operandos de otras aplicaciones y tomar más argumentos hasta que puedan computarse llevando a a cabo las substituciones pospuestas Consideraciones similares con respecto a las aridades, aunque no impliquen conflictos entre nombres, aplican en el caso de las operaciones primitivas Para las operaciones aritméticas (binarias) que denotaremos con op_arit, y usando num, num 1 y num 2 para denotar números, tenemos que: EVALJ ( op_arit e 1 e 2 ) K = num Si num 1 = EVALJ e 1 K ^ num 2 = EVALJ e 2 K ( op_arit EVALJ e 1 K EVALJ e 2 K ) En cualquier otro caso esto es, el valor de la aplicación es un número si sus dos argumentos son números o evalúan a números El valor se obtiene aplicando el operador al valor de los dos

7 151 argumentos En cualquier otro caso, la aplicación se mantiene como tal salvo que e 1 y e 2 son remplazados por sus valores Para las operaciones relacionales, denotadas por op_rel, tenemos que además, str 1 y str 2 denotan cadenas de caracteres, mientras que bool denota un valor booleano: EVALJ ( op_rel e 1 e 2 ) K = 8 < bool Si str 1 = EVALJ e 1 K ^ str 2 = EVALJ e 2 K bool Si num : 1 = EVALJ e 1 K ^ num 2 = EVALJ e 2 K ( op_rel EVALJ e 1 K EVALJ e 2 K ) En cualquier otro caso donde el valor de la aplicación es un booleano si sus argumentos son numéricos o cadenas de caracteres, en cuyo caso, el operador utiliza el orden léxico para establecer su valor de verdad En cualquier otro caso la aplicación permanece intacta, salvo que e 1 y e 2 son substituidos por sus valores Para completar esta historia, definiremos la semántica de algunas operaciones sobre listas Aprovecharemos el hecho de que las expresiones que componen las listas no necesariamente deben evaluarse en orden para producir listas primitivas funcionalmente aplicables Esto es, EVAL procede sobre los operandos solo cuando se puede decidir que son listas o algo más que aplicaciones: 8 < true EVALJ ( empty e ) K = false : (empty EVALJ e K ) Si EVALJ e K = hi Si EVALJ e K = he 1 e n i En cualquier otro caso EVALJ ( first e ) K = e 1 Si EVALJ e K = he 1 e n i ( first EVALJ e K ) En cualquier otro caso EVALJ ( rest e ) K = he 2 e n i Si EVALJ e K = he 1 e 2 e n i ( rest EVALJ e K ) En cualquier otro caso EVALJ ( append e 1 e 2 ) K = 8 < he 11 e 1n e 21 e 2m i Si EVALJ e 1 K = he 11 e 1n i ^ EVALJ e 2 K = he 21 e 2m i : ( append EVALJ e 1 K EVALJ e 2 K ) En cualquier otro caso Varias observaciones son importantes en este punto Primero, la definición de EVAL incluye una verificación dinámica de tipos Las aplicaciones de esas funciones son evaluadas solo si sus argumentos son tipo compatibles, en cualquier otro caso quedan intactas (exceptuando que sus argumentos son substituidos por sus valores) Segundo, la meta función EVAL define la semántica operacional del lenguaje AL Nos dice no solo que significa una expresión en el lenguaje (que valor tiene); pero también cómo una persona o una máquina puede computar ese valor Además, observen que cuando EVAL aparece en una aplicación, se propaga al frente de sus sub-expresiones, pero el EVAL al frente de la aplicación no desaparece Esto significa que las sub-expresiones deben ser evaluadas antes que la aplicación completa pueda ser evaluada Sin embargo, puesto que las sub-expresiones son sintácticamente

8 152 : independientes, pueden ser evaluadas en cualquier orden, incluso simultáneamente; y sus valores siempre serán los mismos! Los EVALs son propagados recursivamente de afuera hacía adentro hasta que las subexpresiones encontradas sean, dada su definición, valores por si mismas y permitan que su EVAL desaparezca Lo mismo sucede con los EVALs al frente de aplicaciones cuyos componentes son todos valores atómicos Estas formas evaluarán a algo diferente, si aplican operadores legítimos a operandos tipo compatibles; o permanecerán intactos (de la manera definida) en cuyo caso ellos mismos son su propio valor Estos EVALs pueden verse como peticiones que fuerzan la evaluación de sus sub-expresiones Tales peticiones se satisfacen de adentro hacía afuera desapareciendo así los EVALs Ejemplo 49 Consideremos un ejemplo de evaluación, usando el lenguaje AL: EVALJ ( (- 3 (+23))(/36))K EVALJ ( EVALJ (-3 (+23)) K EVALJ ( /36) K ) K EVALJ ( EVALJ (-3 EVALJ (+23) K ) K 2 ) K EVALJ ( EVALJ (-35) K 2 ) K EVALJ ( 22) K 4 Ejemplo 50 Ahora definamos factorial: fac = lambda n in if (> n 1) then ( n (fac(- n1))) else 1) y evaluemos la aplicación de factorial a 5: EVALJ (fac 5) K EVALJ EVALJ fac K EVALJ 5 KK EVALJ lambda n in if (> n 1) then ( n (fac(- n1))) else 1) 5 K if EVALJ (> 5 1) K then EVALJ ( 5 (fac(- 51))) K else EVALJ 1 K if true then EVALJ ( 5 (fac(- 51))) K else EVALJ 1 K EVALJ ( 5 (fac(- 51)))) K EVALJ ( 5 EVALJ (fac(4))) KK EVALJ ( 5 ( 4 ( 3 ( 21)))) K 120

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

GUÍA BÁSICA DE SCHEME v.4

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

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

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

Tema 3.- Predicados y sentencias condicionales

Tema 3.- Predicados y sentencias condicionales UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER

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

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

Ficha de Aprendizaje N 13

Ficha de Aprendizaje N 13 Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que

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

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

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

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

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

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

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

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

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

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

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

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

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

UNIDAD 8 INECUACIONES. Objetivo general.

UNIDAD 8 INECUACIONES. Objetivo general. 8. 1 UNIDAD 8 INECUACIONES Objetivo general. Al terminar esta Unidad resolverás inecuaciones lineales y cuadráticas e inecuaciones que incluyan valores absolutos, identificarás sus conjuntos solución en

Más detalles

Métodos de Inteligencia Artificial

Métodos de Inteligencia Artificial Métodos de Inteligencia Artificial L. Enrique Sucar (INAOE) esucar@inaoep.mx ccc.inaoep.mx/esucar Tecnologías de Información UPAEP Contenido Lógica proposicional Lógica de predicados Inferencia en lógica

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

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

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos: Tipos de datos. Dato: Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos: I Numéricos: Almacenan números y con

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

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

Breve introducción a la Investigación de Operaciones

Breve introducción a la Investigación de Operaciones Breve introducción a la Investigación de Operaciones Un poco de Historia Se inicia desde la revolución industrial, usualmente se dice que fue a partir de la segunda Guerra Mundial. La investigación de

Más detalles

TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS.

TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS. TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. 1. MATRICES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS. DEFINICIÓN: Las matrices son tablas numéricas rectangulares

Más detalles

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

$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,

Más detalles

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo Complementos Contenidos Clase 1: Elementos de lógica: Conectivos, tablas de verdad, tautologías y contingencias.

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

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

Curso de Java Introducción a la Programación III

Curso de Java Introducción a la Programación III Curso de Java Introducción a la Programación III Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Operadores relacionales e igualdad 2 Estructuras de control condicional

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 4. Operadores y Expresiones

Tema 4. Operadores y Expresiones Tema 4 Operadores y Expresiones Contenidos 1. Conceptos Básicos. 2. Operadores Aritméticos. 3. Operadores de Relación, de Igualdad y Lógicos. 4. Operadores de Incremento y Decremento. 5. Operadores y Expresiones

Más detalles

Diagramas de secuencia

Diagramas de secuencia Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Fragmentos Combinados: caminos alternativos Departamento de Ingeniería de Sistemas y Computación - Universidad

Más detalles

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse lógicamente como un término no definido. Un conjunto se

Más detalles

Inecuaciones con valor absoluto

Inecuaciones con valor absoluto Inecuaciones con valor absoluto El valor absoluto de un número real a se denota por a y está definido por: Propiedades a a si a si a 0 a < 0 i a y b son números reales y n es un número entero, entonces:

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

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

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

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación

Más detalles

Teoría de la Computabilidad

Teoría de la Computabilidad Teoría de la Computabilidad Módulo 7: Lenguajes sensibles al contexto 2016 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Es este programa en Pascal sintácticamente

Más detalles

El ente básico de la parte de la matemática conocida como ANÁLISIS, lo constituye el llamado sistema de los número reales.

El ente básico de la parte de la matemática conocida como ANÁLISIS, lo constituye el llamado sistema de los número reales. EL SISTEMA DE LOS NÚMEROS REALES Introducción El ente básico de la parte de la matemática conocida como ANÁLISIS, lo constituye el llamado sistema de los número reales. Números tales como:1,3, 3 5, e,

Más detalles

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

Métodos que devuelven valor Dado el siguiente triángulo rectángulo: Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán

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

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

Lenguajes y Gramáticas

Lenguajes y Gramáticas Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas

Más detalles

Aritmética de Enteros

Aritmética de Enteros Aritmética de Enteros La aritmética de los computadores difiere de la aritmética usada por nosotros. La diferencia más importante es que los computadores realizan operaciones con números cuya precisión

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

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

CARRERA DE INGENIERÍA CIVIL EN INFORMÁTICA COMPETENCIAS ESPECÍFICAS Y SUS NIVELES DE DOMINIO

CARRERA DE INGENIERÍA CIVIL EN INFORMÁTICA COMPETENCIAS ESPECÍFICAS Y SUS NIVELES DE DOMINIO CARRERA DE INGENIERÍA CIVIL EN INFORMÁTICA COMPETENCIAS ESPECÍFICAS Y SUS NIVELES DE DOMINIO Responsables Prof. Oriel Herrera Gamboa Prof. Marcela Schindler Nualart Prof. Gustavo Donoso Montoya Prof. Alejandro

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

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011 TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso Origen Nuevo lenguaje de propósito general de Microsoft para la plataforma.net Es el único que ha sido diseñado específicamente.net

Más detalles

Tema 6: Teoría Semántica

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

Más detalles

Notación Asintótica 2

Notación Asintótica 2 Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad

Más detalles

Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.

Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa. Constantes y variables Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa. pi = 3.1416 Variable: Es un espacio en la memoria de la computadora que

Más detalles

Identificación de inecuaciones lineales en los números reales

Identificación de inecuaciones lineales en los números reales Grado Matematicas - Unidad Operando en el conjunto de Tema Identificación de inecuaciones lineales en los números reales Nombre: Curso: A través de la historia han surgido diversos problemas que han implicado

Más detalles

Ampliación Matemática Discreta. Justo Peralta López

Ampliación Matemática Discreta. Justo Peralta López Justo Peralta López UNIVERSIDAD DE ALMERíA DEPARTAMENTO DE ÁGEBRA Y ANÁLISIS MATEMÁTICO 1 Introducción 2 Definición semántica de las proposiciones 3 Diagrama de valores de certeza 4 Evaluación de fórmulas.

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

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. NÚMEROS REALES Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. Un conjunto es una colección bien definida

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

REFERENCIA DEL LENGUAJE

REFERENCIA DEL LENGUAJE REFERENCIA DEL LENGUAJE Sesión 07 Mg. Cadenas de caracteres Una cadena de caracteres es un arreglo de caracteres. Los caracteres son letras, números y signos de puntuación. Cuando un número se usa como

Más detalles

Apuntes de Lógica Proposicional

Apuntes de Lógica Proposicional Apuntes de Lógica Proposicional La lógica proposicional trabaja con expresiones u oraciones a las cuales se les puede asociar un valor de verdad (verdadero o falso); estas sentencias se conocen como sentencias

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

Material diseñado para los estudiantes del NUTULA, alumnos del profesor Álvaro Moreno.01/10/2010 Lógica Proposicional

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

Más detalles

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316 . D A T O S D E L A A S I G N A T U R A Nombre de la asignatura: Diseño Estructurado de Algoritmos Carrera: Ingeniería en Sistemas Computacionales Clave de la asignatura: SCB-9 Horas teoría Horas práctica

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

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

Complejidad de los Algoritmos

Complejidad de los Algoritmos Que es un Algoritmo? Complejidad de los Algoritmos Webster: cualquier método especial para resolver cierta clase de problemas. Horowitz: método preciso utilizable en una computadora para la solución de

Más detalles

De los números naturales a los números enteros. Exposición de contenidos matemáticos. Sobre el número cardinal

De los números naturales a los números enteros. Exposición de contenidos matemáticos. Sobre el número cardinal De los números naturales a los números enteros Exposición de contenidos matemáticos Sobre el número cardinal Usos del número: Introducción: Se reconocen distintos usos del número natural. Los usos o significados

Más detalles

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola) Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma

Más detalles

Tema: Los Grafos y su importancia para la optimización de redes.

Tema: Los Grafos y su importancia para la optimización de redes. Tema: Los Grafos y su importancia para la optimización de redes. Qué son los Grafos? Un grafo es una dupla G= {X,U}, donde X es un conjunto finito y no vacio de elementos llamados vértices y U es el conjunto

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

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

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA CONTENIDOS: 1. TIPOS DE DATOS 2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIICADORES COMO LOCALIDADES DE MEMORIA OBJETIO EDUCACIONAL: El alumno conocerá las reglas para cambiar fórmulas matemáticas

Más detalles

Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan el mismo lugar en ambas son iguales

Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan el mismo lugar en ambas son iguales Introducción Las matrices aparecen por primera vez hacia el año 1850, introducidas por J.J. Sylvester. El desarrollo inicial de la teoría se debe al matemático W.R. Hamilton en 1853. En 1858, A. Cayley

Más detalles

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS. ALGEBRA y ALGEBRA LINEAL 520142 Primer Semestre CAPITULO I LOGICA Y CONJUNTOS. DEPARTAMENTO DE INGENIERIA MATEMATICA Facultad de Ciencias Físicas y Matemáticas Universidad de Concepción 1 La lógica es

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

Lección 10: División de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

Lección 10: División de Polinomios. Dra. Noemí L. Ruiz Limardo 2009 Lección 10: División de Polinomios Dra. Noemí L. Ruiz Limardo 009 Objetivos de la lección Al finalizar esta lección los estudiantes: Dividirán polinomios de dos o más términos por polinomios de uno y dos

Más detalles

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I Table of contents 1 INFORMACIÓN GENERAL...2 2 INTRODUCCIÓN... 2 3 OBJETIVOS GENERALES DE LA ASIGNATURA... 3 4 OBJETIVOS, TEMAS Y SUBTEMAS... 3 5 PLAN TEMÁTICO...6

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

Terminaremos el capítulo con una breve referencia a la teoría de cardinales.

Terminaremos el capítulo con una breve referencia a la teoría de cardinales. TEMA 5. CARDINALES 241 Tema 5. Cardinales Terminaremos el capítulo con una breve referencia a la teoría de cardinales. Definición A.5.1. Diremos que el conjunto X tiene el mismo cardinal que el conjunto

Más detalles

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

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: EMPEZAR DE CERO A PROGRAMAR EN lenguaje C Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 7 OPERADORES Y EXPRESIONES 1 OBJETIVOS Conocer los tipos de operadores

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

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.

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 Central de Venezuela Facultad de Ciencias Escuela de Computación Organización y Estructura del Computador II Semestre I-2014.

Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Organización y Estructura del Computador II Semestre I-2014. Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Organización y Estructura del Computador II Semestre I-2014 Práctica #3 1) Qué es un latch? Qué es un flip-flop? 2) Si se aplican

Más detalles

CONVOCATORIA ABIERTA Nº FA-CA

CONVOCATORIA ABIERTA Nº FA-CA CONVOCATORIA ABIERTA Nº FA-CA-018-2013 OBJETO: CONTRATAR LA RECONSTRUCCIÓN (EJECUCIÓN DE OBRAS) DE CUATRO (4) SEDES EDUCATIVAS EN EL MUNICIPIO DE CAMPO DE LA CRUZ (ATLÁNTICO) QUE HACEN PARTE DE LOS PROYECTOS

Más detalles

e-mail: mtoledo@dgrfsa.gov.ar

e-mail: mtoledo@dgrfsa.gov.ar Arreglos Introducción a las Estructuras de Datos. Arreglos Unidimensionales: Vectores Vectores Estáticos en VB Vectores Dinámicos en VB Ordenando un Vector Introducción a las Estructuras de Datos. Una

Más detalles

Introducción a los espacios vectoriales

Introducción a los espacios vectoriales 1 / 64 Introducción a los espacios vectoriales Pablo Olaso Redondo Informática Universidad Francisco de Vitoria November 19, 2015 2 / 64 Espacios vectoriales 1 Las 10 propiedades de un espacio vectorial

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

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

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. 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,

Más detalles

Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz.

Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz. Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz. TIPOS DE ERRORES Sintácticos. Los errores de sintaxis, o sintácticos, ocurren cuando el programador escribe código que no va de acuerdo

Más detalles

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA EN DONDE SE ESTABLECE

Más detalles

NOT. Ejemplo: Circuito C1

NOT. Ejemplo: Circuito C1 Métodos de diseño de circuitos digitales Sistemas combinacionales En un circuito combinacional los valores de las salidas dependen únicamente de los valores que tienen las entradas en el presente. Se construen

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