Palindromi je termin koji se koristi u različitim poljima, uključujući matematiku, lingvistiku i informatiku za predstavljanje brojeva, riječi, rečenica ili nizova koji se čitaju unatrag i naprijed. Ovo fascinantno svojstvo zrcalne simetrije nudi uzbudljive izazove i scenarije u dizajnu algoritama i kodiranju.
COBOL (Common Business-Oriented Language) je programski jezik industrijske klase koji se naširoko koristi za razvoj poslovnog i financijskog softvera od 1950-ih. Jedan od klasičnih problema koji se često rješava u COBOL-u je određivanje da li je niz palindrom ili ne.
ODJEL ZA IDENTIFIKACIJU.
PROGRAM-ID. PALINDROME.
DATA DIVISION.
RADNO-SKLADIŠNI ODJEL.
01 STRING-1 PIC A(20) VRIJEDNOST 'RADAR'.
01 STRING-2 REDEFINIRA STRING-1.
01 I SLIKA 9 VRIJEDNOST KOMP-3 1.
01 J SLIKA 9 VRIJEDNOST KOMP-3 20.
ODSJEK ZA POSTUPAK.
PALINDROM-PROVJERA.
IZVRŠITI DO I > J
AKO STRING-1(I:1) NIJE = STRING-2(J:1) ONDA
PRIKAZITE “NIJE PALINDROM”
STOP RUN
END-IF
DODAJTE 1 I
ODUZMI 1 OD J
END-PERFORM.
EKRAN “PALINDROM”.
STOP RUN.
ZAVRŠITE PROGRAM PALINDROM.
Razumijevanje COBOL koda
Ovaj COBOL program, nazvan PALINDROME, radi tako što upoređuje prvi i posljednji znak niza, a zatim se kreće prema unutra, upoređujući sve druge odgovarajuće parove znakova. Ako naiđe na par znakova koji se ne podudaraju, zaključuje da string nije palindrom i prekida program. Ali ako se svi parovi upoređenih znakova poklapaju, program zaključuje da je niz palindrom.
Uključenost biblioteka i funkcija
COBOL, za razliku od mnogih modernih programskih jezika, ne koristi u velikoj mjeri dodatne biblioteke ili specijalizirane funkcije. Njegova moć dolazi od njegove jednostavne sintakse i moćnih ugrađenih operacija i komandi. U ovom slučaju, osnovne aritmetičke operacije (sabiranje, oduzimanje) i funkcije poređenja (IF NOT =), kao i strukture petlje (PERFORM DO) su ono što definira logiku programa.
Slični problemi
Postoji nekoliko problema sličnih provjeri palindromskih nizova. Problem obrnutih brojeva, problem anagrama i problem palindromskog broja su među onima koji su slični problemu palindromskog niza.
Da sumiramo, rješavanje palindromskih problema u COBOL-u je stvar stvaranja inteligentne petlje koja prelazi niz s oba kraja. Iako COBOL možda nije tako trendi u trenutnom razvojnom svijetu, njegov utjecaj i slučajevi upotrebe – i naravno njegova sposobnost da obrađuje zadatke poput ovog – ostaju robusni u mnogim korporativnim okruženjima. Čak i jednostavan problem palindromskih nizova otkriva bezvremenski šarm ovog jezika rođenog u vrijeme računarstva bušenih kartica.