Bài 5: Từ bài toán đến chương trình - Giải BT Tin học 8
Bài 1 (trang 44 sgk Tin học lớp 8): Hãy chỉ ra INPUT và OUTPUT của các bài toán sau:
a) Tìm số học sinh trong lớp cùng mang họ Trần.
b) Xác định tổng của các phần tử lớn hơn 0 trong dãy n số cho trước.
c) Tính số các số có giá trị nhỏ nhất trong n số đã cho.
Bài giải:
a) INPUT: Danh sách số học sinh trong lớp.
OUTPUT: Số học sinh trong lớp mang họ Trần.
b) INPUT: Dãy gồm n số.
OUTPUT: Tổng các phần tử lớn hơn 0.
c) INPUT: Cho n số.
OUTPUT: Số các số có giá trị nhỏ nhất trong n số.
Bài 2 (trang 44): Giả sử x và y là các biến số. Hãy cho biết kết quả của việc thực hiện thuật toán sau:Bước 1. x ← x + y
Bước 2. y ← x – y
Bước 3. x ← x – y
Bài giải:
- Bước 1: Ở bước này giá trị của x sẽ bằng x cộng với y: x= x+y.
- Bước 2: Tiếp đến giá trị của y bằng giá trị của x – y: y= x (bước 1)-y= x+y-y= x.
- Bước 3: Cuối cùng giá trị của x bằng x-y: x=x (bước1)-y (bước 2)= x+y-x=y.
Vậy kết quả của thuật toán là x=y và y=x;
Bài 3 (trang 44): Cho trước 3 số dương a, b và c. Em hãy mô tả thuật toán và cho biết ba số đó có thể là độ dài ba cạnh của một tam giác hay không?Bài giải:
- Thuật toán ba số có thể là một cạnh của tam giác:
+ Bước 1: Nếu a - b < c và c < a – b thì ba số a, b và c là độ dài ba cạnh của một tam giác. Nếu không thỏa mãn 1 trong 2 điều kiện thì ngược lại.
+ Bước 2: Kết thúc thuật toán.
Bài 4 (trang 45): Cho 2 biến x và y. Hãy mô tả thuật toán đổi giá trị của các biến nói trên (nếu cần) để x và y theo thứ tự có giá trị không giảm.Bài giải:
- Thuật toán đổi giá trị của các biến x, y theo thứ tự có giá trị không giảm:
Bước 1: Nhập giá trị của x, y.
Bước 2: Nếu x > y thì chuyển tới bước 3. Ngược lại chuyển tới bước 4.
Bước 3: Tráo đổi giá trị của x và y.
Thuật toán tráo đổi giá trị:
Bước 1: Khai báo một biến cùng kiểu dữ liệu với x, y là tg.
Bước 2: Gán giá trị tg: =a;
Bước 3: Gán giá trị a: =b;
Bước 4: Gán giá trị b: =tg;
Bước 4: Kết thúc thuật toán.
Bài 5 (trang 45): Hãy cho biết kết quả của thuật toán sau:Bước 1. SUM ← 0; i ← 0.
Bước 2. Nếu i > 100 thì chuyển tới bước 4.
Bước 3. i ← i + 1; SUM ← SUM + i. Quay lại bước 2.
Bước 4. Thông báo giá trị SUM và kết thúc thuật toán.
Bài giải:
- Bước 1: Gán giá trị cho 2 biến SUM = 0 và i = 0.
- Bước 2: Do i=0 < 100 nên chuyển tới bước 3. Nếu i > 100 chuyển tới bước 4.
- Bước 3: Tăng giá trị i thêm 1. Giá trị của SUM bằng SUM + i.
- Bước 4: Thông báo giá trị SUM. Thuật toán kết thúc.
Kết quả thực hiện thuật toán SUM = 5050.
Bài 6 (trang 45): Em hãy mô tả thuật toán tính tổng các số dương trong dãy số A = {a1, a2…, an) cho trước.Bài giải:
Bước 1: Nhập n và dãy số a1, a2…, an.
Bước 2: SUM ← 0; i ← 0.
Bước 3: Nếu ai > 0 thì SUM ← SUM + ai, ngược lại đến bước 4.
Bước 4: i ← i + 1;
Bước 5: Nếu i < = n thì quay lại bước 3.
Bước 6: Thông báo giá trị SUM.
Kết thúc thuật toán.
Tìm hiểu mở rộng (trang 45 sgk Tin học lớp 8):2. Để biểu diễn thuật toán cho sơ đồ khối, người ta thường phân biệt 2 loại thao tác chính trong thuật toán:
+ Thao tác chọn lựa theo một điều kiện nào đó (được biểu diễn bằng khối hình thoi);
+ Các thao tác không thuộc loại chọn lựa được xếp vào loại hành động (được biểu diễn bằng khối hình chữ nhật).
Ngoài ra, người ta còn thường dùng các khối hình bình hành để biểu diễn thao tác nhập/ xuất dữ liệu và khối elip để biểu diễn khối bắt đầu và kết thúc thuật toán (h. 1.32).
Em có thể vẽ sơ đồ khối biểu diễn các thuật toán nêu trong bài học không?
Bài giải: