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?: 
Average: 10 (10 votes)
Ả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í quyết 1 - Multilingual Site trong Drupal 7

Bí quyết 1 - Multilingual Site trong Drupal 7

As we discussed in our first introductory blog post, Recipes for Building a Multilingual Site, not all Drupal installations are the same and nearly every site built with Drupal is different in one way or another

Download sách Drupal: Master Drupal in 7 hours

Download sách Drupal: Master Drupal in 7 hours

Một quyển sách hay, dành cho người mới bắt đầu, dài chưa đến 100 trang. Sách có cách diễn giải sống động, dễ hiểu, và không đề cập đến một dòng lệnh nào. Theo lời tác giả thì "Tôi không phải là nhà phát triển Drupal, tôi không biết code." Tuy nhiên, trong 7 tiếng, bạn sẽ học được cách xây dựng và tối ưu một website Drupal hoàn chỉnh.

Lợi ích đem lại từ Rich Snippets

Lợi ích đem lại từ Rich Snippets

Chắc hẳn bạn đã từng thấy một số kết quả tìm kiểm hiển thị trên Google được gắn sao khi bạn tìm kiếm với từ khóa nào đó? Đó chính là Rich Snippets. Ở bài viết này chúng tôi sẽ giới thiệu về Rich Snippets và những lợi ích mà nó đem lại.

Công ty diệt chuột T&C

 

Diet con trung