A ver, ese bucle, tiene el problema de que en cuanto encuentre el primer espacio en blanco, para, por lo que, en este caso, en cuanto llegara al espacio en blanco que hay en el valor de la variable, después de "Sistema", se pararía. Tiene que ser un bucle inverso, que empiece por el final, hasta llegar al principio.
Código COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. LONGITUD.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 LONGITUD PIC 99.
01 TEXTO PIC X(36)
VALUE "Sistema de Control de Calificaciones".
*
PROCEDURE DIVISION.
PRINCIPAL.
perform varying longitud from 36 by -1 until
longitud = 1 or texto(longitud:) not = ' '
continue
end-perform.
DISPLAY "La longitud de la cadena es:" LONGITUD.
STOP RUN.
Como te indican, si cambias el tamaño de la variable, cambias el bucle, (ten en ecuenta de mirar también la PICTURE del contador, que sea la apropiada)
Un salu2.-