Bài tập và thực hành 7


1. Mục đích, yêu cầu

- Rèn luyện các thao tác xử lí xâu, kĩ năng tạo hiệu ứng chữ chạy trên màn hình;

- Nâng cao kĩ năng viết, sử dụng chương trình con.

2. Ôn tập kiến thức

a. Cách viết và sử dụng chương trình con

Hình 1. Cách viết và sử dụng chương trình con

b. Các biến - tham số và thực hiện chương trình trong chương trình con

Hình 2. Các biến - tham số và thực hiện chương trình trong chương trình con

b.1. Biến

Hình 3. Nội dung trọng tâm về biến

b.2. Tham số

Hình 4. Nội dung trọng tâm về tham số

b.3. Thực hiện chương trình con

Hình 5. Cách thực hiện chương trình con

Bài tập 1

Viết chương trình thực hiện lần lượt các công việc sau:

- Lập thủ tục nhập ba số nguyen dương a, b, c từ bàn phím.

- Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không?

- Viết hàm tính diện tích của tam giác.

- Viết hoàn thiện chương trình chính.

Gợi ý làm bài:

- Xác định bài toán:

+ INPUT: 3 cạnh a,b,c của tam giác

+ OUTPUT: Kiểm tra tam giác và tính diện tích

- Công thức Herong:      

p := (a+b+c)/2;

dt := sqrt(p* (p-a)*(p-b)*(p-c));   

- Cài đặt chương trình:

Var a,b,c : Integer;

Procedure NhapABC (Var a, b, c : Integer);   {1. Nhập 3 cạnh a,b,c}

Begin

    Write( 'Nhap a:' ); Readln( a );

    Write( 'Nhap b:' ); Readln( b );

    Write( 'Nhap c:' ); Readln( c );

End;

Procedure KiemTra_InDienTich ( a,b,c:Integer); {2. Kiểm tra tam giác}

Begin

     If ((a+b>c) and (b+c>a) and (a+c>b)) then

       Writeln(' Ba canh tren tao thanh tam giac.dien tich', Dientich(a,b,c) ) Else

        Writeln('Ba canh tren khongtao thanh tam giac');

End;

Function Dientich( a, b, c:Integer ) : Real;      {3. Hàm tính diện tích}

Var dt,p : Real;

Begin

     p := (a+b+c)/2;

     dt := sqrt(p* (p-a)*(p-b)*(p-c));

     Dientich := dt;

End;

BEGIN  {4. Chương trình chính}

     NhapABC(a,b,c);

     KiemTra_InDienTich (a,b,c);

END.

Bài tập 2

Viết chương trình tính \(C_{n}^{k}\). Có sử dụng hàm?

Gợi ý làm bài:

- Xác định bài toán:

+ INPUT: Nhập n, k

+ OUTPUT: \(C_{n}^{k}=\frac{n!}{k!(n-k)!}\)

- Cài đặt chương trình:

Program to_hop;

Uses crt;

Var n,k : integer;

     nCk: real;

Function gt( n : integer) : integer;

var i,s: integer; 

  Begin

  s:=1;

  for i:=1 to n do

  s:=s*i;

  gt:=s;

end;

BEGIN

Write(‘ Nhap n:’); readln(n);

Write(‘ Nhap k:’); readln(k);

nCk := gt(n) /(gt(k) *gt(n-k));

Writeln(‘ nCk = ’, nCk);

Readln;

END.

1. Mục đích, yêu cầu

- Rèn luyện các thao tác xử lí xâu, kĩ năng tạo hiệu ứng chữ chạy trên màn hình;

- Nâng cao kĩ năng viết, sử dụng chương trình con.

2. Ôn tập kiến thức

a. Cách viết và sử dụng chương trình con

Hình 1. Cách viết và sử dụng chương trình con

b. Các biến - tham số và thực hiện chương trình trong chương trình con

Hình 2. Các biến - tham số và thực hiện chương trình trong chương trình con

b.1. Biến

Hình 3. Nội dung trọng tâm về biến

b.2. Tham số

Hình 4. Nội dung trọng tâm về tham số

b.3. Thực hiện chương trình con

Hình 5. Cách thực hiện chương trình con

Bài tập 1

Viết chương trình thực hiện lần lượt các công việc sau:

- Lập thủ tục nhập ba số nguyen dương a, b, c từ bàn phím.

- Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không?

- Viết hàm tính diện tích của tam giác.

- Viết hoàn thiện chương trình chính.

Gợi ý làm bài:

- Xác định bài toán:

+ INPUT: 3 cạnh a,b,c của tam giác

+ OUTPUT: Kiểm tra tam giác và tính diện tích

- Công thức Herong:      

p := (a+b+c)/2;

dt := sqrt(p* (p-a)*(p-b)*(p-c));   

- Cài đặt chương trình:

Var a,b,c : Integer;

Procedure NhapABC (Var a, b, c : Integer);   {1. Nhập 3 cạnh a,b,c}

Begin

    Write( 'Nhap a:' ); Readln( a );

    Write( 'Nhap b:' ); Readln( b );

    Write( 'Nhap c:' ); Readln( c );

End;

Procedure KiemTra_InDienTich ( a,b,c:Integer); {2. Kiểm tra tam giác}

Begin

     If ((a+b>c) and (b+c>a) and (a+c>b)) then

       Writeln(' Ba canh tren tao thanh tam giac.dien tich', Dientich(a,b,c) ) Else

        Writeln('Ba canh tren khongtao thanh tam giac');

End;

Function Dientich( a, b, c:Integer ) : Real;      {3. Hàm tính diện tích}

Var dt,p : Real;

Begin

     p := (a+b+c)/2;

     dt := sqrt(p* (p-a)*(p-b)*(p-c));

     Dientich := dt;

End;

BEGIN  {4. Chương trình chính}

     NhapABC(a,b,c);

     KiemTra_InDienTich (a,b,c);

END.

Bài tập 2

Viết chương trình tính \(C_{n}^{k}\). Có sử dụng hàm?

Gợi ý làm bài:

- Xác định bài toán:

+ INPUT: Nhập n, k

+ OUTPUT: \(C_{n}^{k}=\frac{n!}{k!(n-k)!}\)

- Cài đặt chương trình:

Program to_hop;

Uses crt;

Var n,k : integer;

     nCk: real;

Function gt( n : integer) : integer;

var i,s: integer; 

  Begin

  s:=1;

  for i:=1 to n do

  s:=s*i;

  gt:=s;

end;

BEGIN

Write(‘ Nhap n:’); readln(n);

Write(‘ Nhap k:’); readln(k);

nCk := gt(n) /(gt(k) *gt(n-k));

Writeln(‘ nCk = ’, nCk);

Readln;

END.

Bài học bổ sung