Para el camino más corto lee sobre dijkstra: http://en.wikipedia.org/wiki/Dijkstra's_algorithm . Y sobre los pesos como dice Akai debería funcionarte.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Khronos14 en 1 Febrero 2011, 23:47 PM
Ese método es muy chorizo... la forma "normal" de hacerlo es usando las funciones de cadenas para buscar coincidencias, no tiene más ciencia.
Saludos.
#include<p18F4550.h>
#define freq 8 // Frequencia de la CPU
void Delay_ms(unsigned int t)
{
unsigned long n,i;
n=t*freq;
n=n*25/2;
for(i=0;i<n;i++);
return;
}
void encender_led();
#pragma code high_vector = 0x08
void high_interrupt(void)
{
_asm
goto encender_led
_endasm
}
#pragma code
#pragma interrupt encender_led
void encender_led()
{
INTCON3bits.INT1IE = 0;
}
void main()
{
TRISA = 0xF0;
TRISB = 0x0F;
PORTA = 0x00;
RCONbits.IPEN = 1;
INTCON2bits.RBIP = 1;
INTCONbits.GIEH = 1;
INTCON3bits.INT1IP = 1;
INTCON3bits.INT1IE = 1;
while(1)
{
if(INTCON3bits.INT1IF){
INTCON3bits.INT1IF = 0;
if (LATA) PORTA = 0x00;
else PORTA = 0x01;
}
Delay_ms(10);
INTCON3bits.INT1IE = 1;
Delay_ms(10);
}
}