2023(e)ko otsailaren 4(a), larunbata

3. astea | edozein triangeluren azalera

Programa bat inkrementalki garatzen




3. astea | triangeluaren azalera  ariketa gogoratu eta osatu: XOY lehen koadranteko triangelu bat bere ABC erpinen bitartez definiturik dator (erpinen koordenatuak zenbaki errealak dira). A puntua eta B puntua lotzen dituen AB lerroa edozein izan daiteke: bertikala, horizontala edo zeiharra.



A, B eta C sarrerako datuek bete behar dituzten baldintza bakarrak hiru dira:


  • A, B  eta C puntuak lehen koadrantean kokaturik daude

  • A eta B puntuak ez direla bat

  • C puntua ez dagoela kokaturik AB segmentuaren zuzenean


Triangeluaren azalera kalkulatzeko 4 urratsetan egingo dugu:


  1. Emanik A puntua eta B puntua, AB zuzena lortu eta bere izaeraren arabera (bertikala, horizontala edo zeiharra) erabaki hurrengo urratsak nola burutuko diren

  2. Emanik C puntua, AB zuzenari dagokion lerro perpendikularra C puntuan lortu

  3. AB zuzena eta bere perpendikularra C puntuan ditugula, lerro biren ebakidura kalkulatu (P puntua lortu)

  4. Erpinen arteko AB distantzia eta puntuen arteko CP distantzia kalkulatu ondoren azalera zehaztu






Programaren barne-antolaketa



Emanik A puntua eta B puntua, programak hiru atal izago ditu. Honako hiru atal hauek:



   begin
...
    repeat
        readln(rAx) ; { A puntua lehen koadrantekoa izan behar da }
       readln(rAy) ;
     until ___ ;
    repeat
        readln(rBx) ; { B puntua lehen koadrantekoa izan behar da eta }
       readln(rBy) ; { B puntuak ez du bat egingo A puntuarekin }
    until ___ ;

if rAx = rBx then  { AB segmentua bertikala denean }
    begin
        ... 1. ATALA
        repeat
          readln(rCx) ; (* C puntua lehen koadrantekoa izango da eta }
          readln(rCy) ; (* ez da egongo AB segmentuari dagokion zuzenean }
       until ___ ;
     end
   else  { AB segmentua bertikala EZ denean }
     begin
        if rAy = rBy then { AB segmentua horizontala denean }
       begin
           ... 2. ATALA
        repeat
       readln(rCx) ; { C puntua lehen koadrantekoa izango da eta }
        readln(rCy) ; { ez da egongo AB segmentuari dagokion zuzenean }
        until ___ ;
     ...
         end
        else { AB segmentua zeiharra denean, ez bertikala ez horizontala }     
       begin
           ... 3. ATALA
         repeat
         readln(rCx) ; { C puntua lehen koadrantekoa izango da eta }
         readln(rCy) ; { ez da egongo AB segmentuari dagokion zuzenean }    
         until ___ ;
        ...
         end ;
      end ;
...
end.








Programaren zenbait exekuzio



Hauxe izan daiteke programaren balizko exekuzio bat, AB segmentua bertikala denenan:







Hau izan daiteke programaren balizko exekuzio bat, AB segmentua horizontala denenan:







Eta hauxe izan daiteke programaren balizko beste exekuzio bat, AB segmentua zeiharra denenan:





AB eta CP bi segmentuen luzera ezagutzean, triangeluaren azalera berehala lor daiteke. Ariketa osatuago honen programa exekutagarria Triangelu_5.exe hartu eta hura exekutatuz programaren logika zein den ulertu.






    Iturburu-programa




    Autoebaluazioa dela eta, edozein triangeluaren azalera kalkulatzeko ariketan, hauxe da...







    iruzkinik ez:

    Argitaratu iruzkina