SoloCodigo

Programación General => Pascal => Mensaje iniciado por: diegorojo_83 en Jueves 7 de Septiembre de 2006, 20:50

Título: Programa
Publicado por: diegorojo_83 en Jueves 7 de Septiembre de 2006, 20:50
hola que tal, queria saber en que me estoy equivocando al hacer este programa.... por que lo revise y no se que esta mal, como recien empieso a programar, capas que este haciendo las cosas mal, pero bueno espero que me ayuden.... el enunciado es: crear un programa que al ingresar una frace terminada en "/" me diga la cantidad de letras de la palabra mas larga....



Citar
program palabramayor;

  uses crt;
  var
       cant,max: integer;
       txt: string;
       i:integer;

  begin
    clrscr;
  write('ingrese una frace terminada en /');
  readln(txt);

  for i:= 1 to 255 do
  begin
        if txt <> ' ' then
        begin
               cant:=cant+1;
        end
        else
               cant:=0;
        end;
        if cant>max then
        begin
               max:=cant;
        end;

  write('la palabra mas larga del texto es de: ',cant);
  readkey;
  end.

GRACIAS
Diego.
Título: Re: Programa
Publicado por: Enko en Jueves 7 de Septiembre de 2006, 21:05
y que ocurre si tu frase terminada en "/" tiene menso de 255 caracteres?
Citar
for i:= 1 to 255 do
  begin

Creo que eso debería ser:
Citar
for i:=1 to Length(txt)  do
begin
Es decir, para i=1 hasta el largo de la cadena.

Respecto del resto de las cosas.... ?te encuentra la palabra m'as larga?
Título: Re: Programa
Publicado por: diegorojo_83 en Jueves 7 de Septiembre de 2006, 21:26
lo puse como me dijiste, pero yo tengo una condicion que es que el siclo se tiene que terminar cuando tenga el caracter "/"..... y eso no puedo hacerlo.... quise poner el codigo asi: pero me tira error.
Citar
program palabramayor;

  uses crt;
  var
       cant,max: integer;
       txt: string;
       i:integer;

  begin
    clrscr;
  write('ingrese una frace terminada en /');
  readln(txt);

  for i:= 1 to txt= '/' do
  begin
        if txt <> ' ' then
        begin
               cant:=cant+1;
        end
        else
               cant:=0;
        end;
        if cant>max then
        begin
               max:=cant;
        end;

  write('la palabra mas larga del texto es de: ',cant);
  readkey;
  end.
Título: Re: Programa
Publicado por: Enko en Jueves 7 de Septiembre de 2006, 21:36
Código: Text
  1.  
  2. i := 0;
  3. while (i&#60;Lenght(txt)) and (txt[i] &#60;&#62; '/') do
  4. begin
  5.   i := i + 1;
  6.  
  7.  
Título: Re: Programa
Publicado por: Saiyan1 en Jueves 14 de Septiembre de 2006, 15:47
Lo mismo estaba por decir..

pero tambien estaba por decir una más:

"frase" es con s


Código: Text
  1. write('ingrese una frace terminada en /');
  2.   readln(txt);
  3.  


Firma:" el obsesivo de la ortografía"

jajaja

Saludos