viernes, 3 de diciembre de 2010

Examen Extraordinario

Como recomendación de la Dra. Eliza Schaeffer, aquí está el examen:


Primera parte

1. ¿A qué se refiere la semántica?
    Las reglas que determina el significado de los programas constituyen la semántica de los lenguajes de programación.


2. ¿Qué es una expresión regular?
     Expresión que define un conjnto de cadenas sin enumerar sus elementos.

3. ¿Cómo se le conoce a una subrutina que se llama a sí misma?
   Función Recursiva

4. ¿Cuáles son los paradigmas de programación?
    -Imperativos
    -Lógicos
    -Funcionales
    -Orientado a Objetos

5. ¿Qué es un lenguaje funcional?
     paradigma de programación declarativa basado en la utilización de funciones aritméticas que no maneja datos mutables o de estado. 


6. Menciona 3 lenguajes script.
    Python, Perl, Javascript

7. ¿A qué se refiere el léxico?
    Son las palabras usadas en el lenguaje de programación. Como el diccionario.

8. ¿Qué es el cálculo lambda?
  es un sistema formal diseñado para investigar la definición de función, la noción de aplicación de funciones y la recursión. Fue introducido por Alonzo Church
  
9. ¿ Cuál es la diferencia entre un compilador y un interprete?
   - Compilador: analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). 
Intérprete: analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. 

10. ¿Qué propósito tienen los ciclos?
Reducir el código en el programa para simplificar su ejecución.


Referencias:
http://www.xuletas.es/ficha/lenguajes-de-programacion-sintaxis-semantica-y-jerarquia/
http://es.wikipedia.org/wiki/Expresión_regular
http://es.wikipedia.org/wiki/Paradigma_de_programación
http://it.ciidit.uanl.mx/~sara/pres/lp/lpcolor_s4.pdf
 http://es.wikipedia.org/wiki/Cálculo_lambda
http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html








Segunda parte


1. Con qué instrucción se compila x.cpp en Linux?


g++ temp.cpp

2. ¿Qué es Oz?
    Un lenguaje multiparadigma


3. ¿Cómo se llama una variable que guarda una direccion de memoria?
   puntero


4. ¿Como se representa en un diagrama de flujo la selección?
   (rombo con dos salidas )


5. ¿A qué se refiere this en Java?
Hace referencia al objeto sobre el cual se está trabajando. Para que las acciones que realicemos se hagan únicamente sobre ese objeto.


6 Menciona 3 lenguajes imperativos.
Pascal, C, Fortran


7. Qué es un lenguaje lógico?
La programacion lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación


8. ¿Cuál es la palabra reservada en C que define una enumeración?
enum


9. ¿Qué es un objeto?
Una instancia. Cada subrutina es un objeto.


10. ¿Qué es un lenguaje multiparadiga?
Un lenguaje de programación multiparadigma es el cual soporta más de un paradigma de programación. Según lo describe Bjarne Stroustrup, permiten crear “programas usando más de un estilo de programación”.






http://es.wikipedia.org/wiki/Lenguaje_de_programación_multiparadigma
http://es.wikipedia.org/wiki/Programación_lógica

TIPOS DE DATOS - PROYECTO FINAL

http://www.youtube.com/watch?v=_c_rAlxfmvc

Lenguajes Funcionales

R

Se trata de un proyecto de software libre, resultado de la implementación de GNU del premiado lenguaje S. R y S-Plus son, probablemente, los dos lenguajes más utilizados en investigación por la comunidad estadística. 
Proporciona un amplio abanico de herramientas estadísticas y gráficas.Permite que los usuarios lo extiendan definiendo sus propias funciones. De hecho, gran parte de las funciones de R están escritas en el mismo R, aunque para algoritmos computacionalmente exigentes es posible desarrollar bibliotecas en C,C++ o Fortran. 

- EJEMPLO -

x <- seq(1:20)
y <- c
(3,2.5,6,1.38,2.25,2.36,2.14,1.38,3.5,4.3,3.8,1.95,1.78,3.24,2.67,2.01,2,3.1,2.46,1.56)
par(bg = "lightyellow", col.axis = "blue", mar = c(4, 4, 3, 1))
plot(x, y, xlab = "Agente", ylab = "Tiempos (min)", 
xlim = c(0, 20), ylim = c(0, 7), pch = 18, col = "red", bg = "black")
title("Tiempos en llamadas por agente")






_____________________________________


LISP

Quisiera agregar lo que mejor se me quedó de la clase de LISP, doctora: vulgarmente LISP es Lots of Idiotic Stupid Parentesis. Ahora formalmente, LISP es una familia de programación de computadora de tipo funcional con una sintaxis completamente entre parentesis. Fue creado originalmente como una notación matemática práctica par alos programas de computadora basada en el cálculo lambda de Alonzo Church. Se convirtió rápidamente en el lenguaje de programación favorito en la investifación de la inteligencia artificial. El nombre deriva de LISt Processing (Proceso de listas). La intercambiabilidad del código y los datos también da a LISP su instantáneamente reconocible sintaxis.

- EJEMPLO -

(define (bien e) cond((eq e 2) (print "Hola mundo"))   define: define 
funciones
(t(print "Adios mundo"))))                                           print: entrada y salida


Muy simple el común hola mundo. Como dijimos, su sintaxis es completamente entre paréntesis.

Lenguajes Orientados a Objetos

C ++

Lenguaje de programación diseñado a mediados de los años 1980 por Bjame Stroustrup. Este se creo con la intención de extender C con mecanismos que permitieran manipular objetos. Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigmas. El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando un lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre C con clases. En C++, la expresión "C++" significa incrementeo de C.

-  EJEMPLO -

#include <stdio.h>
main()
{
char nombre[40];
int calif1,calif2,calif3,calif4,prome;

printf("Nombre del Alumno: ");flushall;gets(nombre);
printf("Calificación 1: ");scanf("%d",&calif1);
printf("Calificación 2: ");scanf("%d",&calif2);
printf("Calificación 3: ");scanf("%d",&calif3);
printf("Calificación 4: ");scanf("%d",&calif4);
prome=(calif1+calif2+calif3+calif4)/4;
printf("Nombre: %s\n",nombre);
printf("Promedio: %d",prome);
return(0);
}

En el programa se hace un arreglo llamado nombre para almacenar 40 nombres. Se declaran las variables enteras de las 4 calificaciones. Se piden tales calificaiones, se suman, se dividen entre cuatro, y obtenemos el promedio.


JAVA

Toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria. Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible.

- EJEMPLO -

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World");
    }

}
En java, el nombre de la clase principal debe ser igual al nombre del archivo.
La impresión es mediante println. Todo se maneja por clases.

jueves, 2 de diciembre de 2010

Lenguajes Script

PYTHON

Python es un lenguaje de programación creado por Guido van Rossum a principios de los 90. Tiene en una sintaxis muy limpia y que favorece un código legible. Es un Lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Se trata de un lenguaje interpretado o script, usa tipado dinámico, es fuertemente tipado y es multiplataforma.
La sintaxis de python es tan sencilla y cercana al lenguaje natural que los programas elaborados en python parecen pseudocodigo.


import random

def adv2(n):

#Obtengamos la incógnita
x = random.choice(range(n)) + 1

int = 0
sel = 0

while (sel != x):
int = int + 1

sel = input("Introduzca número > ")

if (sel > x):
print "Prueba uno más pequeño..."
elif (sel < x) :
print "Prueba uno más grande..."
else:
print "Felicidades, lo has hecho en",int,"intentos"


(linea 1) En este caso se tuvo que importar la función random para obtener un numero aleatorio.
(linea 5) Los comentarios se hacen anteponiendo #.
(linea 8) Las asignaciones son muy simples, como en el caso de int = 0. No se necesitan puntos y coma al final de las sentencias.
(linea 17) Para imprimir algo en pantalla solo usamos print y encerramos entre “ ” las palabras a imprimir.
(linea 18) Elif es una contracción de ELSE IF por lo tanto, en este caso elif significa: “si no, si sel es menor que x”

                               ______________________________________________________

PERL

if ( $#ARGV == 0 ) {
die "Args: a b\n";
}
elsif ( $#ARGV == 1 ) {
$a = $ARGV[0];
$b = $ARGV[1];
}
else {
print "De el valor de a = ";
$a = <STDIN>; chop $a;
print "De el valor de b = ";
$b = <STDIN>; chop $b;
}
$c = $a + $b;
print "$a + $b = $c\n"





Su lógica es simple: si se da un solo argumento, $#ARGV == 0, el programa termina. Si se dan dos argumentos al programa, $#ARGV == 1, estos son n´umeros que se van a sumar. Y si no se dan argumentos se pregunta por cada número. Al final imprime los dos números y su suma.