FUNKCJE
AZYMUT
Wyznaczenie azymutu linii (majac wspolrzedne poczatku i konca)
Program azymut;
Uses crt;
Var xp, yp, xk, yk,: real;
Dx,dy,az,cz:real;
Label druk, 10;
Begin
Clrscr;
10:
Writeln(‘podaj x i y punktu początkowego 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
Writeln (‘prosta nie istnieje’);
Readln;
Gog\to 10;
End;
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(dx/Dy);
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 yhen
Az:=PI+ABS(cz);
If dx>0 And dy<0 then
Az:=2*PI- abs(cz);
Druk:
Writeln (‘azymut=’, Az*200/PI:10:4);
End.
Var xa, ya,xb,yb,xp,yp,a,b:Real;
Dx,dy,c,ca,cb,cc,p4:real;
BEGIN
CLRSCR;
WRITELN (’Podaj X, Y punktu prawego’);
READLN (XA, YA);
WRITELN(‘Podaj X, Y punktu lewego’);
READLN( XB, YB);
DX:=XB-XA;
DY:=YB-YA;
IF (DX = 0) AND (DY = 0) THEN
WRITELN(‘ZťE DANE’);
READLN;
EXIT;
END;
WRITELN(‘PODAJ PDLEGLOSCI OD PUNKTU PRAWEGO’);
READLN(A);
WRITELN(‘PODAJ ODLEGLOSC OD PUNKTU LEWEGO’);
READLN(B);
C:= SQRT(SQR(DX)+SQR(DY));
IF (A+B)<=C)OR(A+C)<=A THEN
WRITELN (‘ZLE ODLEGLOSCI’);
EXIT
CA:=B*B+C*C-A*A;
CA:=(-B*B)+C*C+A*A;
CA:=B*B-C*C+A*A;
P4:=SQRT(CA*CB+CB*CC+CA*CC);
XP:=(XA*CB+XB*CA+P4*(YA-YB)/(CA+CB);
YP:=(YA*CB+YB*CA+P4*(XA-XB)/(CA+CB);
WRITELN(‘XP=’,XP:10:2);
WRITELN(‘YYP=’,YP:10:2);
READLN
END.
WYZNACZYC FUNKCEJ POROWNAC WARTOSCI TYCH FUNKCJI WYPROWADZIC FUNKCJE O WIEKSZEJ WARTOSCI
PROGRAM FUNKCJA;
USES CRT;
VAR F1,F2,SN.X:REAL;
N,K:INTEGER;
WRITELN(PODAJ N’);
READLN(N);
WRITELN(‘PODAJ X’);
READLN(X);
SN:=1;
FOR K:=2 TO N DO
SN:=SN*K;
F1:=SN*SQR(SIN(X));
F2:=SN*SQR(COS(X));
IF F1>F2 THEN
WRITELN(‘F2’, F2:0:5);
READLN(F2);
WYZNACZANIE WIELU PTK NA PROSTEJ
WYZNACZANIE WSP;
VAR X1,X2,Y1,Y2,D,DX12,DY12,DX1P,DY1P,L,CA,SA,SP,YP,XP:REAL;
VAR N,K:INTEGER;
WRITELN(‘LICZBA WYZNACZANYCH PUNKTOW W’);
WRITELN(‘PODAJ X I Y PTK POCZATKOWEGO I KONCOWEGO’);
READLN(X1,Y1,X2,Y2);
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;
FOR K:=1 TO N DO
WRITELN(‘ODLEGLOSC OD 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);
TABLICE
Var
L:ARRAY[1..20] OF REAL;
N,K,M:INTEGER;
R:REAL;
WRITELN (‘ILOŚĆ LICZB’);
WRITE (‘LICZBA’,K:2,’’);
READLN(l[K]);
{SORTOWANIE}
FOR K:=1 TO N-1 DO
FOR M:=K+1 TO N DO
IF L[K]>L[M] THEN
R:=1[K];
L[K]:=L[M];
L[M]:=R;
WRITELN (ZBIOR POSORTOWANY’);
WRITELN (L[K]:0:2);
TRANSPOZA MACIERZY
PROGRAMTRANSPOZA;
TYPE
MACIERZ=ARRAY[1..10,1..10] OF REAL;
VAR A,AT:MACIERZ;
VAR K,W,LW,LK:INTEGER;
LABEL CZYTAJ;
WRITELN(‘PODAJ WYMIARY MACIERZY LW,LK’);
READLN(LW,LK);
AT[K,W]:=A[W,K];
WRITELN(‘TRANSPOZA’);
FOR W:=1 TO LW DO
FORK K:=1 TO LK DO
WRITELN(A[W,K]);
FOR K:=1 TO LK DO
WRITE(AT[K,W]:5:1);
WRITELN;
MACIERZ suma
program macierz;
uses crt;
TYPE MACIERZ =:array[1..10,1..10] of real;
VAR A,B,C:MACIERZ;
LW1,LK1,LW2,LK2,W,K:INTEGER;
LABEL 10;
10:WRITELN(‘WYMIARY MACIERZY PIERWSZEJ (WIERSZ,KOLUMNA)’);
READLN (LW1,LK1);
Writeln (‘wymiary macierzy drugiej (wiersz,kolumna)’);
Readln(lw2, lk2);
IF (LW1<>LW2) OR (LK1<>LK2) THEN
WRITELN (‘ZLE WYMIARY’);
GOTO 10
{CZYTANIE MACIERZY PIERWSZEJ WIESZAMI’}
FOR W :=1 TO LW1 DO
FOR K:=1 TO LK1 DO
WRITELN (‘A[‘,W:2, ‘ ,’, K:2, ‘]=’);
READLN (A[W,K]);
{czytanie macierzy drugiej}
FOR W:=1 TO LW2 DO
FOR K:=1 TO LK2 DO
WRIETE (‘B[‘,W:2,’,’,K:2,’]=’);
READLN (B[W,K]);
{SUMOWANIE MACIERZY}
C[W,K]:=A[W,K]+B[W,K];
WRITE (C[W,K]);
MNOZENIE MACIERZY
PROGRAM MNOZENIE;
TYPE MACIERZ=ARRAY[1…10,1…10] OF REAL;
LW1,LW2,WK1,LK2,W,K,L:INTEGER;
CZYTAJ:
WRITELN(‘WYMIARY MACIERZY PIERWSZEJ’);
READLN(LW1,LK1);
WRITELN(‘WYMIARY MACIERZY DRUGIEJ’);
READLN(LW2,LK2);
IF(LK1<>LW2) THEN
WRITELN (‘ZLE WYMIARY MACIERZY’);
GOTO CZYTAJ;
{MNOZENIE}
FOR W:=1 TO LW1 DO
C[W,K]:=0;
FOR K :=1 TO LK2 DO
FOR L:=1 TO LW2 DO
C[W,K]:=C[W,K]+A[W,L]*B{L,K];
WRITE (C[W,K]:0:1);
Tablica dwuwymiarowa SUMA ELEMENTOW W OSTATNIM WIERSZU I W OSTATNIEJ KOLUMNIE WSKAZE POLOZENIE ELEMENTU MAKSYMALNEGO
PROGRAM TABELA;
VAR
A:ARRAY[1..10,1..10] OF REAL;
1K,1W,W,K:INTEGER;
SK,SW,MAX,WMAX,KMAX,:REAL;
BEGIN CLR SCR;
WRITELN (‘PODAJ WYMIARY:WIERSZ, KOLUMNA’);
WRITE (‘A[‘,W:2,’,’,K:2,’]=’);
READLN(A[W,K]);
SW:SW+A[LW,K]);
FOR W:1 TO LW DO
SK:SK+A[W,LK];
MAX:=A[1,1];
WMAX:=1;
KMAX:=1;
IF A[W,K]>MAX THEN
MAX:=A[W,K];
WMAX:=W;
KMAX:=K;
WRITELN(‘SUMA ELEMENTOW W OSTATNIM WIERSZU=’,SW:0:2);
WRITELN(‘SUMA ELEMENTOW W OSTATNIEJ KOLUMNIE=’,SK:0:2);
WRITELN(‘MAX ELEMENT=’,MAX:0:2,’,LEZY W’ WMAX:0:2,’WIERSZU’);
WRITLN(‘I W’,KMAX:0:2,’KOLUMNIE’);
PLIKI
WYNIKI POMIARU DZIALEK W KSZTALCIE TRAPEZU
PROGRAM DZILKA;
USESCRT;
VAR A,B,H:REAL;
N,K,NRD:INTEGER;
DANE:TEXT;
NAZWA:STRING[30];
WRITELN(‘NAZWA TWORZONEGO PLIKU’);
READLN(NAZWA);
ASSIGN(DANE,NAZWA);
WRITELN(‘LICZBA POMIAROW’);
REWRITE(DANE);
WRITELN(‘PODAJ NUMER I WYMIARY A,B,H’,K:2,’DZIALKI’);
READLN(NRD,A,B,H);
WRITELN(DANE,NRD:3,A:10:2,B:10:2,H:10:2);
CLOSE(DANE);
PROGRAM KTÓRY POBIERZE Z PLIKU TWORZONEGO POPRZEDNIM PROGRAMEM POLE DZILKI WSKAZANEJ PRZEZ NUMER
PROGRAM DZIALKA;
WEKTOR1=ARRAY[1…50] OF INTEGER;
WEKTOR2=ARRAY[1..50] OF REAL;
NRD:WEKTOR1;
A,B:WEKTOR2;
N,K,ND:INTEGER;
B1,B2,P:REAL;
POMIARY:TEXT;
WRITELN(‘NAZWA PLIKU Z DANYMI’);
ASSIGN(POMIARY,NAZWA);
RESET(POMIARY);
WRITELN(‘LICZBA DZIALEK’);
READLN(POMIARY,NRD[K],A[K],B[K]);
WRITELN(NRD[K]:3,A[K]:10:2,B[K]:10:2);
CLOSE(POMIARY);
WRITELN(‘PODAJ NUMER DZILKI’);
READLN(ND);
IF ND=NRD[K] THEN
B1:=A[K];
B2:=B[K];
P:B1*B2/10000;
WRITELN(‘POLE DZILKI O NUMERZE’,ND:2,’=’,P:0:4,’HA’);
END
ELSE
WRITELN(‘BRAK DANYCH O DZIALCE NR=’,ND);
WCZYTANIE DANYCH Z PLIKU UTWORZENIE NOWEGO PLIKU ZAWIERAJACEGO POSORTOWANY ZBIOR
PROGRAM SORTOWANIE;
N,M,K:INTEGER;
L:ARRAY[1..50] OF REAL;
DANE,WYNIK:TEXT;
PLIK1,PLIK2:STRING[40];
WRITELN(‘PODAJ NAZWE PLIKU Z DANYMI’);
READLN(PLIK1);
WRITELN(‘PODAJ NAZWE PLIKU Z WYNIKAMI’);
READLN(PLIK2);
ASSIGN(DANE,PLIK1);
ASSIGN(DANE,PLIK2);
RESET(DANE);
REWRITE(WYNIKI);
WRITELN(‘ILOSC LICZB’);
READLN(DANE,L[K]);
FOR K:=1 TO (N-1) DO
R:=L[K];
L[M]:=R;...
rako91