String_6-Obtener+acrónimo+de+un+organismo

=__**Obtener el acronimo de un organismo**__= > Leer el nombre de un organismo y obtener su acrónimo (o su siglas) > El acrónimo estará formado por las las primeras letras de las palabras que componen el nombre, > si se trata de letras mayúsculas Ejemplos: >> Organización de Naciones Unidas -> O.N.U. >> Organización Mundial de la Salud -> O.M.S.

> Nota: Sólo se admiten letras de la A a la Z code format="pascal" PROGRAM P_67_E_6A ; { string_5A } USES Crt ; CONST cESPACIO    = ' ' ; iLONG_FISICA = 128 ; TYPE tsCadena = String [iLONG_FISICA] ;

FUNCTION fnsObtenerAcronimo (sNombre : tsCadena) : tsCadena ; VAR byIndice : Byte ; sAcronimo : tsCadena ; BEGIN sAcronimo := '' ;

IF Length (sNombre) > 0 THEN BEGIN IF (('A' <= sNombre[1]) AND (sNombre[1] <= 'Z')) OR ('Ñ' = sNombre[1]) THEN sAcronimo := sAcronimo + UpCase(sNombre [1]) + '.' ;

FOR byIndice := 2 TO Length (sNombre) DO         IF (('A' <= sNombre[byIndice]) AND (sNombre[byIndice] <= 'Z')) OR             ('Ñ' = sNombre[byIndice]) THEN IF (sNombre[byIndice - 1] = cEspacio) THEN sAcronimo := sAcronimo + sNombre [byIndice] + '.' ; END ;

fnsObtenerAcronimo := sAcronimo ; END ; { fnsObtenerAcronimo  }

{--- Declaración de variables del programa principal --} VAR sNombre, sAcronimo : tsCadena ; cEspera : Char ;

BEGIN { Programa Principal } Writeln ('===================================================================') ; Writeln ; Writeln ('Diccionario Real Academa de la Lengua') ; Writeln ('=====================================') ; Writeln ; Writeln ('  SIGLA:  Palabra formada por el conjunto de letras iniciales') ; Writeln ('          de una expresion compleja)') ;    Writeln ;    Writeln ('Para el programa:') ;    Writeln ('================') ;    Writeln ('   SIGLA:  Las iniciales de las palabras (solo si son mayúsculas)') ;    Writeln ;    Writeln ('Ejemplos:') ;    Writeln ('========') ;    Writeln ('      O.N.U.   = O(rganizacion de) N(aciones) U(nidas)') ;    Writeln ('      O.V.N.I. = O(bjeto) V(olante) N(o) I(dentificado)') ;    Writeln ('      I.P.C.   = I(ndice) de P(recios) al C(onsumo)') ;    Writeln ;    Writeln ('===================================================================') ;    Writeln ;    Writeln ;    REPEAT       Writeln ('Escribe el nombre de un organismo y obtendré su sigla: ') ;       Readln (sNombre) ;    UNTIL Length (sNombre) <> 0 ;

sAcronimo := fnsObtenerAcronimo (sNombre) ;

Writeln ; Writeln ('Su sigla es: ', sAcronimo) ; Writeln ; cEspera := ReadKey ;

END. { Fin de STRIN_6.PAS } code