Tin học 11 Bài tập và thực hành 2

Mời các em học sinh cùng tham khảo nội dung của bài thực hành số 2 dưới đây, thông qua bài học này bước đầu giúp các em làm quen với việc hiệu chỉnh chương trình. Hy vọng đây sẽ là tài liệu tham khảo hữu ích cho các em học sinh.

Tin học 11 Bài tập và thực hành 2

1. Tóm tắt lý thuyết

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

a. Kiến thức

- Củng cố thêm về cấu trúc rẽ nhánh và lặp.

- Luyện tập cấu trúc lặp, chú ý với bài toán tìm tổng của dãy số.

b. Kỹ năng

Sau khi đã chuẩn bị bài tập ở nhà, học sinh cần:

- Nắm được cấu trúc của câu lệnh rẽ nhánh, và lặp, biết được cách thức hoạt động của từng cấu trúc.

- Biết một số thao tác hiệu chỉnh chương trình, và một số chú ý về các vòng lặp vô hạn.

- Biết cách viết một chương trình hoàn chỉnh và khoa học, cách kiểm tra một chương trình cụ thể thông qua bộ test thử.

1.2. Nội dung

Bài toán: Bộ số Pi-ta-go.

Biết rằng bộ ba số nguyên dương a,b,c được gọi là bộ số Pi-ta-go nếu tổng các bình phương của hai số bằng bình phương của số còn lại. Viết chương trình nhập từ bàn phím ba số nguyên dương a,b,c và kiểm tra xem chúng có là bộ số Pi-ta-go hay không.

Ý tưởng: Kiểm tra xem có đẳng thức nào trong ba đẳng thức sau đây xảy ra hay không:

a2 = b2 + c2

b2 = a2 + c2

c2 = a2 + b2

a) Gõ chương trình sau:

program Pi_ta_go;

uses crt;

var   a,b,c:integer;

        a2,b2,c2:longint; 

begin

              clrscr;

              write('a,b,c:');

              readln(a,b,c);

              a2:=a;

              b2:=b;

              c2:=c;

              a2:=a2*a;

              b2:=b2*b;

              c2*=c2*c;

              if (a2=b2+c2) or (b2=a2+c2) or (c2=a2+b2)

             then writeln('ba so da nhap la bo so Pi-ta-go')

             else writeln('ba so ban nhap khong la bo so Pi-ta-go');

             readln;

end.

b) Lưu chương trình với tên PITAGO lên đĩa.

Nhấn File sau đó nhấn Save as…

Sau đó nhập PITAGO.pas sau đó nhấn OK.

c) Nhấn phím F7 để thực hiện từng câu lệnh chương trình, nhập các giá trị a=3, b=3, c=5;

Khi đến câu lệnh readln(a, b, c) chương trình dựng cho ta nhập dữ liệu.

d) Vào bảng chọn Debug để mở cửa sổ hiệu chỉnh xem giá trị a2, b2, c2.

- Nhấn phím Ctrl+F7 để thêm các biến muốn xem giá trị

- Nhấn F7 để chạy tiếp các câu lệnh để nhìn giá trị của các biến.

e) Tiếp tục nhấn phím F7 để thực hiện các câu lệnh tính giá trị.

Nhận được kết quả a2=9, b2=16, c2=25 ở bảng debug

f) Quan sát quá trình rẽ nhánh

Ta thấy nhánh rẽ vào mệnh đề sau then

g) Lặp lại bộ dữ liệu a=700, b=1000, c=800.

h) Nếu thay dãy lệnh

a2:=a;

          b2:=b;

          c2:=c;

          a2:=a2*a;

          b2:=b2*b;

          c2*=c2*c;

bằng dãy lệnh

a2:=a*a;

b2:=b*b;

c2:=c*c;

thì kết quả không thay đổi so với câu g .

Lý do: nếu ta gán a2:=a sau đó thực hiện nhân a2 với a thì thực ra ta chỉ gán a2:=a*a;

Tương tự như vậy với b2, c2.

Vì vậy kết quả không thay đổi với dữ liệu ở câu g).

2. Luyện tập

Câu 1: Cho chương trình viết bằng PASCAL sau đây:

PROGRAM giaiPT;

uses crt;

var A, B, C : real;

DELTA, X1, X2 : real;

BEGIN

write(‘ Nhap cac he so A, B, C : ’);

readln(A, B, C);

DELTA := B*B – 4*A*C;

if DELTA > 0 then

            begin

                        X1 := ( – B – SQRT(DELTA) ) / (2*A);

                        X2 :=  – B  / A – X1;

                        writeln(‘ X1 = ’, X1);

                        writeln(‘ X2 = ’, X2);

            end;

readln

END.

Hãy chọn phát biểu sai trong các phát biểu sau đây:

A. Đây là chương trình giải phương trình bậc hai nhưng chưa xét hết các trường hợp

B. Đây là chương trình giải phương trình bậc hai nhưng không đưa ra thông báo gì khi chương trình có nghiệm kép

C. Đây là chương trình giải và thông báo nghiệm của một phương trình bậc hai nếu phương trình đó có nghiệm

D. Đây là chương trình giải phương trình bậc hai, nhưng không đưa ra thông báo gì khi phương trình vô nghiệm

Câu 2: Cho chương trình viết bằng PASCAL sau đây:

PROGRAM GiaiPTBac2;

uses crt;

var A, B, C : real;

DELTA, X1, X2 : real;

BEGIN

           write(‘ Nhap cac he so A, B, C : ’);

readln(A, B, C);

DELTA := B*B – 4*A*C ;

if DELTA < 0 then writeln(‘ Phuong trinh vo nghiem.’);

X1 := ( – B – SQRT(DELTA) ) / (2 *A) ;

X2 := – B / A – X1 ;

writeln(‘ X1 = ’, X1);

writeln(‘ X2 = ’, X2);

readln

END.

Hãy chọn phát biểu đúng trong các phát biểu sau đây:

A. Đây là chương trình giải phương trình bậc hai hoàn chỉnh

B. Đây là chương trình giải phương trình bậc hai sai vì không thông báo nghiệm trong trường hợp có nghiệm kép

C. Đây là chương trình giải phương trình bậc hai sai vì với trường hợp phương trình vô nghiệm, chương trình vẫn thực hiện tính nghiệm thực

D. Đây là chương trình giải phương trình bậc hai sai vì chỉ xét trường hợp DELTA < 0 mà thôi

Câu 3: Phát biểu nào sau đây có thể lấy làm biểu thức điều kiện trong cấu trúc rẽ nhánh?

A. 100 > 99

B. “A > B”

C. “A nho hon B”

D. “false”

Câu 4: Cho chương trình viết bằng ngôn ngữ PASCAL sau đây:

PROGRAM Inso;

Uses crt; Var M, N, I : integer;

BEGIN

          clrscr;

          M := 0 ;

          N := 0 ;

          For I := 1 TO 10000 do

                Begin

                      if ( (I mod 3) = 0 ) then M := M + 1 ;

                      if ( (I mod 3) = 0 ) and ( (I mod 5) = 0 )

then N := N + 1 ;

                End;

          writeln( M,‘ ’, N );

          readln

END.

Phát biểu nào sau về chương trình trên là đúng?

A. Đây là chương trình đếm số các số nguyên trong khoảng từ 1 đến 10000 là bội số của 3

B. Đây là chương trình đếm và thông báo ra màn hình rằng trong khoảng từ 1 đến 10000 có bao nhiêu số nguyên là bội số của 3 và có bao nhiêu số là bội số chung của 3 và 5

C. Đây là chương trình đếm số các số nguyên nhỏ hơn 10000 và chia hết cho 3

D. Đây là chương trình đếm số các số nguyên trong khoảng từ 1 đến 10000 là bội số của 3 và 5

Câu 5: Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng?

A. If < biểu thức logic > ; then < câu lệnh 1 > ; else < câu lệnh 2 >

B. If < biểu thức logic > ; then < câu lệnh 1 > else < câu lệnh 2 >

C. If < biểu thức logic > then < câu lệnh 1 > ; else < câu lệnh 2 >

D. If < biểu thức logic > then < câu lệnh 1 > else < câu lệnh 2 >

3. Kết luận

Sau bài học này các em cần biết cách xây dựng một chương trình bài toán đơn giản, nắm vững cấu trúc của câu lệnh rẽ nhánh, và lặp, biết được cách thức hoạt động của từng cấu trúc.

Ngày:10/09/2020 Chia sẻ bởi:Minh Ngoan

CÓ THỂ BẠN QUAN TÂM