1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Giáo án Tin học 11 - Bài tập và thực hành 2

8 21 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 111,86 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

If…then dạng đủ, nếu điều kiện không đúng thì thực hiện lệnh thứ hai, sau đó mới thoát khỏi tổ chức rẽ nh¸nh vµ thùc hiÖn c©u lÖnh tiÕp theo của chương trình.. - NhËn xÐt bµi lµm cña häc[r]

Trang 1

BàI TậP Và THựC HàNH 2

Ngày soạn: …………

Ngày giảng: ………

Người soạn: ………

I Mục đích – yêu cầu

1 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ố

2 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ử

III Chuẩn bị của Giáo viên và Học sinh

II Hoạt động dạy và học

1 ổn định lớp

- Kiểm tra sĩ số: Tổng số: Vắng:

Có phép: Không phép:

2 Triển khai bài mới

Hoạt động của giáo viên Hoạt động của học sinh

I Tóm tắt lí thuyết

1 Câu lệnh rẽ nhánh

- Lắng nghe và ghi bài

Trang 2

a Dạng thiếu:

If <điều kiện > Then <câu lệnh>;

b Dạng đủ:

If < điều kiện 1> Then <câu lệnh1>

Else <câu lệnh 2>;

2 Cấu trúc lặp

a Lặp với số lần chưa biết trước

While <điều kiện> Do <câu lệnh>;

b Lặp với số lần biết trước

Dạng tiến:

For <biến đếm>:= <giá trị đầu> To

<giá trị cuối> Do <câu lệnh>;

Dạng lùi:

For <biến đếm> := <giá trị cuối>

DownTo <giá trị đầu> Do <câu lệnh>;

Chữa bài tập:

Bài 1(Sgk_Tr50): Gọi một học sinh

đọc đầu bài và trả lời câu hỏi đó?

Đề bài: Hãy cho biết sự giống và khác

nhau của hai dạng câu lệnh If…then

- Giống nhau: cùng là tổ chức rẽ nhánh, khi gặp một điều kiện nào đó thì lựa chọn thực hiện thao tác thích hợp

- Khác nhau: trong câu lệnh If…then dạng thiếu, nếu điều kiện không

đúng thì thoát khỏi tổ chức rẽ nhánh,

và thực hiện câu lệnh tiếp theo của chương trình; còn trong câu lệnh

Trang 3

If…then dạng đủ, nếu điều kiện không đúng thì thực hiện lệnh thứ hai, sau đó mới thoát khỏi tổ chức rẽ nhánh và thực hiện câu lệnh tiếp theo của chương trình

- Nhận xét bài làm của học sinh sau

đó nếu thấy chỉ có một ít học sinh

làm đúng thì củng cố lại;

Bài 2(Sgk_Tr50): Gọi một học sinh

đọc đầu bài và trả lời câu hỏi đó?

Đề bài: Câu lệnh ghép là gì? Tại sao

phải có câu lệnh ghép?

- Lấy một ví dụ cụ thể về việc dùng

câu lệnh ghép cho học sinh hình

dung được trực quan hơn:

VD: Chương trình tính nghiệm của

phương trình bậc 2

TL: Câu lệnh ghép là một câu lệnh

được hình thành từ nhiều câu lệnh thành phần Câu lệnh ghép nhằm thực hiện thao tác gồm nhiều thao tác thành phần Mỗi thao tác thành phần ứng với một câu lệnh thành phần hoặc câu lệnh ghép khác Về mặt ngôn ngữ lập trình, câu lệnh ghép là một trong các yếu tố để tạo khả năng chương trình có cấu trúc

Bài 3(Sgk_Tr51): Có thể dùng câu

lệnh While…do để thay cho câu lệnh

for…do được không? Nếu được, hãy

thực hiện điều đó với chương trình

Tong_1a.

- Với thuật toán Tong_1a câu lệnh

for…do được thể hiện ở bước nào và

câu lệnh đó như thế nào?

- Thể hiện ở bước 2 và 3

- Câu lệnh:

For N:=1 to 100 do S :=S +1.0/(a+N);

- Câu lệnh trên thể hiện vòng lặp với - Có thể thay thế đoạn chương trình

Trang 4

số lần biết trước, cụ thể là 100 lần

(câu lệnh for…do dạng tiến) Vậy ta

có thể dùng câu lệnh While…do thay

cho đoạn câu lệnh For…do trên được

không? Đoạn chương trình được sau

khi thay thế như thế nào?

chứa câu lệnh for…do (dạng tiến) bằng

đoạn chương trình chứa câu lệnh While…do Đoạn chương trình như sau

i := 1;

While i<100 do Begin

S :=S +1.0/(a+N);

i := i + 1;

end;

Bài 4(Sgk_Tr51): Viết câu lệnh rẽ

nhánh tính:

a)

x y va y

x neu

x y va y

x neu y

x

y x neu y

x

z

1 5

.

0

1 1

2 2

2 2

2 2 2

2

b)

y

x

y x

z | | | |

- Sử dụng câu lệnh rẽ nhánh dạng nào?

a) Câu lệnh rẽ nhánh dạng đủ:

if (sqr(x)+sqr(y))<=1 then z:=sqr(x)+sqr(y) else

if y>=x then z:=x+y else z:=0.5;

b) Câu lệnh rẽ nhánh dạng đủ:

if (sqr(x-a)+sqr(y-b))<=sqr(r) then z:=abs(x) + abs(y)

else z:= x+y;

- Thể hiện câu lệnh đó?

- Gọi 2 học sinh lên bảng thể hiện 2

câu lệnh tương ứng với phần a) và b)

- Sử dụng câu lệnh rẽ nhánh dạng thiếu: a) If (sqr(x)+sqr(y)) <=1 then

z:=sqr(x)+Sqr(y);

If (sqr(x)+sqr(y)>1) and (y>=x) then z:= x+y;

If (sqr(x)+sqr(y)>1) and (y<x) then z:=0.5;

b) if (sqr(x-a)+sqr(y-b))<=sqr(r) then z:=abs(x) + abs(y);

Trang 5

if (sqr(x-a)+sqr(y-b))>sqr(r) then z:= x+y;

- Nhận xét bài của hai em Để từ đó

chỉ ra đựơc những lỗi hay mắc phải

của HS

Lưu ý: Lỗi mà HS hay mắc phải là:

thiếu ngoặc ở trong từng vế của phép

toán đặt trong câu lệnh If…then

- Gọi một em HS nhận xét để nhằm

nêu bật được tiện lợi khi dùng lệnh

dạng đủ và lệnh dạng thiếu với bài

này và một số bài khác

Bài 5(Sgk_Tr51): Lập trình tính:

 50

n n

n

Y

!

1

! 2

1

! 1

1 1

)

n n

e

khi < 2 x 10-6

!

1

n

Đưa giá trị e(n) ra màn hình

Gợi ý:

a)

51

50

4

3 3

2 2

1 1

50

1



n n

n

Y

- Xác định câu lệnh ở đây là câu lệnh

gì? Số lần thực hiện của câu lệnh đó?

- Viết câu lệnh đó

- Câu lệnh lặp biết trước số lần lặp

- Lặp với số lần n=50

- Câu lệnh:

For n:=1 to 50 do Y:=Y+n/(n+1);

- Gọi học sinh lên bảng viết chương Program Bai5_a;

Trang 6

trình hoàn chỉnh Var Y: real;

n: byte;

Begin Y:=0;

For n:=1 to 50 do Y:=Y+n/(n+1); Writeln(‘Ket qua:’,Y:14:6);

Readln End

b) Điều kiện dừng củ bài toán < 2

!

1

n

x 10-6 hay <2*1E-6

!

1

n

- Xác định câu lệnh ở đây là câu lệnh

gì? Số lần thực hiện của câu lệnh đó?

- Viết câu lệnh đó

- Câu lệnh lặp chưa biết trước số lần

- Sử dụng thêm biến s để lưu trữ giá trị

!

1

n

- Câu lệnh:

While s>=2*1E-6 do Begin

n:=n+1;

s:=s*(1/n);

e:=e+s;

end;

- Gọi học sinh lên bảng viết chương

trình

Program Bai5_b;

Var n : longint;

e, s : real;

Begin

s := 1/2;

n := 2;

e := 2 + s;

While s>=2*1E-6 do Begin

Trang 7

s:=s*(1/n);

e:=e+s;

end;

Writeln(‘Gia tri e(n) la:’,e:10:6); Readln

End

- Nhận xét và hoàn thiện chương

trình của học sinh

Bài 6(Sgk_Tr51): Lập trình giải bài

toán cổ:

Vừa gà vừa chó

Bó lại cho tròn

Ba mươi sáu con

Một trăm chân chẵn

Hỏi có bao nhiêu con mỗi loại?

- Xác định Input, Output của bài toán - Input: tổng số gà, chó; tổng số chân

- Output: số gà, số chó

- Vì gà + chó = 36 con nên biết số gà

sẽ suy ra được số chó

- Gọi số gà là x -> số chó sẽ là 36–x,

số chân là: 2x+4(36-x)

- Ta cần tìm những giá trị x thoả mãn

2x+4(36-x)=100

- Vậy x có thể nhận những giá trị

nào? Để thử điều kiện của bài toán có

thể sử dụng câu lệnh nào để biểu

- TL: x có thể nhận các giá trị từ 1

đến 35, hữu hạn nên ta có thể sử dụng cấu trúc lặp xác định trước số

Trang 8

diễn được? lần để thử từng trường hợp của x.

- Câu lệnh:

For x:=1 to 35 do

If 2*x+4*(36-x)=100 then Writeln(‘So ga:’,x,’So cho:’,36-x);

- Gọi học sinh lên bảng viết chương

trình hoàn chỉnh

Program Bai6;

Var x:byte;

Begin For x:=1 to 35 do

If 2*x+4*(36-x)=100 then Writeln(‘So ga:’,x,’So cho:’,36-x); Readln

End

- Trường hợp ngược lại nếu ta đặt số

chó là x, vậy có tìm được kết quả

không? Vòng lặp ở đây thực hiện bao

nhiêu lần?

- Trường hợp nếu ta đặt số chó là x thì số gà sẽ là 36-x Hoàn toàn thu

được kết quả như trên Vì chó có 4 chân nên x có thể nhận các giá trị từ

1 đến 24 Vòng lặp giảm đi 10 lần

- Vậy sử dụng cách nào tối ưu? - Nên sử dụng cách đặt số chó là x sẽ

tối ưu vì giảm được số lần lặp, tiết kiệm thời gian và bộ nhớ

IV Củng cố và dặn dò Học sinh

- Giáo viên nhận xét khâu chuẩn bị bài và học bài của các em và nhấn mạnh những điểm mà các em hay m

-Về nhà các em làm lại cho hoàn chỉnh các chương trình đã chữa và chuẩn bị các bài sau: bài 7, 8 trang 51

Ngày đăng: 01/04/2021, 22:34

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w