1. Trang chủ
  2. » Giáo Dục - Đào Tạo

SKKN áp dụng cách chuyển đổi giữa các hệ đếm trong tin học lớp 10 để vận dụng khi lập trình

15 419 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 133 KB

Nội dung

Lý do chọn đề tài Trong thực tiễn dữ liệu của máy tính đều phải sử dụng đến một hệ đếm nào đó, một số bài toán lập trình của Tin học lớp 11 cũng có liên quan đến hệ đếm.. Việc học sinh t

Trang 1

MỤC LỤC

1 Mở đầu 2

1.1 Lí do chọn đề tài 2

1.2 Mục đích nghiên cứu 2

1.3 Đối tượng nghiên cứu 2

1.4 Phương pháp nghiên cứu 2

1.5 Những điểm mới của SKKN 2

2 Nội dung sáng kiến kinh nghiệm 3

2.1 Cơ sở lí luận của sáng kiến kinh nghiệm 3

2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm 3

2.3 Các sáng kiến kinh nghiệm đã sử dụng để giải quyết vấn đề 3

2.4 Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với bản thân, đồng nghiệp và nhà trường

12 3 Kết luận, kiến nghị

13 3.1 Kết luận

13 3.2 Kiến nghị

13 TÀI LIỆU THAM KHẢO

14

Trang 2

1 MỞ ĐẦU

1.1 Lý do chọn đề tài

Trong thực tiễn dữ liệu của máy tính đều phải sử dụng đến một hệ đếm nào đó, một số bài toán lập trình của Tin học lớp 11 cũng có liên quan đến hệ đếm Qua quá trình tham gia giảng dạy Tin học khối 10, để HS hiểu sâu hơn về bản chất của quá trình mã hóa dữ liệu trong máy tính và cũng là tiền đề cho việc lập trình các bài toán liên quan đến các hệ đếm Tôi nhận thấy việc chuyển đổi giữa các hệ đếm trong Tin học thường gặp rất nhiều trong các bài toán lớp 10, vận dụng linh hoạt vào các bài toán lớp 11 và trong các đề thi HSG tỉnh cũng không phải là dễ Việc học sinh tìm hiểu về tất cả các hệ đếm nói chung và cách chuyển đổi giữa các hệ đếm nói riêng còn khá nhiều lúng túng bởi thời gian học phần này của lớp 10 chỉ

có 1 tiết mà còn nhiều vấn đề khác nữa nên các em nắm kiến thức chưa vững và chưa sâu Đặc biệt là những yêu cầu của các bài toán lập trình lớp 11 và đề thi HSG cấp tỉnh liên quan đến cách chuyển đổi giữa các hệ đếm học sinh thường không biết bắt đầu từ đâu để giải quyết vấn đề mà bài toán đưa ra Hơn nữa các em lớp 11 hầu như quên kiến thức cũ của lớp 10 dẫn đến kỹ năng khi làm việc với các

hệ đếm của học sinh thường không đáp ứng được yêu cầu đề ra

1.2 Mục đích nghiên cứu

Với mong muốn phần nào giúp học sinh trong việc chuyển đổi các hệ đếm một cách dễ dàng, tìm ra lời giải cho một số bài toán liên quan tới hệ đếm dễ dàng hơn, nhất là giúp cho các em học sinh có thể yêu thích nhiều hơn nữa môn Tin học, tôi

xin giới thiệu chuyên đề “Áp dụng cách chuyển đổi giữa các hệ đếm trong Tin

học lớp 10 để vận dụng khi lập trình” mà tôi đã áp dụng có hiệu quả trong quá

trình giảng dạy Chuyên đề được trình bày dựa trên kinh nghiệm giảng dạy của bản thân và tham khảo một số tài liệu liên quan

1.3 Đối tượng nghiên cứu

- Đối tượng khảo sát: Học sinh khối 11 của lớp: 11A2, 11A3, 11A6 và học sinh đội tuyển tỉnh

1.4 Phương pháp nghiên cứu

- Hình thành được kỹ năng tính toán, chuyển đổi giữa các hệ đếm trong Tin học giải các bài tập cho học sinh và có được một hệ thống kiến thức với các bài tập về các hệ đếm Phạm vi thực hiện trên các hệ đếm của Tin học

1.5 Những điểm mới của đề tài

- Học sinh sau khi được giới thiệu một cách hệ thống các dạng bài tập về cách chuyển đổi giữa các hệ đếm và quy trình giải quyết từng dạng đã có thể nhận biết yêu cầu của bài toán và cách thức giải quyết chúng một cách hiệu quả

- Hình thành ở HS kỹ năng phân tích, xử lý các vấn đề liên quan đến bài tập về

hệ đếm, sử dụng thành thạo vòng lặp biết trước, thủ tục chuẩn vào/ra đơn giản, bước đầu làm quen với 1 số chương trình con dạng thủ tục tạo điều kiện thuận lợi cho việc tiếp thu kiến thức về cách viết chương trình và bồi dưỡng HS giỏi tỉnh

Trang 3

2 NỘI DUNG

2.1 CƠ SỞ LÍ LUẬN

Ngày nay, trên thế giới đang diễn ra quá trình tin học hoá trên nhiều lĩnh vực hoạt động của xã hội loài người và đem lại nhiều hiệu quả to lớn Việc sử dụng máy tính không còn chỉ bó hẹp trong viện nghiên cứu, các trường đại học, các trung tâm máy tính mà còn mở rộng ra mọi cơ quan, tổ chức kinh tế và trong các gia đình Song song với quá trình trên, việc giảng dạy Tin học trong các trường THPT cũng được đẩy mạnh đi đôi với việc tăng cường trang bị máy vi tính Đảng

và Nhà nước ta đã nhận thấy được tầm quan trọng của ngành Tin học và đã đưa môn học này vào trường phổ thông như những môn học khác bắt đầu từ năm học 2006-2007

Trong bối cảnh toàn ngành GD-ĐT đang nỗ lực đổi mới phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh trong hoạt động học tập Điều 24.2 của Luật giáo dục đã nêu rõ: “Phương pháp giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh ” Như vậy, chúng ta có thể thấy định hướng đổi mới phương pháp dạy học đã được khẳng định, không còn là vấn đề tranh luận Cốt lõi của việc đổi mới phương pháp dạy học ở trường phổ thông là giúp học sinh hướng

dung trong đề tài này, HS có thể tự học, tự rèn luyện thông qua một số bài tập, dạng bài tập cụ thể

2.2 Thực trạng của vấn đề trước khi áp dụng sáng kiến kinh nghiệm

- Qua thực tế giảng dạy ở trường THPT Hậu Lộc 4 nhiều năm, tôi nhận thấy

khi học đến chương trình Tin học lớp 11 đa số học sinh đều cho rằng đây là môn học khó nhất trong các môn học Nhiều em còn sợ môn học này và còn khá nhiều

bỡ ngỡ khi tiếp cận với lập trình có cấu trúc, cũng như quên cách chuyển đổi giữa các hệ đếm trong Tin học ở lớp 10 Chính vì vậy, học sinh thường gặp nhiều khó khăn khi thực hiện viết chương trình pascal ở lớp 11 Từ đó dẫn đến các em không biết xử lí thế nào và bắt đầu từ đâu khi gặp các bài toán phức tạp liên quan đến chuyển đổi các hệ đếm trong Tin học Đặc biệt hơn nữa là những lớp 11 học ban cơ bản và ban xã hội của trường THPT Hậu Lộc 4 chúng tôi – một trường thuộc khu vực bãi ngang ven biển học sinh không được chịu khó lắm khi gặp các bộ môn khó

và cần tư duy logic nhiều như môn Tin học lớp 11 của Bộ GD – ĐT

2.3 Các sáng kiến kinh nghiệm đã sử dụng để giải quyết vấn đề

- Với cách chuyển đổi các hệ đếm ở bài tập pascal lớp 11 giáo viên có thể tạo sự

hứng thú cho học sinh bằng các bài tập cụ thể của cách chuyển đổi các hệ đếm ở lớp 10 Qua đó các em có thể giải các các bài toán trong thực tế, bước đầu viết được một số chương trình về chuyển đổi các hệ đếm

Trang 4

- Do đặc trưng của bộ môn nên học sinh muốn học được tốt môn Tin học cần có

được tư duy khái quát xác định được hết các khả năng của một vấn đề

- Phát triển nhân cách học sinh khi tham gia làm các bài tập về cách chuyển đổi

các hệ đếm có thể rèn luyện tính tích cực chủ động sáng tạo trang việc chọn hướng giải quyết một vấn đề cụ thể thông qua việc liệt kê các khả năng của nó

Cụ thể tôi xin đưa ra một số vấn đề mà giáo viên cần truyền đạt kỹ cho học sinh lớp 11 để các em xâu chuỗi vấn đề một cách tốt nhất, hỗ trợ cho việc viết chương trình được hoàn thiện hơn như sau:

I Một số vấn đề về hệ đếm.

1 Khái niệm hệ đếm

- Khái niệm: Hệ đếm được hiểu như là một tập các kí hiệu và quy tắc sử dụng tập kí hiệu đó

- Trong các hệ đếm:

+ Có hệ đếm mà giá trị các số phụ thuộc vào vị trí đứng, như hệ đếm thập phân

Ví dụ: 255 gồm 2 trăm, 5 chục, 5 đơn vị

+ Có hệ đếm mà giá trị các số không phụ thuộc vào vị trí đứng, như hệ đếm

La Mã

Ví dụ: IV hay VI thì I là 1, V là 5 dù đứng ở vị trí nào

2 Khái niệm về các hệ đếm trong Tin học:

- Hệ đếm thập phân (cơ số 10): Là hệ đếm gồm 10 chữ số 0, 1, 2, 3, 4, 5, 6,7,8,9

- Hệ đếm nhị phân (cơ số 2): Là hệ đếm gồm 2 chữ số 0 và 1

- Hệ đếm bát phân (cơ số 8): Là hệ đếm gồm 8 chữ số 0, 1, 2, 3, 4, 5, 6, 7

- Hệ đếm Hexa (cơ số 16): Là hệ đếm gồm 10 chữ số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

và 6 chữ cái A, B, C, D, E, F tương ứng với 6 số 10, 11, 12, 13, 14, 15

II Chuyển đổi giữa các hệ đếm trong Tin học

* Xây dựng công thức tổng quát cho việc chuyển đổi giữa các hệ đếm:

Trong hệ đếm thập phân ta có: 234=2*102 + 3*101 + 4*100

Vậy số N= dndn-1dn-2…d2d1d0,d-1d-2d-3… dm-1dm trong hệ đếm cơ số b được biểu diễn như sau:

N = dn.bn + dn-1.bn-1 + dn-2.bn-2 +…+ d-1.b-1 + d0.b0 + d-1.b-1 +d-2.b-2 + …

+ dm-1.bm-1 +dm.bm

1 Chuyển đổi biểu diễn số ở hệ thập phân sang hệ đếm cơ số khác:

Để chuyển đổi biểu diễn một số ở hệ thập phân sang hệ đếm cơ số khác, trước hết ta tách phần nguyên và phần phân rồi tiến hành chuyển đổi từng phần, sau đó ghép lại để có kết quả cần tìm

a Chuyển đổi biểu diễn phần nguyên

Cho N là số tự nhiên và b là cơ số của hệ đếm Giả sử giá trị của N được tính theo công thức: N = dnbn + dn-1bn-1 + …+ d0 (1)

Trang 5

Vì 0  d0 < b nên khi chia N cho b thì phần dư của phép chia đó là d0 còn thương số N1 sẽ là:

N1 = dnbn-1 + dn-1bn-2 + …+ d1 (2)

phép chia đó Quá trình chia như vậy được thực hiện liên tiếp và ta sẽ lần lượt nhận được giá trị các di Quá trình này sẽ dừng lại khi nhận được thương số bằng 0 Để

có biểu diễn cần tìm, các phần dư thu được cần sắp xếp theo thứ tự là dn…d0

Ví dụ: 7510 = ?2 = ?16 = ?8

Sau khi thực hiện theo cách trên ta có:

7510 = 10010112

7510 = 4B16 và 7510 = 1138

b Chuyển đổi biểu diễn phần phân:

Cho N’ là phần phân( phần sau dấu phẩy) của một số và b là cơ số của hệ đếm Giả sử N’ được tính theo công thức:

N’ = d-1b-1 + d-2b-2 + …+ d-mb-m (1’)

Nhân hai vế của (1’) với b ta được:

N’1 = d-1 + d-2b-1 + …+ d-mb-(m-1)

của kết quả là:

Lặp lại phép nhân như trên đối với (2’), ta thu được d-2 là phần nguyên Thực hiện liên tiếp phép nhân theo cách trên, cuối cùng ta thu được dãy d-1d-2 d-3 …trong

đó 0  d-i < b

Ví dụ: 0,6787510 = ?2

Thực hiện phép nhân theo cách trên, ta có kết quả:

0,6787510 = 0,101011011…2 Cũng thực hiện như trên ta có : 0,843510 = 0,D7EF…16

2 Chuyển đổi biểu diễn số giữa hệ nhị phân và hệ hexa:

Hệ nhị phân và hệ Hexa là hai hệ đếm thường dùng trong Tin học Vì 16 là lũy

hiện dễ dàng Để chuyển đổi biểu diễn số từ hệ nhị phân sang hệ đếm hexa ta áp dụng quy tắc sau:

Gộp các chữ số nhị phân thành từng nhóm bốn chữ số về hai phía kể từ vị trí phân cách phần nguyên và phần phân (các chữ số thiếu nếu có được thay thế bằng chữ số 0)

Thay mỗi nhóm bốn chữ số nhị phân bởi một kí hiệu tương ứng ở hệ hexa

Ví dụ: 1011100101,112 = ?16

Trang 6

Thay mỗi nhóm bốn chữ số nhị phân bởi một kí hiệu ở hệ hexa tương ứng: 2,

E, 5, C

Từ đó ta có: 1011100101,112 = 2E5,C16

Để chuyển đổi biểu diễn số ở hệ hexa sang hệ đếm nhị phân ta chỉ cần thay từng

kí hiệu ở hệ hexa bằng nhóm bốn chữ số tương ứng ở hệ nhị phân

Ví dụ: 3,D7EF16 = 0011,1101 0111 1110 11112

3 Chuyển từ hệ đếm cơ số 2 sang hệ đếm 10 :

Theo công thức tổng quát đã xây dựng

N = dn.bn + dn-1.bn-1 + dn-2.bn-2 +…+ d-1.b-1 + d0.b0 + d-1.b-1 +d-2.b-2 + …

+ dm-1.bm-1 +dm.bm

Với b = 2 Ta có ví dụ:

11001011,112 = 1*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 1*20

+ 1*2-1 + 1*2-2

= 128 + 64 + 0 + 0 + 8 + 0 + 2 + 1 + 0,2 + 0,02

= 203,2210

4 Chuyển từ hệ đếm cơ số 8 sang hệ đếm 10

Theo công thức tổng quát đã xây dựng

N = dn.bn + dn-1.bn-1 + dn-2.bn-2 +…+ d-1.b-1 + d0.b0 + d-1.b-1 +d-2.b-2 + …

+ dm-1.bm-1 +dm.bm

Với b = 8 Ta có ví dụ:

471,358 = 4*82 + 7*81 + 1*80 + 3*8-1 + 5*8-2

= 256 + 56 + 1 + 2,4 + 0,4

= 315,810

5 Chuyển từ hệ đếm cơ số 16 sang hệ đếm 10

Theo công thức tổng quát đã xây dựng

N = dn.bn + dn-1.bn-1 + dn-2.bn-2 +…+ d-1.b-1 + d0.b0 + d-1.b-1 +d-2.b-2 + …

+ dm-1.bm-1 +dm.bm

Với b = 16 Ta có ví dụ:

A4F,B3716 = 10*162 + 4*161 + 15*160 + 11*16-1 + 3*16-2 + 7*16-3

= 2560 + 64 + 15 + 17,6 + 0,48 + 0,112

= 2667,19210

III CÁC DẠNG BÀI TẬP THƯỜNG GẶP

1 Dạng 1: Một số bài tập củng cố kiến thức, tạo hứng thú cho HS

Bài 1: Chuyển đổi các số sau sang hệ đếm 10

b 2F516

c 1678

Trang 7

Trả lời:

a 001010102 = 0*27 + 0*26 + 1*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20

= 4210

b 2F516 = 2*162 + 15*161 + 5*160

= 75710

c 1678 = 1* 82 + 6*81 + 7*80

= 11910

Bài 2: Chuyển đổi các số sau sang hệ đếm 2

a 4210

c 178

Trả lời:

a 42 : 2 = 21 dư 0

21 : 2 = 10 dư 1

10 : 2 = 5 dư 0

5 : 2 = 2 dư 1

2 : 2 = 1 dư 0

1 : 2 = 0 dư 1 Vậy 4210 = 001010102

b B4D,C16 = 1011 0100 1101, 11002

c 17 : 2 = 8 dư 1

8 : 2 = 4 dư 0

4 : 2 = 2 dư 0

2 : 2 = 1 dư 0

1 : 2 = 0 dư 1 Vậy 178 = 100012

Bài 3: Chuyển đổi các số sau sang hệ đếm 16

b 75710

Trả lời:

a 0111, 1100 1111 00112 = 7, CF316

b 757 : 16 = 47 dư 5

47 : 16 = 2 dư 15

2 : 16 = 0 dư 2

Vậy 75710 = 2F516

2 Dạng 2: Ứng dụng cách chuyển đổi giữa các hệ đếm vào giải các bài toán lập trình lớp 11:

Trang 8

Bài 1 Số hexa

Trong toán học, lâu nay Bờm chỉ biết đến số thập phân Hôm nay, tình cờ Bờm đọc được tài liệu nói về số hexa Số hexa là số được tạo thành bởi các chữsố (0 →9) và các chữcái (A →F) Muốn chuyển đổi một số nguyên K (K ≥ 0) từ hệ thập phân sang hệ hexa Bờm làm như sau: Bờm lấy số K chia cho 16 được thương

là P, rồi lấy thương P chia cho 16 Cứ lặp lại như vậy cho đến khi nào thương bằng

0 thì dừng, sau đó viết liên tiếp phần dư từ dưới lên thì Bờm thu được số hexa:

Yêu cầu: Cho dãy số nguyên ở hệ thập phân Hãy giúp Bờm chuyển dãy số

trên thành dãy số tương ứng ở hệ hexa

Dữliệuvào: Từfilehecoso10.intgồm:

-Dòng1:Sốnguyêndươngn(n≤103)

- Dòng 2…n+1: Mỗi dòng chứa một số nguyên K (0 ≤ K ≤ 109)

Kết quả: Ghi ra file hecoso16.out gồm: n dòng là n số hexa tương ứng.

CHƯƠNG TRÌNH

uses crt;

var n,i,k:longint;

S:string;

f2,f1:text;

function chcs16(M:longint):string;

Var du:longint; He16,T:String;

Begin

He16:=' ';

Repeat

du:=M Mod 16;

If du < 10 Then Str(du, T) Else

T:=Chr(du+55);

He16:=T + He16;

M:= M Div 16;

Until M = 0;

chcs16:=he16;

End;

BEGIN

assign(f1,'hecoso10.int'); reset(f1);

readln(f1,n);

assign(f2,'hecoso16.out'); rewrite(f2);

for i:=1 to n do

begin

readln(f1,k);

writeln(f2,chcs16(k));

end;

close(f2); close(f1); END

Trang 9

Bài 2: Từ hệ cơ số 10 sang hệ cơ số 2

CHƯƠNG TRÌNH

program chuyen_cs_10_2;

uses crt;

var i,j,m,N:integer;

S:string;

F1,f2:text;

function nhiphan(n:longint):string;

var s,so,du:integer;

St,St1:string;

begin

s:=0;so:=n; St:='';St1:='';

while (so >0) do

begin

du:=so mod 2;

so:=so div 2;

if du=1 then St:=St+'1' else St:=St+'0'; end;

for i:=length(St) downto 1 do St1:=St1+St[i]; nhiphan:=St1;

end;

BEGIN

assign(f1,'hecoso10.inp'); reset(f1);

assign(f2,'hecoso2.out'); rewrite(f2);

readln(f1,N);

for j:=1 to N do

begin

readln(f1,m);

S:=nhiphan(m);

writeln(f2,S);

end;

close(f1);close(f2);

END

Bài 3: Chuyển từ hệ cơ số 2 sang hệ cơ số 10.

CHƯƠNG TRÌNH

uses crt;

var x,i,j,a,n:longint;

m:array[1 100000] of longint;

S:string;

f1,f2:text;

function luythua(n,x:longint):longint;

var m,i:longint;

Trang 10

m:=1;

for i:=1 to n do m:=m*x;

luythua:=m;

end;

BEGIN

assign(f1,'hecoso2.int'); reset(f1);

assign(f2,'hecoso10.out'); rewrite(f2);

readln(f1,n);

for i:=1 to n do

begin

readln(f1,S);

n:=0;a:=length(S);

for j:=1 to length(S) do

begin

if (S[j]='1') or (S[j]='0') then val(S[j],m[j]); n:=n+luythua(a-1,2)*m[j];

dec(a);

end;

writeln(f2,n);

end;

close(f1);close(f2);

END

Câu 4: Hệ cơ số 16 sang 10

CHƯƠNG TRÌNH

uses crt;

var x,i,a,n:longint;

S:string;

f1,f2:text;

FUNCTION luythua(n,x:longint):longint;

var m,i:longint;

begin

m:=1;

for i:=1 to n do m:=m*x;

luythua:=m;

end;

FUNCTION he10(S:string):longint;

var n,i,m,a:longint;

k:array[1 1000] of longint;

begin

n:=0;a:=length(S); i:=1;

for i:=1 to length(S) do

Trang 11

if S[i] in ['0' '9'] then val(S[i],k[i])

else

begin

if S[i]= 'A' then k[i]:=10;

if S[i]= 'B' then k[i]:=11;

if S[i]= 'C' then k[i]:=12;

if S[i]= 'D' then k[i]:=13;

if S[i]= 'E' then k[i]:=14;

if S[i]= 'F' then k[i]:=15;

end;

n:=n+luythua(a-1,16)*k[i];

dec(a);

end;

he10:=n;

end;

BEGIN

assign(f1,'hecoso16.inp'); reset(f1);

assign(f2,'hecoso10.out'); rewrite(f2);

readln(f1,n);

for i:=1 to n do

begin

readln(f1,S);

writeln(f2,he10(S));

end;

close(f1);close(f2);

END

2.4 Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với bản thân, đồng nghiệp và nhà trường .

thực hiện đề tài:

- Bảng số liệu kết quả đạt được của học sinh lớp 11 năm học 2018-2019 sau khi thực hiện đề tài:

Ngày đăng: 21/11/2019, 08:50

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
7. Turbo Pascal 7.0 PGS-TS Bùi Thế Tâm – Võ Văn Tuấn Dũng Khác
8. Giải một bài toán trên máy tính như thế nào GS-TS Hoàng Kiếm Khác
9. 101 thuật toán và chương trình Lê Văn Dũng – Trần khắc Tuấn (NXB Khoa Học Và Kĩ Thuật) Khác
10. Một số sáng kiến kinh nghiệm và ý kiến của đồng nghiệp Khác
11. Một số bài tập tham khảo trên Internet.-------------------------------------- Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w