SKKN Hệ thống giải bài trực tuyến nhập môn lập trình với C++
Hiện tại chất lượng việc dạy học Tin học ở nhà trƣờng THCS và THPT trong cả nƣớc nói chung, tỉnh Nghệ An nói riêng còn ở mức độ khá thấp, tuy đã được chú trọng, song trình độ giáo viên còn hạn chế, việc tìm tòi kiến thức còn
gặp nhiều khó khăn trong xu thế liên tục đổi mới công nghệ nói chung và bộ môn Tin học nói riêng. Lập trình là một phần rất quan trọng trong nội dung chương trình bộ môn Tin học hiện tại và cả nội dung chương trình Giáo dục phổ
thông 2018, là mạch kiến thức quan trọng nhất trong 3 mạch kiến thức của Tin học bao gồm: CS, ICT, DL.
gặp nhiều khó khăn trong xu thế liên tục đổi mới công nghệ nói chung và bộ môn Tin học nói riêng. Lập trình là một phần rất quan trọng trong nội dung chương trình bộ môn Tin học hiện tại và cả nội dung chương trình Giáo dục phổ
thông 2018, là mạch kiến thức quan trọng nhất trong 3 mạch kiến thức của Tin học bao gồm: CS, ICT, DL.
Algorithm with C++
MỤC LỤC
MỤC LỤC............................................................................................................ 1
PHẦN I – ĐẶT VẤN ĐỀ ................................................................................... 11
2.1.1. Giới thiệu về laptrinhphothong.vn ............................................................ 13
2.1.2. Hƣớng dẫn sử dụng cho quản trị viên....................................................... 14
2.1.2.1. Nhập nội dung bài tập mới..................................................................... 14
2.1.2.2. Nhập các test case của bài tập................................................................ 15
2.1.2.3. Kiểm tra lại trƣớc khi publish ................................................................ 15
2.1.2.1. Đăng ký sử dụng .................................................................................... 16
2.1.2.2. Đăng nhập và giải bài............................................................................. 17
2.2.1. Các nguyên tắc xây dựng .......................................................................... 19
2.2.2. Các bƣớc xây dựng.................................................................................... 21
A. KIẾN THỨC GHI NHỚ ............................................................................. 24
1. Khung chƣơng trình của C++ ...................................................................... 24
2. Các lệnh vào ra............................................................................................. 24
B. CÁC VÍ DỤ MẪU ...................................................................................... 24
C. BÀI TẬP ÁP DỤNG................................................................................... 25
Bài 1.1 – (N0101A) Nhập xuất..................................................................... 25
Bài 1.2 – (N0102A) Tính toán 1................................................................... 25
Bài 1.3 – (N0103A) Tính toán 2................................................................... 26
Bài 1.4 – (N0104A) Tính toán 3................................................................... 26
Bài 1.5 – (N0105A) Tính toán 4................................................................... 26
Bài 1.6 – (N0106A) Tính toán 5................................................................... 26
Bài 1.7 – (N0107B) Căn n ............................................................................ 27
1
Algorithm with C++
Bài 1.14 – (N0114B) Phép chia.................................................................... 28
Bài 1.15 – (N0115C) Tổ hợp ........................................................................ 29
Bài 1.5 – (N0105A) Tính toán 4................................................................... 30
Bài 1.7 – (N0107B) Căn n ............................................................................ 31
Bài 1.9 – (N0109B) Tổng lẻ ......................................................................... 31
Bài 1.14 – (N0114B) Phép chia.................................................................... 32
Bài 1.15 – (N0115C) Tổ hợp ........................................................................ 32
A. KIẾN THỨC GHI NHỚ ............................................................................. 34
1. Cấu trúc rẽ nhánh if...................................................................................... 34
2. Cấu trúc rẽ nhánh if else .............................................................................. 34
3. Cấu trúc switch............................................................................................. 34
B. CÁC VÍ DỤ MẪU ...................................................................................... 34
C. BÀI TẬP ÁP DỤNG................................................................................... 36
Bài 2.1 – (N0201A) Chẵn lẻ......................................................................... 36
Bài 2.2 – (N0202A) Chia hết......................................................................... 36
Bài 2.4 – (N0204A) Số lớn hơn 1.................................................................. 36
2
Algorithm with C++
Bài 2.9 – (N0209A) Số nhỏ nhất 1 ................................................................ 38
Bài 2.13 – (N0213B) Số nhỏ nhì .................................................................. 39
Bài 2.16 – (N0216D) Ngày sinh ................................................................... 40
Bài 2.16 – (N0216C) Ngày sinh ................................................................... 42
A. KIẾN THỨC GHI NHỚ ............................................................................. 44
1. Cấu trúc vòng lặp for ................................................................................... 44
2. Cấu trúc vòng lặp while ............................................................................... 44
3. Cấu trúc vòng lặp do while .......................................................................... 44
B. CÁC VÍ DỤ MẪU ...................................................................................... 44
C. BÀI TẬP ÁP DỤNG................................................................................... 46
Bài 3.1 – (N0301A) Dấu sao ........................................................................ 46
Bài 3.1 – (N0302A) Số tự nhiên................................................................... 46
Bài 3.2 – (N0303A) Dấu thăng..................................................................... 46
Bài 3.3 – (N0304A) Dấu đô la...................................................................... 47
Bài 3.4 – (N0305B) Số không ....................................................................... 47
3
Algorithm with C++
Bài 3.5 – (N0306B) Giai thừa....................................................................... 47
Bài 3.7 – (N0308B) Dãy số 1 ....................................................................... 48
Bài 3.8 – (N0309C) Dãy số 2 ....................................................................... 48
Bài 3.13 – (N0313B) Tổng mũ ba ................................................................... 49
Bài 3.3 – (N0303A) Dấu đô la...................................................................... 50
Bài 3.5 – ( N0305B) Giai thừa...................................................................... 50
Bài 3.8 – (N0308C) Dãy số 2 ....................................................................... 51
A. KIẾN THỨC GHI NHỚ ............................................................................. 53
1. Khai báo mảng ............................................................................................. 53
2. Cách sử dụng................................................................................................ 53
B. CÁC VÍ DỤ MẪU ...................................................................................... 53
C. BÀI TẬP ÁP DỤNG................................................................................... 54
Bài 4.1 – (N0401A) Giá trị nhỏ nhất ............................................................... 54
Bài 4.2 – (N0402A) Tổng mảng ...................................................................... 55
Bài 4.3 – (N0403A) Tổng lẻ ............................................................................ 55
Bài 4.4 – (N0404B) Giá trị lớn nhất ................................................................ 55
Bài 4.5 – (N0405B) Giá trị lẻ nhỏ nhất............................................................ 56
Bài 4.7 – (N0407A) Tổng trị tuyệt đối ............................................................ 56
Bài 4.9 – (N0409A) Số thuộc đoạn.................................................................. 57
4
Algorithm with C++
Bài 4.12 – (N0412B) Sắp xếp.......................................................................... 58
Bài 4.14 – (N0414C) Quicksort....................................................................... 59
Bài 4.16 – (N0416A) Chia hết cho 3 ............................................................... 60
Bài 4.18 – (N0418B) Chia hết 3 và 5............................................................... 60
Bài 4.20 – (N0420C) Trộn mảng ..................................................................... 61
Bài 4.21 – (N0421D) Phần tử trung vị............................................................. 62
Bài 4.5 – (N0405A) Giá trị lẻ nhỏ nhất ........................................................... 62
Bài 4.14 – (N0414B) Quicksort....................................................................... 64
Bài 4.20 – (N0420C) Trộn mảng ..................................................................... 65
Bài 4.21 – (N0421D) Phần tử trung vị............................................................. 65
A. KIẾN THỨC GHI NHỚ ............................................................................. 67
1. Khái niệm ma trận........................................................................................ 67
2. Khai báo mảng hai chiều.............................................................................. 67
3. Cách sử dụng................................................................................................ 67
B. CÁC VÍ DỤ MẪU ...................................................................................... 68
C. BÀI TẬP ÁP DỤNG................................................................................... 69
Bài 5.1 – (N0501A) In ma trận ........................................................................ 69
5
Algorithm with C++
Bài 5.10 – (N0510B) Tích hai ma trận ............................................................ 73
Bài 5.10 – (N0510B) Tích hai ma trận ............................................................ 75
A. KIẾN THỨC GHI NHỚ ............................................................................. 78
1. Hai kiểu xâu trong C++................................................................................ 78
2. Khai báo và sử dụng..................................................................................... 78
B. CÁC VÍ DỤ MẪU ...................................................................................... 78
C. BÀI TẬP ÁP DỤNG................................................................................... 80
Bài 6.1 – (N0601A) Độ dài xâu....................................................................... 80
Bài 6.2 – (N0602A) Đếm ký tự........................................................................ 80
Bài 6.3 – (N0603A) Ký tự hoa......................................................................... 80
Bài 6.4 – (N0604A) Ký tự số........................................................................... 80
Bài 6.5 – (N0605B) Xâu đối xứng................................................................... 81
Bài 6.6 – (N0606B) Tổng chữ số..................................................................... 81
Bài 6.7 – (N0607B) Đếm số từ ....................................................................... 81
Bài 6.8 – (N0608B) Loại bỏ chữ số................................................................ 81
Bài 6.10 – (N0610C) Mã hóa 1....................................................................... 82
Bài 6.11 – (N0611C) Mã hóa 2....................................................................... 82
Bài 6.12 – (N0612D) Mã hóa 3 ...................................................................... 83
Bài 6.6 – (N0606B) Tổng chữ số..................................................................... 83
Bài 6.7 – (N0607B) Đếm số từ ....................................................................... 84
6
Algorithm with C++
Bài 6.10 – (N0610C) Mã hóa 1....................................................................... 85
Bài 6.11 – (N0611C) Mã hóa 2....................................................................... 85
A. KIẾN THỨC GHI NHỚ ............................................................................. 87
1. Lệnh đồng bộ tệp và vào ra chuẩn ............................................................... 87
B. CÁC VÍ DỤ MẪU ...................................................................................... 87
C. BÀI TẬP ÁP DỤNG................................................................................... 88
Bài 7.1 – (N0701A) Số âm............................................................................... 88
A. KIẾN THỨC GHI NHỚ ............................................................................. 91
1. Cấu trúc rẽ nhánh if...................................................................................... 91
2. Cấu trúc rẽ nhánh if else .............................................................................. 91
3. Cấu trúc switch............................................................................................. 92
B. CÁC VÍ DỤ MẪU ...................................................................................... 93
C. BÀI TẬP ÁP DỤNG................................................................................... 97
Bài 8.1 – (N0801A) Tổng các chữ số .............................................................. 97
7
Algorithm with C++
2. Sử dụng kiểu struct..................................................................................... 103
B. CÁC VÍ DỤ MẪU .................................................................................... 104
C. BÀI TẬP ÁP DỤNG................................................................................. 106
A. KIẾN THỨC GHI NHỚ ........................................................................... 110
2. Thuật toán kiểm tra số nguyên tố............................................................... 111
3. Giải thuật sàng nguyên tố........................................................................... 112
B. CÁC VÍ DỤ MẪU .................................................................................... 112
C. BÀI TẬP ÁP DỤNG................................................................................. 114
Bài 10.3 – (N1003B) Số đặc biệt.................................................................. 114
Bài 10.4 – (N1004C) Số bin bon .................................................................. 115
Bài 10.6 – (N1006A) Cơ số k ....................................................................... 115
Bài 10.7 – (N1007B) Ƣớc............................................................................. 116
8
Algorithm with C++
Bài 10.3 – (N1003B) Số đặc biệt.................................................................. 119
Bài 10.4 – (N1004C) Số bin bon .................................................................. 119
Bài 10.7 – (N1007B) Ƣớc............................................................................. 121
CHƢƠNG 11 – ĐỆ QUY ................................................................................. 127
1. Khái niệm đệ quy....................................................................................... 127
2. Ví dụ minh họa........................................................................................... 127
3. Một số ứng dụng của đệ quy...................................................................... 128
B. CÁC VÍ DỤ MẪU .................................................................................... 129
C. BÀI TẬP ÁP DỤNG................................................................................. 132
Bài 11.1 – (N1101A) Số tập con.................................................................... 132
Bài 11.6 – (N1106B) Liệt kê tổ hợp .............................................................. 134
9
Algorithm with C++
Bài 11.11– (N1111D) Số mũ 1 ...................................................................... 136
Bài 11.12 – (N1112E) Số mũ 2..................................................................... 136
Bài 11.13 – (N1113E) Số mũ 3..................................................................... 136
Bài 11.14 – (N1114E) Quân hậu................................................................... 136
Bài 11.6 – (N1105B) Liệt kê tổ hợp .............................................................. 138
Bài 11.11 – (N1111D) Số mũ 1 .................................................................... 141
Bài 11.12 – (N1112E) Số mũ 2..................................................................... 142
Bài 11.13 – (N1113E) Số mũ 3..................................................................... 143
Bài 11.14 – (N1114E) Quân hậu................................................................... 143
KẾT LUẬN....................................................................................................... 145
TÀI LIỆU THAM KHẢO................................................................................. 146
10
Algorithm with C++
PHẦN I – ĐẶT VẤN ĐỀ
1.1. Lý do chọn đề tài
Theo Chƣơng trình giáo dục phổ thông 2018 đƣợc Bộ Giáo dục và Đào
tạo ban hành kèm Thông tƣ số 32/2018/TT-BGDĐT ngày 26/12/2018, môn Tin
học có triết lý cốt lõi tạo ra một thế hệ mới có tƣ duy áp dụng công nghệ trong
giải quyết các vấn đề thực tế. Vì vậy, những kiến thức về phần giải thuật và lập
trình đóng vai trò rất quan trọng trong chƣơng trình tin học ở bậc THPT.
Hiện tại chất lƣợng việc dạy học Tin học ở nhà trƣờng THCS và THPT
trong cả nƣớc nói chung, tỉnh Nghệ An nói riêng còn ở mức độ khá thấp, tuy đã
đƣợc chú trọng, song trình độ giáo viên còn hạn chế, việc tìm tòi kiến thức còn
gặp nhiều khó khăn trong xu thế liên tục đổi mới công nghệ nói chung và bộ
môn Tin học nói riêng. Lập trình là một phần rất quan trọng trong nội dung
chƣơng trình bộ môn Tin học hiện tại và cả nội dung chƣơng trình Giáo dục phổ
thông 2018, là mạch kiến thức quan trọng nhất trong 3 mạch kiến thức của Tin
học bao gồm: CS, ICT, DL.
Hiện tại phần lập trình trong SGK Tin học cơ bản đang minh họa bằng
ngôn ngữ lập trình Pascal. Đây là ngôn ngữ có nhiều đóng góp trong lịch sử phát
triển của Tin học thế giới. Tuy nhiên, với xu thế phát triển của thời đại 4.0, ngôn
ngữ Pascal không còn đƣợc hỗ trợ nhiều và chính thức bị Tổ chức Olympic Tin
học Quốc tế đƣa ra ngoài danh sách ngôn ngữ lập trình trong nhà trƣờng phổ
thông từ năm 2020.
Trƣớc nhu cầu học tập của học sinh theo chƣơng trình giáo dục phổ thông
2018 và hỗ trợ giáo viên có công cụ giảng dạy tốt nhập môn lập trình, chúng tôi
thiết kế “Hệ thống giải bài trực tuyến nhập môn lập trình với C++” với từng
chƣơng và các bài tập vận dụng từ thấp đến cao theo hệ thống đánh giá Bloom.
1.2. Mục đích nghiên cứu
Nghiên cứu một số vấn đề khó khăn gặp phải khi giảng dạy lập trình trong
nhà trƣờng phổ thông và đƣa ra giải pháp xây dựng một hệ thống bài tập và một
công cụ E-learning đi kèm.
Nghiên cứu hệ thống đánh giá Bloom (2001) từ đó tạo ra hệ thống bài tập
phân loại theo 6 mức: Nhớ, Hiểu, Vận dụng, Phân tích, Đánh giá, Sáng tạo.
11
Tải về để xem bản đầy đủ
Bạn đang xem 11 trang mẫu của tài liệu "SKKN Hệ thống giải bài trực tuyến nhập môn lập trình với C++", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- skkn_he_thong_giai_bai_truc_tuyen_nhap_mon_lap_trinh_voi_c.pdf