Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- uses Crt, SysUtils;
- var
- NazwaPlikuWejsciowego: String;
- NazwaPlikuWyjsciowego: String;
- PlikWejsciowy: Text;
- PlikWyjsciowy: Text;
- linijka: String;
- X,Y,Xp,Yp,Xk,Yk,dX,dY:Real;
- Nr: Integer;
- pozycja: Integer;
- azymut, AzLP: Real;
- function przyrY (Y:Real; Yp:Real):Real;
- begin
- przyrY := Y - Yp;
- end;
- function przyrX (X:Real;Xp:Real):Real;
- begin
- przyrX := X - Xp;
- end;
- function odleglosc(dX: Real; dY: Real):Real;
- begin
- odleglosc := sqrt(dX^2+dY^2);
- end;
- function azymut (dX: Real; dY: Real): Real;
- begin
- azymut = atan(dY/dX);
- if (dX = 0 and dY > 0) then azymut := 90*(pi)/180;
- if (dX = 0 and dY < 0) then azymut := 270*(pi)/180;
- if (dX = 0 and dY = 0) then azymut := 0;
- if (dX < 0 and dY > 0) or (dX < 0 and dY < 0) then azymut := azymut + (pi);
- if (dX > 0 and dY < 0) then azymut := azymut + 2*(pi);
- end;
- begin
- WriteLn('Podaj nazwe pliku wejsciowego');
- ReadLn(NazwaPlikuWejsciowego);
- WriteLn('Podaj nazwe pliku wyjsciowego');
- ReadLn(NazwaPlikuWyjsciowego);
- WriteLn('Podaj wspolrzedne punktu poczatkowego linii pomarowej');
- ReadLn(Xp,Yp);
- WriteLn('Podaj azymut linii pomiarowej');
- ReadLn(AzLP);
- Assign(PlikWejsciowy, NazwaPlikuWejsciowego); //otwieram plik wejscia
- Reset(PlikWejsciowy); //kursor na poczatek
- Assign(PlikWyjsciowy, NazwaPlikuWejsciowego); //otwieram plik wyjscia
- Rewrite(PlikWyjsciowy);
- Repeat
- ReadLn(PlikWejsciowy,linijka); //czyta każdą linijkę aż dojdzie do końca pliku
- pozycja:= Pos(#9,linijka); // odnajduje tabulator w linijce i okresla jego pozycje
- Nr:=StrToInt(Copy(linijka,1,pozycja-1)); // konwertuje stringa na liczbę int, kopiuje od poczatku do taba, ale bez taba, przypisuje skopiowany kawalek do zmiennej
- Delete(linijka,1,pozycja); // wyrzuca wszystko razem z tabem, zeby potem zjalexc nastepnego
- pozycja:= Pos(#9,linijka);
- X:=StrToFloat(Copy(linijka,1,pozycja-1)); //konwertuje tekst na liczbę
- Delete(linijka,1,pozycja);
- Y:=StrToFloat(linijka); //tu juz i tak nie zostaje nic procz y
- dX := przyrX(X,Xp);
- dY := przyrY(Y,Yp);
- s := odleglosc(dX,dY);
- azymutLinii := azymut(dX,dY);
- until Eof(PlikWejsciowy);
- Close(PlikWejsciowy); //zamyka plik wejsciowy
- Close(PlikWyjsciowy); // zamyka plik wyjsciowy (oba zapisuja sie w ten sposob)
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement