Pascal/Turbo Pascal - Contar Palabras

 
Vista:

Contar Palabras

Publicado por Flash (3 intervenciones) el 28/03/2008 10:54:00
Hola. Necesito saber como hacer un procedimiento en pascal capaz de contarme el numero de palabras de una cadena de tipo string. 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

RE:Contar Palabras

Publicado por Mariano (57 intervenciones) el 29/03/2008 00:37:30
Ahi va

function Contar(cadena:string):byte;
var
cant,len, i :byte;

begin
cant:=1;
len:=length(cadena);
for i:=1 to len do
if cadena[i] = ' ' then
inc(cant);
contar:=cant;
end;


Un abrazooo, cualquier duda volve a preguntar :)
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

RE:Contar Palabras

Publicado por Diego Romero (996 intervenciones) el 29/03/2008 01:04:23
Si el string contiene dos (o más) espacios en blanco seguidos cuenta palabras que no existen.
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
sin imagen de perfil

RE:Contar Palabras

Publicado por Willy (177 intervenciones) el 29/03/2008 07:12:04
A ver, prueba con este:

Uses Crt;
Var Cadena: String;
Palabras: Integer;

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.
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

RE:Contar Palabras

Publicado por Diego Romero (996 intervenciones) el 29/03/2008 11:23:08
var
oracion: string

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.
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
sin imagen de perfil

RE:Contar Palabras

Publicado por Willy (177 intervenciones) el 29/03/2008 21:25:41
Hola Diego.
Mi compilador de Turbo Pascal no puede procesar esto:

Oracion:=trim(Oracion);

Me parece que no compilaste tu código pues, en algunos lugares escribiste la varible oracion con tilde y en otros no.
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

RE:Contar Palabras

Publicado por Diego Romero (996 intervenciones) el 30/03/2008 04:04:23
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
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
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.
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