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
- Emanik A puntua eta B puntua, AB zuzena lortu eta bere izaeraren arabera (bertikala, horizontala edo zeiharra) erabaki hurrengo urratsak nola burutuko diren
- Emanik C puntua, AB zuzenari dagokion lerro perpendikularra C puntuan lortu
- AB zuzena eta bere perpendikularra C puntuan ditugula, lerro biren ebakidura kalkulatu (P puntua lortu)
- 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...
...lau urratseko goiko algoritmoari dagokion iturburu-programa: Triangelu_5.pas.



iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.