2024(e)ko martxoaren 11(a), astelehena

8. astea | palindromoak

Teklatuaren bidez sartutako esaldia palindromoa den aztertu behar du programak. Horretarako, honako azpiprograma haek derrigorrez erabili behar dira:

  • Esaldiaren karaktere alfabetikoak letra larriz idazten dituen funtzioa
  • Alfabetikoak ez diren esaldiko karaktereak kentzen dituen funtzioa
  • Aurreko azpiprogramak aplikatu ondoren, esaldia palindromoa den aztertzen duen funtzio boolearra

Palindromoa: Definizioz, aurretik atzera eta atzetik aurrera irakurketa berdina duen esaldia.

Adibidez:

  • Zein?, Ni ez                                                    [ZEINNIEZ]
  • Atara zarata!!!                                              [ATARAZARATA]
  • Iker! Ireki                                                      [IKERIREKI]
  • Ama zen ene zama                                           [AMAZENENEZAMA]
  • Nik enara neraman amaren aranekin      [NIKENARANERAMANAMARENARANEKIN]
  • Ze nekeza inori atea irekitzea eztikeria eta ironia zekenez                                                                              [ZENEKEZAINORIATEAIREKITZEAEZTIKERIAETAIRONIAZEKENEZ]


Ñ eta ñ kontsonante berezien prozesaketa da egin gabe geratu da laborategian. Hona hemen azalpena.

  • Hasteko, froga ezazu upcase funtzio estandarrak ñ kontsonantea hartzen badu ez duela bihurtzen Ñ karakterea, beraz eskuz egin beharko dugu. 
  • Horrez gain, ñ karakterea katean identifikatzeko ezin daiteke egin normala den konparaketa hau:

    (* katearen k-garren karakterea ñ da? *) { HAU EZ }
    if sEsaldi[k] = 'ñ' then

    Derrigorrez, ASCII taularen araberako ñ karaktereari dagokion ordinala erabili beharko dugu, 164 zenbakia. Horrela:

    (* katearen k-garren karakterearen ordinala 164 da? *) { HAU BAI }
    if ord(sEsaldi[k]) = 164 then
  • Bukatzeko, ñ karakterea identifikaturik daukagunean ezin dugu bere ordez Ñ jarri esleipen arruntaren bitartez:

    (* katearen k-garren karakterea orain Ñ gorde *) {HAU EZ}
    sEsaldi[k] := 'Ñ';

    Derrigorrez, berriro ere, ASCII taularen araberako Ñ karaktereari dagokion ordinala erabili beharko dugu, 165 zenbakia. Horrela:

    (* k-garren posizioan 165 ordinalari dagokion Ñ karakterea gorde *)
    sEsaldi[k] := chr(165); (* k-garren posizioan Ñ gorde *) { HAU BAI }


Programa osatuaren kodea:

 

iruzkinik ez:

Argitaratu iruzkina

Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.