1. Trang chủ
  2. » Giáo án - Bài giảng

SKKN Tin - Một số kinh nghiệm chuyển bài toán lập trình Pascal sang lập trình Scratch

12 65 3

Đ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 12
Dung lượng 0,97 MB

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

Nội dung

SKKN Tin học THCS

Trang 1

I LÝ DO CHỌN ĐỀ TÀI

Lập trình Pascal là một môn học có thể tạo cho học sinh tính tư duy sáng tạo

và tinh thần làm việc độc lập cao Tuy nhiên với cách lập trình bằng cách viết câu lệnh quá phức tạp và giao diện đồ họa giản đơn như hiện nay đã làm cho Pascal trở nên khó khăn và xa lạ đối với người sử dụng nhất là học sinh

Bên cạnh đó ngôn ngữ lập trình Scratch là một môi trường lập trình ứng dụng đặc biệt, trong đó việc “viết” lệnh sẽ được thực hiện bằng thao tác “kéo thả” Thực tế đã chứng minh tính hấp dẫn của môi trường lập trình kéo thả như Scratch,

sự đam mê lập trình của trẻ nhỏ Scratch vô cùng thích hợp cho cấp Tiểu học, Trung học cơ sở của Việt Nam Chính vì vậy trong Chương trình đổi mới giáo dục của Việt Nam sau năm 2018, Bộ Giáo dục & Đào tạo đã quyết định đưa nội dung kiến thức Khoa học máy tính trong môn Tin học vào ngay từ cấp Tiểu học, và những ngôn ngữ lập trình kéo thả như Scratch sẻ là một lựa chọn tốt cho nhà trường và học sinh Những năm gần đây lập trình Scratch được chọn để tổ chức các kỳ thi Tin học trẻ không chuyên cấp Quốc gia

Để giải được bài toán với ngôn ngữ lập trình Scratch thì chúng ta cần trang

bị cho mình những kiến thức cơ bản về Scratch, chuyển những kiến thức lập trình

đã học sang lập trình Scratch Vì vậy tôi chọn đề tài: “ Một số kinh nghiệm chuyển bài toán lập trình Pascal sang lập trình Scratch”.

1 Nhiệm vụ của cá nhân

Trong đề tài này đầu tiên tôi tìm hiểu xem lập trình Scratch là gì, cách sử dụng như thế nào Kế đó tôi nghiên cứu các kiến thức cơ bản để giải bài toán đơn giản bằng lập trình Scratch Cuối cùng là chuyển các bài toán từ lập trình Pascal đã

có sang lập trình Scratch

2 Thực trạng trong phạm vi công việc

Trong quá trình giảng dạy lập trình Pascal trong nhà trường tôi thấy rằng Pascal khó sử dụng, học sinh viết câu lệnh sai cú pháp, chưa yêu thích môn học

Trong khi đó lập trình Scratch là một môi trường lập trình trực quan, sinh động, dễ sử dụng, ít sai lỗi cú pháp và tạo được niềm đam mê nghiên cứu cho người học

Sratch rất thích hợp để tạo ra các ứng dụng đồ hoạ, hiệu ứng, bài học, bài giảng, mô phỏng kiến thức, trình diễn, sách điện tử, trò chơi, rất phù hợp với nhà trường, giáo viên và học sinh

II NHỮNG GIẢI PHÁP ĐÃ THỰC HIỆN

1 Kiến thức để lập trình với Scratch:

Nhằm giúp cho người học có đủ khả năng chuyển bài toán lập trình Pascal sang lập trình Scratch thì người học phải trang bị cho mình một số kiến thức cơ bản về lập trình Scratch Trong nội dung này tôi chỉ đề cập đến những kiến thức về

xử lý số, xử lý xâu kí tự và các lệnh lệnh cơ bản trong lập trình Scratch

Trang 2

PASCAL SCRATCH Ý NGHĨA

Write(‘Nhập n=’);

Readln(n);

Nhập giá trị từ bàn phím cho biến n

số nguyên

Div

<

=

>

Bé hơn Bằng Lớn hơn

Trang 3

OR

NOT

Và Hoặc Phủ định

a có n phần tử

Delete(a,1,1);

Insert(‘10’,a,2);

Thực hiện trên xâu kí tự Thêm giá trị 10 vào vị trí 2 của mảng a

Length(a)

If <Điều kiện> Then

If <Điều kiện> Then

<Câu lệnh 1>

Else <Câu lệnh 2>;

Câu lệnh điều kiện dạng đủ

Trang 4

If <Điều kiện1> Then

<Câu lệnh 1>

Else If <Điều kiện 2> Then

<Câu lệnh 2>

Else <Câu lệnh 3>;

Câu lệnh điều kiện dạng lồng

(lặp n lần) For i:=1 to n do

trước

thoả điều kiện

2 Cách chuyển bài toán Pascal sang Scratch:

2.1 Bài 1: Tính tổng

Viết chương trình nhập vào hai số nguyên a, b Tính tổng của hai số a,b và

in kết quả tổng ra màn hình

* Thuật toán:

Bước 1 : Nhập giá trị a

Bước 2 : Nhập giá trị b

Bước 3 : Tính tổng hai số a, b

Bước 4 : In tổng ra màn hình và kết thúc

Trang 5

Var a,b,tong:Integer;

Begin

Write('Nhap a='); Readln(a);

Write('Nhap b='); Readln(b);

tong:=a+b;

Write('Tong=',tong);

End

2.2 Bài 2: So sánh

Viết chương trình nhập vào hai số a, b bất kì So sánh hai số a, b Nếu a<b thì in ra màn hình “a nhỏ hơn b” Nếu a lớn hơn b thì in ra màn hình “a lớn hơn b” Nếu a=b thì in ra màn hình “a bằng b”

* Thuật toán:

Bước 1: Nhập giá trị a

Bước 2: Nhập giá trị b

Bước 3: Nếu a>b thì thông báo “a lớn hơn b” và kết thúc Nếu a<b thì thông báo “a nhỏ hơn b” và kết thúc Ngược lại thông báo “a bằng b” và kết thúc

Var a,b:Real;

Begin

Write('Nhap a='); Readln(a);

Write('Nhap b='); Readln(b);

If a>b Then Write(a,'Lon hon',b)

Else If a<b Then Write(a,'Nho hon',b)

Else Write(a,'Bang',b);

End

2.3 Bài 3: Xâu đảo ngược

Viết chương trình nhập vào xâu s In ra màn hình xâu đảo ngược của xâu s

* Thuật toán:

Bước 1: Nhập giá trị xâu s

Bước 2: Gán giá trị i bằng chiều dài của xâu s (i=Length(s))

Bước 3: Lặp i lần, tại mỗi vòng lặp in s[i], giảm i 1 đơn vị và kết thúc

Trang 6

PASCAL SCRATCH

Var s:String;

i:Integer;

Begin

Write('Nhap s='); Readln(s);

For i:=Length(s) Downto 1 Do

Write(s[i]); End

2.4 Bài 4: Tính tổng các số chẳn từ 1 đến n

Viết chương trình nhập vào số nguyên dương n tính tổng các số chẳn từ 1 đến n In giá trị tổng ra màn hình

* Thuật toán:

Bước 1: Nhập giá trị n

Bước 2: Lặp n lần, tại mỗi vòng lặp kiểm tra giá trị biến i Nếu i chia hết cho

2 thì cộng i vào biến tổng Tăng giá trị i lên 1 đơn vị

Bước 3: In tổng ra màn hình và kết thúc

Var i,n,tong:Integer;

Begin

Write('Nhap n=');

Readln(n);

For i:=1 To n Do

If i Mod 2=0 Then

tong:=tong+i;

write('Tong=',tong);

End

2.5 Bài 5: Tính tổng các chữ số của số nguyên n

Viết chương trình nhập vào số nguyên n Tính tổng các chữ số của n

* Thuật toán:

Bước 1: Nhập giá trị n

Bước 2: Trong khi n≠0 thì lặp, du=n Mod 10, nguyen=n Div 10, tong=tong+du, n=nguyen

Bước 3: In tổng ra màn hình và kết thúc

Trang 7

While n<>0 Do

Begin

du:=n Mod 10 ;

tong:=tong+du ;

nguyen:=n Div 10 ;

n:=nguyen ;

End ;

2.6 Bài 6: Chuyển đổi thời gian (Bài 2 đề thi học sinh giỏi cấp huyện 2017 - 2018 )

Viết chương trình chuyển đổi thời gian định dạng 12 giờ (AM/PM ) thành thời gian định dạng 24 giờ

* Thuật toán:

Bước 1: Nhập giá trị xâu s chứa thời gian hh:mm:ssAM hoặc hh:mm:ssPM Bước 2: Nếu s=12:00:00AM thì in ra thông báo 00:00:00 và kết thúc Nếu s=12:00:00PM thì in ra thông báo 12:00:00 và kết thúc Nếu s[9]=P và s[10]=M thì hh=s[1]+s[2], chuyển hh thành số và cộng 12 Kết hh với s từ vị trí 3 đến 8, in s và kết thúc Ngược lại in s từ vị trí 1 đến 8 và kết thúc

SCRATCH

Trang 8

2.7 Bài 7: Tổng các ước (Bài 3 đề thi học sinh giỏi cấp huyện 2017 - 2018 )

Viết chương trình tính tổng các ước của các ước số nguyên n

* Thuật toán:

Bước 1: Nhập giá trị n

Bước 2: Lặp n lần tại mỗi vòng lặp thứ i, nếu n chia hết cho i thì lặp i lần tại mỗi vòng lặp thứ j, nếu i chia hết cho j thì tong=tong+j

Bước 3: In tổng ra màn hình và kết thúc

Trang 9

Var n,i,j,tong:Longint;

Begin

Write('Nhap n=');

readln(n);

For i:=1 To n Do

If n Mod i=0 Then

For j:=1 To i Do

If i Mod j=0 then

tong:=tong+j;

write(tong);

End

2.8 Bài 8: Công tắc đèn (Bài 4 đề thi học sinh giỏi cấp huyện 2017 - 2018 )

Viết chương trình xác định xem đèn có được bật sáng hay không Đèn được bật sáng khi có ít nhất hai công tắc được bật và không nằm cạnh nhau Dấu “+” là bật, dấu “-“ là “tắt”

* Thuật toán:

Bước 1: Nhập giá trị xâu s

Bước 2: Lặp Length(s) lần Tại mỗi vòng lặp nếu s[i]=+ thì bat=bat+1 Nếu s[i]=+ và s[i+1]=+ thì tat=1

Bước 3: Nếu bat>1 and tat=0 thì in ra màn hình thông báo On Ngược lại in

ra màn hình thông báo Off

Bước 4: Kết thúc

Trang 10

Var s:String;

bat,tat,i:Integer;

Begin

Write('Nhap s=');

readln(s);

For i:=1 To Length(s) Do

Begin

If s[i]='+' Then

bat:=bat+1;

If(s[i]='+')And(s[i+1]='+')

Then

tat:=1;

End;

If(bat>1)And(tat=0) Then

Write('On')

Else Write('Off');

End

2.9 Bài 9: Tổng gần nhất (Bài 5 đề thi học sinh giỏi cấp huyện 2017 - 2018 )

Cho tập hợp A chứa n số nguyên dương phân biệt và số nguyên T.Viết chương trình tìm trong A hai số nguyên phân biệt có tổng gần với số T nhất

* Thuật toán:

Bước 1: Nhập giá trị n, t

Bước 2: Nhập giá trị cho n phần tử mảng a

Bước 3: min=|(a[1]+a[2])-t|, tong=a[1]+a[2]

Bước 4: Lặp n-1 lần

Bước 4.1: Tại mỗi vòng lặp thứ i, j=i+1

Bước4.2: Lặp n-i lần, tại mỗi vòng lặp thứ j nếu min>|(a[i]+a[j])-t| thì min=| a[i]+a[j]-t| và tong=a[i]+a[j]

Bước 5: In tổng ra màn hình và kết thúc

Trang 11

Var n,t,i,j,min,tong:integer;

a:array[1 1000] of integer;

Begin

Write('Nhap n=');

readln(n);

Write('Nhap t=');

Readln(t);

For i:= 1 to n do

Begin

Write('Nhap pt thu',i);

Readln(a[i]);

End;

min:=abs(a[1]+a[2]-t);

tong:=a[1]+a[2];

For i := 1 To n-1 Do

For j:=i+1 To n Do

If abs(a[i]+a[j]-t)<min then

Begin

min:= abs(a[i]+a[j]-t);

tong:=a[i]+a[j];

End;

Write(tong);

End

III HIỆU QUẢ ĐẠT ĐƯỢC

Trang 12

Đối với giáo viên đổi mới cách lập trình truyền thống viết câu lệnh sang lập trình kéo thả Trang bị một số kiến thức cơ bản về cách sử dụng, cách giải bài toán bằng ngôn ngữ lập trình kéo thả Giúp giáo viên đáp ứng được chương trình đổi mới giáo dục sau năm 2018 của môn Tin học

Đồi với học sinh Scratch rất dễ sử dụng, môi trường lập trình trực quan sinh động, giao diện đẹp, khi lập trình không bị lỗi cú pháp Từ đó khơi dậy sự đam mê nghiên cứu lập trình của các em học sinh

IV BÀI HỌC KINH NGHIỆM

Để áp dụng đề tài này vào việc giảng dạy môn Tin học có hiệu quả nhất thì bản thân giáo viên phải trang bị cho mình các kiến thức cơ bản về cách sử dụng, cách lập trình giải bài toán bằng ngôn ngữ lập trình Scratch

V KẾT LUẬN

1 Kết luận

Ngày nay, việc ứng dụng Tin học vào tất cả các lĩnh vực là một điều tất yếu Trong lĩnh vực Giáo dục, môn Tin học đã được đưa vào giảng dạy từ bậc Tiểu học đến Trung học phổ thông Tuy nhiên với chương trình học lập trình hiện nay thì việc tiếp thu và tự nghiên cứu của học sinh về môn học này còn hạn chế Nhằm khơi dậy sự đam mê, hứng thú, yêu thích, tự nghiên cứu môn Tin học thì chúng ta cần phải thay đổi môi trường lập trình “viết” câu lệnh sang môi trường lập trình

“kéo thả” Ngôn ngữ lập trình Scratch hoàn toàn đáp ứng được các yêu cầu trên Bên cạnh đó Scratch đã được các nước có nền giáo dục phát triển như Anh,

Mỹ đưa vào giảng dạy môn Tin học Chương trình đổi mới giáo dục của Việt Nam sau năm 2018, Bộ Giáo dục & Đào tạo đã quyết định đưa nội dung kiến thức Khoa học máy tính trong môn Tin học vào ngay từ cấp Tiểu học, và những ngôn ngữ lập trình kéo thả như Scratch sẻ là sự lựa chọn tốt nhất

2 Đề xuất

Tôi mong rằng trong tương lai, tổ chuyên môn Tin học của huyện cần tổ chức nhiều chuyên đề hoặc tập huấn về lập trình Scratch, để tất cả giáo viên có cơ hội trao đỏi, học hỏi kinh nghiệm, nâng cao trình độ chuyên môn./

Nhị Bình, ngày 06 tháng 03 năm 2018

Người viết

Trần Quốc Nhịn

Ngày đăng: 04/07/2021, 23:50

TỪ KHÓA LIÊN QUAN

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

w