Bài giảng Kỹ thuật lập trình: Chương 3.1 - Trường Đại học Ngoại ngữ - Tin học TP.HCM
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Chương 3.1 - Trường Đại học Ngoại ngữ - Tin học TP.HCM KỸ THUẬT LẬP TRÌNH CƠ BẢN Khoa Công nghệ thông tinTrường Đại học Ngoại ngữ - Tin học TP.HCM (HUFLIT)Nội dung• Kỹ thuật giá trị lính canh• Kỹ thuật đặt biến cờ• Kỹ thuật mảng đánh dấu trạng thái• Kỹ thuật mảng đếm• Kỹ thuật sắp xếp• Kỹ thuật tìm kiếm 2Nội dung• Kỹ thuật vòng lặp không xác định• Kỹ thuật prefix sums• Kỹ thuật sliding window• Kỹ thuật two pointers• Kỹ thuật robot đi trên lưới• Kỹ thuật stack và queue• Kỹ thuật đệ quy 3Các kiến thức đã học• Các câu lệnh • Câu lệnh Tuần tự • Câu lệnh Rẽ nhánh • Câu lệnh Lặp• Cấu trúc dữ liệu • Vô hướng (scalar) • Danh sách (array) • Bảng (table/matrix)• Hàm 4Mục tiêu của kỹ thuật lập trình• Mục tiêu cơ bản • Tổ chức dữ liệu phù hợp, sáng tạo trên những dữ liệu đã học • Định hướng tìm lời giải cho bài toán cơ bản• Để đạt được mục tiêu, chúng ta sẽ • Khai thác các câu lệnh, các cấu trúc dữ liệu, hàm đã học • Điều khiển được từng câu lệnh • Hiểu rõ một số ứng dụng tiềm ẩn của cấu trúc dữ liệu đơn giản 5KỸ THUẬT GIÁ TRỊ LÍNH CANHTính toán bằng vòng lặp• Ý tưởng của tính toán bằng Vòng lặp • Thực hiện nhiều lần cùng một tính toán • Qua mỗi bước lặp, giá trị tính toán sẽ tiệm cận giá trị mục tiêu for (int i=0; iTính toán bằng vòng lặp• Một số vấn đề phát sinh trong vòng lặp • Điều khiển được số lần lặp • Thu nhận giá trị (trạng thái) phát sinh trong vòng lặp• Điều khiển số lần lặp: có 2 phương pháp • Điều khiển số lần lặp dựa trên bộ đếm (counter) Counter-controlled iteration • Điều khiển số lần lặp dựa trên giá trị lính canh (sentinel value) Sentinel-controlled iteration 8Counter-controlled iteration• Bài toán điểm trung bình: Một lớp học có 10 sinh viên làm một bài kiểm tra. Điểm của các bài kiểm tra có giá trị từ 0 đến 10. Hãy xác định điểm trung bình của bài kiểm tra này• Ý tưởng: Điểm trung bình = tổng điểm / số sinh viên • Nhập mỗi điểm, lưu tổng các điểm nhập vào • Thực hiện tính trung bình • In kết quả 9Counter-controlled iteration• Chương trình int total=0; int gradeCounter=1; while (gradeCounterCounter-controlled iteration• Các bước sử dụng Counter-controlled iteration • Bước 1. Xác định số lần lặp tối đa • Bước 2. Dùng một biến counter để đếm số lần lặp của vòng lặp• Mẫu chương trình Counter-controlled iteration int counter=1; while (counterCounter-controlled iteration• Vòng lặp for được thiết kế để triển khai counter- controlled iteration hiệu quả for (int counter=0; counterSentinel-controlled iteration• Bài toán điểm trung bình: Phát triển ứng dụng tính điểm trung bình với số lượng sinh viên tùy ý trong mỗi lần chạy int total=0; int gradeCounter=1; while (gradeCounterSentinel-controlled iteration• Giá trị lính canh Giá trị lính canh (sentinel) là một giá trị đặc biệt (trong ngữ cảnh cụ thể của thuật toán) được dùng để kết thúc một tiến trình (vòng lặp/hàm đệ quy)• Nhận xét • Giá trị lính canh (sentinel): còn gọi là signal value, dummy value • Giá trị lính canh không được trùng với dữ liệu của chương trình • Tùy theo bài toán sẽ có cách chọn giá trị lính canh phù hợp 14Sentinel-controlled iteration• Bài toán điểm trung bình: Phát triển ứng dụng tính điểm trung bình với số lượng sinh viên tùy ý trong mỗi lần chạy• Ý tưởng: • Người dùng nhập tất cả các điểm số mong muốn • Sau đó người dùng nhập sentinel value để xác nhận không còn điểm để nhập • Chương trình phát hiện giá trị sentinel người dùng đã nhập • Chương trình tính điểm trung bình 15Sentinel-controlled iteration• Chương trình int total=0; int gradeCounter=0; int grade = Convert.ToInt32(Console.ReadLine()); while (grade != -1) { total = total + grade; gradeCounter += 1; grade = Convert.ToInt32(Console.ReadLine()); } double average = total / gradeCounter; Console.Write(average); 16Sentinel-controlled iteration • Giá trị sentinel: −??• Nhận xét • Tiến trình sẽ dừng khi gặp giá trị lính canh • Sentinel được dùng trong vòng lặp khi không thể xác định số lần thực hiện 17Sentinel-controlled iteration• Các bước sử dụng Sentinel-controlled iteration • Bước 1. Xác định giá trị lính canh (không được lẫn lộn với giá trị củ ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật lập trình Kỹ thuật lập trình Cấu trúc dữ liệu Điều khiển số lần lặp Bài toán điểm trung bìnhTài liệu cùng danh mục:
-
Tìm hiểu về lỗi tràn bộ đệm (Buffer Overflow)
5 trang 364 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 345 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 7 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
16 trang 335 0 0 -
180 trang 274 0 0
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 253 0 0 -
173 trang 248 2 0
-
Bài giảng Phân tích thiết kế và giải thuật - Chương 2: Kỹ thuật thiết kế giải thuật
80 trang 245 0 0 -
Kiến thức phần cứng máy tính - Sửa chữa nâng cấp và cài đặt máy tính xách tay Tập 2
483 trang 243 3 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 243 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 6 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
12 trang 240 0 0
Tài liệu mới:
-
Đề tập huấn thi THPT Quốc gia môn tiếng Anh năm 2019 - Sở GD&ĐT Bắc Ninh - Mã đề 322
4 trang 0 0 0 -
Đề tập huấn thi THPT Quốc gia môn tiếng Anh năm 2019 - Sở GD&ĐT Bắc Ninh - Mã đề 315
4 trang 0 0 0 -
Đề tập huấn thi THPT Quốc gia môn tiếng Anh năm 2019 - Sở GD&ĐT Bắc Ninh - Mã đề 302
4 trang 0 0 0 -
Đề thi học kì 1 môn Ngữ văn lớp 6 năm 2021-2022 có đáp án - Trường THCS Thượng Thanh
4 trang 0 0 0 -
Đề thi giữa học kì 1 môn Toán lớp 11 năm 2022-2023 - Trường THPT Nguyễn Hữu Huân
3 trang 0 0 0 -
Bài giảng Động lực học công trình - Trường Đại học Kỹ thuật Công nghiệp
123 trang 3 0 0 -
Bài giảng học phần Địa chất công trình - Trường Đại học Kỹ thuật Công nghiệp
77 trang 1 0 0 -
142 trang 0 0 0
-
Bài giảng học phần Công nghệ gia công cơ 4 – Đại học Kỹ thuật Công nghiệp
64 trang 0 0 0 -
Bài giảng Bảo dưỡng và sửa chữa máy công nghiệp - Trường Đại học Kỹ thuật Công nghiệp
70 trang 0 0 0