|
| 1 | + /* |
| 2 | + * Reto #1 |
| 3 | + * ¿ES UN ANAGRAMA? |
| 4 | + * Fecha publicación enunciado: 03/01/22 |
| 5 | + * Fecha publicación resolución: 10/01/22 |
| 6 | + * Dificultad: MEDIA |
| 7 | + * |
| 8 | + * Enunciado: Escribe una función que reciba dos palabras (String) y retorne verdadero o falso (Boolean) según sean o no anagramas. |
| 9 | + * Un Anagrama consiste en formar una palabra reordenando TODAS las letras de otra palabra inicial. |
| 10 | + * NO hace falta comprobar que ambas palabras existan. |
| 11 | + * Dos palabras exactamente iguales no son anagrama. |
| 12 | + * |
| 13 | + */ |
| 14 | + IDENTIFICATION DIVISION. |
| 15 | + PROGRAM-ID. ANAGRAMA. |
| 16 | + DATA DIVISION. |
| 17 | + FILE SECTION. |
| 18 | + WORKING-STORAGE SECTION. |
| 19 | + 77 CADENA1 PIC X(20). |
| 20 | + 77 CADENA2 PIC X(20). |
| 21 | + 77 CARACTER PIC X. |
| 22 | + 77 CADENA4 PIC X(20). |
| 23 | + 77 REPE PIC 9. |
| 24 | + 77 CONTADOR PIC 9(2) VALUE 1. |
| 25 | + 77 LONG1 PIC 9(2). |
| 26 | + 77 LONG2 PIC 9(2). |
| 27 | + PROCEDURE DIVISION. |
| 28 | + MAIN-PROCEDURE. |
| 29 | + DISPLAY "INTRODUCE LA PRIMERA PALABRA: ". |
| 30 | + ACCEPT CADENA1. |
| 31 | + DISPLAY "INTRODUCE LA SEGUNDA PALABRA: ". |
| 32 | + ACCEPT CADENA4. |
| 33 | + IF CADENA1 = CADENA4 |
| 34 | + DISPLAY "NO SON ANAGRAMAS" |
| 35 | + ELSE |
| 36 | + COMPUTE LONG1 = FUNCTION LENGTH |
| 37 | + (FUNCTION TRIM(CADENA1, TRAILING)) |
| 38 | + COMPUTE LONG2 = FUNCTION LENGTH |
| 39 | + (FUNCTION TRIM(CADENA4, TRAILING)) |
| 40 | + IF LONG1 NOT EQUAL LONG2 |
| 41 | + DISPLAY "NO SON ANAGRAMAS" |
| 42 | + ELSE |
| 43 | + MOVE FUNCTION REVERSE(CADENA1) TO CADENA2 |
| 44 | + IF CADENA2 = CADENA4 |
| 45 | + DISPLAY "ANAGRAMAS" |
| 46 | + ELSE |
| 47 | + MOVE FUNCTION LENGTH(CADENA1) TO LONG1 |
| 48 | + ADD 1 TO LONG1 |
| 49 | + PERFORM UNTIL CONTADOR = LONG1 |
| 50 | + MOVE CADENA1(CONTADOR:1) TO CARACTER |
| 51 | + INSPECT CADENA4 TALLYING REPE FOR ALL CARACTER |
| 52 | + REPLACING FIRST CARACTER BY SPACE |
| 53 | + ADD 1 TO CONTADOR |
| 54 | + MOVE 0 TO REPE |
| 55 | + END-PERFORM |
| 56 | + IF CADENA4 EQUAL SPACES |
| 57 | + DISPLAY "ANAGRAMAS" |
| 58 | + ELSE |
| 59 | + DISPLAY "NO SON ANAGRAMAS" |
| 60 | + END-IF |
| 61 | + END-IF |
| 62 | + END-IF |
| 63 | + END-IF. |
| 64 | + STOP RUN. |
| 65 | + END PROGRAM ANAGRAMA. |
0 commit comments