|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - -SB-
51
« en: Domingo 6 de Junio de 2004, 13:04 »
No es un metodo muy rapido de hacer, bueno tampoco coji mucha practica, lo justo para hacerlo en el examen jejeje.. (no lo he vuelto a necesitar para nada). Los ejercicios del examen no eran muy avanzados, sino calcular la cantidad de nodos de un arbol etc..
Hacerlo con un ejercicio simple como ese (el del arbol) puede llevar una media hora.
En la vida real no he vuelto a usarlo nunca.. pero bueno, culturilla general, saber que existe y mas o menos como es (¡no vaya ser que algun dia haga falta!).
Salu2!!
52
« en: Sábado 5 de Junio de 2004, 11:51 »
En primero de carrera nos hablaron de ese problema, pues es cierto que a veces la recursividad sale cara, pero hacer el algoritmo recursivo es algo bien sencillo.
El problema de lo caro que sale un algoritmo recursivo reside en que no siempre nuestros programas van a ir en ordenadores de alta capacidad.. tb hay equipos mas pequeños que necesitan programas.
Nos hablaron para ello del metodo de un tal Burstall que se basa en unos sencillos pasos para pasar de un algoritmo recursivo a uno iterativo.
Comentan por ahi arriba que solo es posible pasar a iterativo facilmente programas que contengan una llamada recursiva, pero eso no es asi, con este metodo podemos hacerlo con cualquier algoritmo, tenga las llamadas que tenga.
En su base el metodo trata primero con un ejemplo de doblar y desdoblar lo q hace el algoritmo recursivo, y de ese doblaje-desdoblaje puede uno llegar a una invariante. Una vez obtenida la invariante de la iteracion es facil obtener el resto de las ordenes del algoritmo..
Busca iformacion en internet sobre Burstall y te voy a dar un poco de bibliografia tambien:
Programacion Metódica Balcázar J.L. MacGraw-Hill, 1993.
En este libro puedes encontrar temas que tienen que ver con recursividad, en concreto especificacion ecuacional de tipos de datos, tecnicas para optimizar los algoritmos recursivos (sin volverlos iterativos), y transformacion de algoritmos recursivos a iterativos.
Un saludo!!!!!!!!
53
« en: Viernes 4 de Junio de 2004, 13:32 »
Hola! Ayudaria mucho que pusieras tu codigo, de todas formas puedes hacer algo asi como: if float(n1/n2) < float(n3/n4) then -- n1/n2 es mas peke que la otra division else -- pues lo contrario end if;
Un saludito!
54
« en: Martes 25 de Mayo de 2004, 16:54 »
Muchas gracias nicokiki! Ya lo tengo solucionado  Un saludo!
55
« en: Sábado 22 de Mayo de 2004, 23:33 »
Hola! Necesito trabajar con directorios en C (bajo unix), por lo que he estado mirando he encontrado funciones como: DIR *opendir(char *path); struct dirent *readdir(DIR *dir);
Alguien me puede orientar un poco sobre como se utilizan? Gracias de antemano, SB.
56
« en: Martes 18 de Mayo de 2004, 16:02 »
Hombre tambien se puede optimizar eso sin necesidad de una tabla, porque en ese programa recursivo repites calculos, podrias hacer q la funcion recursiva de el valor del anterior fibo tambien, para no tener q llamarle dos veces en el caso inductivo...
Pero bueno volviendo al tema.. que tiene que ver fibonacci con las listas enlazadas?
Un saludo!
57
« en: Sábado 8 de Mayo de 2004, 17:43 »
La quiniela es una apuesta futbolistica a nivel de todo el estado español..
Pues si que es un poco descarado pedirlo asi, y mas dando un enunciado en catalan vamos... jeje
Un saludo!
58
« en: Sábado 8 de Mayo de 2004, 13:48 »
En esta pagina de mi universidad puedes bajar gnat, adaguide y gwindows, para trabajar con interfaces graficas. El texto esta en vasco pero se puede distinguir facilmente lo que son los ejecutables. Un saludo! ENTRAR EN LA PAGINA
59
« en: Martes 4 de Mayo de 2004, 17:12 »
Precisamente la idea de Java es que no crees ejecutables, sino codigos objeto para poder ejecutarlos en cualquier maquina con su maquina virtual, sin tener dependencias del hardware que la maquina utiliza, ni del so, con decirte que las primeras versiones se idearon para serimplementadas en frigorificos jeje..
Un saludo!
60
« en: Martes 4 de Mayo de 2004, 17:04 »
Llamadas al sistema. Si prorgamas en unix miratelas siguientes: fork, execvp, y wait. fork para copiar el proceso, execvp para ejecutar el otro programa, y wait para esperarle. Para mas informacion sobre el uso puedes poner en la consola. Un saludo!
61
« en: Martes 27 de Abril de 2004, 03:00 »
Increible el MANUET ese... me habeis dejau sin palabras jej! Voy a probarlo... (Q todavia no me lo creo ni na jeje) Un saludo!
62
« en: Sábado 3 de Abril de 2004, 19:30 »
Aun con la cola y la pila recorrer un arbol sin utilizar recursividad...
63
« en: Sábado 3 de Abril de 2004, 19:23 »
Con que te interrumpa que quieres decir, que deshabilite las interrupciones?
65
« en: Martes 30 de Marzo de 2004, 16:35 »
Una pequeña aportacion para la version en linux: #include <stdlib.h> #include <termio.h> #define STDIN 0 void echo_on_off () {struct termio tm; ioctl(STDIN, TCGETA, &tm); if (tm.c_lflag & ECHO) tm.c_lflag &= ~ECHO; else tm.c_lflag |= ECHO; ioctl(STDIN, TCSETA, &tm); }
Si llamas a esta funcion, el echo se desactiva hasta que la vuelves a llamar. Para leer la string puedes añadirle algo asi: #define BUFSIZE <long de la string> // especificacion de la funcion.. {int n; char buf[BUFSIZE]; n = read(STDIN, buf, BUFSIZE); // n es la cantidad de caracteres que se han leido hasta la pulsacion de enter. // los primeros n caracteres de buf son los leidos, lo demas es basura. }
Un saludo!
66
« en: Lunes 22 de Marzo de 2004, 00:25 »
Pues adelante!! Ya me contaras como te va y si te queda chulo podias pasar el codigo Un saludo!!
67
« en: Domingo 21 de Marzo de 2004, 23:53 »
No creo yo que nadie haya por aqui para hacerte la practica gratis... Si tienes alguna duda concreta preguntala.. pero eso asi... Un saludo! SB.
68
« en: Domingo 21 de Marzo de 2004, 23:46 »
En verano despues de terminar 1º de carrera me puse manos a la obra con un ajedrez, (aunq implementado en ADA) y segun iba avanzando fuy viendo que era bastante mas dificil de lo esperado, no llegue a conseguir que el ordenador jugase decentemente.
Consegui un tablero para dos jugadores, pero con lo dificil que es saber quien ha ganado, y las restricciones de movimientos que hay yo creo que no es lo mas adecuado que puedes hacer, yo te aconsejo algun otro juego como 4 en raya o asi...
A las damas no se jugar jejejeje
Un saludo!!!
SB.
69
« en: Domingo 21 de Marzo de 2004, 23:37 »
Bueno, ahora tengo otro problemilla, a ver si me lo podeis solucionar:
Teniendo una tabla bidimensional, por ejemplo:
main() { int v[5][5]; ... }
Intento pasarsela a una funcion para que la modifique asi: void nombre(int tabla[][]);
y me da un error de compilacion. (si la funcion la defino poniendo ...tabla[5][5].. no tengo problema, pero puesto que el tamaño de la tabla no va a ser siempre el mismo, esto no me vale..
Alguien me puede explicar como hacerlo en este caso?
Gracias,
SB.
70
« en: Miércoles 10 de Marzo de 2004, 12:36 »
¡Muchas gracias!  1 Saludo!
71
« en: Martes 9 de Marzo de 2004, 18:27 »
Hola. No he utilizado mucho el lenguaje de prorgamacion c y me veo ante un gran problema a la hora de pasar una tabla a una funcion (y que esta la modifique). Hasta ahora para realizar esta tarea, he definido la tabla como una variable global y luego modificado su valor con las funciones, pero quiero hacer funciones un poco mas independientes, por ejemplo si quiero una funcion que sume 1 a cada elemento de la tabla, como puedo hacerla? void suma1(int *n[], int long) //La tabla n tiene long elementos. //Suma uno a cada elemento de la tabla n. a la que se le llamaria asi: main() {int v[CTE]; ... suma1(&v, CTE); ... } ¿Como se podria implementar la funcion suma1? Muxas gracias
72
« en: Martes 2 de Marzo de 2004, 18:33 »
Si quieres el compilador para linux, te lo puedo enviar yo, contactame! webmaster@no-se.orgUn saludo!
73
« en: Martes 2 de Marzo de 2004, 18:32 »
Mandame el problema a sb@no-se.orgSalu2! PD: Si no sacas notable o sobresaliente te devuelvo el dinero jej
74
« en: Martes 2 de Marzo de 2004, 18:30 »
Perdon, no queria escribir aqui, me he confundido de tema.
|
|
|