Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. program project1;
  2.  
  3. uses Crt, SysUtils;
  4.  
  5. var
  6. NazwaPlikuWejsciowego: String;
  7. NazwaPlikuWyjsciowego: String;
  8. PlikWejsciowy: Text;
  9. PlikWyjsciowy: Text;
  10. linijka: String;
  11. X,Y,Xp,Yp,Xk,Yk,dX,dY:Real;
  12. Nr: Integer;
  13. pozycja: Integer;
  14. azymut, AzLP: Real;
  15.  
  16.  
  17. function przyrY (Y:Real; Yp:Real):Real;
  18. begin
  19. przyrY := Y - Yp;
  20. end;
  21. function przyrX (X:Real;Xp:Real):Real;
  22. begin
  23. przyrX := X - Xp;
  24. end;
  25. function odleglosc(dX: Real; dY: Real):Real;
  26. begin
  27. odleglosc := sqrt(dX^2+dY^2);
  28. end;
  29.  
  30. function azymut (dX: Real; dY: Real): Real;
  31. begin
  32. azymut = atan(dY/dX);
  33. if (dX = 0 and dY > 0) then azymut := 90*(pi)/180;
  34. if (dX = 0 and dY < 0) then azymut := 270*(pi)/180;
  35. if (dX = 0 and dY = 0) then azymut := 0;
  36. if (dX < 0 and dY > 0) or (dX < 0 and dY < 0) then azymut := azymut + (pi);
  37. if (dX > 0 and dY < 0) then azymut := azymut + 2*(pi);
  38. end;
  39.  
  40. begin
  41.  
  42. WriteLn('Podaj nazwe pliku wejsciowego');
  43. ReadLn(NazwaPlikuWejsciowego);
  44. WriteLn('Podaj nazwe pliku wyjsciowego');
  45. ReadLn(NazwaPlikuWyjsciowego);
  46. WriteLn('Podaj wspolrzedne punktu poczatkowego linii pomarowej');
  47. ReadLn(Xp,Yp);
  48. WriteLn('Podaj azymut linii pomiarowej');
  49. ReadLn(AzLP);
  50.  
  51. Assign(PlikWejsciowy, NazwaPlikuWejsciowego); //otwieram plik wejscia
  52. Reset(PlikWejsciowy); //kursor na poczatek
  53.  
  54.  
  55. Assign(PlikWyjsciowy, NazwaPlikuWejsciowego); //otwieram plik wyjscia
  56. Rewrite(PlikWyjsciowy);
  57.  
  58. Repeat
  59. ReadLn(PlikWejsciowy,linijka); //czyta każdą linijkę aż dojdzie do końca pliku
  60.  
  61. pozycja:= Pos(#9,linijka); // odnajduje tabulator w linijce i okresla jego pozycje
  62. 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
  63. Delete(linijka,1,pozycja); // wyrzuca wszystko razem z tabem, zeby potem zjalexc nastepnego
  64.  
  65. pozycja:= Pos(#9,linijka);
  66. X:=StrToFloat(Copy(linijka,1,pozycja-1)); //konwertuje tekst na liczbę
  67. Delete(linijka,1,pozycja);
  68.  
  69. Y:=StrToFloat(linijka); //tu juz i tak nie zostaje nic procz y
  70.  
  71. dX := przyrX(X,Xp);
  72. dY := przyrY(Y,Yp);
  73. s := odleglosc(dX,dY);
  74. azymutLinii := azymut(dX,dY);
  75.  
  76.  
  77.  
  78. until Eof(PlikWejsciowy);
  79. Close(PlikWejsciowy); //zamyka plik wejsciowy
  80. Close(PlikWyjsciowy); // zamyka plik wyjsciowy (oba zapisuja sie w ten sposob)
  81.  
  82. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement