miércoles, 27 de octubre de 2010

PRESETACIÓN DE FLUJO DE CONTROL

Aqui les dejo la presentación que nos toco es sobre Distancia de Edición  Levenshtein (2)
View more presentations from blankardz.

martes, 26 de octubre de 2010

Reporte 5 ; Lenguajes Logicos


Trillizas


Tres hermanas trillizas idénticas. La más antigua de minutos es Sara, y Sara siempre dice la verdad a nadie La antigüedad es Sue, y Sue siempre le diremos a nadie una mentira. Sally es la más joven de los tres. A veces está ya veces dice la verdad.

Víctor, un viejo amigo de la propia familia, se acercó un día y como de costumbre, no sabía quién era quién, por lo que pidió a cada uno de ellos una pregunta.

Víctor pidió a la hermana que estaba sentado a la izquierda, "¿Qué hermana está en el medio de ustedes tres?"  y la respuesta que recibió fue: "Oh, eso es Sarah."

Víctor le preguntó a la hermana en el centro, "¿Cuál es tu nombre?" La respuesta que se dio fue: "Yo soy Sally."

Víctor volvió a la hermana de la derecha y luego preguntó: "¿Quién es ese en el medio?" The sister then replied, "She is Sue." La hermana entonces respondió: "Ella es Sue."
Esta confusión Víctor, había hecho la misma pregunta tres veces y recibió tres respuestas diferentes.

Who was who? ¿Quién era quién?




La Solución. . . . .
El primero no puede ser Sara, porque eso haría que la primera un mentiroso. La segunda no puede ser Sarah por la misma razón. Por lo tanto, la tercera hermana debe ser Sarah.  Esto significa que el medio es Sue y el único que queda es Sally.


PREDICATES


estasentadaen(string, string)


CLAUSES


estasentadaen(derecha, sarah).
estasentadaen(centro, sue).
estasentadaen(izquierda, sally).


GOAL


estasentadaen(izquierda, sarah).
----------------------------------------------------------------
Ejemplo extra 


Hay cinco engranajes conectados en una fila, el primero está conectado con el segundo, el segundo está conectado a la tercera, y así sucesivamente. Si la primera marcha está girando hacia la derecha lo que la dirección es la quinta de inflexión?


Respuesta 
Las agujas del reloj.



PREDICATES


engranegira(string, string)


CLAUSES


engranegira(primero, derecha).
engranegira(segundo, derecha).
engranegira(tercero, derecha).
engranegira(cuarto, derecha).
engranegira(quinto, derecha).


GOAL


engranegira(quinto, derecha).


--------------------------------------------------------------------------------------
Otro ejemplo :D
Cuatro personas están viajando a diferentes lugares en diferentes tipos de transporte.

Sus nombres son: Daniel, Juan, Mr.Jones y Cindy.

O bien se fue en tren, coche, avión o barco. 

* Mr.Jones odia volar
* Cindy tiene que alquilar su vehículo
* Juan se mareó



  Respuesta -->

Solución:

Cindy: vehículo,
Mr.Jones: tren,
Juan: avión, y 
Rachel: buque.


----------------------------------------------------------------------------------------------------------------------------------------------------
Algo interesante?

Básicamente te dice que los programas en Prolog se constituyen de 3 
partes básicas, los Dominios, las Clausulas y la meta. 
Aunque algunas veces pueden cambiarse los Dominios por hechos, quiere
decir que siempre son verdad, este tipo de programas se modifican 
modificando la sección "GOALS" y luego dándole en "Test Goal" 
que seria el equivalente a Correr en Dev C++ .

En otras palabras, has de cuenta que las "preguntas" al programa 
se las haces en GOALS y al darle Test te da "su respuesta".


 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 
 Info  extra!!
Estos ejemplos que anteriormente les muestro me base  del  
ejemplo que la Dra.Sara puso en las filmina que se llama Familia
  solo que yo lo mejore ya que incluyo ejemplos diferentes. 

Si ustedes desean pueden intentar ustedes mismoss correr los
programas ; se habren con el enlace del Visual Prolog que les
adjunto mas abajo , solo recuerden que  cuando ejecuten ya el 
programa instalado ejecutarlo como administrador 
(si es Windows vista o Windows 7).





















Reporte 4 ; Lenguajes Funcionales




Haskell: es un lenguaje de programación puramente funcional de propósito general y fuertemente tipado. Su nombre proviene del lógico Haskell Curry.
Paradigma: funcional, no estructurado, fuertemente tipificado
Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y calce de patrones.

Código fuente



 prod::Int->Int   à aqui nos esta indicando que se realiz e el producto de números enteros
prod 0=1         
à recibe un numero entero con la función (mod n 10)
prod n=(mod n 10)*prod (mod n 10) 
à   aquí ya al final se pone el primer producto para ser    multiplicado por l segundo

Factorial…. este programa en lo particular lo veo muy básico la maestra lo había incluido en las filminas pero me parece interesante y desidi agregarlo

Código fuente

fact::Int->Int   àrecibe un numero entero
fact 0=1         
fact n=n*fact(n-1  
àdevuelve l factorial del mismo


Este programa lo saqué de internet :D lo incluyo ya que me llamo mucho la tensión ya  que esta muy  complejo   pero esta practico estero y les sirva J

àRecibe tres números enteros y verifica si forman o no un triángulo, y si forman un triángulo, muestra que tipo de triángulo es, ya sea equilátero, isóceles, escaleno o de pitágoras.

Código fuente

triangulo::Int->Int->Int->String 
triangulo a b c | a+b<c||a+c<b||b+c
     | a==b&&b==c&&c==b="triangulo equilatero" 
     | a==b||a==c||b==c="triangulo isoceles" 
     | (a^2 + b^2)==c^2||a^2 + c^2==b^2||c^2 + b^2==a^2="triangulo rectangulo" 
     |otherwise="triangulo escaleno"</c||a+c<b||b+c



Tutorial Manual de Haskell curso manual

Información extra


Para compilar à



-------------------------------------------------------------------------------------------------------------






Lisp :es una familia de lenguajes de programación de computadora de tipofuncional con una larga historia y una sintaxis completamente entre paréntesis. Especificado originalmente en 1958 por John McCarthy 

Creado originalmente como una notación matemática práctica para los 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 investigación de la inteligencia artificial


Código fuente


Este programa que acontinuacion les muestro lo saque de un libro de biblioteca de Fime en este momento no cuento con el autor del libro pero si les llegase a interesar avísenme para de igual modo facilitarles es libro!! De escho es muy parecido al que apaece en la pagina de http://es.wikipedia.org/wiki/Lisp  este programa también aroja el factorial de un numero pero ahora en el lenguaje Lips!

    ---FACTORIAL----

 Factorial(x) =  1                    si x=0   caso base
                 x*factorial(x-1)     si x>0   caso recursivo


Función factorial hecha con recursividad
(defun factorial (n)
   (if (= 0 n)
     1                            ; caso base
     (* n (factorial (- n 1)))))  ; caso recursivo

(factorial 4)              ;esto nos devolvería 24=4*3*2*1





Tutorial Manual de Lisp curso manual




Información extra



Para compilar à
http://www.portalprogramas.com/gratis/compilador-lisp/gratis

Segunda Presentacion

Reporte 3 ; Lengujes Script

                             

                           Lenguajes Script
 
Es un lenguaje de programacion que esta disenado para ser corrido mediante un interprete y si no tenemos idea de  lo que es un interprete:es un programa informatico capaz de analizar  y ejecutar otros programas.Una definicion mas amena de lo que arian los lenguajes script seria que al mismo tiempo que interpretan el programa,lo entienden,lo traducen y auque los interpretes su desventaja seriaque lentos ya que realizan mas actividades en cualquier programa a diferencia de los compiladores que son mucho mas rapidos ya que solamente complilan y no traducen .En seguida les presento una complilacion de 3 tipos de lenguaje script<





 

1.<HTML>
2.<HEAD>
3.<TITLE>Buen dia <TITLE>
4.<SCRIP TYPE ="TEXTJAVASCIPT"
5.alert(!Como esta Srita.Ulloa");
6.<SCRIPT>
7.<BODY>
8.<HTML>
He aqui la estructura ya explicada:

1 y 2 en estos reglones es mas que nada la entrada y salida lo que siempre se deve de poner
3 es el encabezado
4 y 5 lo que tu quieres que imprima el programa siempre y cuando lleve los comandos adecuados

 













Bueno chavitos yo creo que para aprender a programar primero qe nada devemos conocer lo mas basico del programa aqui en seguida les adjunto una pequeña introduccion de lo que es en especial este lenguaje script llamado PERL :


PERL (Practical Extraction and Report Languaje) es un lenguaje creado  en 1987 por Larry Wall. 
El objetivo para el cuál se diseña Perl es el disponer de un lenguaje de propósito general que permita simplificar la mayoría de las tareas de administración de un sistema tipo UNIX.  

Perl es "multiplataforma", podemos encontrar versiones de Perl disponibles para un amplio
número de sistemas operativos como Linux, UNIX, MVS, VMS, MS/DOS, Macintosh, OS/2, Amiga 
Perl es interpretado. Al contrario que otros lenguajes como C/C++ o Pascal,
los programas Perl son scripts de aspecto parecido a los scripts para la
shell (aunque en la realidad el intérprete los compila antes de
ejecutarlos)


Este pograma que acontinuacion les posteo para crearlo me base en un  libro que enontre en la biblioteca de basado en diferentes tipos o estilos de programas, al principio no lo entendia muy  bien pero ya conforme iva checando cada linea se me hizo muy completo trata de radificar numeros primos



#!/usr/bin/perl

 
if (-e
"primos.txt")
{
open (f1,"primos.txt");
@leido=<f1>;
close(f1);

foreach $l ( @leido )
{

if ($l > 0)
{
push (@primos, $l*1);
}
}
} else
{
@primos = (2,3,5,7,11,13,17,19);
}

 
$a = pop (@primos);
push (@primos, $a);

 
if ( $ARGV[0]==0 )
{
$tope=1;
} else
{
$tope=$ARGV[0];
}

 
$cuenta=0;
do
{
$primo = "Si";

foreach $p (@primos)
{

if ( $a % $p == 0 )
{
$primo = "No";

break;
}
}

if ( $primo eq
"Si" )
{
$cuenta++;
print "[ $a ] $cuenta\n";
push (@primos, $a);
}
$a=$a+1;
}
while ($cuenta<$tope);

 
open (f1,">primos.txt");
foreach
$i ( @primos )
{

print f1 "$i\n";
}
close(f1);





 
Programa en C++


#include<conio.h>

main()
{
    int n;
    printf("introduce un numero entero: ");
    scanf("%d", &n);         
   
                             if(n % 2==0)
                             {
                             printf("\nes numero par");
                             }
                              else
                              {
                              printf("\nes numero impar");
                              }
                            
                getche();
                }









La mayoria de nosotros ya conocemos el dev c ya que en semestres anteriorea habiamos trabajado con el ,en esta ocacion yo inclui este pequeño programa que se creeo en c esto con la finalidad de que el programa te arroje pantellas de dependiendo si tu numero es o no par .Aqui adjunto un ejemplo y por ultimo les comento que para que este programa se pueda llevar a cabo o realizar se nesesita de dos comandos muy importantes como lo son IF el cual su funcionamento es simple,se evalua una condicion si es verdadera,ejecuta un codigo,si es falsa,ejecuta otro codigo o continua con la ejecucion del programa y por ultimo ELSE este se refiere al bloque de acciones que se ejecutan cuando no se cumple una determinada condicion en un bucle if

Bibliografia






Cualquier duda estoi a su entera dispocicion.
Plantilla original blogspot modificada por plantillas blog