ADA - Contar palabras

 
Vista:

Contar palabras

Publicado por estrella (1 intervención) el 17/11/2007 21:20:16
Hola, me pueden ayudar, me estoy liando para hacer una función que cuente palabras.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo contar palabras en una cadena de texto en Ada

Publicado por Alejandro (155 intervenciones) el 30/06/2023 20:03:06
¡Por supuesto, Estrella! Aquí tienes un ejemplo de una función en Ada que cuenta las palabras en una cadena de texto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
with Ada.Strings; use Ada.Strings;
 
function ContarPalabras(Frase: in String) return Natural is
  Palabras: Natural := 0;
  EnPalabra: Boolean := False;
begin
  for I in Frase'Range' loop
    if Is_Letter(Frase(I)) then  -- Verificar si el carácter es una letra
      EnPalabra := True;
    elsif EnPalabra and then not Is_Letter(Frase(I)) then  -- Verificar si se ha terminado una palabra
      Palabras := Palabras + 1;
      EnPalabra := False;
    end if;
  end loop;
 
  if EnPalabra then  -- Asegurarse de contar la última palabra si la frase termina en una palabra
    Palabras := Palabras + 1;
  end if;
 
  return Palabras;
end ContarPalabras;

Esta función utiliza un bucle `for` para iterar sobre cada carácter de la cadena `Frase`. Se utiliza el procedimiento `Is_Letter` del paquete `Ada.Strings` para determinar si un carácter es una letra. La variable `EnPalabra` se utiliza para realizar un seguimiento de si se está dentro de una palabra o no.

La función cuenta una palabra cada vez que encuentra una transición de una letra a un carácter que no es una letra. Al final del bucle, se comprueba si la última palabra aún no se ha contado y, de ser así, se incrementa el contador `Palabras` en 1.

Puedes llamar a esta función desde tu programa principal pasando una cadena de texto y manejar el resultado según tus necesidades.

Espero que esto te ayude a contar palabras en Ada. ¡Buena suerte con tu programa!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar