Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Algunas function/procedure simples en ADA
#1
Ladrillo 
Hola! Abro este post en el que iré posteando funciones simples en ADA pero que fácilmente se pueden convertir a otro lenguaje de programación. De momento dejaré estas, bastante simples en realidad.

La primera función nos dirá cuantas veces sale el número que le metamos en el vector (o array) que entre.

Código:
function Cuantas_X (V: in (nombre de nuestro array) ;X: in Integer) return Integer is
   Cont: Integer; --Este será nuestro contador, el número que saldrá de la función.
   begin
     Cont:= 0; --Damos el valor inicial al contador.
     for I in V'First..V'Last loop
      if V(I) = X then      --Cuando el elemento en la posición I sea igual que X
        Cont:= Cont + 1; --contamos uno.
      end if;
     end loop;
     return Cont; --Lanzamos el número de veces en las que sale X.
  end Cuantas_X;

Podemos hacer lo mismo con un array de carácteres, simplemente cambiamos la definición de X y quedarías así:

Código:
function Cuantas_X (V: in (nombre de nuestro array) ;X: in Character) return Integer is
   Cont: Integer; --Este será nuestro contador, el número que saldrá de la función.
   begin
     Cont:= 0; --Damos el valor inicial al contador.
     for I in V'First..V'Last loop
      if V(I) = X then      --Cuando el elemento en la posición I sea igual que X
        Cont:= Cont + 1; --contamos uno.
      end if;
     end loop;
     return Cont; --Lanzamos el número de veces en las que sale X.
  end Cuantas_X;

La siguiente función que veremos buscará el elemento que querramos en un array no ordenado de números enteros y nos regresará la posición en al que se encuntra en el array.

Código:
function Buscar_X_Vector_Desordenado (V: in (nombre del array); X: in Integer) return Integer is
  Encontrado: Boolean; --Variable que usaremos para saber si se ha encontrado X.
  I: Integer; -- Variable que usaremos de índice del vector.
  begin
    I:= V'First; -- Iniciamos con el índice del 1º elemento del vector.
    Encontrado:= False;
    while I <= V'Last and Encontrado = False then
        if V(I) = X then
          Encontrado:= True; --Para que no repita el bucle la siguiente vez que pase por el.
          Num:= B(I); -- Guardamos el elemento para que no se pierda.
        else
          I:= I + 1; --Para que pase al siguiente elemento en el caso de no encontrarlo.
        end if;
    end loop;
    if Encontrado = True then --Miramos si se ha encontrado el número especificado (X).
       return I; -- Lanzamos la posición en la que está el número.
    else
      return '0'; -- Si no se encuentra ningún número lanzamos 0.
    end if;
  end Buscar_X_Vector_Desordenado;

Y eso sería todo. Aunque si en esta caso el array es de caracteres podremos hacer lo mismo que antes y en vez de poner X: in Integer pondremos X: in Character. Por otra parte las especificaciones de el Vector (o array) que metamos serán distintas.

Cita:Notas:
  • Estoy dando por hecho que las epecificaciones de los Vectores están hechos en otra parte, en este caso como es en ada sería en el archivo .ads junto con las especificaciones de las funciones.
  • Pongo las funciones en ADA porque pienso que es lo más fácil de entender y porque personalmente me manejo mejor en este lenguaje de programación.

Por último, me gustaría animaros a pedir funciones o procedimientos y yo intentaré hacerlas para después postearlas y así esto no será un monólogo ^^.




Usuarios navegando en este tema: 1 invitado(s)