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:
program alfabetico;
uses crt;
var I,y,z,menor,m2,m,mn,m3,m4,z3: integer;
frase,x,abc,z2,f,z4: string;
b: char;
procedure ordenar;
Begin
b:= ' ';
abc := 'abcdefghijklmnopqrstuvwxyz';
writeln('Digite una frase');
readln(frase);
f:= b+frase;
for I:= 1 to length(frase) do
Begin
x:= copy(f,I,1);
y:= pos(x,f);
if(x = ' ') then
Begin
z:= y;
Delete(f,y,1);
z2:= copy(f,z,1);
z3 := pos(z2,abc);
write(z3);
End;
End;
End;
Begin
clrscr;
ordenar;
readkey;
End.
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:
m:= z3;
if(m>z3) then
Begin
m2:=z3;
m:= m;
write(m2) (*para que me indique el menor*)
End;
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.