2024(e)ko otsailaren 5(a), astelehena

3. astea | triangeluaren azalera (hasiera)

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 ez da bertikala ezta horizontala, eta C puntua ez dago kokaturik AB lerroan. Datuak:
  • A eta B puntuak AB zuzena lortzeko, AB zuzena zeiharra izango da (ez bertikala, ez horizontala)
  • C puntua AB segmentuaren zuzenetik kanpo dago

Algoritmoa: 
  1. Emanik A puntua eta B puntua, AB zuzena lortu
  2. Emanik C puntua, AB zuzenaren 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  
Ariketaren urratsak ikusteko 3. astea | triangeluaren azalera artikulua aztertu.

Zure programaren hasiera:
program Triangelu_1_4 ;
var
   rAx, rAy, rBx, rBy : real ;   
begin
   { A puntua lehen koadrantekoa da }
   repeat
      writeln('OXY lehen koadrantean lan eginez') ;
      write('Eman A puntuaren x koordenatua: ') ;
      readln(rAx) ;
      write('Eman A puntuaren y koordenatua: ') ;
      readln(rAy) ;
      if (rAx < 0.0) or (rAy < 0.0) then   { A-ren bi koordenatuak positiboak izan behar dira }
      begin
         writeln('A puntuaren bi koordenatuak positiboak izan behar dira') ;
         if rAx < 0.0 then
            writeln('A puntuaren x koordenatua ezin daiteke negatiboa izan') ;
         if rAy < 0.0 then
            writeln('A puntuaren y koordenatua ezin daiteke negatiboa izan') ; 
      end ;   
   until (rAx >= 0.0) and (rAy >= 0.0) ;
   writeln ;

   { B puntua ere lehen koadrantekoa izango da eta horrez gain }
   { B puntua eta A puntua "diagonal" batean egongo dira kokaturik }
   repeat
      writeln('OXY lehen koadrantean jarraituz ') ;
      write('Eman B puntuaren x koordenatua: ') ;
      readln(rBx) ;
      write('Eman B puntuaren y koordenatua: ') ;
      readln(rBy) ;
      if (rBx < 0.0) or (rBy < 0.0) then
         writeln('B puntuaren bi koordenatuak positiboak izan behar dira') ;
      if (rAx = rBx) or (rAy = rBy) then
      begin
         writeln('AB segmentua zeiharra izan behar da') ;
         if rAx = rBx then
            writeln('AB segmentua ezin daiteke bertikala izan') ;
         if rAy = rBy then
            writeln('AB segmentua ezin daiteke horizontala izan') ;   
      end ;   
   until ((rBx >= 0.0) and (rBy >= 0.0)) and
         ((rAx <> rBx) and (rAy <> rBy)) ;
   writeln ;

   { A eta B ezagunak direla, AB segmentuari dagokion r zuzenaren bi   }
   { parametroak kalkulatu:                                            }
   {                          rMalda := _______________;               }
   {                          rDesplazamendua := ___________;          }
   
   { ALGORITMO OSOA:
       1.  Emanik A puntua eta B puntua, AB zuzena lortu
       2.  Emanik C puntua, AB zuzenaren 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                             }
   
end. { PROGRAMAREN BUKAERA }

iruzkinik ez:

Argitaratu iruzkina

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