Khoa CNTT LTHĐT Chƣơng Ôn Tập GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - LTHĐT Khoa CNTT MỤC TIÊU Ôn lại khái niệm, kiến thức lập trình Biến toàn cục Biến cục Hàm biến toàn cục Tham số hàm Trừu tượng hóa liệu GV Nguyễn Sơn Hồng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - LTHĐT Khoa CNTT BÀI TỐN tốn: Viết chương trình nhập họ tên, điểm tốn, điểm văn học sinh Tính điểm trung bình xuất kết Bài GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - Khoa CNTT LTHĐT BIẾN TỒN CỤC Khái niệm:Biến tồn cục biến khai báo bên tất hàm hiểu bên tất hàm Thơng thường biến tồn cục khai báo đầu chương trình Lưu ý: Biến khai báo bên thân hàm main khơng biến tồn cục mà biến cục hàm main GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - Khoa CNTT LTHĐT 11 #include 12.#include 13.char hoten[31]; 14.int toan; 15.int van; 16.float dtb; 17.void main() 18.{ 19 printf(“Nhap ho ten:”); 20 gets(hoten); 21 printf(“Nhap toan:”); 22 scanf(“%d”,&toan); 23 printf(“Nhap van:”); 24 scanf(“%d”,&van); 25 dtb=(float)(toan+van)/2; 26 printf(“\n Ho ten: %s” , 27 28 29 hoten); printf(“\n Toan: %d” , toan); printf(“\n Van: %d” , van); printf(“\n Trung binh:%f”, dtb); 30.} GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - LTHĐT Khoa CNTT BIẾN CỤC BỘ Khái niệm: Biến cục biến đƣợc khai báo đƣợc hiểu bên phạm vi chtrình, khỏi phạm vi biến khơng đƣợc biết đến khơng gian nhớ cấp phát cho biến đƣợc tự động thu hồi Thông thường biến cục khai báo bên thân hàm hay khối lệnh Lưu ý: Một biến khai báo bên thân hàm main biến cục hàm main GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - Khoa CNTT LTHĐT 11 #include 12.#include 13.void main() 14.{ 15 char hoten[31]; 16 int toan; 17 int van; 18 float dtb; 19 printf(“Nhap ho ten:”); 20 gets(hoten); 21 printf(“Nhap toan:”); 22 scanf(“%d”,&toan); 23 printf(“Nhap van:”); 24 scanf(“%d”,&van); 25 dtb=(float)(toan+van)/2; 26 printf(“\nHo ten:%s”, 27 28 29 hoten); printf(“\n Toan: %d” , toan); printf(“\n Van: %d” , van); printf(“\n Trung binh:%f” , dtb); 30.} GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - Khoa CNTT LTHĐT HÀM VÀ BIẾN TOÀN CỤC Kiến trúc chương trình C Khối khai báo Khối hàm main Khối định nghĩa hàm GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - Khoa CNTT LTHĐT 5.1 KIẾN TRÚC MỘT CHƢƠNG TRÌNH C ĐƠN GIẢN Kiến trúc chương trình C bao gồm khối lệnh sau: khối khai báo, khối hàm main khối định nghĩa hàm Ba khối lệnh trình bày theo thứ tự hình vẽ bên GV Nguyễn Sơn Hồng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - LTHĐT Khoa CNTT 5.1 KIẾN TRÚC MỘT CHƢƠNG TRÌNH C ĐƠN GIẢN Khối khai báo Khối hàm main Khối định nghĩa hàm GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 10 Khoa CNTT LTHĐT 8.1 ỨNG DỤNG 11 #include 12 #include 13 struct PhanSo 14 { 15 int tu; 16 int mau; 17 }; 18 typedef struct PhanSo PHANSO; 19 void Nhap(PHANSO &); 20 void Xuat(PHANSO); 21 void RutGon(PHANSO&); GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 28 LTHĐT Khoa CNTT 8.1 ỨNG DỤNG 1 void Nhap(PHANSO &); void Xuat(PHANSO); void XuLy(PHANSO&); void main() { PHANSO ps; Nhap(ps); RutGon(ps); Xuat(ps); 10 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 29 LTHĐT Khoa CNTT 8.1 ỨNG DỤNG 1 void Nhap(PHANSO &x) { printf(“Nhap tu”); scanf(“%d”,&x.tu); printf(“Nhap mau: ”); scanf(“%d”,&x.mau); } void Xuat(PHANSO x) { 10 printf(“\n Tu: %d”,x.tu); 11 printf(“\n Mau: %d”,x.mau); 12 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 30 Khoa CNTT LTHĐT 8.1 ỨNG DỤNG void RutGon(PHANSO &x) { int a = abs(x.tu); int b = abs(x.mau); while(a*b!=0) { if(a>b) a = a – b; else 10 b = b – a; 11 } 12 x.tu = x.tu / (a+b); 13 x.mau = x.mau / (a+b); 14 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 31 Khoa CNTT LTHĐT 8.2 ỨNG DỤNG Ứng dụng 2: Viết chƣơng trình nhập vào tọa độ điểm mặt phẳng Oxy Tính khoảng cách chúng xuất kết 8.2 GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 32 Khoa CNTT LTHĐT 8.2 ỨNG DỤNG 11 #include 12 #include 13 struct Diem 14 { 15 float x; 16 float y; 17 }; 18 typedef struct Diem DIEM; 19 void Nhap(DIEM &); 20 void Xuat(DIEM); 21 float KhoangCach(DIEM,DIEM); GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 33 Khoa CNTT LTHĐT 8.2 ỨNG DỤNG 2 void Nhap(DIEM &); void Xuat(DIEM); float KhoangCach(DIEM,DIEM); void main() { DIEM A,B; Nhap(A); Nhap(B); float kq=KhoangCach(A,B); 10 Xuat(A); 11 Xuat(B); 12 printf(“\n …:%f”,kq); 13 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 34 LTHĐT Khoa CNTT 8.2 ỨNG DỤNG void Nhap(DIEM &P) { printf(“Nhap x: ”); scanf(“%f”,&P.x); printf(“Nhap y: ”); scanf(“%f”,&P.y); } void Xuat(DIEM P) { 10 printf(“\n x = %f”,P.x); 11 printf(“\n y = %f”,P.y); 12 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 35 Khoa CNTT LTHĐT 8.2 ỨNG DỤNG 2 float KhoangCach(DIEM P,DIEM Q) { return sqrt( (Q.x-P.x)*(Q.x-P.x)+ (Q.y-P.y)*(Q.y-P.y)); } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 36 Khoa CNTT LTHĐT BÀI TẬP Bài 1: Viết chương trình nhập vào phân số Hãy cho biết phân số phân số âm hay dương hay không Bài 2: Viết chương trình nhập tọa độ hai điểm khơng gian Tính khoảng cách chúng xuất kết GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 37 Khoa CNTT LTHĐT BÀI TẬP Bài 3: Viết chương trình nhập vào phân số Tìm phân số lớn xuất kết Bài 4: Viết chương trình nhập vào hai phân số Tính tổng, hiệu, tích, thương chúng xuất kết GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 38 Khoa CNTT LTHĐT BÀI TẬP Bài 5: Viết chương trình nhập vào số phức Tính tổng, hiệu, tích xuất kết Bài 6: Viết chương trình nhập vào ngày Tìm ngày xuất kết GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 39 Khoa CNTT LTHĐT BÀI TẬP Bài 7: Viết chương trình nhập vào ngày Tìm ngày hơm qua xuất kết Bài 8: Viết chương trình nhập toạ độ đỉnh A,B,C tam giác mặt phẳng Oxy Tính chu vi, diện tích tìm tọa độ trọng tâm GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 40 Khoa CNTT LTHĐT BÀI TẬP Bài 9: Viết chương trình nhập tọa tâm bán kính đường tròn Tính diện tích chu vi đường tròn GV Nguyễn Sơn Hồng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 41 Khoa CNTT LTHĐT BÀI TẬP Yêu cầu chung: Làm tất tập workspace có tên MSSV_BT01 Trong workspace có project tương ứng với tập Nộp tập lên hệ thống Moodle theo qui định GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 42 ... gets(hoten); 21 printf(“Nhap toan:”); 22 scanf(“%d”,&toan); 23 printf(“Nhap van:”); 24 scanf(“%d”,&van); 25 dtb=(float)(toan+van) /2; 26 printf(“ Ho ten: %s” , 27 28 29 hoten); printf(“ Toan: %d”... }; 20 typedef struct HocSinh HOCSINH; 21 void Nhap(HOCSINH &); 22 void Xuat(HOCSINH); 23 void XuLy(HOCSINH&); GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 23 LTHĐT Khoa. .. ThS Nguyễn Tấn Trần Minh Khang Chương 01 - 21 Khoa CNTT LTHĐT TRỪU TƢỢNG HÓA DỮ LIỆU Khái niệm: Trừu tượng hóa liệu phương pháp tích hợp kiểu liệu đơn, kiểu liệu có sẵn nhằm mơ tả, biểu diễn khái