SoloCodigo

Programación General => Pascal => Mensaje iniciado por: House en Domingo 15 de Noviembre de 2009, 19:09

Título: Deteccion en ciclo
Publicado por: House en Domingo 15 de Noviembre de 2009, 19:09
Hola a todos, soy nuevo en este foro y espero que me puedan dar una mano con un programa en pascal que he estado haciendo. Consiste en ordenar alfabeticamente las palabras de la frase que el usuario escribe. Este es el codigo:
Código: Pascal
  1.  program alfabetico;
  2. uses crt;
  3. var I,y,z,menor,m2,m,mn,m3,m4,z3: integer;
  4.     frase,x,abc,z2,f,z4: string;
  5.     b: char;
  6.  
  7. procedure ordenar;
  8. Begin
  9. b:= ' ';
  10. abc := 'abcdefghijklmnopqrstuvwxyz';
  11. writeln('Digite una frase');
  12. readln(frase);
  13. f:= b+frase;
  14. for I:= 1 to length(frase) do
  15.  Begin
  16.  x:= copy(f,I,1);
  17.  y:= pos(x,f);
  18.  if(x = ' ') then
  19.   Begin
  20.   z:= y;
  21.   Delete(f,y,1);
  22.   z2:= copy(f,z,1);
  23.   z3 := pos(z2,abc);
  24.   write(z3);
  25.   End;
  26.  End;
  27. End;
  28.  
  29. Begin
  30. clrscr;
  31. ordenar;
  32. readkey;
  33. End.
  34.  
  35.  

si lo compilan en turbo veran que imprime numeros, estos los pienso convertir a letras mediante el sub programa copy una vez haya podido ordenar los numeros de manera ascendente.
Esto no lo he podido hacer ya que las variables se llaman igual por estar en el for (z3), he intentado esto:
Código: Pascal
  1.  m:= z3;
  2.  if(m>z3) then
  3.     Begin
  4.      m2:=z3;
  5.      m:= m;
  6.      write(m2) (*para que me indique el menor*)
  7.      End;
  8.  
  9.  

Pero no imprime nada, entonces, como podria saber cual es el menor, quien le sigue, etc, con un if dentro del ciclo? Gracias por su atencion.
Título: Re: Deteccion en ciclo
Publicado por: DriverOp en Martes 17 de Noviembre de 2009, 01:05
La frase divídelas en palabras, pasa las palabras a una lista (o un vector de strings) ordena la lista y luego reconstruye la frase con las palabras ordenadas.
Título: Re: Deteccion en ciclo
Publicado por: House en Miércoles 18 de Noviembre de 2009, 06:06
Muchas gracias por responder, he podido concretarlo mediante arrays tal y como fue sugerido. Saludos.