DUzun's Web
Programare, proiecte personale, divertisment

DUzun it's ME
 
\ 22 aprilie 2025, 16:41:01 \  
Conținut

p194_4.pas

x
 
Program p194_4; { Parag 16 }
{--------------------------------------------------------------
    Sa se descrie obiectul paralelogram ale carui campuri 
    vor fi lungimile laturilor si masura in grade a unghiului 
    dintre doua laturi alaturate.
    Obiectul va contine metode pentru determinarea:
    1) inaltimilor paralelogramului
    2) perimetrul paralelogramului
    3) ariei paralelogramului
    4) lungimilor diagonalelor paralelogramului
    5) tipului paralelogramului 
       (oarecare, romb, dreptunghi, patrat)
 --------------------------------------------------------------}
uses crt;
{--------------------------------------------------------------}
const 
  toRad  = pi / 180;
  toGrad = 180 / pi;
  tipParal: array[0..3] of string = ('Paralelogram', 'Romb', 'Dreptunghi', 'Patrat');
{--------------------------------------------------------------}
type
   TParal = object
       a, b: Word; {lungimile laturilor}
   private
       u: real;    {masura unghiului in radiani}
   public
       function setUr(r: Real): Real;    {seteaza unghiului in radiani}
       function getUr: Real;             {masura unghiului in radiani}
       function setUg(r: integer): word; {seteaza unghiului in grade}
       function getUg: word;             {masura unghiului in grade}
       
       function Ha: Word;      {inaltimea dusa pe a}
       function Hb: Word;      {inaltimea dusa pe b}
       function D1: word;      {diagonala 1 (mai scurta)}
       function D2: Word;      {diagonala 2 (din u)}  
       function P: LongInt;    {perimetrul} 
       function S: real;       {aria}
       function Tip: byte;     {nr. tipului, conform tipParal}  
       function TipStr: String;{tipul paralelogramului}
        
   end;
{--------------------------------------------------------------}
function TParal.setUr(r: Real): Real;
begin
  if r > pi then r := r - pi;
  if r < 0  then r := r + pi;
  if r > pi/2 then r := pi - r; {alegem unghiul ascutit}
  u := r;
  setUr := u;          
end;
function TParal.setUg(r: integer): word;
begin
  setUg := round(setUr(r*toRad)*toGrad); 
end;
function TParal.getUr: Real; begin getUr := u; end;
function TParal.getUg: word; begin getUg := round(getUr*toGrad); end;
{--------------------------------------------------------------}
function TParal.Ha: Word; begin Ha := round(sin(u)*b); end;
function TParal.Hb: Word; begin Hb := round(sin(u)*a); end;
{--------------------------------------------------------------}
function TParal.D1: Word; begin D1 := round(sqrt(a*a+b*b-2*a*b*cos(u))); end;
function TParal.D2: Word; begin D2 := round(sqrt(a*a+b*b+2*a*b*cos(u))); end;
{--------------------------------------------------------------}
function TParal.P: LongInt; begin P := 2*(a+b);    end;
function TParal.S: real;    begin S := a*b*sin(u); end;  
{--------------------------------------------------------------}
function TParal.Tip: byte; 
var t: byte; 
begin 
  t := 0;
  if a = b  then inc(t,1);  {romb}
  if u=pi/2 then inc(t,2);  {dreptunghi}
  Tip := t; 
end;  
function TParal.TipStr: String; begin TipStr := tipParal[Tip]; end; 
{--------------------------------------------------------------}
var 
   Par: TParal;
{--------------------------------------------------------------}
BEGIN
  with Par do begin
  
{ Generarea parametrilor }
    randomize;
    a := random(100);
    b := random(100);
    setUg(random(360));
    
{ Citirea parametrilor de la tastatura }    
    write('a = '); readln(a);
    write('b = '); readln(b);
    write('u = '); readln(u);
    setUr(u*toRad);{daca u este masura unghiul in grade} 
{ Afisarea rezultatului }
    clrscr;
    writeln('a = ',a);    writeln('b = ',b);
    writeln('u = ',getUg);
    writeln('---------------------');
    writeln(TipStr);
    writeln('Ha = ', Ha); writeln('Hb = ', Hb);
    writeln('P  = ', P ); writeln('S  = ', S:4:2);
    writeln('D1 = ', D1); writeln('D2 = ', D2);
  end;
  readkey;
END.

Aici acumulez programe şi algoritmi interesanti alcătuiţi de mine (cu mici excepţii) pe parcursul studierii unor limbaje de programare.

Cea mai mare parte din ele sunt realizate în Pascal. 

Nu am scopul creării unui curs specializat sau a descrierii detaliate a anumitor limbaje, ci doar prezint informaţii utile, plus ceva exemple interesante...

 

Răsfoitorul de fișiere (File Browser):

Codul sursă al programelor este organizat în mape şi fişiere.

Paginile care conțin cod sursă de programe de regulă au un răsfoitor de fișiere în partea stangă a paginii reprezentat de un bloc cu titlul „File Browser”.

Pentru a vizualiza un program sau conţinutul unei mape, faceţi click pe numele fişierului / mapei. Dacă fişierul nu este textual, el se va descărca automat, iar dacă este textual, conținutul lui se va afișa într-un bloc pe centrul paginii.

Pentru a descărca un fişier, faceţi click pe dimensiunea (size) lui.

arr_d Limba / Language


 


arr_r Login
 
 
Loading...