Advertisement
Guest User

Untitled

a guest
Oct 7th, 2015
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1.  
  2. type coordinate = record { тип координат }
  3.  
  4. x , y : real;
  5.  
  6. end;
  7.  
  8. VAR
  9.  
  10. coord : array [ 'a' .. 'd' ] of coordinate; { массив с координатами }
  11.  
  12. masd : array [ 1 .. 6 ] of real; { массив с длинами }
  13.  
  14. resd : array [ 1 .. 6 ] of integer; { массив с результатами сравнений сторон}
  15.  
  16. nam , a , b , c, d : char; { пременные для работы с именами вершин }
  17.  
  18. d1 , d2 , d3 , d4 , d5 , d6 : real;{ длины сторон и временная переменная }
  19.  
  20. i , j , z , k : integer; { просто цифры для вычислений }
  21. num_st , num_st2 : integer; { количество диагоналей и нужных сторон }
  22.  
  23. function lenghtt ( a , b : coordinate ) : real; { длина между двумя точками }
  24. Begin
  25.  
  26. lenghtt := sqrt( sqr(a.x - b.x) + sqr(a.y - b.y) );
  27.  
  28. End;
  29.  
  30. BEGIN
  31.  
  32. a := 'a';
  33. b := 'b';
  34. c := 'c';
  35. d := 'd';
  36.  
  37. z := 1;
  38. k := 0;
  39.  
  40. num_st := 0;
  41. num_st2 := 0;
  42.  
  43. for i:=1 to 6 do resd[i] := 0;{ обнулениe массива }
  44.  
  45. for nam := 'a' to 'd' do { ввод кординат }
  46. Begin
  47.  
  48. writeln('Вершина ', nam , ':'); write('X = '); read(coord[nam].x);
  49. write('Y = '); readln(coord[nam].y);
  50.  
  51. End;
  52.  
  53. d1 := lenghtt( coord[a] , coord[b] ); { вычисление длин отрезков }
  54. d2 := lenghtt( coord[b] , coord[d] );
  55. d3 := lenghtt( coord[d] , coord[c] );
  56. d4 := lenghtt( coord[a] , coord[c] );
  57. d5 := lenghtt( coord[a] , coord[d] );
  58. d6 := lenghtt( coord[b] , coord[c] );
  59.  
  60. masd[1] := d1; { занесение длин в массив }
  61. masd[2] := d2;
  62. masd[3] := d3;
  63. masd[4] := d4;
  64. masd[5] := d5;
  65. masd[6] := d6;
  66.  
  67. for i:=1 to 6 do { сравнение сторон }
  68. Begin
  69. z := 1;
  70. for j:=1 to 6 do
  71. Begin
  72.  
  73. if( j <> i)then
  74. if( masd[i] = masd[j])
  75. then
  76. begin
  77. resd[i] := resd[i] + 1 * z;
  78. z := z * 10;
  79. end
  80. else
  81. begin
  82. resd[i] := resd[i] + 7 * z;
  83. z := z * 10;
  84. end;
  85. End;
  86. End;
  87.  
  88. k := 0 ;
  89.  
  90. for i :=1 to 6 do { исследование результатов сравнения сторон }
  91. Begin
  92.  
  93. z := resd[i];
  94. k := 0;
  95.  
  96. while ( z > 0)do
  97. begin
  98. if( z mod 10 = 1 )then k := k + 1;
  99. z := z div 10;
  100. end;
  101.  
  102. if( k >= 1)then num_st := num_st + 1;
  103. if( k = 0)then num_st2 := num_st2 + 1;
  104. End;
  105.  
  106. if(num_st >= 4)and(num_st2 < 2)
  107. then
  108. writeln('Это параллелограмм')
  109. else
  110. writeln('Это не параллелограмм');
  111.  
  112. END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement