SKKN Giúp học sinh tiếp cận một số bài toán số học, xử lý xâu bằng ngôn ngữ lập trình c++ nhằm nâng cao chất lượng học sinh giỏi môn tin học thpt

Giá:
100.000 đ
Môn: Tin học
Lớp: 11
Bộ sách:
Lượt xem: 357
Lượt tải: 9
Số trang: 54
Tác giả: Đặng Thị Thu Thủy
Trình độ chuyên môn: Thạc sĩ giáo dục
Đơn vị công tác: THPT Phan Đăng Lưu
Năm viết: 2019-2020
Số trang: 54
Tác giả: Đặng Thị Thu Thủy
Trình độ chuyên môn: Thạc sĩ giáo dục
Đơn vị công tác: THPT Phan Đăng Lưu
Năm viết: 2019-2020

Sáng kiến kinh nghiệm “SKKN Giúp học sinh tiếp cận một số bài toán số học, xử lý xâu bằng ngôn ngữ lập trình c++ nhằm nâng cao chất lượng học sinh giỏi môn tin học thpt triển khai gồm các biện pháp nổi bật sau:

Biện pháp 1: Tìm UCLN bằng phương pháp trừ
Biện pháp 2: Tìm UCLN sử dụng thuật toán Euclid
Biện pháp 3: Tìm UCLN bằng hàm có sẵn trong C/C++
Biện pháp 4: Kiểm tra số chính phương bằng vòng lặp
Biện pháp 5: Kiểm tra số chính phương bằng vòng lặp

Mô tả sản phẩm

Phần 1. ĐẶT VẤN ĐỀ
1. Lý do chọn đề tài
Sự phát triển mạnh mẽ như vũ bão của tin học đã làm cho xã hội có nhiều nhận thức mới về cách tổ chức các hoạt động. Nhiều quốc gia trên thế giới ý thức được rất rõ tầm quan trọng của tin học và có những đầu tư lớn cho lĩnh vực này, đặc biệt trong giáo dục nâng cao dân trí về tin học và đào tạo nguồn nhân lực có chất lượng cao. Người Việt Nam có nhiều tố chất thích hợp với ngành khoa học này, vì thế chúng ta hi vọng có thể sớm hoà nhập với khu vực và trên thế giới.
Tin học ngày càng có nhiều ứng dụng trong hầu hết các lĩnh vực hoạt động của xã hội loài người. Tuy nhiên, Tin học là một môn học khó vì cơ sở của nó là toán học, bài tập rất đa dạng và phong phú, việc học sinh của trường đi thi học sinh giỏi và để giành được giải không phải là đơn giản, do vậy giáo viên phụ trách đội tuyển cần nhiều kinh nghiệm và kiến thức sát với nội dung ôn thi để nâng cao thành tích đội tuyển tham gia các đợt thi học sinh giỏi hàng năm, Và để có được kết quả tốt cần có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình và chọn một ngôn ngữ lập trình thích hợp.
Hiện nay có rất nhiều ngôn ngữ lập trình bậc cao như: Pascal, Java, Basic, C, C++,…. Tuy nhiên điều cơ bản của C++ là cho phép người lập trình hiểu và quản lí các chương trình lớn, phức tạp. Vì vậy, nó được sử dụng nhiều trong các kỳ thi học sinh giỏi Tin học.
Xuất phát từ cơ sở trên, tôi đã chọn đề tài “GIÚP HỌC SINH TIẾP CẬN MỘT SỐ BÀI TOÁN SỐ HỌC, XỬ LÝ XÂU BẰNG NGÔN NGỮ LẬP TRÌNH C++ NHẰM NÂNG CAO CHẤT LƯỢNG HỌC SINH GIỎI MÔN TIN HỌC THPT”.
2. Mục đích nghiên cứu
Qua quá trình tham gia giảng dạy, bồi dưỡng học sinh giỏi và việc nghiên cứu các vấn đề về lập trình theo từng dạng bài tập từ cơ bản đến phức tạp của ngôn ngữ lập trình C++, các tài liệu về phương pháp giảng dạy phục vụ cho việc học tập, ôn thi học sinh giỏi của học sinh cũng như giảng dạy của giáo viên, tôi đã giải các bài toán bằng ngôn ngữ lập trình C++ với hệ thống lập trình CodeBlocks. Từ đó, tôi đưa ra đề tài “Giúp học sinh tiếp cận một số bài toán số học, xử lý xâu bằng ngôn ngữ lập trình C++ nhằm nâng cao chất lượng học sinh giỏi môn tin học trung học phổ thông” với mong muốn phần nào giúp học sinh cũng như giáo viên có thêm tài liệu tham khảo phục vụ cho việc học tập và giảng dạy, ôn thi HSG.
3. Đối tượng nghiên cứu
Một số bài toán số học, xử lý xâu bằng ngôn ngữ lập trình C++ nhằm nâng  cao chất lượng học sinh giỏi môn tin học trung học phổ thông.
4. Phương pháp nghiên cứu.
Kinh nghiệm bản thân qua các kỳ ôn thi HSG, nghiên cứu các tài liệu về C++ qua sách tham khảo, mạng internet, sưu tầm tài liệu, thử nghiệm thực tế, rút kinh nghiệm từ các tiết dạy bồi dưỡng HSG.
5. Phạm vi nghiên cứu
Đề tài chủ yếu nghiên cứu giải một số bài toán số học, xử lý xâu từ cơ bản đến nâng cao bằng ngôn ngữ C++.
Đề tài có khả năng áp dụng rộng rãi vào giảng dạy, bồi dưỡng học sinh giỏi Tin học cho giáo viên và học sinh THPT trên địa bàn toàn tỉnh Nghệ An.
Nghiên cứu thực tiễn và thăm dò tính cấp thiết, tính khả thi của đề tài ở một số giáo viên Tin học Trường trung học phổ thông tỉnh Nghệ An: Trường THPT Yên Thành 2, Trường THPT Nam Yên Thành, trường THPT Phan Đăng Lưu.
6. Tính mới của đề tài
– Đề tài nghiên cứu về vận dụng các kiến thức đã học về thuật toán, từ đó viết chương trình  trên ngôn ngữ lập trình C++
– Mô tả được thực trạng về vấn đề cấp thiết cho cho học sinh THPT ở cách học lập trình và lựa chọn ngôn ngữ lập trình đặc biệt là trong các kỳ thi học sinh giỏi Tỉnh.
Phần 2. NỘI DUNG ĐỀ TÀI
1. Cơ sở lý luận và thực tiễn
1.1. Cơ sở lí luận:
C++ được biết đến như là ngôn ngữ mới bao trùm lên C và do Bjarne Stroustrup sáng tác ra vào năm 1980 tai bang New Jersey, Mĩ. Lúc đầu ông đặt tên là “C với các lớp”, tuy nhiên đến năm 1983 thì ông đổi tên thành C++. Trong C++ chẳng những đưa vào tất cả các khái niệm, công cụ của lập trình hướng đối tượng mà còn đưa vào nhiều khả năng mới mẻ cho hàm. Nó có một thư viện hàm chứa mã đối tượng cho những hàm đã được tạo sẵn. Những hàm này thực hiện các tác vụ thường dùng như nhập  một chuổi  ký  tự từ bàn phím (gets()), tính căn bậc hai (sqrt()), …
mà chương trình được viết có thể sử dụng mà không phải viết lại.
1.2. Cơ sở thực tiễn:
Qua thực tế giảng dạy ở trường THPT các năm qua, tôi nhận thấy khi học đến chương trình NNLT tin học lớp 11 đa số học sinh đều nhận xét bộ môn này rất khó.  Tuy nhiên cũng có một số lượng không nhỏ học sinh rất yêu thích tin học và thích tìm hiểu một số bài toán, cách giải các bài toán bằng NNLT. Trong chương trình phổ thông NNLT Pascal đang được giảng dạy cho HS khối 11, nhưng tôi thấy NNLT C++  rất thuận tiện và có nhiều lợi thế khi dạy bồi dưỡng học sinh giỏi và giúp học sinh giải các bài toán phức tạp thuận tiện hơn. Ngoài ra trong các đề thi học sinh giỏi tỉnh các năm qua, chủ đề xâu dữ liệu là một nội dung trọng tâm, đa số đề thi đều có các dạng bài thuộc kiểu xâu, bài toán số học: Số bạn bè, số thân thiện, số đẹp….Vì vậy tôi đã đầu tư nghiên cứu các nội dung, các dạng bài tập và mạnh dạn viết về đề tài này.
2. Nội dung vấn đề nghiên cứu
Ví dụ: Bài tập đơn giản “Chương trình Hello World” Viết ra màn hình dòng chữ Hello world
#include <iostream>
using namespace std;
int main()
{
cout << “Hello world!” << endl;
return 0;
}
Kết quả chương trình:

Một chương trình C++ cơ bản thường được bắt đầu bởi dòng include khai báo thư viện, sau đó là hàm main.
int , long
Có rất nhiều kiểu dữ liệu trong C++, đối với các bạn mới bắt đầu và để làm các bài tập cơ bản thì nên tìm hiểu trước về kiểu dữ liệu , long
long , float , double, long double , char , string
,

2.1 BÀI TẬP SỐ HỌC
2.1.1 BÀI TẬP VỀ ƯỚC CHUNG LỚN NHẤT (UCLN)
Bài 1: Nhập vào 2 số nguyên A và B, viết chương trình tìm ước chung lớn nhất của 2 số đó.
Trong bài này chúng ta có thể sử dụng cách giải tìm ước chung lớn nhất trong C++, bằng cách sử dụng thuật toán loại trừ hoặc thuật toán Euclid hoặc bằng hàm __gcd có sẵn trong thư viện algorithm của C++
Ví dụ
Input  :  A = 20, B = 15
Output :  5

* Tìm UCLN bằng phương pháp trừ
Ý tưởng của thuật toán này là trừ hai số A và B cho nhau tới khi hai số này bằng nhau. Lúc này ta sẽ tìm được UCLN của 2 số. Các bước triển khai thuật toán sẽ như sau:
– Kiểm tra A hoặc B có bằng 0 hay không? Nếu bằng 0 trả về UCLN là A+B. Dừng chương trình.
– Lặp cho tới khi A = B. Với mỗi vòng lặp thì biến biến max(A, B) = giá trị

* Tìm UCLN sử dụng thuật toán Euclid
Giải thuật Euclid, hay Thuật toán Euclid là một giải thuật giúp tính UCLN của hai số một cách hiệu quả.
Thuật toán Euclid
Thuật toán Euclid là một giải thuật giúp chúng ta tìm ước chung lớn nhất của 2 số. Nó được triển khai dựa trên tính chất của UCLN đó là UCLN(A, B) = UCLN(B, A%B).
Ý tưởng triển khai thuật toán này sẽ quy nạp cho tới khi A % B = 0.

Kết quả chương trình: 5
-> Đây là cách tối ưu để giải các bài toán với dữ liệu lớn.
* Tìm UCLN bằng hàm có sẵn trong C/C++
Ngoài cách tự viết các hàm tìm uớc chung lớn nhất, chúng ta còn có thể sử dụng hàm __gcd có sẵn trong thư viện algorithm của C/C++. Chương trình:

Kết quả chương trình: 5
Đây là cách nhanh nhất để giải bài toán trong C/C++, ngoài tìm ước chung lớn nhất thư viện algorithm còn có nhiều hàm hỗ trợ khác cho giải các bài toán như max, min, sort,…
Bài 2:
Cho dãy A gồm N số tự nhiên. Tìm ước chung lớn nhất của dãy số đó.
– Dữ liệu vào gồm:
+ Dòng thứ nhất là số nguyên dương N  + Các dòng tiếp theo các phần tử của dãy
– Kết qua ra là  ước chung lớn nhất của dãy.   VD:   Nhap N = 5
a[0] = 3           a[1] = 6           a[2] =12           a[3] =15           a[4] =9

Chương trình:

Kết quả chương trình:

2.1.2 BÀI TẬP VỀ CẤP SỐ CỘNG
Bài 1. Viết chương trình nhập số nguyên dương N và dãy số nguyên A1, A2, A3, …,An. Kiểm tra xem dãy vừa nhập có phải là cấp số cộng hay không, Nếu đúng thì ghi số 1, ngược lại ghi số 0.
Ví dụ:
Dữ liệu vào Kết quả
Dữ liệu vào Kết quả
5
3 5 7 9 11 1 6
1 3 5 6 8 10  0

 

0/5 (0 Reviews)
0/5 (0 Reviews)

TÀI LIỆU LIÊN QUAN

SKKN Hệ thống bài tập rèn luyện kĩ năng sử dụng cấu trúc lặp trong dạy học lập trình cho học sinh trung học phổ thông
10.11
TIN HỌC
4.5/5

100.000 

10
TIN HỌC
4.5/5

100.000 

10
TIN HỌC
4.5/5

100.000 

10
Tin học
4.5/5

100.000 

Theo dõi
Thông báo của
guest
Phản hồi nội tuyến
Xem tất cả bình luận
Set your categories menu in Theme Settings -> Header -> Menu -> Mobile menu (categories)
Shopping cart

KẾT NỐI NGAY VỚI KIẾN EDU

Chúng tôi luôn sẵn sàng lắng nghe và đưa ra giải pháp phù hợp nhất cho vấn đề của bạn.

0886945229

Email

kienedu.com@gmail.com

Đây chỉ là bản XEM THỬ - khách hàng vui lòng chọn mua tài liệu và thanh toán để nhận bản đầy đủ

TẢI TÀI LIỆU

Bước 1: Chuyển phí tải tài liệu vào số tài khoản sau với nội dung: Mã tài liệu

Chủ TK: Ngô Thị Mai Lan

STK Agribank: 2904281013397 Copy
* (Nếu khách hàng sử dụng ngân hàng Agribank thì chuyển tiền vào STK Agribank để tránh bị lỗi treo giao dịch)
STK TPbank: 23665416789 Copy
tài khoản tpbank kienedu

Bước 2: Gửi ảnh chụp giao dịch vào Zalo kèm mã tài liệu để nhận tài liệu qua Zalo hoặc email

Nhắn tin tới Zalo Kiến Edu (nhấn vào đây để xác nhận và nhận tài liệu!)