[ Foro de Pascal ]

Secuencia de letras y orden alfabético

24-Oct-2015 14:15
Invitado (Manuel)
1 Respuestas

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.


25-Oct-2015 02:26
Nacho Cabanes (+84)

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.)