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


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

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.

Gợi ý làm bài:

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

a2 = b2 + c2;

b2 = a2 + c2;

c2 = a2 + b2.

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

Input: Các số a,b,c nhập từ bàn phím.

Output: Đưa ra màn hình câu thông báo: ba số a, b, c có phải là bộ số Pi – ta – go hay không?

Thiết kết bài toán:

Đơn vị dữ liệu:

+ Các số a, b, c, a2, b2, c2.

+ Loại số: số nguyên dương.

+ Kiểu: a, b, c: interger.

Đơn vị xử lý:

+ Nhập vào 3 số nguyên dương a, b, c.

+ Tính các bình phương của a, b, c.

+ Kiểm tra: nếu tổng các bình phương của 2 số bằng bình phương của số còn lại thì kết luận: ba số là bộ số Pi_ta_go.

+ Ngược lại: không phải là bộ số Pi_ta_go.  

Thuật giải chương trình:

Program Pi_ta_go

Khai báo sử dụng a, b, c, a2, b2, c2(a, b, c nguyên dương)

Gán: a2:=a; b2:=b; c2:=c;

Tính:   

a2:= a2*a;

b2:= b2*b;

c2:= c2*c;

- Nếu  a2= b2+ c2 hoặc b2= a2+ c2 hoặc c2= a2+ b2 thì:

+ Xuất ra "a, b, c là bộ số Pi_ta_go"

+ Ngược lại: “a, b, c không là bộ số Pi_ta_go” 

Những công việc cần thực hiện:

a) Khởi động chương trình Turbo Pascal bằng cách: Nháy đúp chuột vào biểu tượng  trên màn hình Desktop.

- 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 da nhap khong la bo so Pi-ta-go');

       readln

end.

Chú ý: Trước else không có dấu chấm phẩy (;).

b) Sau khi gõ xong, lưu chương trình vào đĩa bằng cách nhấn phím F2 (hoặc vào File → Save), nhập tên tệp rồi nhấn phím Enter (phần mở rộng của tệp ngầm định là .pas).

c) Gõ 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 = 4, c = 5.

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

e) Gõ phím F7 để thực hiện các câu lệnh tính những giá trị nói trên, so sánh với kết quả a2 = 9, b2 = 16, c2 = 25.

f) Tiếp tục nhấn F7 để theo dõi quá trình rẽ nhánh.

g) Lặp lại các bước trên vớ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:= a*a;

b2:= b*b;

c2:= c*c;

bằng dãy lệnh

a2:= a*a;

b2:= b*b;

c2:= c*c;

Thì kết quả có gì thay đổi ở bộ dữ liệu a = 700, b = 1000, c=800.

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

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.

Gợi ý làm bài:

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

a2 = b2 + c2;

b2 = a2 + c2;

c2 = a2 + b2.

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

Input: Các số a,b,c nhập từ bàn phím.

Output: Đưa ra màn hình câu thông báo: ba số a, b, c có phải là bộ số Pi – ta – go hay không?

Thiết kết bài toán:

Đơn vị dữ liệu:

+ Các số a, b, c, a2, b2, c2.

+ Loại số: số nguyên dương.

+ Kiểu: a, b, c: interger.

Đơn vị xử lý:

+ Nhập vào 3 số nguyên dương a, b, c.

+ Tính các bình phương của a, b, c.

+ Kiểm tra: nếu tổng các bình phương của 2 số bằng bình phương của số còn lại thì kết luận: ba số là bộ số Pi_ta_go.

+ Ngược lại: không phải là bộ số Pi_ta_go.  

Thuật giải chương trình:

Program Pi_ta_go

Khai báo sử dụng a, b, c, a2, b2, c2(a, b, c nguyên dương)

Gán: a2:=a; b2:=b; c2:=c;

Tính:   

a2:= a2*a;

b2:= b2*b;

c2:= c2*c;

- Nếu  a2= b2+ c2 hoặc b2= a2+ c2 hoặc c2= a2+ b2 thì:

+ Xuất ra "a, b, c là bộ số Pi_ta_go"

+ Ngược lại: “a, b, c không là bộ số Pi_ta_go” 

Những công việc cần thực hiện:

a) Khởi động chương trình Turbo Pascal bằng cách: Nháy đúp chuột vào biểu tượng  trên màn hình Desktop.

- 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 da nhap khong la bo so Pi-ta-go');

       readln

end.

Chú ý: Trước else không có dấu chấm phẩy (;).

b) Sau khi gõ xong, lưu chương trình vào đĩa bằng cách nhấn phím F2 (hoặc vào File → Save), nhập tên tệp rồi nhấn phím Enter (phần mở rộng của tệp ngầm định là .pas).

c) Gõ 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 = 4, c = 5.

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

e) Gõ phím F7 để thực hiện các câu lệnh tính những giá trị nói trên, so sánh với kết quả a2 = 9, b2 = 16, c2 = 25.

f) Tiếp tục nhấn F7 để theo dõi quá trình rẽ nhánh.

g) Lặp lại các bước trên vớ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:= a*a;

b2:= b*b;

c2:= c*c;

bằng dãy lệnh

a2:= a*a;

b2:= b*b;

c2:= c*c;

Thì kết quả có gì thay đổi ở bộ dữ liệu a = 700, b = 1000, c=800.

Bài học tiếp theo

Bài học bổ sung