viernes, 16 de julio de 2010

Tarea4: Algoritmo de Kruskal

Acerca de esto.

Este es un algoritmo de los grafos, su intención es la de encontrar el camino mas corto(con menos recursos) llegando a todos los nodos, una de sus características de este algoritmo es de que al finalizar su resultado no tendrá ciclos, así que sera un árbol.

Funciona de la siguiente manera:
Se crea un bosque B(conjunto de
á
rboles), donde cada vértice del grafo es un árbol separado.
Se crea un conjunto C donde tenga todo el conjunto de aristas.
Mientras C no es
vacío
Eliminar una arista de peso mínimo de C
Si esa arista conecta dos
á
rboles diferentes se agrega el bosque, combinando los
á
rboles diferentes se agrega el bosque.
En caso contrario se desecha la arista.

Aplicaciones
Las aplicaciones mas comunes que se utilizan para este algoritmo, son para ahorrar recursos, como en circuitos eléctricos, conexiones, entre otras...

Aquí un ejemplo de su aplicación:
Supongamos que una empresa de telefonía, brinda servicio a sus clientes, tómese los nodos azules son los postes de teléfono y los nodos naranjas, son el lugar donde se quiere brindar el servicio, y la linea negra, son las aristas, que es el cable necesario a usarse.
Ahora hay que buscar cual ser
í
a la menor cantidad de cable que se debera usar.

Aquí esta un código que se empleo
View more documents from Jorge.

viernes, 9 de julio de 2010

Derivadas de Polinomios

Codigo en C
Hola que tal compañeros, antes que nada, hay que recordar, que para poder ser un buen programador o ser bueno a lo que quieres llegar, en mi caso, lo anterior mencionado, es practicar continuamente, así, que nuestra profesora nos sugirió que lo hiciéramos para mejorar, y para esto nos di
ó una lista de ejercicios que podríamos realizar, en mi caso, me llamo la atención lo que es la derivada de polinomios.
Así que lo intente realizar.

Aquí les dejo el código en C
O también si lo quieren descargar.
Por favor, cualquier duda o comentario, haganmelo saber, para así ver en que se puede mejorar.

jueves, 8 de julio de 2010

Tarea3 Detección de Ciclos

Detección de ciclos en BFS
Un BFS (Breadth First Search) Es un algoritmo para recorrer o buscar elementos en un grafo, esta se empieza de la raíz y se exploran todos los vecinos de este nodo. Y luego para cada uno de los vecino se explora sus respectivos vecinos, y así hasta que se recorra todo el grafo o árbol.

Procesamiento
Dado un vértice fuente s, Breadth-first search sistemáticamente explora los vértices de G para “descubrir” todos los vértices alcanzables desde s.
Calcula la distancia (menor número de vértices) desde s a todos los vértices alcanzables
Después produce un árbol BF con raíz en s y que contiene a todos los vértices alcanzables.
El camino desde s a cada vértice en este recorrido contiene el mínimo número de vértices. Es el camino más corto medido en número de vértices.
Su nombre se debe a que expande uniformemente la frontera entre lo descubierto y lo no descubierto. Llega a los nodos de distancia k, sólo tras haber llegado a todos los nodos a distancia k-1.

Aplicaciones
Las aplicaciones que se pueden usar para este algoritmo son:
  • Como la solución de circuitos eléctricos
  • Exploración en entornos de robótica móvil
  • Control de información en redes informáticas, entre otras...

Detección de Ciclos
Como su nombre lo indica, la detección de ciclos, sirve para detectar ciclos en el BFS, el algoritmo mas visto sobre esto es el algoritmo de la liebre y la tortuga.
Lo que hace este algoritmo es de que:


Aquí les dejo un código en c de Detección de Ciclos en el cual me lo encontré en http://en.literateprograms.org/Floyd's_cycle-finding_algorithm_(C)


Deteccion de Ciclos
View more documents from Abraham.
Aquí si lo quieren descargar.
En esta parte esta el codigo que implemente:
Deteccion de Ciclos en c
View more documents from Abraham.
Aqui si se quiere descargar
Y necesita un archivo .txt, ya que te pide que des el nombre del archivo, descargas este, mas adelante esta una imagen de como son los grafos.

martes, 6 de julio de 2010

Duda de Serie de Fibonacci

¿Qué es la serie de fibonacci?
La serie de fibonacci, es la sucesión infinita de números naturales, los cuales son:
0,1,1,2,3,5,8,13,21,34,55,etc...

¿Cómo se empieza?
La sucesión se empieza con 0 y 1 de ahí se suman y da un resultado que en su caso da 1 después de esto se suma el resultado y el segundo numero.
Algebraica mente seria:
a + b = c
b + c = d
y así sucesiva mente
.

Y para que lo veas con numéricos seria:
0 + 1 = 1
1 + 1 = 2

Programa en C
Aquí les dejo un pequeño programa que hice en C.

Serie Fibonacci en C
View more documents from Abraham.
Y aqui esta el link de descarga

Duda
Bueno la pregunta surgió, en esta parte del código:
c = a + b
Esto quiere decir, que el valor de c sera la suma de a y b.
Después de esto imprime el valor de c, que es la parte donde viene el printf.
Ya después viene, que se sustituyen los valores.
a = b
b = c
Y se vuelve a repetir el ciclo.
Hasta esta parte esta bien, pero, la duda o la pregunta surgió, es que pasa si se cambia el orden al momento de sustituir a y b, osea que primero se ponga b y después se ponga a.
b = c
a = b
Si se cambian de posición, lo que pasaría es que vendría imprimiendo lo siguiente:
A que se debe que imprima 0,1,1,2,4,8,16,32, etc...
La respuesta esta en que b toma el valor de c y a toma el de b.
Así que el valor de a simpre viene siendo el valor de c.
Ej.:
c = a + b
b = c
a = b
0 + 1 = 1
1 + 1 = 2
2 + 2 = 4
4 + 4 = 8
En pocas palabras, no van cambiando se vuelve a repetir los valores.

Tarea2 Ordenación de Arreglos de Números

Que es la Ordenación de Números?
O mas bien conocido en la programación como algoritmos de ordenamiento, estos son arreglos de una lista o de un vector de una secuencia, dada en forma sin un orden, osea, que lleven una secuencia o que estén acomodadas de mayor a menor o viceversa.


Ej.:
secuencia: 51, 35, 23, 65, 84, 45
acomodo: 23, 35, 45, 51

Para que me Sirven...
Bueno estos arreglos, hay que conocerlos, ya que son importante y si se utilizan muy seguido.
Por ej.:
-Las calificaciones que sacaste y las quieres acomodar de mayor a menor
-Saber cual es el precio mas bajo de ciertos productos
-Acomode una secuencia dada, entre otras....

Que tipos de Ordenamientos hay...
Hay diferentes tipos de ordenamiento, pero los mas utilizados son los siguientes:

Da click aquí si quieres ver animaciones de diferentes tipos de ordenamiento

Yo que hice...??
Y claro yo aquí por mi cuenta hice un programa en c en la cual tu das una secuencia de números y eliges la forma en la que se Ordenaran

Ordenamiento
View more documents from Abraham
Y aquí si quieres descargar el código en c.
Continua...

jueves, 1 de julio de 2010

Reporte Tarea1 Taller de Programacion


¿Que hice yo, Como me salio?
La parte que yo realice fue, buscar herramientas para poder utilizar c, en diferentes Sistemas Operativos, junto con mi compañera de equipo, ya después conseguido esta información, lo que se hizo fue redactar todo y convertirlo en pdf. En mi opinión, el trabajo me salio bien, ya que le pusimos mucho empeño para sacar una buena nota.

¿En qué aspectos estoy bien y en qué me hace falta mejorar?
Entendí acerca de como instalar herramientas en diferentes sistemas operativos, algo que no sabia de programas para mac, el trabajo que se realizo junto con mi compa
ñera y de la manera de como se trabajo.

Ayudo a los demás o me apoyo en ellos
En mi punto de vista, se trabajo por igual, hubo mucha cooperación por parte de ambos, si mi compa
ñera tenia dudas acerca del trabajo, le ayudaba o le explicaba, al igual que si yo tenia algún problema ella me ayudaba.

¿Quién se encarga de coordinar el trabajo?
Como se había mencionado, se trabajo por igual, nos coordinamos y nos apoyamos mutuamente, y nos poníamos de acuerdo.

¿Qué papel tomo yo?
Por ambas partes se tomo un papel importante, ya que ambos trabajamos, ambos buscamos información, la comparábamos, decidíamos, redactamos, etc... Asi que tomamos ambos el mismo papel.


View more documents from Abraham.
Y aqui esta el link de para descargar el pdf.