[ Foro de Pascal ]
Hola quisiera saber como se reuelve este ejercicio.
Escribe un programa que lea una secuencia de letras en minúscula acabada en '.' y muestra una frase diciendo si estan ordenadas alfabeticamente o no.
Ejemplo:
introduce una secuencia: aejlm.
Están en orden alfabético.
Ejemplo2:
introduce una secuencia:zeca.
No están en orden alfabético.
Yo he tratado de resolverlo así pero en algunos casos no muestra lo que debería.
program exercise23;
var
a,two:char;
d,first, second:integer;
begin
writeln('Introduce a sequence:');
d:=0;
read(a);
while a<>'.' do
begin
first:=ord(a);
read(a);
two:=a;
second:=ord(a);
if second<first then
begin
d:=d+1;
end;
a:=two;
end;
if d=0 then
writeln('They are in alphabetical order.');
if d<>0 then
writeln('They are not in alphabetical order.');
end.
Agradecería mucho vuestra ayuda.
Tienes que comprobar si cada letra es mayor que la anterior. Basta con que una no lo sea, de modo que el algoritmo puede ser más sencillo de lo que tú has planteado:
ordenadas := true
para cada letra desde la posición 2 hasta la n
si letra[pos] < letra[pos-1] entonces ordenadas := false
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)