Ćwiczenie 8.doc

(44 KB) Pobierz
Ćwiczenie 8 27

Ćwiczenie 8     27.11.2008.

Zadanie1

program zadanie1;

uses crt;

var a,b,c,s,p,p1:real;

begin

clrscr;

writeln ('Podaj a=');

readln (a);

writeln ('Podaj b=');

readln (b);

writeln ('Podaj c=');

readln (c);

if ((a+b)<=c) or ((a+c)<=b) or ((b+c)<=a) then

begin

writeln ('Pole nie istnieje');

readln;

exit

end;

s:=0.5*(a+b+c);

p:=sqrt(s*(s-a)*(s-b)*(s-c));

p1:=p/10000;

writeln ('p1=',p1:0:4,'ha');

readln

end.

Zadanie2

Program punkt;

uses crt;

var x1,x2,y1,y2,d,dx12,dy12,dx1p,dy1p,l,ca,sa,xp,yp:real;

begin

clrscr;

writeln ('Podaj x,y punkt˘w poczatkowego i koncowego');

readln (x1,y1,x2,y2);

writeln ('Odleglosc do punktu wyznaczonego');

readln (d);

dx12:=x2-x1;

dy12:=y2-y1;

if (dx12=0) and (dy12=0) then

begin

writeln ('Zle x,y');

readln;

exit

end;

l:=sqrt(dx12*dx12+dy12*dy12);

ca:=dx12/l;

sa:=dy12/l;

dx1p:=d*ca;

dy1p:=d*sa;

xp:=x1+dx1p;

yp:=y1+dy1p;

writeln ('x=',xp:0:2);

writeln ('y=',yp:0:2);

readln

end.

Zadanie3

Program zadanie3;

uses crt;

var x1,x2,y1,y2,d,dx12,dy12,dx1p,dy1p,l,ca,sa,xp,yp:real;

var N,k:integer;

begin

clrscr;

writeln ('Liczba punktow');

readln (N);

writeln ('Podaj x,y punkt˘w poczatkowego i koncowego');

readln (x1,y1,x2,y2);

dx12:=x2-x1;

dy12:=y2-y1;

if (dx12=0) and (dy12=0) then

begin

writeln ('Zle x,y');

readln;

exit

end;

l:=sqrt(dx12*dx12+dy12*dy12);

ca:=dx12/l;

sa:=dy12/l;

for k:=1 to N do

begin

writeln ('Odleglosc do punktu wyznaczonego');

readln (d);

dx1p:=d*ca;

dy1p:=d*sa;

xp:=x1+dx1p;

yp:=y1+dy1p;

writeln ('x=',xp:0:2);

writeln ('y=',yp:0:2);

end;

readln

end.

Zadanie4

program funkcja;

uses crt;

var f,alfa:real;

var k,n:integer;

begin

clrscr;

write ('Podaj argument alfa w gradach:');

readln (alfa);

write ('Podaj zakres funkcji:');

readln (n);

f:=1;

for k:=1 to n do

f:=f+((2*sin(alfa/63.66))/k);

writeln ('f=',f:0:5);

readln

end.

Zadanie5

program menu1;

uses crt;

var xa,ya,xb,yb,a,b,xp,yp,xk,yk,dx,dy,az,cz,d,xj,yj,ca,sa,l,c,cb,cp,p4:real;

var dx12,dy12,dx1p,dy1p,c4,x1,y1,x2,y2:real;

var z:byte;

label 5,10,20,30,40,menu,druk;

begin

clrscr;

menu:

writeln ('1.wyznaczenie wspolrzednych punktu na prostej p-k <1>');

writeln ('2.wciecie liniowe <2>');

writeln ('3.obliczenie azymutu <3>');

writeln (' exit <0>');

writeln ('wybierz zadanie');

readln (z);

if z=0 then

begin

writeln ('Koniec obliczen');

exit

end;

if z=1 then goto 20;

if z=2 then goto 30;

if z=3 then goto 40;

20:

begin

clrscr;

writeln ('Podaj x,y punkt˘w poczatkowego i koncowego');

readln (x1,y1,x2,y2);

writeln ('Odleglosc do punktu wyznaczonego');

readln (d);

dx12:=x2-x1;

dy12:=y2-y1;

if (dx12=0) and (dy12=0) then

begin

writeln ('Zle x,y');

readln;

exit

end;

l:=sqrt(dx12*dx12+dy12*dy12);

ca:=dx12/l;

sa:=dy12/l;

dx1p:=d*ca;

dy1p:=d*sa;

xp:=x1+dx1p;

yp:=y1+dy1p;

writeln ('x=',xp:0:2);

writeln ('y=',yp:0:2);

readln

end;

goto menu;

30:

begin

clrscr;

writeln ('Podaj X,Y punktu lewego');

readln (XB,YB);

writeln ('Podaj X,Y punktu prawego');

readln (XA,YA);

DX:=XB-XA;

DY:=YB-YA;

if (dx=0) and (dy=0) then

begin

writeln ('zle x,y');

readln;

exit

end;

writeln ('Podaj odleglosc od punktu lewego');

readln (A);

writeln ('Podaj odleglosc od punktu prawego');

readln (B);

C:=sqrt(sqr(DX)+sqr(DY));

if ((a+b)<=c) or ((a+c)<=b) or ((b+c)<=a) then

begin

writeln ('zle odleglosci');

readln;

exit

end;

CA:=sqr(C)+sqr(B)-sqr(A);

CB:=sqr(A)+sqr(C)-sqr(B);

CP:=sqr(A)+sqr(B)-sqr(C);

P4:=sqrt(CA*CB+CB*CP+CA*CP);

XP:=(XA*CB+XB*CA+P4*(YA-YB))/(CA+CB);

YP:=(YA*CB+YB*CA+P4*(XB-XA))/(CA+CB);

writeln ('XP=',XP:0:2);

writeln ('YP=',YP:0:2);

readln

end;

goto menu;

40:

begin

clrscr;

10:

writeln ('Podaj x i y punktu poczatkowego p');

readln (xp,yp);

writeln ('podaj x i y punktu koncowego k');

readln (xk,yk);

dx:=xk-xp;

dy:=yk-yp;

if (dx=0) and (dy=0) then

begin

writeln ('prosta nie istnieje');

readln;

goto 10;

end;

if (dx=0) and (dy>0) then

begin

az:=0.5*PI;

goto druk;

end;

if (dx=0) and (dy<0) then

begin

az:=1.5*PI;

goto druk;

end;

cz:=arctan(dy/dx);

if (dx>0) and (dy>0) then

begin

az:=cz;

goto druk;

end;

if (dx<0) and (dy>=0) then

begin

az:=PI-abs(cz);

goto druk;

end;

if (dx<0) and (dy<0) then

begin

az:=PI+abs(cz);

goto druk;

end;

if (dx>0) and (dy<0) then

begin

az:=2*PI-abs(cz);

goto druk;

end;

druk:

writeln ('azymut=',az*200/PI:10:4);

readln;

end;

goto menu;

end.

...
Zgłoś jeśli naruszono regulamin