BƯỚC ĐẦU giải bài toán Tin học 8

Xem toàn bộ tài liệu Lớp 8: tại đây

Giải Bài Tập Tin Học 8 – Bài 5: Từ bài toán đến chương trình giúp HS giải bài tập, giúp cho các em hình thành và phát triển năng lực sử dụng công nghệ thông tin và truyền thông:

Show

    • Sách Giáo Khoa Tin Học Lớp 8
    • Sách Giáo Viên Tin Học Lớp 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) Xác định số học sinh trong lớp cùng mang họ Trần.

    b) Tí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ìm số các số có giá trị nhỏ nhất trong n số đã cho.

    Trả lờ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 sgk Tin học lớp 8): 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

    Trả lờ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 sgk Tin học lớp 8): Cho trước ba số dương a, b và c. Hãy mô tả thuật toán cho biết ba số đó có thể là độ dài ba cạnh của một tam giác hay không.

    Trả lời:

    – Thuật toán ba số có 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 sgk Tin học lớp 8): Cho hai 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.

    Trả lời:

    – Thuật toán đổi giá trị 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 sgk Tin học lớp 8): 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.

    Trả lờ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 sgk Tin học lớp 8): 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.

    Trả lờ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): 1. Một trong những yêu cầu quan trọng của thuật toán và mô tả thuật toán là tính dừng, tức thuật toán phải được kết thúc sau một số hữu hạn bước¬. Việc mô tả thuật toán có bước nhảy (ví dụ, chuyển đến bước 5, trở lại bước 2) có thể gây khó khăn nhất định cho việc theo dõi tính dừng của thuật toán. Hãy tìm hiểu và cho ít nhất một ví dụ về thuất toán không dừng.

    2. Để biểu diễn thuật toán cho sơ đồ khối, người ta thường phân biệt hai loại thao tác chính trong thuật toán: 1) 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); 2) 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).

    BƯỚC ĐẦU giải bài toán Tin học 8

    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?

    Trả lời:

    BƯỚC ĐẦU giải bài toán Tin học 8

    BƯỚC ĐẦU giải bài toán Tin học 8

    BƯỚC ĐẦU giải bài toán Tin học 8

    BƯỚC ĐẦU giải bài toán Tin học 8

    BƯỚC ĐẦU giải bài toán Tin học 8

    1.1. Bài toán và xác định bài toán

    Bài toán là một công việc hay một nhiệm vụ cần phải giải quyết.

    Ví dụ về bài toán:

    • Bài toán 1: Tính tổng của các số tự nhiên từ 1 đến 100
    • Bài toán 2: Tính quãng đường ô tô đi được trong 3 giờ với vận tốc 60km/giờ
    • Bài toán 3: Tính diện tích hình tam giác

    BƯỚC ĐẦU giải bài toán Tin học 8

    • Bài toán 4: Tính điểm trung bình của 3 môn Toán, Lý, Tin
    • Bài toán 5: Bài toán điều khiển Rô-bốt nhặt rác
    • Bài toán 6: Lập bảng điểm của các bạn trong lớp

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

    Để giải quyết được một bài toán cụ thể, người ta cần xác định bài toán, tức là xác định rõ các điều kiện cho trướckết quả thu được.

    Ví dụ xác định các bài toán sau:

    Bài toán 3: Tính diện tích hình tam giác

    BƯỚC ĐẦU giải bài toán Tin học 8

    • Điều kiện cho trước: Một cạnh và đường cao tương ứng với cạnh đó
    • Kết quả cần thu được: Diện tích hình tam giác

    1.2. Quá trình giải bài toán trên máy tính

    • Thuật toán là dãy hữu hạn các thao tác cần thực hiện để giải một bài toán
    • Giải bài toán trên máy tính nghĩa là đưa cho máy tính dãy hữu hạn các thao tác đơn giản (thuật toán) để máy tính thực hiện và cho kết quả
    • Chương trình chỉ là thể hiện của thuật toán trong một ngôn ngữ lập trình cụ thể

    Ví dụ Bài toán điều khiển rô-bốt nhặt rác:

    1. Tiến 2 bước;

    2. Quay trái, tiến 1 bước;

    3. Nhặt rác;

    4. Quay phải, tiến 3 bước;

    5. Quay trái, tiến 2 bước;

    6. Bỏ rác vào thùng;

    b. Quá trình giải bài toán trên máy tính

    BƯỚC ĐẦU giải bài toán Tin học 8

    Hình 1. Quá trình giải bài toán trên máy tính

    Quá trình giải bài toán trên máy tính gồm 3 bước:

    • Xác định bài toán:
      • Xác định thông tin đã cho (Input)
      • Thông tin cần tìm (Output)
    • Mô tả thuật toán: Tìm cách giải bài toán và diễn tả bằng các lệnh cần phải thực hiện
    • Viết chương trình: Dựa vào mô tả thuật toán, ta viết chương trình bằng một ngôn ngữ lập trình

    1.3. Thuật toán và mô tả thuật toán

    Mô tả thuật toán là liệt kê các bước cần thiết để giải một bài toán

    b. Các ví dụ

    Ví dụ 1: Thuật toán pha trà mời khách

    • Input: Trà, nước sôi, ấm và chén
    • Output: Chén trà đã pha để mời khách

    Các bước thực hiện để pha trà mời khách:

    • Bước 1. Tráng ấm chén bằng nước sôi.
    • Bước 2. Cho một ít trà vào ấm.
    • Bước 3. Tráng trà
    • Bước 4. Rót nước sôi vào ấm và đợi 3 – 4 phút
    • Bước 5. Rót trà ra chén để mời khách

    Ví dụ 2: Thuật toán "Làm món trứng tráng"

    • Input: Trứng, dầu ăn, muối, hành
    • Output: Món trứng tráng

    Các bước thực hiện để làm món trứng tráng:

    • Bước 1. Đập trứng, tách vỏ và cho trứng vào bát
    • Bước 2. Cho một chút muối và hành tươi thái nhỏ vào bát trứng. Dùng đũa quấy mạnh cho đến khi đều
    • Bước 3. Cho một thìa dầu ăn vào chảo, đun nóng đều rồi đổ trứng vào. Đun tiếp trong khoảng 1 phút
    • Bước 4. Lật mặt trên của miếng trứng úp xuống dưới. Đun tiếp trong khoảng 1 phút
    • Bước 5. Lấy trứng ra đĩa

    1.4. Một số ví dụ về thuật toán

    Ví dụ 3: Một hình A được ghép từ một hình chữ nhật với chiều rộng 2a, chiều dài b và một hình bán nguyệt ban kính a như hình dưới đây:

    BƯỚC ĐẦU giải bài toán Tin học 8

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

    • Input: Số a là \(\frac{1}{2}\) chiều rộng của hình chữ nhật và là bán kính của hình bán nguyệt, b là chiều dài của hình chữ nhật
    • Output: Diện tích của hình A

    Mô tả thuật toán:

    • Bước 1. Tính \(S_{1} = 2a \times b\)        {Tính diện tích hình chữ nhật}
    • Bước 2. Tính  \(S_{2} = \pi a^{2}/2\)       {Tính diện tích hình bán nguyệt}
    • Bước 3. Tính kết quả \(S = S_{1} + S_{2}\); Và kết thúc

    Ví dụ 4: Viết thuật toán tính tổng 100 số tự nhiên đầu tiên

    BƯỚC ĐẦU giải bài toán Tin học 8

    • S = 0;
    • S1 = S + 1;
    • S2 = S1 + 2;
    • S3 = S2 + 3;
    • ...
    • S100 = S99 + 100

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

    • Input: Dãy 100 số tự nhiên đầu tiên
    • Output: Giá trị của tổng 1 + 2 + ... + 100

    Mô tả thuật toán:

    • Bước 1. SUM \(\leftarrow\) 0; i \( \leftarrow\) 0
    • Bước 2. i \( \leftarrow\) i + 1
    • Bước 3. Nếu i \(\leq\) 100, thì SUM \( \leftarrow\) SUM + 1 và quay lại Bước 2
    • Bước 4. Thông báo kết quả và kết thúc thuật toán

    Mô phỏng thuật toán với số liệu cụ thể:

    Bước

    1 2 3 4 5 6
    i 1 2 3 4 5 6
    \(i \leq N\) Đ Đ Đ Đ Đ S
    SUM 1 3 6 10 15 Kết thúc

    Ví dụ 5: Đổi giá trị của hai biến x, y

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

    • Input: Hai biến x, y có giá tri tương ứng là a và b
    • Output: Hai biến x, y có giá trị tương ứng là b và a

    Mô tả thuật toán:

    • Bước 1. \(z \leftarrow a\) {Sau bước này giá trị của z sẽ bằng a}
    • Bước 2. \(x\leftarrow y\) {Sau bước này giá trị của x sẽ bằng b}
    • Bước 3. \(y \leftarrow z\) {Sau bước này giá trị của y sẽ bằng giá trị của z, chính là a, giá trị ban đầu của biến x}

    Ví dụ 6: Cho hai số thực a, b. Hãy cho biết kết quả so sánh hai số đó dưới dạng "a lớn hơn b", "a nhỏ hơn b" hoặc "a bằng b"

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

    • Input: hai số thực a và b
    • Output: kết quả so sánh

    Mô tả thuật toán:

    • Bước 1. Nếu a >b, kết quả là "a lớn hơn b" và chuyển đến Bước 3
    • Bước 2. Nếu a < b, kết quả là "a nhỏ hơn b"; ngược lại, kết quả là "a bằng b"
    • Bước 3. Kết thúc thuật toán

    Ví dụ 7: Tìm số lớn nhất trong  dãy A các số: \(a_{1}, a_{2},...,a_{n}\)

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

    • Input: dãy A các số \(a_{1},a_{2},...a_{n}\space (n\geq1)\)
    • Output: Giá trị MAX = max       \(\left\{a_{1},a_{2},...,a_{n}\right\}\)

    Mô tả thuật toán:

    • Bước 1. \(MAX \leftarrow a_{1}; \space i\leftarrow 1 \)
    • Bước 2. \( i \leftarrow i + 1 \)
    • Bước 3. nếu i > n, chuyển đến bước 5
    • Bước 4. Nếu \(a_{i} > MAX, \space MAX \leftarrow a_{i} \). Quay lại bước 2
    • Bước 5. Kết thúc thuật toán