Questo è il programma:
codice:
Program Contrario;
Var     i: Integer;
        s: String[80];
    nuova: String[80];
Begin
   Write('Digitare una stringa: ');
   Readln(s);
   nuova := s;
   For i:=1 To Length(s) Do
      nuova[Length(s) - i + 1] := s[i];

   Writeln('La stringa rovesciata: ', nuova);
End.
Come funziona:
1) legge una stringa (al massimo 80 caratteri);
2) cicla per tutti i caratteri della stringa
3) ad ogni iterazione scrive il carattere in posizione i della stringa nella posizione Lunghezza - i + 1 della nuova stringa.

Lunghezza rappresenta la lunghezza della stringa, quindi l'espressione (Lunghezza - i + 1) rappresenta proprio la posizione simmetrica rispetto alla posizione i-esima, considerando che gli array come le stringhe in Pascal partono dall'indice 1.


Ciao.