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

 
Best practice về Security cho Drupal SQL Injection

Best practice về Security cho Drupal SQL Injection

Noted PHP numinary Anthony Ferrara discusses emulated prepared statements in relation to the recent Drupal security issues.

Hướng dẫn Show Drupal Users Their Own Content

Hướng dẫn Show Drupal Users Their Own Content

There are advanced ways to do this, such as using the Workbench module, but in this tutorial we'll show you an easy way to provide a list of each user's content.

PHASE 2: Behavorial Test For Custom Entity sử dụng CasperJS

PHASE 2: Behavorial Test For Custom Entity sử dụng CasperJS

This blog post is a continuation of my “Developing A Drupal Entity” post. In my previous post I described the process of creating your own entity. This post will focus on writing a behavioral test for that entity using CasperJS.

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

 

Diet con trung