Algoritmo para obtener el valor mayor de las medidas realizadas por un sensor de ultrasonidos.

Vamos a analizar el algoritmo para obtener el mayor de tres números

Algoritmo para obtener el mayor de tres números

Fuente: Hazaelocielx's Blog

ALGORITMO INFORMAL


INICIO.

1.- Pedir al usuario tres números diferentes.

2.- Comparar el primero con el segundo.

3.- Al mayor de los anteriores, compararlo con el tercero. El número más grande es el mayor de los tres.

4.- Imprimir el resultado en la pantalla.

FIN


ALGORITMO COMPUTACIONAL

INICIO

1.- Solicitar a usuario n1, n2 y n3

2.- Comparar n1 con n2

3.- Si n1 > n2

                Si n1 > n3

                     Imprimir n1

                Si no
                     Imprimir n3
     Si no, comparar n2 con n3
                Si n2 > n3
                     Imprimir n2
                Si no
                     Imprimir n3
FIN

En nuestro caso lo vamos a adaptar a para obtener la distancian mayor obtenida por un sensor de ultrasonidos que realiza tres medidas:

Se posiciona en 0º y realiza una medida. distancia_0
Se posiciona en 90º y realiza una segunda media. distancia_90
Se posiciona en 180º y realiza una tercera medida distancia_180

El valor obtenido, la distancia mayor se va  a utilizar para indicar al robot la dirección en la que tiene que avanzar.



ALGORITMO INFORMAL


INICIO.

1.- Realizar las medidas de distancia (distancia_0, distancia_90 y distancia_180).

2.- Comparar el primero con el segundo.

3.- Al mayor de los anteriores, compararlo con el tercero. El número más grande es el mayor de los tres.

4.- Imprimir el resultado en la pantalla.

FIN


ALGORITMO COMPUTACIONAL

INICIO

1.- Realizar las medidas de distancia (distancia_0, distancia_90 y distancia_180).

2.- Comparar distancia_0 con distancia_90

3.- Si distancia_0 >distancia_90

                Si distancia_0 > distancia_180

                     avanzar();

                Si no

                     girarDerecha();

     Si no, comparar distancia_90 con distancia_180
              
           Si distancia_90 > distancia_180
       
            girarIzquierda();
       
       Si no
                    girarDerecha();

FIN

Las funciones avanzar(), girarDerecha() y girarIzquierda(), han sido creadas para controlar el funcionamiento del robot.