Ć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
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;
var x1,x2,y1,y2,d,dx12,dy12,dx1p,dy1p,l,ca,sa,xp,yp:real;
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
writeln ('Zle x,y');
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);
Zadanie3
Program zadanie3;
var N,k:integer;
writeln ('Liczba punktow');
readln (N);
for k:=1 to N do
Zadanie4
program funkcja;
var f,alfa:real;
var k,n:integer;
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);
Zadanie5
program menu1;
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;
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
writeln ('Koniec obliczen');
if z=1 then goto 20;
if z=2 then goto 30;
if z=3 then goto 40;
20:
goto menu;
30:
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
writeln ('zle x,y');
writeln ('Podaj odleglosc od punktu lewego');
readln (A);
writeln ('Podaj odleglosc od punktu prawego');
readln (B);
C:=sqrt(sqr(DX)+sqr(DY));
writeln ('zle odleglosci');
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);
40:
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;
writeln ('prosta nie istnieje');
goto 10;
if (dx=0) and (dy>0) then
az:=0.5*PI;
goto druk;
if (dx=0) and (dy<0) then
az:=1.5*PI;
cz:=arctan(dy/dx);
if (dx>0) and (dy>0) then
az:=cz;
if (dx<0) and (dy>=0) then
az:=PI-abs(cz);
if (dx<0) and (dy<0) then
az:=PI+abs(cz);
if (dx>0) and (dy<0) then
az:=2*PI-abs(cz);
druk:
writeln ('azymut=',az*200/PI:10:4);
rako91