Hướng dẫn làm bài tập và thực hành 2

Đề bài

Hướng dẫn làm bài tập và thực hành 2

Lời giải chi tiết

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

- Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh;

- Làm quen với việc hiệu chỉnh chương trình.

2. Nội dung

a) Gõ chương trình đã cho ở trên:

- Khởi động Turbo Pascal: Nhấp chuột lên biểu tượng Pascal trên màn hình hoặc lên tệp Turbo.exe trong thư mục BIN của thư mục TP ở ổ đĩa C hoặc ổ đĩa D.

- Gõ nhập chương trình đã cho giống như soạn thảo văn bản trong màn hình làm việc của Pascal.

b) Lưu chương trình vào đĩa với tên là PITAGO.PAS bằng các thao tác sau:

- Nhấp chuột lên mục File hoặc nhấn phím F2 (Hình 16); Hộp thoại Save File As xuất hiện. Xử lí hộp thoại:

  • Gõ tên tệp PITAGO vào mục Save file as
  • Gõ phím Enter hoặc nhấn phím OK.

c) Gõ phím F7 để thực hiện từng câu lệnh chương trình. Đến lệnh readln (a, b, c) thì khi nhập các giá trị a = 3, b= 4, c= 5 nên gõ dấu cách sau mỗi giá trị và kết quả của chương trình sau khi thực hiện trên màn hình sẽ là 'Ba so da nhap la bo so Pi-ta-go"(Hình 19).

d) Sau khi thực hiện xong chương trình, nhập vào các giá trị a, b, c và cho kết quả tốt (câu b). Để vào bảng chọn Deburg mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2, ta nhấp chuột vào mục Deburg (hoặc sử dụng tổ hợp phím Alt + D). Tiếp đến để hiện cửa sổ watches, ta nhấp chuột chọn mục Add watch hoặc dùng tổ hợp phím Ctrl + F7 (Hình 20).

Khi đó, xuất hiện cửa sổ Add watch. Trong cửa sổ Add watch ta nhập giá trị a2 vào mục Watch expression và nhấp chuột chọn OK hoặc gõ phím Enter.

Kết quả biến a2 sẽ hiện ra trong cửa sổ watches và bằng 9. Tương tự, ta nhấp chọn mục Deburg, sau đó chọn Add watch... và nhập vào biến b2, nhấp chọn OK. Kết quả biến b2 =16 sẽ hiện tiếp dưới biến a2. Cuối cùng, biến c2 cũng làm tương tự như trên.

Lưu ý: Trong quá trình thực hiện, ta có thể kết hợp sử dụng tổ hợp phím Ctrl + F5 (thay đổi kích thước cửa sổ hiện thời chứa con trỏ màn hình) và phím F6 (chuyển cửa sổ hiện thời) để các cửa sổ lộ ra phần thông tin cần theo dõi (không bị cửa sổ khác che khuất).

e) Tiếp tục gõ phím F7 để theo dõi quá trình rẽ nhánh, ta nhận thấy rằng khi ấn phím F7 con trỏ ở dòng từ khóa begin, tiếp tục ấn cho đến dòng readln (a, b, c) thì hiện ra cửa sổ yêu cầu nhập vào ba giá trị cùa a = 3, b = 4, c = 5. Sau khi nhập vào ba giá trị cùa ba biến a, b, c ta lại ấn phím F7. Cho đến gặp câu lệnh in kết (quả chương trinh ra màn hình “Ba so da nhap la bo so Pi-ta-go”, rồi kết thúc chương trình.

Vào bảng chọn Deburg mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2 như đã làm ở trên thì ta nhận thấy rằng: với những giá trị của a, b, c như trên thì kết quả của ba biến a2, b2, c2 đều không thay đổi và lần lượt bằng 9, 16 và 25.

f) Quan sát quá trình rẽ nhánh, ta nhận thấy rằng nếu bộ dữ liệu nhập vào thỏa mãn điều kiện “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 thì chương trình sẽ in ra thông báo “Bo so da nhap la bo so Pi-ta-go”, ngược lại chương trình sẽ in ra thông báo “Bo so da nhap khong la bo so Pi-ta-go”. Đây chính là dạng lặp đầy đủ.

g) Khi ta nhập vào bộ dữ liệu mới a =700, c = 1000, c = 800, thì kết quả của chương trình xuất hiện trên màn hình là: “Bo so da nhap khong la bo so Pi-ta-go”.

Vào bảng chọn Deburg mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2, thì ta nhận thấy kết quả của chúng theo thứ tự là 490000, 1000000, 640000 (Hình 23).

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ì chương trình mới sẽ là 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*a;

b2:= b*b;

c2:= C*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 da nhap khong la bo so Pi-ta-go);

readln

End.

Khi chạy chương trình và nhập vào bộ dữ liệu a = 700, c = 1000, c = 800, kết quả của chương trình sẽ là: “Bo so da nhap khong la bo so Pi-ta-go" (Hình 24).