Bài giảng Nhập môn lập trình - Bài 1: Giới thiệu - Ngô Hữu Dũng
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn lập trình - Bài 1: Giới thiệu - Ngô Hữu Dũng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_nhap_mon_lap_trinh_bai_1_gioi_thieu_ngo_huu_dung.pdf
Nội dung text: Bài giảng Nhập môn lập trình - Bài 1: Giới thiệu - Ngô Hữu Dũng
- TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Nhập môn lập trình Tổng quan TS. Ngô Hữu Dũng
- Bài 1 – Giới thiệu Blog ngohuudung.blogspot.com Email ngohuudung@iuh.edu.vn 2 Nhập môn lập trình - Tổng quan
- Nội dung Tổng quan lập trình Các thành phần cơ bản Nhập xuất dữ liệu và các thư viện Các câu lệnh có cấu trúc Lệnh lựa chọn - rẽ nhánh Thuật toán Vòng lặp Hàm – chương trình con Kiểu dữ liệu mảng Chuỗi ký tự 3 Nhập môn lập trình - Tổng quan
- Tài liệu Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language (Second Edition). Prentice-Hall. Englewood Cliffs, New Jersey, 1988. Slide, bài giảng Bài tập thực hành Bản dịch tiếng Việt: Giáo trình Ngôn ngữ lập trình C Tham khảo thêm Phạm Văn Ất. Kỹ thuật lập trình C. NXB Khoa học và Kỹ thuật, 1995 Randal E.Bryant and David R.O’Hallaron. Computer’s Perspective, 2001 Bjarne Stroustrup. The C++ Programming Language, AT&T Labs Murray Hill, New Jersey Addison-Wesley, 1997. Andy Oram and Greg Wilson, Beautiful Code, 2007 cplusplus.com 4 Nhập môn lập trình - Tổng quan
- Lịch trình Lý Thực Kiểm Tuần Nội dung Tự học thuyết hành tra 1 Giới thiệu môn học 2 4 Các thành phần cơ bản của Ngôn ngữ C 4 2 2 Nhập xuất dữ liệu và các thư viện 4 3 Các câu lệnh có cấu trúc 2 6 10 4 Vòng lặp – thuật toán 2 6 TK 10 5 Hàm – chương trình con 2 6 GK 10 6 Mảng 2 6 10 7 Mảng và chuỗi 2 6 10 8 Ôn tập 1 6 8 9 6 6 10 6 6 11 6 6 12 6 6 15 60 94 5 Nhập môn lập trình - Tổng quan
- Kiểm tra đánh giá Lý thuyết Kiểm tra thường kỳ Thực hành Kiểm tra thường kỳ Thi giữa kỳ Thi cuối kỳ Điểm liệt: <3 Số tín chỉ: 3 Lý thuyết: 15 Thực hành: 60 Tự học: 94 6 Nhập môn lập trình - Tổng quan
- Thảo luận What? Why? How? 7 Nhập môn lập trình - Tổng quan
- Một số gợi ý Bám sát các nội dung thực hành (quan trọng!) Đọc tài liệu, slide trước khi đến lớp In tài liệu, slide, bài tập Tự đặt câu hỏi và trả lời Tự làm bài tập ở nhà Tóm tắt các nội dung chủ yếu Vắng học? 8 Nhập môn lập trình - Tổng quan
- Chương trình? 1. /* Xuất ra màn hình dòng chữ: 2. Hello world! 3. */ 4. #include 5. int main() 6. { 7. printf("Hello world! "); 8. return 0; 9. } 9 Nhập môn lập trình - Tổng quan
- Các bước lập trình Xác định rõ yêu cầu của bài toán Lựa chọn các biến và cấu trúc dữ liệu Xây dựng giải thuật (cách giải) cho bài toán Xây dựng trình tự để giải bài toán Cài đặt (viết) chương trình và biên dịch Chạy thử và sửa lỗi Hoàn thiện và tối ưu hóa 10 Nhập môn lập trình - Tổng quan
- Ví dụ về các bước lập trình Bài toán: Nhập, tính toán, xuất Đề bài: Viết chương trình nhập vào hai số nguyên, xuất ra màn hình tổng của hai số nguyên đó. Các bước chính để giải bài toán: Xác định rõ yêu cầu của bài toán Lựa chọn các biến và cấu trúc dữ liệu Xây dựng giải thuật (cách giải) cho bài toán Xây dựng trình tự để giải bài toán Cài đặt (viết) và biên dịch chương trình Chạy thử và sửa lỗi Hoàn thiện và tối ưu hóa 11 Nhập môn lập trình - Tổng quan
- Các bước giải bài toán Xác định yêu cầu, Nhập 2 số nguyên, tính tổng, xuất ra tổng. Lựa chọn dữ liệu, Cần lưu hai số nguyên Cần lưu tổng hai số nguyên Xây dựng thuật toán và trình tự, Khai báo các biến để lưu trữ, bao nhiêu biến? Kiểu gì? Nhập vào 2 số nguyên Tính tổng Xuất kết quả Viết và biên dịch chương trình, Chạy thử và sửa lỗi 12 Nhập môn lập trình - Tổng quan
- Cấu trúc chương trình C 1. //Khai báo thư viện 2. //Chương trình chính 3. int main() 4. { 5. // Khai báo biến 6. // Nội dung chương trình 7. return 0; //Kết thúc 8. } 9. // Ghi chú: // là dấu chú thích, 10. // không ảnh hưởng đến chương trình 13 Nhập môn lập trình - Tổng quan
- Khai báo thư viện 1. #include // Thư viện stdio.h 2. // Chứa các hàm nhập xuất cơ bản 3. // stdio : standard C input output 4. // .h : header 5. //Chương trình chính 6. int main() 7. { 8. // Khai báo biến 9. // Nội dung chương trình 10. return 0; //Kết thúc 11. } 14 Nhập môn lập trình - Tổng quan
- Khai báo biến 1. #include // Thư viện 2. //Chương trình chính 3. int main() 4. { 5. // Khai báo biến 6. int x; // int: integer – số nguyên 7. int y; // Cú pháp: ; 8. int tong; // Hoặc: int x, y, tong; 9. // Nội dung chương trình 10. return 0; //Kết thúc 11. } 15 Nhập môn lập trình - Tổng quan
- Trình tự của chương trình 1. #include // Thư viện 2. //Chương trình chính 3. int main() 4. { 5. int x, y, tong; //Khai báo biến 6. // Nhập giá trị cho x và y 7. // Tính tổng 8. // Xuất ra màn hình giá trị tổng 9. return 0; //Kết thúc 10. } 16 Nhập môn lập trình - Tổng quan
- Lưu đồ thuật toán và Mã giả Dùng để biểu diễn, mô tả giải thuật Start Problem Tính tổng Read x Input x, y: Integer Read y Output tong: Integer READ x, y tong = x + y tong = x + y WRITE tong Print tong END End 17 Nhập môn lập trình - Tổng quan
- Nhập giá trị cho biến 1. #include // Thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong; //Khai báo biến 5. // Nhập giá trị cho x và y 6. scanf("%d", &x); //Nhập x 7. scanf("%d", &y); //Nhập y 8. // Tính tổng 9. // Xuất ra màn hình giá trị tổng 10. return 0; //Kết thúc 11. } 18 Nhập môn lập trình - Tổng quan
- Tính toán – Xử lý 1. #include //Khai báo thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong; //Khai báo biến 5. // Nhập giá trị cho x và y 6. scanf("%d", &x); //Nhập x 7. scanf("%d", &y); //Nhập y 8. // Tính tổng 9. tong = x + y; // Phép gán 10. // Cú pháp: = ; 11. // Xuất ra màn hình giá trị tổng 12. return 0; //Kết thúc 13. } 19 Nhập môn lập trình - Tổng quan
- Xuất ra màn hình 1. #include //Khai báo thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong; //Khai báo biến 5. // Nhập giá trị cho x và y 6. scanf("%d", &x); //Nhập x 7. scanf("%d", &y); //Nhập y 8. // Tính tổng 9. tong = x + y; // Phép gán 10. // Xuất ra màn hình giá trị tổng 11. printf("Tong la %d \n", tong); // Xuất 12. return 0; //Kết thúc 13. } 20 Nhập môn lập trình - Tổng quan
- Chương trình tính tổng tham khảo 1. #include //Khai báo thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong; //Khai báo biến 5. printf("Nhap x: "); 6. scanf("%d", &x); //Nhập x 7. printf("Nhap y: "); 8. scanf("%d", &y); //Nhập y 9. tong = x + y; //Tính tổng 10. printf("Tong la %d \n", tong); // Xuất 11. return 0; //Kết thúc 12. } 21 Nhập môn lập trình - Tổng quan
- How’s it work? 1. #include 4 7 11 2. int main() x y tong 3. { 4. int x, y, tong; 5. printf("Nhap x: "); Nhap x: 4 6. scanf("%d", &x); Nhap y: 7 7. printf("Nhap y: "); 8. scanf("%d", &y); Tong la 11 9. tong = x + y; 10. printf("Tong la %d \n", tong); 11. return 0; 12. } 22
- Nhận xét – Thư viện Thư viện Chứa các hàm đã được định nghĩa sẵn Khai báo #include #include // Nhập xuất #include // Thư viện chuẩn #include // Toán học #include // Chuỗi ký tự #include // Ký tự #include // Thời gian 23 Nhập môn lập trình - Tổng quan
- Nhận xét – Chương trình chính main Chương trình chính: Nơi chương trình bắt đầu Cần duy nhất một chương trình chính int main() { // nội dung chương trình return 0; // Kết thúc } 24 Nhập môn lập trình - Tổng quan
- Nhận xét – Biến (variable) Biến Lưu trữ dữ liệu cần thiết Giá trị có thể thay đổi Có kiểu dữ liệu cụ thể (nguyên, thực, ký tự ) Khai báo , ; int x, y, tong, hieu, tich;// Số nguyên float thuong; // Biến kiểu số thực char kyTu; // Biến kiểu ký tự char chuoi[50]; // Biến kiểu chuỗi ký tự 25 Nhập môn lập trình - Tổng quan
- Nhận xét – Nhập dữ liệu Nhập Nhập từ bàn phím giá trị cho biến Nhập đúng kiểu dữ liệu tương ứng với kiểu của biến scanf(" ", & ); scanf("%d", &x); // d: decimal scanf("%i", &y); // i: integral scanf("%f", &thuong);// f: float scanf("%c", &kyTu); // c: char scanf("%s", &chuoi); // s: string gets( ); gets(chuoi); 26 Nhập môn lập trình - Tổng quan
- Nhận xét – Tính toán Phép gán, biểu thức = ; tong = x + y; tich = x * y; thuong = (float)x/y; trungBinhCong = (x + y)/2.0; Toán tử số học +: Cộng, -: Trừ, *: Nhân, /: Chia, %: Chia lấy dư (dành cho số nguyên) 27 Nhập môn lập trình - Tổng quan
- Nhận xét – Xuất Xuất ra màn hình dòng chữ, giá trị của biến printf(" ", , ); printf("Tong: %d \n", tong); printf("Thuong: %f \n", thuong); printf("Ky tu: %c \n", kyTu); printf("Chuoi: %s \n", chuoi); 28 Nhập môn lập trình - Tổng quan
- Nhận xét – Mã giả Dùng để biểu diễn thuật toán Không nhất thiết chính xác về cú pháp Không nhất thiết tuân theo một ngôn ngữ cụ thể Ví dụ một số từ khoá: READ, WRITE, IF, ELSE, ENDIF, FOR, ENDFOR, WHILE, ENDWHILE. Mỗi lệnh hoặc mỗi bước chỉ nên viết trên một dòng Dùng thụt đầu dòng cho các lệnh có cấu trúc Kết thúc lệnh bằng ENDIF, ENDFOR 29 Nhập môn lập trình - Tổng quan
- Nhận xét – Lưu đồ thuật toán Biểu diễn thuật toán bằng sơ đồ khối Hình dạng Tên gọi Hành động Terminator Bắt đầu hoặc kết thúc chương trình Data Nhập hoặc xuất dữ liệu Process Xử lý, thực hiện một thao tác Decision Quyết định hướng xử lý theo điều kiện Flow direction Hướng đi của luồng xử lý Connector Điểm kết nối 30 Nhập môn lập trình - Tổng quan
- Hằng số Đề bài: Viết chương trình nhập vào bán kính hình tròn, xuất ra màn hình diện tích và chu vi hình tròn. Gợi ý: Hằng số PI? DT = ? r CV = ? #define PI 3.14 const int IP = 3.14; 31 Nhập môn lập trình - Tổng quan
- Hằng số - tham khảo 1. #include 2. #define PI 3.14 // PI là hằng số 3. int main() 4. { 5. float r; // Bán kính 6. float DT, CV; // Diện tích, chu vi 7. printf("Nhap ban kinh hinh tron: "); 8. scanf("%f", &r); 9. DT = PI * r * r; 10. CV = 2 * PI * r; 11. printf("Dien tich hinh tron: %.2f\n", DT); 12. printf("Chu vi hinh tron: %.2f", CV); 13. return 0; 14. } 32 Nhập môn lập trình - Tổng quan
- Một số khái niệm Thư viện – Library Xuất - Output stdio.h, math.h printf(“hello!”); Chương trình chính Phép toán – Operation int main(){ } tong = x + y; Kiểu biến – Data type int, float Toán tử - Operator Tên biến – Variable name +, -, *, / xA, xB Hằng số - Constant Chú thích - Comment #define PI 3.14 // Lời chú thích const float PI = 3.14 Nhập - Input Hàm - Function scanf(“%d”,&x); sqrt, pow, scanf, printf 33 Nhập môn lập trình - Tổng quan
- Công cụ lập trình C-Free, Dev-C, CodeBlocks, Visual Studio 34 Nhập môn lập trình - Tổng quan
- Một số trình biên dịch khác Codeblocks: Dev-C++: Visual studio: US/products/visual-studio-express-vs TurboC: windows-7-windows-8-and-windows-xp/ Eclipse: Netbeans: Ideone: Biên dịch online, hỗ trợ nhiều ngôn ngữ lập trình 35 Nhập môn lập trình - Tổng quan
- Giảng viên: Instructor 36 Nhập môn lập trình - Tổng quan
- Tự tìm hiểu nội dung môn học Thuật toán? Algorithm Các thao tác cơ bản Cách giải bài toán Nhập input Lệnh lựa chọn? Selection Xuất, output (Lệnh rẽ nhánh) Đếm, count if else, switch case Tìm kiếm, search Vòng lặp? Loop Tính toán, calculation for, while, do while Trích xuất, list Hàm? Function Liệt kê list Chương trình con Thêm, add Mảng? Array Xóa, remove Dãy số Sắp xếp sort Chuỗi ký tự 37 Nhập môn lập trình - Tổng quan
- Bài tập 1.1 – Các thao tác lập trình 38 Nhập môn lập trình - Tổng quan
- Bài tập 1.1 – Các thao tác lập trình Khởi động: Kích đôi vào biểu tượng C-Free hoặc Dev-C++ Mở tập tin mới: File New, hoặc kích vào Biểu tượng 2 Lưu file nguồn: File Save, hoặc File Save as , hoặc kích Biểu tượng 3 Gõ chương trình Hello world vào khu vực số 4 Biên dịch, chạy chương trình, dừng chương trình ở khu vực số 5 Kiểm tra và sửa lỗi biên dịch ở khu vực số 6 Xem và kiểm tra kết quả ở màn hình số 7 39 Nhập môn lập trình - Tổng quan
- Bài tập 1.2 – Tính toán Viết chương trình nhập vào hai số nguyên, xuất ra màn hình tổng, hiệu, tích, và thương của của số nguyên đó. Gợi ý: #include /*Khai báo thư viện*/ int main() //Chương trình chính { . . . // Khai báo biến . . . // Nhập . . . // Biểu thức, tính toán . . . // Xuất return 0; //Kết thúc } 40 Nhập môn lập trình - Tổng quan
- Tính tổng, hiệu, tích, thương (tham khảo 1) 1. #include /*Khai báo thư viện*/ 2. int main() //Chương trình chính 3. { 4. int x, y, tong, hieu, tich; 5. float thuong; //Khai báo 6. printf("Nhap so nguyen x: "); 7. scanf("%d", &x); //Nhập x 8. printf("Nhap so nguyen y: "); 9. scanf("%d", &y); //Nhập y 10. tong = x + y; //Biểu thức tính tổng 11. hieu = x - y; //Biểu thức tính hiệu 12. tich = x * y; //Biểu thức tính tích 13. thuong = (float)x / y; //Biểu thức tính thương 14. printf("Tong la %d \n", tong); // Xuất tổng 15. printf("Hieu la %d \n", hieu); // Xuất hiệu 16. printf("Tich la %d \n", tich); // Xuất tích 17. printf("Thuong la %f \n", thuong); // Xuất thương 18. return 0; //Kết thúc 19. } 41 Nhập môn lập trình - Tổng quan
- Tính tổng, hiệu, tích, thương (tham khảo 2) 1. #include //Khai báo thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong, hieu, tich; //Khai báo 5. float thuong; 6. printf("Nhap vao hai so nguyen: "); 7. scanf("%d%d", &x, &y); //Nhập x, y 8. tong = x + y; hieu = x - y; //Tính toán 9. tich = x * y; thuong = (float)x / y; 10. printf("%d + %d = %d \n", x, y, tong);// Xuất 11. printf("%d - %d = %d \n", x, y, hieu); 12. printf("%d * %d = %d \n", x, y, tich); 13. printf("%d / %d = %f \n", x, y, thuong); 14. return 0; //Kết thúc 15. } 42 Nhập môn lập trình - Tổng quan
- Bài tập 1.3 – Hình chữ nhật Viết chương trình nhập vào hai cạnh của hình chữ nhật, xuất ra màn hình diện tích, chu vi và chiều dài đường chéo của hình chữ nhật. a Gợi ý: Giả sử chiều dài đường chéo là c 2 2 2 DT = ? c = a + b b c = ? Tính căn bậc hai CV = ? Hàm sqrt(x) = Hàm sqrt thuộc thư viện math.h 43 Nhập môn lập trình - Tổng quan
- Hình chữ nhật (tham khảo) 1. #include 2. #include 3. int main() 4. { 5. float a, b; // Hai cạnh 6. float c; // Đường chéo 7. float dienTich, chuVi; 8. printf("Nhap hai canh: "); 9. scanf("%f%f", &a, &b); 10. dienTich = a * b; 11. chuVi = (a + b)*2; 12. c = sqrt(a*a + b*b); 13. printf("Dien tich: %f\n", dienTich); 14. printf("Chu vi: %f\n", chuVi); 15. printf("Duong cheo: %f\n", c); 16. return 0; 17. } 44 Nhập môn lập trình - Tổng quan
- Bài tập 1.4 – Khoảng cách Đề bài: Viết chương trình nhập vào tọa độ của hai điểm A(xA, yA) và B(xB, yB), xuất ra màn hình khoảng cách giữa hai điểm. A(xA, yA) Gợi ý: Thư viện math.h? Hàm sqrt tính căn bậc hai sqrt(x): Hàm pow tính lũy thừa pow(x, 2): x2 B(xB, yB) 45 Nhập môn lập trình - Tổng quan
- Khoảng cách (tham khảo) 1. #include 2. #include 3. int main() 4. { 5. float xA, yA; // A(xA, yA) 6. float xB, yB; // B(xB, yB) 7. float KC; // Khoảng cách 8. printf("Nhap A(xA, yA): "); 9. scanf("%f%f", &xA, &yA); 10. printf("Nhap B(xB, yB): "); 11. scanf("%f%f", &xB, &yB); 12. KC = sqrt(pow(xA-xB,2) + pow(yA-yB,2)); 13. printf("Khoang cach: %f\n", KC); 14. return 0; 15. } 46 Nhập môn lập trình - Tổng quan
- Bài tập 1.5 – Chữ số Viết chương trình nhập vào một số nguyên có hai chữ số, xuất ra màn hình chữ số hàng chục và chữ số hàng đơn vị của số nguyên ấy. Gợi ý: Số hàng chục: Dùng phép chia lấy phần nguyên, ví dụ: chuc = so / 10; Số hàng đơn vị: Dùng phép chia lấy dư, ví dụ donvi = so % 10; Yêu cầu: Phân biệt hai phép chia lấy dư và chia lấy nguyên 47 Nhập môn lập trình - Tổng quan