se lee secuencia de caracteres hasta encontarar un punto. Informar la longuitud de la palabras mas larga que empieza con 't'.
Program ejemplo;
var
cant,maximot:integer;
letra:char;
begin
cant:=0;
maximot:=0;
Writeln('Inserte los caracteres :' ); Read(letra);
while(letra='')do
read(letra);
while (letra <>'.')do begin
cant:=0 ;
if( letra='t') then begin
cant:=cant+1;
while(letra<>'') or (letra <>'.') do begin
read(letra) ;
cant:=cant+1 ;
end;
if(cant>maximot)then
maximot:=cant;
end;
end;
Writeln('La cantidad de caracteres leidos fue de : ' , cant);
readln;
readln
end.
No se cual es el error...
Si eres un poco más claro y nos dices que error es el que te da pues podremos ayudarte mejor. Te da error al compilar? no hace la función que esperas que haga? o que?
Cita de: Valkyr en 1 Mayo 2011, 17:54 PM
Si eres un poco más claro y nos dices que error es el que te da pues podremos ayudarte mejor. Te da error al compilar? no hace la función que esperas que haga? o que?
Puedo insertar caracteres aunque ponga puntos... no se si me explico.No informa nada.
Cita de: netca en 1 Mayo 2011, 19:02 PM
Puedo insertar caracteres aunque ponga puntos... no se si me explico.No informa nada.
Mmmm, fijate en la condición, creo que deberías cambiar el OR por el AND para hacerlo más estricto.
Cita de: netca en 1 Mayo 2011, 01:52 AM
while (letra <>'.')do begin
cant:=0 ;
if( letra='t') then begin
cant:=cant+1;
while(letra<>'') or (letra <>'.') do begin
read(letra) ;
cant:=cant+1 ;
end;
if(cant>maximot)then
maximot:=cant;
end;
end;
Fijate que en ese bucle si no se cumple la condición de que la letra sea una 't' cae en un bucle infinito ya que no vuelve a leer otro caracter y por tanto nunca va a ser ni una t ni un punto. Es decir deberías hacer algo así:
while (letra <>'.')do begin
cant:=0 ;
if( letra='t') then begin
cant:=cant+1;
while(letra<>'') or (letra <>'.') do begin
read(letra) ;
cant:=cant+1 ;
end;
if(cant>maximot)then
maximot:=cant;
end;
else read(letra);
end;
Algo así para que en caso de que no sea una t vuelva a leer otro caracter.
Por otro lado esta parte de código sobraría:
while(letra='')do
read(letra);
Ya que en el bucle que he citado más arriba sería suficiente.
También, aunque de esto ya estoy menos seguro, en las condiciones no deberías poner el caracter ' ' en lugar de ''? Se supone que '' es un caracter nulo o algo así no? xD, y también lo que dice Leo, deberías cambiar la condición en lugar de OR poner AND.
Haz los cambios y ya nos cuentas!
Suerte!
Al parecer se soluciono ^^ , gracias