|
Conținut
P4.pasProgram P4; {-------------------------------------------------------------- Pentru o lista de paralelograme se cunoaste: - denumirea fiecarui parallelogram, - dimensiunile fiecarui parallelogram, - masura unui unghi al fiecarui pral. A) sa se determine tipul fiecarui parallelogram; B) sa se determine perimetrul si aria fiecaruia; C) sa se afiseze denumirea si diagonale fiecarui parallelogram. --------------------------------------------------------------} {--------------------------------------------------------------} uses crt; {--------------------------------------------------------------} label next; {--------------------------------------------------------------} const n = 10; toRad = pi / 180; toGrad = 180 / pi; tipParal: array[0..3] of string = ('Paralelogram', 'Romb', 'Dreptunghi', 'Patrat'); {--------------------------------------------------------------} type TParal = object a, b: Word; {lungimile laturilor} name: string[4]; 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 round((u-pi/2)*240)=0 then inc(t,2); {dreptunghi (cu exactitatea de 1 grad)} Tip := t; end; function TParal.TipStr: String; begin TipStr := tipParal[Tip]; end; {--------------------------------------------------------------} var list: array[1..n] of TParal; i, j: byte; {--------------------------------------------------------------} BEGIN { Generarea parametrilor } randomize; for i := 1 to n do with list[i] do begin a := random(10); b := random(10); setUg(random(24)*15); j := random(ord('Z')-ord('A')-3); name := chr(ord('A')+j) + chr(ord('A')+j+1) + chr(ord('A')+j+2) + chr(ord('A')+j+3); end; goto next; { Citirea parametrilor de la tastatura } for i := 1 to n do with list[i] do begin write('nume (ex. "ABCD") = '); readln(name); write('a = '); readln(a); write('b = '); readln(b); write('u = '); readln(u); setUr(u*toRad);{daca u este masura unghiul in grade} end; next: { Afisarea rezultatului } clrscr; for i := 1 to n do with list[i] do begin writeln(name,' este ', TipStr,':'); writeln(name[1]+name[2],' = ',a); writeln(name[2]+name[3],' = ',b); writeln('<'+name[1]+name[2]+name[3],' = ',getUg); writeln('Diagonalele: '); write(name[1]+name[3],' = ', D1); write(', '); write(name[2]+name[4],' = ', D2); writeln; writeln('P = ', P ); writeln('S = ', S:4:2); write('Ha = ', Ha); write(', '); write('Hb = ', Hb); writeln; writeln('---------------------'); readkey; 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.
Căutare
|