martes, 26 de octubre de 2010

Lenguaje R: Vectores y matrices

Siguiendo con lenguaje R, les mostraré mas ejemplos de este.



En este ejemplo se declaró un vector a1 y con la función order( ) se muestra el lugar que tiene cada uno de estos números, ya poniendo a1[order(a1)] se muestran los números ya acomodados en forma ascendente. También se indica el máximo y el minimo de estos números con las funciones min( ) y max ( ) respectivamente.



En el ejemplo de arriba se muestra la función pegar ( ) con la cual puedes unir caracteres con números como en este caso uní los caracteres "C" y  "N" con los números del 1 al 6. Después uní las cadenas "hola", "soy" y "carmen" y con substr, substraje los caracteres 1 y 2 de la palabra "casa".




Para declarar arreglos se declaran como en la imagen que aparece arriba, 1:10 son los números que van a ir en el arreglo las dimensiones son las que estan dentro del vector empezando por filas, después columnas y después cuantos arreglos irán. Como pueden ver primero cree uno que tuviera los números del 1 al 10 en un solo arreglo con 5 filas y 2 columnas y después uno del 1 al 20 igual 5 filas, 2 columnas pero en dos arreglos para que notaran la diferencia.




También se pueden declarar matrices de esta forma donde indicas que números van dentro de esta y en este caso el número de filas.

Lenguaje R también te dice la matriz transpuesta con la funcion t(nombrematriz) y también la diagonal principal con diag(nombrematriz) entre otras cosas.

Espero que les haya servido todo esto, si tienen alguna duda háganmela saber, gracias por tomarse tiempo de leer mis entradas :)

Lenguaje R: Operadores Lógicos y operaciones con conjuntos

En Lenguaje R también existen operadores lógicos como lo muestro en el siguiente ejemplo.


Declaramos un vector que se le asigno a calif, después puse una condición los números mayores a 70 y lo que hace es que aparece la palabra TRUE si el número es mayor a 70 o FALSE si es menor a 70 en el orden de los números como los declaraste al principio. Después con una función llamada rep le asigné a A los primeros 4 números del vector, a B los siguientes 3 números y a C el último número. En la siguiente linea calif[cortar==A] se muestran los números que quedaron en A e igualmente con B y C. Con la función split se muestran A, B y C con sus números correspondientes.


Se declaran a y b, a del numero 5 al 10 y b un vector. La función union sirve para unir dos conjuntos en este caso se junto un vector con numeros del 5 al 10. Intersect te dice los números que son iguales en el vector y en los números del 5 al 10. Al contrario, setdiff te dice los diferentes primero comparando los de a con los de b y después los de b con los de a.



En este ejemplo declaré un arreglo x y después un arreglo a donde puse que fuera del numero dos hasta (4*5) osea 20. Después hice una secuencia con la función seq desde 6 hasta 60 de tres en tres. También con la función rep pones el número que quieras que se repita y separado por una coma, el número de veces que quieres que se repita.

Lenguaje R: Introducción

Hola a todos, en esta entrada empezaré mi reporte 4 de lenguajes funcionales. 

Primero vamos con lo básico que son las operaciones básicas de suma, resta, multiplicación y división. Estas operaciones se hacen igual que como nos enseñaron en la escuela los signos son iguales.


en este ejemplo como pueden ver no necesitas poner que tipo de número estas poniendo, si es decimal o no, como quiera te hace la operación que colocaste.

De echo, también te puede decir que tipo de dato fue el que ingresaste.




en este ejemplo, declare x del numero 20 al 25 por eso tiene ":" porque significa de que numero a que numero le asignas, z con la cadena corazon y con la función typeof(nombre de variable) te indica que tipo de dato fue el que pusiste.


También hace operaciones como raiz cuadrada, potencia, funciones trigonometricas, reconoce pi, entre otras cosas como se muestra en la siguiente imagen.





jueves, 21 de octubre de 2010

lunes, 20 de septiembre de 2010

~Lenguajes Funcionales

Hola a todos, en esta entrada les hablaré un poco acerca de los lenguajes funcionales.

La programación funcional está basada en el uso de funciones aritméticas. Los programas escritos en lenguaje funcional se caracterizan por definiciones de funciones. En estos lenguajes no existe la declaración de variables, como tampoco la iteración y la secuencia (esto hace que cuando tengan que repetirse algunas instrucciones se haga por medio de recursión), se trabaja con memoria dinámica y en algunos lenguajes solo se puede escribir en una sola línea lo cual dificulta mucho al leer el programa. Estos lenguajes se usan sobre todo para la Inteligencia Artificial.

Algunos ejemplos de lenguajes funcionales destaca Haskell y Miranda. Otros lenguajes que son más conocidos son Scala, Scheme, SAP, Standar ML, entre otros. Erlang también es un lenguaje funcional de programación concurrente y R es un lenguaje que esta dedicado a estadística.


Lenguaje Funcional R

Este lenguaje funcional fue creado por Ross Ihaka  y Robert Gentleman está diseñado para análisis estadísticos y gráficos. Es un lenguaje de distibución gratuita con los términos de GNU General Public Licence.

El código fuente de R está escrito la mayor parte en C y algunas partes en Fortran, es principalmente para el sistema operativo Unix y Linux, también para Windows pero como archivos binarios precompilados, así como para Linux, Macintosh, Alpha Unix, entre otros.

R tiene muchas funciones con fines de estadística y gráficos, los cuales se pueden guardar en diferentes formatos entre ellos jpg, png, bmp, ps, pdf, entre otros, esto depende del sistema operativo. En cuanto a lo estadístico, estos se muestran en pantalla y algunos resultados intermedios se pueden guardar o exportar a un archivo para ser utilizados después.

Este lenguaje está orientado a objetos, también es un lenguaje interpretados como el caso de java, lo que significa que son ejecutados sin necesidad de hacer archivos ejecutables.

Les dejo en los links importantes un manual de este lenguaje, les puede ayudar para la tarea que tenemos y también para conocer más cosas de este lenguaje. Esta completo y tiene mucha información.


Cálculo Lambda

Alonso Church fue el desarrollador del cálculo lambda  en los años de 1030s con el fin de conocer la definición de funciones.

En los lenguajes de programación el cálculo lambda proporciona una sintaxis, semántica y una forma para definir primitivas de programación.

Sintaxis



Ejemplos.

(λ x. x + 2) 3 -->
(λ f. f 3) (λ x. x + 2) --> (λ x. x + 2) 3 --> 3 + 2 --> 5



Referencia
http://exa.unne.edu.ar/informatica/programacion3/public_html/apuntes/Calculo_Lambda.pdf

~Recursión


Materia: Laboratorio de Lenguajes de Programación
Hora: Jueves V1

Hola a todos, en esta entrada les hablaré un poco hacerca de recursión. En términos de programación, la recursión se refiere a llamar a una función a través de esa misma función.

Un algoritmo recursivo es un algoritmo que obtiene la solución mediante la llamada de una función a si misma. Este procedimiento de llamarse a si mismo se llama recursión.

Una forma de simplificar un problema de recursión es dividirlo en problemas más chiquitos, o bien en subproblemas. Este método en programación se llama "Divide y vencerás", de esta técnica hable un poco en la entrada anterior de la presentación de Ordenamiento por mezcla.

Al dividir el problema principal en subproblemas, estos subproblemas tienen que reducirse hasta llegar al caso base.

Algunos ejemplos de recursión son: quicksort, ordenamiento por mezcla, torres de hanoi, búsqueda binaria, factorial, etc.


FACTORIAL


n!=
\begin{cases} 
\mbox{si }n=0 & \Rightarrow 1 \\ 
\mbox{si }n \geqslant 1 & \Rightarrow (n-1)! \cdot n
\end{cases}

Les dejo el código de factorial en c.

#include  


int main(void){
int numero;

printf("Dime un numero: ");
scanf("%d", &numero);
printf("El factorial de %d es: %d", numero, fact(numero));
}

int fact(numero) {
if (numero == 0) {
        return 1;
        }
/*Regresa el factorial del numero que introduciste*/
        else {
        return numero * fact(numero - 1);
        }
}

Este programa lo que hace es que mediante la recursividad te calcula el factorial del número que tu introduces.


Bueno para terminar busqué videos acerca del tema para que les ayudaran por si no entienden recursión y me encontré con un video que representan los algoritmos recursivos de una manera muy clara y entendible. Aquí les dejo el video por si les interesa verlo, es un ejemplo sencillo.



Referencia

lunes, 6 de septiembre de 2010

Presentación Ordenamiento por Mezcla

Hola a todos, aquí les dejo mi parte del tema de recursión, me tocó dar ordenamiento por mezcla junto con mi compañera Lizbeth Treviño y mi compañero Jorge Molano.



Bueno les explicaré un poco acerca de este tema. El ordenamiento por mezcla lo desarrolló un matemático húngaro John Von Neumann en 1945.

Este ordenamiento por mezcla utiliza el algoritmo Divide y Vencerás, la cual tiene tres pasos.
  1. Divide. Divide el problema en cierto numero de subproblemas
  2. Vence. Soluciona este problema de forma recursiva.
  3. Combina. Mezcla el resultado de los subproblemas para obtener la solución.

En el ordenamiento por mezcla estos pasos se siguen de la siguiente manera:
  1. Divide la cantidad de números n entre 2 subsecuencias. Éstas subsecuencias se pueden dividir cada vez más de tal manera que quede de un número por subsecuencia.
  2. Ordena las subsecuencias de manera recursiva.
  3. Mezcla las dos últimas subsecuencias para lograr la solución al problema. 
Espero les haya ayudado en algo. Saludos :)

Descargar:
Presentacion.pptx
Presentación.ppt
Presentación.pdf