Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Procedure CuentaPalabras(Var Oracion: String); Var I : Integer; Begin For I := 2 to Length(Oracion) do If Oracion[I] = ' ' then Palabras := Palabras + 1; End;
Begin ClrScr; Palabras := 1; WriteLn('Intruduzca una oracion'); ReadLn(Cadena); CuentaPalabras(Cadena); Writeln('Cantidad de palabras = ',Palabras); ReadKey end.
function Palabras(Oración: string): integer; var Result: integer; begin Result:=0; Oracion:=trim(Oracion); if Length(Oracion) > 0 then if Length(Oracion) > 1 then begin for i:=1 to Length(Oracion)-1 do if (Oracion[i] = ' ') and (Oracion[i+1] <> ' ') then inc(Result); end else Result:=1
Palabras:=Result; end;
begin oración:='esto es una oracion'; WriteLn('La oración "',oracion,'" tiene ',Palabras(oracion),' palabras.'); end.
Cierto, lo escribí "de memoria". ¿Trim() no existe en turbo pascal?, habría jurado que sí :P. Bueno, trim() sería una función que quita los caracteres no imprimibles por delante y por detrás de un string incluyendo los espacios en blanco. Es para evitar las cadenas que no tienen palabras (por ejemplo, que el usuario presione la barra espaciadora y luego enter).
Valora esta respuesta
0
Comentar
RE:Contar Palabras
Publicado por juani (1 intervención) el 07/05/2009 21:58:17
ups es re tarde jeje pero bueno... el programa asi no anda bien, si yo tengo la siguiente oracion:
"_ _ _ _ _ hola " donde '_' son espacios , el programa que escribiste me cuenta 5 palabras y solo hay una.