The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by maticeba98, 2019-11-30 16:32:43

Preguntas

Preguntas

*U*1 En la transparencia referencial: *Es el conjunto de reglas que proporcionan el
Se puede definir a un paradigma como: Se actualizan los estados de información. significado de una sentencia o instrucción del
Una actividad con un objetivo determinado. Se realizan asignaciones destructivas. lenguaje.
Es el aspecto que ofrece el programa.
*Un modelo o ejemplo a seguir por una *No se actualizan los estados de información. El lenguaje C puede considerarse como un
comunidad científica. Se produce el efecto de lado. lenguaje de programación asociado al
Una filosofía de construcción de software. Cuando una solución tiende a lo declarativo: paradigma:
Un proceso sin guías por el cual se alcanzan Tenemos secuencia. Funcional.
resultados científicos. Decimos cómo resolver el problema. Lógico.
Los paradigmas lógico y funcional: *Expresamos características del problema. *Imperativo.
*Pertenecen al paradigma declarativo. Tenemos un mayor control sobre el algoritmo. Concurrente.
Pertenecen al paradigma Imperativo. Bajo el paradigma declarativo, un programa El lenguaje Pascal puede considerarse con
No tienen nada en común. expresa: un lenguaje de programación asociado al
Son exactamente lo mismo. Cómo se soluciona paso a paso un problema. paradigma:
Un paradigma es: *Qué es la solución de un problema. Lógico.
Un conjunto de opciones. Quién soluciona el problema. Funcional.
Un entorno de desarrollo. Cuándo se soluciona el problema. *Imperativo.
*Un modelo. El Paradigma lógico: Concurrente.
Un caso de éxito. Se caracteriza por encapsular datos y El lenguaje Lisp puede considerarse con un
Un Paradigma de Programación: procedimientos. lenguaje de programación asociado al
Define cómo deben interpretarse los resultados *Puede resumirse en la expresión: Axiomas + paradigma:
de la investigación científica. reglas de deducción = programa. Lógico.
Imperativo.
Determina el tipo de interrogantes a formular El programador tiene la responsabilidad de un *Funcional.
para hallar respuestas en relación al objetivo. adecuado flujo de control. Concurrente
*Es un enfoque particular o filosofía para la Se destaca por su eficiencia y uso masivo en Un programa se dice que es fiable si:
construcción del software. aplicaciones reales. Realiza sus acciones mediante el uso de
Determina una manera especial de entender el Bajo el paradigma de objetos, un programa subrutinas.
mundo, explicarlo y manipularlo. puede contener sentencias imperativas: *Realiza sus especificaciones en cualquier
Señale cuál de los siguientes no es un *Sí, cuando la implementación de ese lenguaje condición.
paradigma: no es totalmente pura. Realiza sus especificaciones con pocas
OOP (Object Oriented Programming). No, nunca es posible incluir sentencias estructuras que permiten la construcción de
Lógico. imperativas. sistemas complejos.
Procedural. Sí, pero sólo si ese programa está compuesto Realiza sus especificaciones con pocas
*SOA (Service Oriented Architecture). únicamente de sentencias imperativas. estructuras, mediante el uso de subrutinas que
Paradigma imperativo: Sí, pero sólo en casos de implementación de permiten la construcción de sistemas complejos.
Objetos + Mensajes = Programa. polimorfismo. Señale la afirmación correcta respecto a los
Funciones + Control = programa. En el Paradigma Orientado a Objetos: lenguajes de programación híbridos:
*Algoritmo + Estructura de Datos = programa. *El sistema se descompone en objetos con Smalltalk es un ejemplo de un lenguaje de
Lógica + Control = programa. responsabilidades bien especificadas. programación híbrido.
En el paradigma imperativo se realizan: Es el único paradigma cuyos lenguajes no Son muy estrictos en cuanto a su
implementación.
*Asignaciones destructivas. utilizan variables globales. Mantienen las características propias del
Asignaciones no destructivas. Una ventaja importante de este paradigma es la paradigma al cual está asociado.
Asignaciones que no provocan efecto de lado. ausencia de efectos colaterales. *Agregan características propias de otros
Asignaciones que no afectan a los datos Todas sus sentencias y datos se encapsulan en paradigmas.
En el paradigma imperativo un programa módulos. Un programa es:
indica: La programación concurrente y el El sistema operativo.
El qué del dominio o situación. paralelismo en el hardware: *Conjunto de instrucciones ordenadas
*El cómo se va procesando paso a paso la Son exactamente lo mismo, es el mismo correctamente que permiten realizar una tarea o
información. concepto. trabajo específico.
Una no secuencia del paso a paso del No son el mismo concepto, pero no puede darse Una serie de reglas determinadas por el
procesamiento de la información. uno sin el otro. lenguaje a seguir para solucionar un problema.
La descripción de la situación. Son uno consecuencia del otro. Es la herramienta que permite expresar la
En un programa del Paradigma Imperativo: *Son dos conceptos absolutamente solución a un problema.
Su codificación consiste en describir las independientes.
propiedades de la solución buscada. La sintaxis de un lenguaje de programación *U*2
*La solución se describe detallando una está conformada por: Abstracción es:
secuencia ordenada de tareas a realizar. *Reglas que permiten la formación de *Extraer las características esenciales del
Está constituido por hechos, reglas, sentencias válidas de en un lenguaje. objeto.
restricciones, ecuaciones, transformaciones. Reglas que brindan el significado de una Extraer las características no esenciales y
Es el único paradigma que utiliza variables sentencia o instrucción del lenguaje. esenciales del objeto.
globales. Reglas que especifican los elementos léxicos Extraer las características accidentales de un
Cuando una solución tiende a lo que forman programas en el lenguaje que se objeto.
procedimental: está definiendo. Extraer las características no esenciales del
*Decimos cómo resolver un problema. Reglas que facilitan la formación y significado de objeto.
Expresamos características del problema. sentencias válidas en un lenguaje. Cada módulo conoce:
Tenemos un menor control sobre el algoritmo. ¿Cuál es el concepto más apropiado de El funcionamiento interno de los demás
Se requiere de algún mecanismo externo para semántica de un lenguaje?: módulos.
resolver el algoritmo. Definición formal de la sintaxis de un lenguaje El funcionamiento interno de los demás módulos
La Programación estructurada combina dos de programación. y su interfaz.
ideas: Conjunto de reglas que gobiernan la *Sólo conoce la interfaz de los que interactúa.
Declaraciones y Premisas. construcción o formación de sentencias
Instrucciones y Mensajes. (instrucciones) válidas en un lenguaje. 1
*Flujo de control e invariantes.
Premisas y Mensajes.

El funcionamiento externo e interno de los Los programas pueden realizar llamadas a Evaluados después de invocar al bloque de
demás módulos. funciones recursivas. software.
La modularización es una estrategia de la Los programas serán evaluados en tiempo de Evaluados durante la invocación del bloque de
software.
programación que persigue: ejecución por las máquinas virtuales. Se evalúan siendo responsabilidad del bloque
*La organización y distribución de la En un programa declarativo las de software invocado.
funcionalidad de un sistema complejo en parte declaraciones pueden ser: *Evaluados antes de invocar el bloque de
más pequeñas de software. *Proposiciones. software.
La distribución en la invocación que desde un Motores. Los parámetros que se utilizan en la
módulo se efectúa a otro módulo. Correcciones. invocación de un bloque de software
La organización y separación del conocimiento Modificaciones. cualquiera:
sobre la definición del problema, logrando una Los tipos primitivos son: Deben ser siempre evaluados antes de resolver
separación entre la lógica y el control. *Valores atómicos. el bloque.
La organización del programa en un conjunto de Aquellos que pueden ser descompuestos en *Pueden ser evaluados en diferentes momentos
declaraciones. otros valores. de acuerdo al modo de evaluación.
Característica de un módulo: Valores atómicos y valores que se Deben ser evaluados antes o después según la
Alto grado de acoplamiento. descomponen en otros valores. caracterización del parámetro.
*Poco acoplamiento. Conforman una estructura de datos. Deben ser evaluados antes de la invocación del
Baja Cohesión. ¿Cuál de las siguientes afirmaciones no está bloque.
Tamaño relativamente grande. asociada con el concepto de estructura de Redefinir un método en clases que se hereda
¿Cuál de las siguientes afirmaciones no está datos? : de una clase base se llama:
asociada con los conceptos de modularidad Es conjunto de valores. Generalización.
*Especialización.
y encapsulamiento?: *Es un valor atómico. Extensibilidad.
Cada módulo conoce de los demás módulos con Se pueden procesar en su conjunto como una Escalabilidad.
los que interactúa, sólo la interfaz. unidad. En la recursividad:
*Cada módulo conoce el detalle del Se pueden descomponer en partes y tratar cada Un bloque de código recursivo no puede
funcionamiento interno de los demás módulos una en forma independiente. invocarse a sí mismo.
con los que interactúa. El tipo de dato al que pertenece una entidad Un bloque de código recursivo no puede invocar
Ante la modificación de una funcionalidad en determina: a otros bloques de código.
particular del sistema, en la medida que su La forma en que puede convertirse a otro tipo. *Un bloque de código recursivo se invocará a sí
implementación esté encapsulada en un La manera en que sus componentes se mismo.
módulo, el impacto que produce su cambio no representan en sistema binario. Un bloque de código recursivo solo invocará a
afectará a los otros módulos que interactúan con *La operatoria que se puede realizar con ella. otros bloques de código.
él. Las operaciones matemáticas posibles. Un lenguaje fuertemente tipado se
Cada módulo sólo conoce de los demás Un tipo de dato abstracto es: caracteriza porque:
módulos con los que interactúa, la forma en que Un tipo sin definición. Toda variable o parámetro pueden en ocasiones
debe enviarle información adicional en forma de Un tipo declarado como abstract. ser definidos por un tipo de datos en particular
parámetros y cómo va a recibir las respuestas. *Un conjunto de valores y de operaciones que se mantiene sin cambios durante la
El concepto de transparencia referencial asociadas a ellos. ejecución del programa.
consiste en: Una nómina de tipos. Toda variable o parámetro no deben ser
definidos por un tipo de datos en particular que
*En que el valor de una expresión depende La transferencia referencial: se mantiene sin cambios durante la ejecución
únicamente del valor de sus componentes, es *Depende únicamente del valor de sus del programa.
decir que si se evalúa el mismo bloque de componentes. *Toda variable o parámetro deben ser definidos
software con los mismos parámetros se obtiene Siempre que se evalúa el mismo bloque se por un tipo de datos en particular que se
el mismo resultado. obtiene otro resultado. mantiene sin cambios durante la ejecución del
En que el valor de una expresión que no Se cambian en forma constante los valores de programa.
depende del valor de sus componentes, es decir los parámetros. Toda variable o parámetro deben ser definidos
que si se evalúa el mismo bloque de software Se produce el efecto de lado. por un tipo de datos en particular que permite la
con los mismos parámetros se obtiene el mismo La asignación destructiva: posibilidad de cambios durante la ejecución del
resultado. No produce efecto de lado. programa.
En que el valor de una expresión que no *Se obtiene un resultado distinto al efectuarla. La coerción consiste:
depende del valor de sus componentes, es decir No se cambian en forma constante los valores En la conversión explícita o automática de un
que si se evalúa el mismo bloque de software de los parámetros. tipo a otro.
con diferentes parámetros se obtiene el mismo Es la forma menos usual de provocar efecto de En la conversión explicita, el programador se
resultado. lado. encarga de hacer las conversiones directamente
En que el valor de una expresión que depende Transparencia referencial: en código.
del valor de sus componentes, es decir que si se Es una característica de los lenguajes OO En la conversión implícita, el programador se
evalúa el mismo bloque de software con puros. encarga de hacer las conversiones directamente
diferentes parámetros se obtiene el mismo *Consiste en que el valor de una expresión en código.
resultado. depende únicamente del valor de sus * En la conversión implícita o automática de un
Orden Superior significa: componentes. tipo a otro.
Realizar una evaluación diferida. Es un prerrequisito de la abstracción y En un lenguaje fuertemente tipado:
*Que una función pueda ser utilizada como encapsulamiento. *Toda variable y parámetro deben ser definidos
parámetro y devuelta como resultado. Es la consecuencia más importante del efecto de un tipo de dato en particular.
Que una función pueda ser utilizada como colateral. Pueden asumir valores y tipos de datos
parámetro y no devuelta como resultado. Unificación es un mecanismo por la cual: diferentes durante la ejecución del programa.
Que una función pueda ser devuelta como *Una variable que no tiene valor, asume un El compilador se encargará de determinar qué
resultado y no como parámetro. valor. tipo de dato es una variable.
Orden superior en un programa significa: Una variable que tiene valor, asume un valor. No existen los lenguajes "Fuertemente tipados".
*Los programas pueden tener como argumento Una variable a la que se le asigna un valor. ¿Cuál de los siguientes lenguajes usa
Programas y producir como resultado otros Una constante que asume valores a través del tipificación estática de datos? :
Programas. tiempo.
Los programas cuentan con argumentos de En una evaluación ansiosa los argumentos 2
entrada que serán procesados en el void main(). son:

Smalltalk. Una técnica en el cual la estructura de un La combinación de dos estructuras lógicas
*C. programa se realiza sin el uso de estructuras secuencia e iteración.
Python. lógicas de control. Una estructura condicional simple indica:
Lisp. *Una condición y un bloque de acciones a
¿Cuál de los siguientes lenguajes usa Una técnica en el cual la estructura de un realizar si la misma arroja resultado verdadero.
tipificación estática?: programa se realiza exclusivamente mediante el Una acción y un bloque de condiciones
Smalltalk. uso de estructuras lógicas de control verdaderas.
*Java. denominadas Iteración. Una condición y un bloque de acciones a
xBase. Respecto a la programación estructurada: realizar tanto para el caso en que la misma
Perl. *Toda función computable puede ser arroja resultado falso como verdadero.
¿Cuál de los siguientes lenguajes usa implementada mediante secuencia, selección o Una condición sin acciones.
tipificación dinámica?: iteración. El ciclo while:
Java. En este estilo de programación se suprimen Permite repetir un grupo de acciones mientras la
*Smalltalk. posibles efectos colaterales. condición del ciclo sea falsa.
C. Una instrucción "go to" permite pasar el control a *Permite repetir un grupo de acciones mientras
C++. cualquier otra parte del programa. la condición del ciclo sea verdadera.
El conocimiento de la clasificación de los En este estilo de programación es posible la Permite repetir un grupo de acciones hasta que
valores en tipos permite al programador: coexistencia de varios flujos de control la condición del ciclo sea verdadera.
Evitar errores de lógica. simultáneos. Permite repetir un grupo de acciones mientras la
*Evitar la ejecución de operaciones sin sentido. Respecto a la programación estructurada: condición del ciclo y la variable de control de
Utilizar un esquema de tipificación estática Proporciona un mejor nivel de abstracción que la ciclo sean verdaderas.
eficiente. POO. El ciclo for:
Definir criterios de encapsulamiento lo más Permite repetir un grupo de acciones mientras la
adecuados posible. La codificación se organiza en rutinas o variable de control de ciclo sea verdadera.
El objetivo básico del polimorfismo es: procedimientos almacenados en clases. Permite repetir un grupo de acciones hasta que
Lograr intercambio de datos entre diferentes *La programación estructurada tiende a ser la variable de control de ciclo sea falsa.
lenguajes. orientada a la acción. Permite repetir un grupo de acciones mientras la
Lograr intercambio de datos entre diferentes La unidad fundamental de esta programación condición del ciclo y la variable de control de
paradigmas. son las entidades. ciclo sean verdaderas.
Construir software basado en múltiples ¿Cuál de las siguientes afirmaciones NO es *Permite repetir un grupo de acciones mientras
paradigmas. correcta en el paradigma estructurado?: la condición del ciclo sea verdadera.
*Construir piezas de software genéricas que Toda función computable puede ser Una función se puede conceptualizar como:
trabajen indistintamente con diferentes tipos de implementada en un lenguaje de programación Un subproceso que puede recibir o no
entidades. que combine sólo tres estructuras de control. parámetros de entrada o de entrada/salida y
El polimorfismo está asociado a: Las estructuras de control se pueden agrupar realiza un conjunto de acciones retornando más
Los datos de los procesos. en: secuenciales, selectivas e iterativas. de un resultado.
Los atributos de los objetos. *Un buen programa estructurado sólo necesita *Un subproceso que puede recibir o no
*Los procesos o comportamientos. de una sola instrucción (go to) para modificar la parámetros de entrada o de entrada/salida y
La estructura de los programas secuencia de ejecución de las instrucciones realiza un conjunto de acciones retornando un
El polimorfismo de sobrecarga se da: mediante la transferencia incondicional de su único resultado.
*En clases completamente independientes. control. Un subproceso que nunca recibe parámetros y
Se da en funciones con funcionalidades realiza un conjunto de acciones retornando más
diferentes. En las estructuras secuenciales las instrucciones de un resultado.
Con funciones de distinto nombre. se van ejecutando una tras otra. Un subproceso que puede recibir o no
En clases no independientes. El paradigma estructurado está fuertemente parámetros de salida y realiza un conjunto de
El Polimorfismo de subtipado consiste en: basado en: acciones retornando un único resultado.
*La posibilidad de llamar un método de objeto, *Variables para conservar estado de los datos Las declaraciones de subrutinas
sin tener que conocer su tipo intrínseco. de un programa. generalmente son especificadas por:
La posibilidad de definir varias funciones Objetos para conservar el estado de los datos Un nombre único en el ámbito, un tipo de dato
utilizando el mismo nombre, pero usando de un programa. de retorno, una lista de parámetros (obligatorio)
parámetros diferentes (nombre y/o tipo). Funciones para conservar el estado de los datos y conjunto de órdenes que debe ejecutar la
La posibilidad de definir varias funciones de un programa. rutina.
utilizando nombres diferentes, usando Declaraciones para conservar el estado de los Un nombre único en el ámbito, una lista de
parámetros diferentes (nombre y/o tipo). datos de un programa. parámetros (obligatorio) y conjunto de órdenes
La posibilidad de definir varias funciones La abstracción en la programación que debe ejecutar la rutina.
utilizando el mismo nombre, pero usando estructurada: Un nombre único en el ámbito, un tipo de dato
parámetros diferentes (nombre). Es a nivel de datos y su comportamiento de retorno y conjunto de órdenes que debe
asociado originando Tipos de Datos Abstractos. ejecutar la rutina.
*U*3 *Es una abstracción de comportamiento. *Un nombre único en el ámbito, un tipo de dato
En el paradigma imperativo, un programa es: Es realizada a nivel de mensajes. de retorno, una lista de parámetros (opcional) y
*Un conjunto de acciones precisas a realizar. Es realizada por medio de funciones recursivas. conjunto de órdenes que debe ejecutar la rutina.
Un bloque de operaciones matemáticas. En la programación estructurada, la Un procedimiento:
Un conjunto de declaraciones. representación gráfica se realiza a través de: No recibe parámetros.
Un conjunto de expresiones regulares. Diagrama de transición de estados. *No retorna valores.
La programación estructurada es: Diagramas de bloques. Retorna valores.
*Una técnica en el cual la estructura de un * Diagramas de Flujo o Flow chart. Retorna un único resultado.
programa se realiza mediante el uso de Diagrama de entidades. ¿Cuál de las siguientes afirmaciones NO es
estructuras lógicas de control: Secuencia, El teorema del programa estructurado una ventaja de las subrutinas en la
Selección, Iteración. establece: programación estructurada?:
Una técnica en el cual la estructura de un La combinación de dos estructuras lógicas *Disminuye la mantenibilidad y extensibilidad del
programa se realiza mediante el uso de secuencia y selección. programa.
estructuras lógicas de control: Secuencia e La combinación de tres estructuras lógicas Aumenta la legibilidad del código de un
Iteración. secuencia, interacción y selección. programa.
*La combinación de tres estructuras lógicas
secuencia, iteración y selección. 3

Permite la reutilización del código. Las variables locales son aquellas que: *Significa reunir a todos los elementos que
Descomposición de problemas complejos en Se declaran y son accesibles en todo momento. pueden considerarse pertenecientes a una
problemas más simples. Se declaran y son accesibles en un contexto misma entidad, al mismo nivel de abstracción.
determinado. Al finalizar dicho contexto la Denota las características esenciales de un
¿Cuál de las siguientes afirmaciones NO es variable mantiene su valor y puede ser usada. objeto, donde se capturan sus comportamientos.
correcta respecto a los procedimientos y *Se declaran y son accesibles en un contexto El principio de ocultación:
funciones en la programación imperativa?: determinado. Al finalizar dicho contexto la *Protege a las propiedades de un objeto contra
*Los procedimientos son subrutinas que pueden variable se destruye perdiendo su valor y toda su modificación por quien no tenga derecho a
recibir o no algún parámetro de entrada/salida, posibilidad de ser utilizada. acceder a ella.
realizan algún proceso y siempre retornan algún Se declaran y son accesibles en un contexto Permite subdividir una aplicación en partes más
valor. determinado. Al finalizar dicho contexto la pequeñas.
Las funciones son subprocesos que pueden variable no se destruye y puede ser usada. Significa reunir a todos los elementos que
recibir o no algún parámetro y retornan siempre ¿Cuál de las siguientes afirmaciones no es pueden considerarse pertenecientes a una
un único valor. correcta sobre la programación misma entidad, al mismo nivel de abstracción.
En lenguaje C sólo existen las funciones y los estructurada?: Denota las características esenciales de un
procedimientos se programan como funciones * El ámbito de una variable local son todas las objeto, donde se capturan sus comportamientos.
que no retornan ningún valor. funciones que puede tener un programa. Dos objetos son polimórficos respecto de un
En el lenguaje Pascal se distingue entre la Las variables locales se declaran y se pueden conjunto de mensajes si:
subrutina procedimiento y la subrutina función. utilizar sólo dentro del contexto en el cual son *Ambos pueden responder de manera
Una función: declaradas. semánticamente equivalente (aún si su
No recibe parámetros. Las variables globales son accesibles desde implementación es distinta).
*Retorna valores. cualquier función del programa en el cual se las Ninguno puede responder.
declara. Ambos pueden responder de manera diferente
No retorna un único resultado. Las variables son el espacio de almacenamiento mediante una lista de colaboradores externos.
Puede o no retornar un resultado. en memoria donde los programas imperativos Ninguno puede responder a menos que se
Una subrutina permite: guardan valores que utilizan en los procesos determinen colaboradores internos.
*Reducción de código duplicado. que realizan. Sobre el polimorfismo:
El no aumento de la legibilidad del código. Características comunes en distintas Usar polimorfismo implica trabajar sobre una
No descompone un problema complejo. implementaciones de programación estructura hereditaria de clases.
No aumenta la extensibilidad. imperativa: Es un recurso que todos los lenguajes POO
¿Cuál de las siguientes afirmaciones es *Variables globales, locales y estructuras de proveen exclusivamente en tiempo de ejecución.
correcta? : control. *La invocación de un comportamiento en una
Un procedimiento es un subproceso que puede Variables globales y condicionales. referencia producirá el comportamiento correcto
recibir o no parámetros de entrada o de entrada Procedimientos y declaratividad. para el tipo real del objeto referenciado.
/ salida y realiza un conjunto de acciones Mensajes y funciones. El polimorfismo es posible porque una referencia
retornando un único resultado. Las variables globales: a objeto puede instanciarse con cualquier
*Un procedimiento es un subproceso que puede *Son accesibles desde cualquier parte del objeto.
recibir o no parámetros de entrada o de entrada programa. Encapsulamiento significa:
/ salida y realiza un conjunto de acciones sin No son accesibles desde cualquier parte del *Reunir a elementos pertenecientes a una
retornar valores. programa. misma entidad.
Una función es un subproceso que puede recibir Almacenan un valor no perdurable. Reunir a elementos de distinto nivel de
Son accesibles en un contexto determinado. abstracción.
o no parámetros de entrada o de entrada / salida Señale lo que es correcto respecto a la Extraer las características esenciales de un
y realiza un conjunto de acciones sin retornar función printf() en el lenguaje C: objeto.
valores. *Puede recibir como parámetro una cadena que Que cada tipo de objeto expone una interfaz.
Todas son correctas represente el mensaje a mostrar y un conjunto Cohesión:
Una subrutina es: de variables que contienen los valores que se *Mide las responsabilidades asignadas a cada
Un programa que llama a otro. desea mostrar por pantalla. objeto.
Un bloque que se repite. Solo puede recibir un único parámetro que es un Mide las relaciones entre los objetos.
*Una porción de código que realiza una tarea valor numérico que se desea mostrar por No mide las responsabilidades asignadas a
específica. pantalla. cada objeto.
Una porción de código que se ejecuta si se Permite leer por teclado un valor. Es lo que el modelo orientado a objetos busca
cumple una condición. Solo puede recibir un conjunto de variables del disminuir.
Respecto a procedimientos y funciones: mismo tipo para ser mostradas por pantalla. Especifique lo que NO es una característica
Se organizan en clases que implementan deseable en la orientación a objetos:
conceptos. *U*4 Abstracción.
*Permiten la reutilización de código en múltiples El principio de encapsulamiento: Recolección de basura.
programas. *Permite aumentar la cohesión de los Principio de ocultación.
Las variables globales definidas en su cuerpo componentes del sistema. *Baja cohesión y alto acoplamiento.
son visibles en todo el programa. No permite aumentar la cohesión de los La abstracción es:
Únicamente los procedimientos pueden recibir componentes del sistema. *El proceso por el cual se extraen las
diversos tipos de parámetros de entrada. Permite aumentar el acoplamiento de los características y comportamientos esenciales de
Respecto al concepto de subrutinas: componentes del sistema. un objeto.
Se las considera procedimientos cuando reciben Permite aumentar la abstracción de los El proceso por el cual se divide un objeto en
diversos parámetros de entrada. componentes del sistema. componentes más pequeños.
*Se las considera procedimientos si no retornan El encapsulamiento: El proceso por el cual se encapsula el
valores. Protege a las propiedades de un objeto contra comportamiento de un objeto.
Se las considera procedimientos si contienen su modificación por quien no tenga derecho a El proceso por el cual se modela la
estructuras de control. acceder a ella. interoperatividad entre los objetos.
Se las considera procedimientos si invocan otras Permite subdividir una aplicación en partes más Sobre la abstracción:
subrutinas. pequeñas *Denota las características esenciales de un
Una función es: objeto, donde se capturan sus comportamientos.
Una subrutina que recibe parámetros.
Una subrutina que no recibe parámetros. 4
*Una subrutina que siempre retorna un valor.
Una subrutina que no tiene acciones.

Significa reunir a todos los elementos que Un bloque. Ninguna correcta
pueden considerarse pertenecientes a una En Smalltalk, el conjunto de variables que va Los enunciados más básicos del LPO son:
misma entidad. a contener un objeto se llama: Las cláusulas de Horn
Parámetro. Las constantes individuales
Así se denomina a la propiedad que permite Método. *Los enunciados atómicos
subdividir una aplicación en partes más Colaborador externo. Los símbolos
pequeñas. *Colaborador Interno. Las constantes individuales hacen referencia
Cada objeto está aislado del exterior, es un ¿Qué es un método? : a:
módulo natural. Es una abstracción de la realidad y siempre Varios objetos
Protege a las propiedades de un objeto contra tiene asociados variables temporales o locales. *Exactamente a un objeto particular
su modificación por quien no tenga derecho a Es una subrutina la cual se puede descomponer A ningún objeto
hacerlo. a su vez en otras subrutinas. Exactamente a dos objetos
En la Herencia: Conjunto de instrucciones que se ejecutan a la La aridad es:
Ninguna de las anteriores afirmaciones es vez. *Un número que indica la cantidad de
correcta. *Conjunto de colaboraciones que un objeto constantes individuales
Los objetos heredan sólo el comportamiento de tendrá con otros, para responder un objeto. Un literal que indica la cantidad de símbolos de
las clases a la que pertenecen. La programación en Smalltalk consiste en: predicado
Los objetos heredan sólo las propiedades de las Creación de clases y especificación de la Un número que indica la cantidad de enunciados
clases a la que pertenecen. secuencia de mensajes entre objetos. atómicos
*Los objetos heredan las propiedades y el *Creación de clases, instancias y especificación Una constante
comportamiento de todas las clases a las que de la secuencia de mensajes entre objetos. Los símbolos de predicado son utilizados
pertenecen. Creación de instancias y especificación de la para denotar:
secuencia de mensajes entre objetos. Una propiedad
Sobre la Herencia: Creación de clases e instancias. Una relación entre objetos
*La herencia permite definir/crear objetos como El operador (:=) en Smalltalk representa: *Una propiedad y una relación entre objetos
tipos especializados de objetos preexistentes. Operador de concatenación. Ninguna de las anteriores
Todos los lenguajes POO implementan herencia Operador de conversión de tipos. En Prolog para definir las relaciones se
múltiple. Operador lógico. utiliza:
Los lenguajes que implementan herencia *Operador de ligadura o asignación. Las reglas de Colmenauer
requieren de chequeo estático de tipos de datos. Un Workspace permite: *Las cláusulas de Horn
Los lenguajes que implementan herencia Observar la estructura interna de un objeto. Las reglas de inferencia
necesariamente son débilmente tipados. Editar la biblioteca de clases del ambiente. Las reglas de Robinson
Un objeto dentro del Paradigma de objetos *Evaluar expresiones. Los elementos de un programa en Prolog
debe poseer: Configurar expresiones. son:
Abstracción, Cohesión, Identidad y Capacidad Los literales hacen: Base de conocimiento
de Inspección. *Referencia siempre al mismo objeto. Base de conocimiento y motor de inferencia
*Abstracción, Comportamiento, Identidad y Referencia siempre a distintos objetos. Base de conocimiento, hechos y reglas
Capacidad de Inspección. Referencia siempre a distintos objetos en un *Base de conocimiento, motor de inferencia y
Abstracción, Comportamiento, Acoplamiento y instante de tiempo. Resolución
Capacidad de Inspección. No referencia siempre al mismo objeto. Base de conocimiento, Motor de inferencia y
Principio de Ocultación, Comportamiento, Especifique lo que no es un mensaje para reglas
ningún objeto en Smalltalk : Pasos a seguir para escribir un programa en
Acoplamiento y Capacidad de Inspección. +. Prolog:
El comportamiento de un objeto: factorial. Declarar hechos
Estará definido por las funciones declaradas en >=. Declarar hechos y Base de Conocimiento
la clase. *:=. Declarar reglas y Base de Conocimiento
*Estará definido por el conjunto de mensajes Pool Dictionaries son: *Declarar hechos, reglas y hacer preguntas
que el objeto pueda responder. Métodos de clases. La estructura de un programa en Prolog es:
Estará definido por los atributos de la clase. *Variables contenedoras. *Lógica + control
Estará definido por los procedimientos Variables de clase. Lógica + mensaje
declarados en la clase. Métodos de instancias. Lógica + función + control
El comportamiento de un objeto es: Cuál es el resultado de la siguiente expresión La unificación es un mecanismo para:
La forma en que se representa en memoria. en Smalltalk 4 + 5 * 3 - 3 factorial: Que las variables tomen valores
El conjunto de datos que puede aceptar y 13. *Que las variables lógicas tomen valores
transformar. true. Que la variable no esté ligada
El conjunto de mensajes que puede mandar a *21. Ninguna de las anteriores
otros objetos. -27. El principio de resolución de Prolog se basa
*El conjunto de mensajes que el objeto puede En SmallTalk un objeto puede enviarse en:
responder. mensajes a sí mismo: La lógica de segundo orden
En cada acción de envío de mensaje No. *La lógica de primer orden
intervienen: *Sí, utilizando la palabra clave self. El principio de comprobación de teoremas
*Un emisor, receptor, selector, eventualmente Sí, anteponiéndose como colaborador externo. Un proceso sin guías por el cual se alcanzan
parámetros (que son objetos) y eventualmente Sí, poniendo su tipo antes del mensaje. resultados científicos
un resultado (que es otro objeto). *TE*Implementación del POO en Smalltalk Indique cuál de las siguientes declaraciones
Un emisor, receptor y eventualmente *ST*Sintaxis y Semántica de variables es correcta en SWI-Prolog:
parámetros (que son objetos) y eventualmente *RB*Referencias Bibliográficas no utilizadas *_edad
un resultado (que es otro objeto). $nombre
Un emisor, selector, eventualmente parámetros *U*5 %telefono
(que son objetos) y eventualmente un resultado La regla de inferencia que emplea la 5Direccion
(que es otro objeto). programación lógica: El símbolo :- es el símbolo de:
Un emisor, receptor, selector y eventualmente *Principio de Resolución Negación
parámetros (que son objetos). Cláusulas de Horn Conjunción
En Smalltalk un selector es: Principio de Colmenauer Disyunción
Las sentencias de un método.
Un mensaje unario. 5
*Nombre que identifica el mensaje.

*Implicación El cuerpo puede ser uno o más hechos Un símbolo de predicado es una expresión que
En las cláusulas de Horn, el consecuente es: separados por una coma (","), que actúa como el combinada con nombres, forman enunciados
*Lo que se quiere probar "y" lógico atómicos
Las cláusulas de Horn representan:
Una condición que realiza la comprobación La manera de implementar la Regla de Hechos
Ambas respuestas son correctas Inferencia en Prolog se basa en los Reglas
Ninguna respuesta es correcta conceptos de: Objetivos
¿Cuál de los siguientes NO es un elemento Backtracking y reglas de inferencia *Todas las anteriores
de un programa Prolog?: Unificación y clausulas de Horn ¿Cuál de las afirmaciones es incorrecta?:
Base de Conocimiento *Unificación y backtracking La unificación representa la igualdad lógica
Motor de Inferencia Unificación y Hechos La unificación permite ligar a las variables
Resolución Indicar cuál de la siguiente norma NO *La unificación es la asignación de múltiples
*Compilador de predicados corresponde para saber si dos términos valores en memoria
La implementación de la Regla de Inferencia unifican: La unificación es el mecanismo mediante el cual
en Prolog se basa en: Una variable siempre unifica con un término, las variables lógicas toman valor en Prolog
Backtracking y resolución quedando ésta ligada a dicho término Una lista en Prolog es:
*Unificación y backtracking Dos variables siempre unifican entre sí, además, Un conjunto de elementos encerrados entre
Unificación y resolución cuando una de ellas se liga a un término, todas paréntesis y separados por comas
Backtracking y corte las que unifican se ligan a dicho término *Un conjunto de elementos encerrados entre
La Unificación en Prolog: Para que dos términos unifiquen, deben tener el corchetes y separados por comas
Es una comprobación de igualdad entre mismo functor y la misma aridad Un conjunto de elementos encerrados entre
variables *Si dos términos unifican, ninguna variable corchetes y separados por puntos y comas
Un conjunto de elementos encerrados entre
*Es el mecanismo mediante el cual las variables queda ligada corchetes y separados por puntos
lógicas toman valor en Prolog Señalar cuál es la característica correcta que Cuál de las siguientes expresiones es
Es una simple asignación de valores a variables identifica al predicado corte: correcta:
Es un mecanismo de resolución de valores de Se representa por un signo (~) X is 8, X = 3+5.
variables Tiene la propiedad de provocar el backtracking Y is X+5, X = 8.
El corte en Prolog permite: cuando se produce *X is 8, X is 3+5.
Evitar la unificación de variables Predicado predefinido que recibe argumentos X is 8, X is Y+2.
*Controlar el backtracking *Tiene la propiedad de eliminar los puntos de Cuál es el resultado de evaluar la siguiente
Optimizar el motor de inferencia elección del predicado que lo contiene expresión X is 7, Y is 7, X>5, Y is X+Y.:
Ninguna de las anteriores Señalar qué predicado no se aplica para el true
Si quisiera simular un ciclo en Prolog: manejo de listas en SWI-Prolog: *false
*Debería utilizar recursividad member(?Elem, ?List) No se puede evaluar, está expresada en forma
Debería crear un predicado especificando la append(?List1, ?List2, ?List3) incorrecta
palabra clave repeat sort(+List, Sorted) Símbolos de predicado:
Debería usar corte y backtracking *is sort(+Term) Definen una actividad con un objetivo
No es posible simular un ciclo en Prolog ¿Qué característica no corresponde al determinado.
Cuando uso listas en Prolog: lenguaje Prolog? *Son utilizados para denotar alguna propiedad o
Puedo acceder a cualquier elemento de la lista Lenguaje de programación seminterpretado relación entre objetos
Corresponden exactamente a los predicados de
usando get_element (index) Su código fuente se compila a código de byte el la gramática española
Puedo recorrerla usando un ciclo cual se interpreta en una máquina virtual En LPO todos los predicados que usemos en un
*Puedo especificar los términos de la lista en Es multiplataforma programa deben tener una idéntica aridad
forma independiente como cabecera y cola *No es código abierto La programación lógica en Prolog
Ninguna de las anteriores Los elementos constitutivos de un programa Trabaja con relaciones que tienen sentido de
Los símbolos de predicado son: en Prolog son: dirección preestablecido
*Expresiones que combinadas con nombres, *Hechos, Reglas y Preguntas *Se basa en la premisa de que programar con
forman enunciados atómicos Hechos y Reglas relaciones es más flexible que programar con
Enunciados formados por un prefijo que son los Hechos y Preguntas funciones
argumentos Ninguna de las opciones anteriores Utiliza principalmente un tipo de reglas para
Funciones que transforman los argumentos de Cuál de las afirmaciones es correcta: definir relaciones, las llamadas cláusulas de
objeto (constantes individuales) en valores La lógica proposicional utiliza proposiciones y Churh
verdaderos o falsos nexos entre éstas para expresar acciones Las cláusulas de Horn permiten crear un
Son símbolos (nombres) que se usan para La lógica proposicional utiliza proposiciones y lenguaje de primer orden con una sintaxis
referir a algún objeto individual fijo nexos entre éstas para expresar instrucciones flexible
En Prolog se utiliza un determinado tipo de *La lógica proposicional utiliza proposiciones y Las Cláusulas de Horn:
reglas para definir relaciones llamadas: nexos entre éstas para expresar verdades No tienen un formato definido, pueden adoptar
Reglas de inferencia lógicas La lógica proposicional utiliza proposiciones y diversas formas
*Cláusulas de Horn nexos entre éstas para expresar estrategias Tienen una forma única, conteniendo
Reglas Deterministas Cuál de las afirmaciones es incorrecta: antecedente y consecuente
Cláusulas de Unificación La lógica proposicional utiliza proposiciones y *Tienen tres formas, (Afirmación, Implicación,
Un programa en Prolog está conformado por nexos entre éstas para expresar aserciones Negación)
una serie de elementos: *La lógica proposicional utiliza proposiciones y La forma Negación permite negar hechos no
Hechos, Reglas y Motor de Inferencia nexos entre éstas para expresar instrucciones verdaderos
Base de Conocimiento, Hechos y Reglas La lógica proposicional utiliza proposiciones y Elementos de un programa en Prolog:
Base de Conocimiento y Motor de Inferencia nexos entre éstas para expresar verdades Los elementos se distribuyen en cuatro
*Base de Conocimiento, Motor de Inferencia y ¿Cuál de las afirmaciones es incorrecta?: secciones específicas
Resolución *Un símbolo de predicado denota objetos Ninguna de estas secciones puede faltar
Identifique que características NO Un símbolo de predicado denota relaciones *Base de Conocimiento, Motor de Inferencia,
corresponden a una regla en Prolog: entre objetos Resolución
Una regla consiste en una cabeza y un cuerpo, Un símbolo de predicado denota propiedades de
unidos por el signo ":-" los objetos 6
La cabeza está formada por un único hecho
*Las reglas finalizan con punto y coma (;)

Está constituido por hechos y reglas, siempre en Son simplemente símbolos (nombres) que se Definir funciones de orden superior
ese orden usan para referir a algún objeto individual fijo Que una expresión cambie su valor
Las reglas en Prolog y sus características: Ningún nombre puede referir a más de un objeto En los lenguajes funcionales la gestión de la
*Pueden hacer referencia a más de un objeto en memoria la hace:
Una regla consiste en una cabeza y un cuerpo, particular El programador
unidos por el signo " >" Un objeto puede tener más de un nombre *Se hace implícitamente
La cabeza es el conjunto de hechos que deben Señale lo que no corresponda respecto a los El programador en cuanto a asignación y se
satisfacerse símbolos de predicados: recupera por el recolector de basura
*Las reglas se utilizan en Prolog para significar Son utilizados para denotar alguna propiedad o El programador en cuanto a recuperación de los
que un hecho depende de otros relación entre los objetos datos
El cuerpo debe estar constituido por un único Todo símbolo de predicado viene con una aridad Las ventajas del paradigma funcional son:
hecho fija Fácil de integrar con otras aplicaciones
Las preguntas o consultas en Prolog. *Los símbolos predicados de aridad 1 son los Recomendable para modelar la lógica de
Las preguntas son algunas de las herramientas más utilizados para denotar una relación entre negocio
que tenemos para recuperar información más de dos objetos *Administración automática de la memoria
Deben ser formuladas en la sección Goals Son expresiones que combinadas con nombres, Complejidad en el código
La respuestas False significan que todos los forman enunciados atómicos Haskell es un lenguaje apropiado para:
hechos del cuerpo de la regla son falsos Prolog, es un lenguaje de programación: Programas altamente modularizados
* Prolog es un programa conformado por un Imperativo Programas altamente modificados
conjunto de hechos y reglas que representan el Orientado a objetos *Programas altamente modificados y
problema que se pretende resolver *Declarativo mantenidos
La resolución es una regla de inferencia que: Estructurado Ninguna de las anteriores
Señale lo que NO corresponda respecto a un Las funciones en Haskell pueden ser:
*Permite a la computadora decir qué programa en Prolog: Argumentos
proposiciones siguen lógicamente a otras En Prolog es posible representar el Argumentos o resultados
proposiciones. conocimiento que se tiene sobre un determinado *Argumentos o resultados o componentes de
Permite a Prolog resolver alternativamente un dominio estructuras de datos
problema sin usar las cláusulas de Horn. El dominio es un conjunto de objetos y el Resultados
Puede implementarse basándose únicamente conocimiento se representa por un conjunto de El proceso de currificación permite:
en el concepto de unificación relaciones que describen las propiedades de los *Reducir el número de paréntesis necesarios
Excluyen de esta regla las cláusulas cuyos objetos y sus interrelaciones para escribir expresiones
resultados lleven al absurdo *En Prolog, un programa se basa en el modelo Reducir el número de corchetes para escribir
Respecto a la Unificación, indique qué es de Von Neumann expresiones
falso: En un programa en Prolog, lo fundamental es Ampliar el número de paréntesis para escribir
Una variable siempre unifica con un término, expresar bien el conocimiento que se tenga expresiones
quedando ésta ligada a dicho término sobre el dominio del problema que se esté Reducir el número de corchetes necesarios para
*La unificación es equivalente a la asignación de enfrentando escribir expresiones
los lenguajes imperativos ¿Cuál de los siguientes es un ejemplo de un La siguiente expresión XS ++ YS devuelve en
Para que dos términos unifiquen, deben tener el símbolo lógico en Prolog?: Haskell:
mismo functor y la misma aridad El símbolo del identificador de una variable *La lista resultante de concatenar XS e YS
Si dos términos no unifican, ninguna variable individual La suma resultante de XS e YS
El símbolo de una constante La lista de valores obtenidos al aplicar la función
queda ligada *Símbolos auxiliares de escritura como los XS a YS
Respecto al Backtracking, indique qué es corchetes Ninguna de las anteriores
falso: El conjunto de símbolos de relaciones n-arias El espaciado se basa en que:
Cuando se va a ejecutar un objetivo Prolog Selecciona lo que NO corresponda respecto Las expresiones están alineadas por filas
registra ordenadamente en una pila todos sus a la unificación: *Las expresiones están alineadas por columnas
puntos de elección Es el mecanismo mediante el cual las variables Las expresiones están alineadas por filas y
Los puntos de elección (objetivos) apilados son lógicas toman valor en Prolog columnas
recorridos mientras tengan éxito Cuando una variable no tiene valor se dice que Las expresiones no están alineadas
Al fallar un objetivo Prolog da marcha atrás está libre La sentencia Data permite:
(backtracking) recorriendo los objetivos que Si se produce unificación la variable está ligada *Definir nuevos tipos de datos
tuvieron éxito *Es el mismo concepto que el de asignación en Aplicar recursividad
*El mecanismo de backtracking es automático, los lenguajes Definir funciones
el programador no puede controlarlo Selecciona lo que NO corresponda respecto Declarar tipos predefinidos
Respecto al corte en el backtracking de al corte: La evaluación perezosa:
Prolog, indique qué es falso: Es un predicado predefinido que no recibe Evalúa los argumentos de una función antes de
* Sólo se lo usa en ocasiones excepcionales, argumentos conocer si estos serán utilizados
por introducir indeterminismo en un lenguaje Se representa mediante el símbolo: ! (símbolo *No evalúa a los argumentos de una función
declarativo de admiración de cierre) hasta que no se necesita
Tiene la propiedad de eliminar los puntos de Cada una de las alternativas se denomina punto Permite definir nuevos tipos de datos
elección del predicado que lo contiene de elección Ninguna de las anteriores
En la ejecución normal el corte no hace nada *Se lo usa frecuentemente para permitir que un Cuál de las afirmaciones es correcta:
En backtracking con los objetivos recorridos programa encuentre todas las soluciones *En el paradigma funcional la manera de
marcha atrás, al llegar al corte el backtracking se posibles a una pregunta construir abstracciones es a través de funciones
detiene repentinamente forzando el fallo del Tiene la propiedad de eliminar los puntos de En el paradigma funcional la manera de
objetivo elección del predicado que lo contiene construir abstracciones es a través de
Señale cuál no es un campo de aplicación instrucciones
reconocido del Paradigma Lógico: *U*6 En el paradigma funcional la manera de
Sistemas basados en el conocimiento La Transparencia referencial permite: construir abstracciones es a través de
Inteligencia artificial El cambio de estado estructuras
*Sistemas comerciales de facturación *Que una expresión tenga siempre el mismo En el paradigma funcional la manera de
Demostración automática de teoremas valor construir abstracciones es a través de tuplas
Señale lo que no corresponda respecto a las
constantes individuales: 7

Cuál de las afirmaciones es correcta: No se aplica el concepto de evaluación ansiosa El paradigma funcional tiene diversas áreas
El almacenamiento lo asigna el desarrollador y en lenguajes funcionales de aplicación entre las cuales podemos
se inicializa implícitamente, y es recuperado No existe ese tipo de evaluación enumerar:
automáticamente por un recolector de basura Desarrollar aplicaciones en Tiempo Real, con
El almacenamiento lo asigna e inicializa el Para escribir una función en Haskell muy poco tiempo de respuesta
desarrollador, y es recuperado automáticamente necesito: *Resolver problemas que requieran
por un recolector de basura Negación, conjunción y disyunción demostraciones por inducciones.
*El almacenamiento se asigna y se inicializa *Definición de signatura e implementación del Aplicaciones en cuya formulación existen reglas
implícitamente, y es recuperado cuerpo de la función resueltas por un Motor de Inferencias.
automáticamente por un recolector de basura Definición de parámetros de la función Aplicaciones que usan exclusivamente el
El almacenamiento lo asigna, inicializa y Definición de condición de corte recursivo modelo MVC (Model View Controler)
recupera el desarrollador Señale la afirmación incorrecta - En la Relativo a las funciones en Haskell:
Las tuplas en Haskell son: inferencia de tipos: En el Lenguaje Haskell no son de orden superior
Infinitas y contienen elementos de distintos tipos El programador no está obligado a declarar el tip Todos sus argumentos se evalúan previamente
*Finitas y contienen elementos de distintos tipos o de las expresiones a la evaluación del cuerpo
Infinitas y contienen elementos del mismo tipo El compilador contiene un algoritmo que infiere e *Podemos referenciarlas por su nombre, sin
Finitas y contienen elementos del mismo tipo l tipo de las expresiones necesidad de conocer su estructura interna
Las listas en Haskell son: Si el programador declara el tipo de alguna expr Requieren ser definidas previo a su uso:
Infinitas y contienen elementos de distintos tipos esión, el sistema chequea que el tipo declarado Nombre, argumentos de entrada/salida
Finitas y contienen elementos de distintos tipos coincide con el tipo inferido. Relativo a las funciones de orden superior
*Infinitas y contienen elementos del mismo tipo *El sistema no siempre chequea los tipos, si no NO corresponde decir que:
Finitas y contienen elementos del mismo tipo coinciden con lo que el programador declaró, se Alguno de sus argumentos es una función o
Los tipos NO básicos en Haskell son: devuelve una función como resultado
Enteros, Flotantes, String y Booleanos infieren. *Alguno de sus argumentos es una función y
Enteros, Flotantes, Caracteres y Booleanos Los condicionales en Haskell: siempre devuelven una función como resultado
Enteros, Flotantes, Caracteres, Booleanos y *Deben expresarse siempre como condicional Son útiles porque permiten capturar esquemas
tuplas completo (IF..THEN..ELSE) de cómputo generales (abstracción).
Enteros, Flotantes y listas Pueden expresarse como condicionales simples Los argumentos y resultados de estas funciones
*Listas, tuplas y funciones (IF..THEN) pueden ser a su vez funciones usadas como
Cuál es el resultado de evaluar la siguiente No es posible anidar condicionales argumentos de otras funciones
expresión let x = 2 * 4 in 3 * x + 1 + mod (x) 2: Sólo se puede evaluar una sola condición, Respecto a la evaluación perezosa:
32 nunca múltiples condiciones Es una característica propia de todos los
*25 Las expresiones case en Haskell: lenguajes funcionales
45 Evalúan una condición y comparan con *El argumento de una función sólo se evalúa
13 resultados de cadenas cuando es necesario para el cómputo
Cuál es el resultado de evaluar con 2 y 3 la *Evalúan sólo una condición y comparan con Al evaluarse un argumento se lo hace en forma
siguiente expresión function x y = if x >= y resultados numéricos completa, una única vez
then x*5/y else y*2/x: Evalúan sólo una condición y comparan con Solo al manipular estructuras de datos 'infinitas'
5.0 cualquier tipo de resultado (numérico o cadena) no podemos utilizarla
7.5 Evalúan múltiples condiciones en cada caso Respecto a las funciones en Haskell:
*3.0 En una función polimórfica: Las funciones juegan un papel no esencial
15 *Pueden ser argumentos o resultados de otras
Cuál es el resultado de evaluar con 3 y 2 la *El tipo devuelto depende de los argumentos funciones o ser componentes de estructuras de
siguiente expresión funcion x y = if x >= y ingresados datos
then x*5/y else y*2/x: El tipo devuelto depende de las variables Son imprescindibles la definición de signatura y
5.0 declaradas con Let o Where la implementación de su cuerpo
*7.5 El tipo devuelto depende de un casteo especial Ninguna de las anteriores
3.0 El tipo devuelto depende de la inferencia de Haskell es un lenguaje de programación
15 tipos del lenguaje fuertemente tipado porque:
Cuál es el resultado de evaluar la siguiente En la transparencia referencial: Exige la definición de los tipos de entrada /salida
expresión [1,3,10] + [2,6,5,7]: *Los valores resultantes son inmutables previa a la definición del cuerpo de la función
[1, 2, 3, 5, 6, 7, 10] Los valores resultantes pueden cambiar Permite que las funciones de orden superior
[1, 3, 10, 2, 6, 5, 7] Los valores resultantes cambiarán dependiendo tengan asociado un tipo de dato de retorno
*Ninguna no se puede evaluar el operador + en de la inferencia de tipos *Posibilita asociar un único tipo a toda expresión
listas Ninguna de las anteriores bien formada
Si quisiera simular un ciclo en Haskell: Permite que el usuario defina sus propios tipos
¿Qué es una función de orden superior? : *Debería utilizar recursividad. de datos
Es una función que se llama a sí misma hasta Debería crear una función especificando la Respecto a la inferencia de tipos de Haskell:
una condición de corte especificada palabra clave repeat. El programador debe declarar el tipo de la
Es una función que retorna sus valores sólo en Debería usar guardas y condicionales. expresión, el sistema chequea coincidencia
el campo de los números reales No es posible simular un ciclo en Haskell *Si el programador declara el tipo de alguna
Es cualquier tipo de función que usamos con Cuando uso listas en Haskell: expresión, el sistema chequea que el tipo
expresiones lambda *Puedo acceder a cualquier elemento de la lista declarado coincida con el tipo inferido
*Es una función tal que alguno de sus argument usando el operador !! Haskell utiliza el tipo declarado por el
os es una función o que devuelve una función co Puedo recorrerla usando un ciclo programador, o lo infiere si el programador no lo
mo resultado Únicamente puedo acceder a los elementos declaró
La evaluación ansiosa en un lenguaje usando cabecera y cola La declaración de tipos en una expresión tiene
funcional: Puedo acceder a los elementos sólo con propósito solo documentativo, Haskell lo infiere
*Evalúa todos los argumentos de la función recursividad Las expresiones let de Haskell son útiles
antes de conocer si serán utilizados Característica NO fundamental de los para:
No evalúa ningún argumento de la función hasta lenguajes funcionales: Restringir el efecto colateral de las variables
que se los necesita Utilización de funciones polimórficas globales a expresiones específicas
Evaluación perezosa
*Construcción de abstracciones a través de 8
funciones o relaciones
Utilización de tipos de datos genéricos

Permitir que a una variable se asocie a un tipo Selecciona lo que NO corresponda respecto
específico de datos a funciones:
*Definir un conjunto de declaraciones locales Una función es una regla de asociación que

Permiten que determinadas funciones accedan relaciona dos o más conjuntos entre sí
a variables definidas en otras Cuando tenemos la asociación de dos
Identifique qué característica NO conjuntos, la función se define como una regla
corresponde a Haskell: de asociación entre un conjunto llamado dominio
Utilización de funciones sobre elementos de con uno llamado codominio o imagen
primer orden Se dice que el dominio de una función son todos
Utilización de funciones de orden superior los valores que puede tomar el conjunto del
Utilización de funciones polimórficas dominio y que encuentra correspondencia en el
*Evaluación ansiosa. conjunto llamado imagen
Una función de orden superior es: *Las funciones establecen relaciones entre dos
*Una función tal que alguno de sus argumentos conjuntos, permitiendo que un elemento del
es una función o que devuelve una función dominio pueda tener más de dos imágenes que
como resultado. le correspondan
Una función tal que todos sus argumentos son Selecciona lo que NO corresponda respecto
siempre una función. a la evaluación perezosa:
Una función que siempre devuelve una función Haskell utiliza la evaluación perezosa
como resultado. Uno de los beneficios es la posibilidad de
Una función que debe devolver una función manipular estructuras de datos “infinitas”

como resultado. Es una evaluación en orden normal
Los tipos básicos en Haskell son: * Consiste en evaluar todos los argumentos de
*Booleanos, Enteros, Flotantes y Caracteres una función antes de conocer si son necesarios
Booleanos, Flotantes y Caracteres Selecciona lo que NO corresponda respecto
Booleanos, Cadenas y Caracteres a las funciones en Haskell:
Cadenas, Flotantes y Enteros *En la implementación del cuerpo de una
Indique cuál de las siguientes características función se debe escribir el símbolo ::
NO es una ventaja de la evaluación perezosa: Las funciones en Haskell son objetos de primera
Manipulación de estructuras de datos infinitas clase
No requiere más (sino posiblemente menos) Una forma de escribir funciones en Haskell es
pasos que la evaluación impaciente mediante la definición de su signatura y la
Manipulación de computaciones infinitas implementación del cuerpo de la misma•En la
*La evaluación de expresiones se efectúa antes definición de la signatura se especifican los tipos
de aplicar una función de datos de entrada y salida
Los tipos compuestos son aquellos cuyos Selecciona lo que NO corresponda respecto
valores se construyen utilizando otros tipos a tipos de datos en Haskell:
y son: Haskell es un lenguaje de programación
Funciones y tuplas fuertemente tipado

Funciones, entero y flotante Cada tipo de dato tiene asociadas un conjunto
Funciones y caracteres de operaciones que no tienen significado para
*Listas, funciones y tuplas otros tipos de datos
Cuando se trabajan con símbolos de *El sistema de tipos en Haskell no permite
operador es necesario tener en cuenta: detectar errores en expresiones ni en
* La precedencia y la asociatividad definiciones de función
La precedencia o la asociatividad Cualquier expresión a la que no se le pueda
Asociatividad y Simetría asociar un tipo es rechazada como incorrecta
Ninguna de las opciones anteriores es correcta antes de la evaluación
Una expresión con guarda posee la siguiente Selecciona lo que NO corresponda respecto
característica: al sistema de inferencia de tipos en Haskell:
*Función que contiene guardas que requieren El compilador contiene un algoritmo que infiere
que se cumplan ciertas condiciones sobre los el tipo de las expresiones
valores de sus argumentos Si el programador declara el tipo de alguna
Función que contiene guardas que requieren expresión, el sistema chequea que el tipo
que se cumplan solo una condición sobre los declarado coincide con el tipo inferido
valores de sus argumentos Los sistemas de inferencia de tipos permiten
Función que contiene guardas que permiten una mayor seguridad, evitando errores de tipo
trabajar con los valores de sus argumentos en tiempo de ejecución y una mayor eficiencia,
Ninguna de las opciones anteriores es correcta evitando realizar comprobaciones de tipos en
En el entorno WinHugs, selecciona lo que NO tiempo de ejecución
corresponda respecto al corte: *El programador está obligado a declarar el tipo
Prelude.hs es un fichero que se carga de las expresiones
automáticamente al arrancar la ejecución En el estándar Prelude.hs de Haskell, el
deWinHugs, y contiene un conjunto de funciones operador (-), es:
que podemos utilizar *Asociativo a la izquierda
WinHugs permite desde su prompt evaluar Asociativo a la derecha
expresiones sintácticamente correctas No asociativo
El comando :load <filename> puede ser utilizado Asociativo a la derecha y a la izquierda
para cargar módulos desde un archivo
especificado
* Los archivos que nosotros creemos con las
definiciones e implementaciones de nuestras
propias funciones, deben tener la extensión .pl

9


Click to View FlipBook Version