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ự
47 trang |
Chia sẻ: phuongt97 | Lượt xem: 488 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Nhập môn lập trình - Chương 1: Tổng quan - Ngô Hữu Dũng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nhập môn lập trình
Tổng quan
TS. Ngô Hữu Dũng
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
Bài 1 – Giới thiệu
Nhập môn lập trình - Tổng quan
Blog ngohuudung.blogspot.com
Email ngohuudung@iuh.edu.vn
2
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ự
Nhập môn lập trình - Tổng quan3
Tài liệu
Nhập môn lập trình - Tổng quan
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
Lịch trình
Nhập môn lập trình - Tổng quan
Tuần Nội dung
Lý
thuyết
Thực
hành
Kiểm
tra
Tự học
1 Giới thiệu môn học 2 4
2
Các thành phần cơ bản của Ngôn ngữ C
2
4
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
Kiểm tra đánh giá
Nhập môn lập trình - Tổng quan
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
Thảo luận
Nhập môn lập trình - Tổng quan7
What?
Why?
How?
Một số gợi ý
Nhập môn lập trình - Tổng quan8
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?
Chương trình?
Nhập môn lập trình - Tổng quan9
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. }
Các bước lập trình
Nhập môn lập trình - Tổng quan10
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
Ví dụ về các bước lập trình
Nhập môn lập trình - Tổng quan11
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
Các bước giải bài toán
Nhập môn lập trình - Tổng quan12
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
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
Nhập môn lập trình - Tổng quan13
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. }
Nhập môn lập trình - Tổng quan14
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. }
Nhập môn lập trình - Tổng quan15
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. }
Nhập môn lập trình - Tổng quan16
Lưu đồ thuật toán và Mã giả
Nhập môn lập trình - Tổng quan17
Dùng để biểu diễn, mô tả giải thuật
Problem Tính tổng
Input x, y: Integer
Output tong: Integer
READ x, y
tong = x + y
WRITE tong
END
Start
End
Read x
Read y
tong = x + y
Print tong
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. }
Nhập môn lập trình - Tổng quan18
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. }
Nhập môn lập trình - Tổng quan19
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. }
Nhập môn lập trình - Tổng quan20
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. }
Nhập môn lập trình - Tổng quan21
How’s it work?
22
1. #include
2. int main()
3. {
4. int x, y, tong;
5. printf("Nhap x: ");
6. scanf("%d", &x);
7. printf("Nhap y: ");
8. scanf("%d", &y);
9. tong = x + y;
10. printf("Tong la %d \n", tong);
11. return 0;
12. }
4 7 11
x y tong
Nhap x:
Nhap y:
Tong la 11
4
7
Nhận xét – Thư viện
Nhập môn lập trình - Tổng quan23
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
Nhận xét – Chương trình chính main
Nhập môn lập trình - Tổng quan24
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
}
Nhận xét – Biến (variable)
Nhập môn lập trình - Tổng quan25
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ự
Nhận xét – Nhập dữ liệu
Nhập môn lập trình - Tổng quan26
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);
Nhận xét – Tính toán
Nhập môn lập trình - Tổng quan27
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)
Nhận xét – Xuất
Nhập môn lập trình - Tổng quan28
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);
Nhận xét – Mã giả
Nhập môn lập trình - Tổng quan29
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
Nhận xét – Lưu đồ thuật toán
Nhập môn lập trình - Tổng quan30
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
Hằng số
Nhập môn lập trình - Tổng quan31
Đề 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?
#define PI 3.14
const int IP = 3.14;
rDT = ?
CV = ?
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. }
Nhập môn lập trình - Tổng quan32
Một số khái niệm
Nhập môn lập trình - Tổng quan33
Thư viện – Library
stdio.h, math.h
Chương trình chính
int main(){}
Kiểu biến – Data type
int, float
Tên biến – Variable name
xA, xB
Chú thích - Comment
// Lời chú thích
Nhập - Input
scanf(“%d”,&x);
Xuất - Output
printf(“hello!”);
Phép toán – Operation
tong = x + y;
Toán tử - Operator
+, -, *, /
Hằng số - Constant
#define PI 3.14
const float PI = 3.14
Hàm - Function
sqrt, pow, scanf, printf
Công cụ lập trình
Nhập môn lập trình - Tổng quan34
C-Free, Dev-C, CodeBlocks, Visual Studio
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: https://netbeans.org/downloads/index.html
Ideone: Biên dịch online, hỗ trợ nhiều ngôn ngữ lập trình
https://ideone.com/
Nhập môn lập trình - Tổng quan35
Nhập môn lập trình - Tổng quan36
Giảng viên: Instructor
Tự tìm hiểu nội dung môn học
Nhập môn lập trình - Tổng quan37
Thuật toán? Algorithm
Cách giải bài toán
Lệnh lựa chọn? Selection
(Lệnh rẽ nhánh)
if .. else, switch .. case
Vòng lặp? Loop
for, while, do while
Hàm? Function
Chương trình con
Mảng? Array
Dãy số
Chuỗi ký tự
Các thao tác cơ bản
Nhập input
Xuất, output
Đếm, count
Tìm kiếm, search
Tính toán, calculation
Trích xuất, list
Liệt kê list
Thêm, add
Xóa, remove
Sắp xếp sort
Bài tập 1.1 – Các thao tác lập trình
Nhập môn lập trình - Tổng quan38
Bài tập 1.1 – Các thao tác lập trình
Nhập môn lập trình - Tổng quan39
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
Bài tập 1.2 – Tính toán
Nhập môn lập trình - Tổng quan40
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
}
Tính tổng, hiệu, tích, thương (tham khảo 1)
Nhập môn lập trình - Tổng quan41
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. }
Tính tổng, hiệu, tích, thương (tham khảo 2)
Nhập môn lập trình - Tổng quan42
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. }
Bài tập 1.3 – Hình chữ nhật
Nhập môn lập trình - Tổng quan43
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.
Gợi ý:
Giả sử chiều dài đường chéo là c
c2 = a2 + b2
Tính căn bậc hai
Hàm sqrt(x) =
Hàm sqrt thuộc thư viện math.h
a
b
DT = ?
CV = ? c = ?
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. }
Nhập môn lập trình - Tổng quan44
Bài tập 1.4 – Khoảng cách
Nhập môn lập trình - Tổng quan45
Đề 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.
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
A(xA, yA)
B(xB, yB)
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. }
Nhập môn lập trình - Tổng quan46
Bài tập 1.5 – Chữ số
Nhập môn lập trình - Tổng quan47
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
Các file đính kèm theo tài liệu này:
- bai_giang_nhap_mon_lap_trinh_chuong_1_tong_quan_ngo_huu_dung.pdf