Pascal | Viết chương trình thao tác trên các điểm trên mặt phẳng (có các thành phần X, Y)

Pascal | Viết chương trình thao tác trên các điểm trên mặt phẳng (có các thành phần X, Y)

Viết chương trình thao tác trên các điểm trên mặt phẳng (có các thành phần X, Y) :

+ Nhập thông tin về 3 điểm A, B, C. Tính diện tích của Tam giá ABC.

+ Nhập danh sách n điểm, và điểm M. Hãy xác định điểm gần điểm M nhất.

Hướng dẫn:

-          Viết hàm tính khoảng cách giữa 2 điểm A, B theo công thức:

-          Viết hàm tính diện tích tam giác ABC thông qua chu vi của tam giác:

a = KhoangCach(B, C)

b = KhoangCach(A, C)

c = KhoangCach(A, B)

      p = ( a+b+c) / 2

-         Viết hàm tìm kiểm trong danh sách điểm nhậm vào, tìm điểm X có khoảng cách từ X đến M là nhỏ nhất.

Source code chương trình:

{ 1. Khai bao cac kieu du lieu va bien can thiet }

PROGRAM ThaoTacDiem;

Uses CRT;

Type    KDIEM = RECORD

X,Y : Integer;

End;

KDSDIEM = Array[1..50] of KDIEM;

Var

DS: KDSDIEM;

n: Integer;

A, B, C, M, X: KDIEM;


{ 2. Thu tuc nhap 3 diem A, B, C}

Procedure NhapABC( Var A, B, C: KDIEM);

Begin

Write(‘Toa do A(X, Y):’);      Readln( A.X, A.Y );

Write(‘Toa do B(X, Y):’);       Readln( B.X, B.Y );

Write(‘Toa do C(X, Y):’);       Readln( C.X, C.Y );

      End;


{ 3. Thu tuc nhap du lieu cho danh sach diem }

Procedure NhapDSDiem( Var dsdiem : KDSDIEM; Var N:Integer);

Var i:Integer;

Begin

Repeat

Write(‘Nhap so diem = ‘);

Readln(N);

Until ( N>0 ) and ( N < 51);


      For i:=1 to N do 

Begin

Write(‘Toa do X, Y:’);      Readln(dsdiem[i].X, dsdiem[i].Y);

 End;

      End;


{ 4. Ham tinh khoang cach giua 2 diem A, B }

Function  KhoangCach( A, B: KDIEM) : Real;

Begin

KhoangCach := Sqrt( Sqr(A.X-B.X) + Sqr(A.Y-B.Y) );

      End;

{ 5. Ham tinh dien tich tam giac A, B, C }

Function  DienTichABC( A, B, C: KDIEM) : Real;

Var   ab, bc, ca, p: Real;

Begin

ab := KhoangCach ( A, B );

bc := KhoangCach ( B, C );

ca := KhoangCach ( C, A );

p := (ab + bc + ca) / 2;

DienTichABC := Sqrt( p * (p-ab) * (p-bc) * (p-ca) );

      End;


{ 6. Xac dinh diem gan M nhat trong danh sach n diem   }

Function  DiemGanMnhat(ds : KDSDIEM; n:Integer;M:KDIEM): KDIEM;

Var   kcMin, kc: Real;

            X: KDIEM;

            I : Integer;

Begin

      KcMin := KhoangCach(M, ds[1]);

      For i:=1 to N do 

Begin

            Kc := KhoangCach(M, ds[i]);

            If (kc >= kcMin) Then

            Begin

                        KcMin := Kc;

                        X := ds[i];

            End;

DiemGanMnhat := X;

      End;



{    Chương trình chính;      }

BEGIN

Clrscr;

NhapABC( A, B, C );

Writeln(‘Diem tich tam giac ABC= ‘, DienTichABC(A, B, C):6:2);


NhapDSDiem( ds, N );

Write(‘Toa do M(x, y):’);        Readln(M.X, M.Y);

X := DiemGanMnhat(ds, N, M);

Writeln(‘Diem gan M nhat la (‘, X.x,’ , ’ , X.y,’ ) trong cac diem nhap vao. ’);


Readln;

END.
Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Bạn đã từng biết Drupal’s Community Working Group chưa?

Bạn đã từng biết Drupal’s Community Working Group chưa?

In early 2013 our fearless and benevolent leader, Dries Buytaert, formalised a governance structure and started a number of working groups for the Drupal project as a whole, and for our home on the Web

Sử dụng parallel processing để tiết kiệm time importing databases

Sử dụng parallel processing để tiết kiệm time importing databases

In this article I'll walk through the troubleshooting process I used to improve things, and the approaches I tried

Component Twig Templates trong Drupal 8

Component Twig Templates trong Drupal 8

Even though Twig has been in Drupal 8 for quite some time now, there are still a lot of things left to do! I recently started collaborating with the "Twig team" in an effort to help move Drupal in the right direction.

Tomdesgin.vn

 

Drupal Services