Bài giảng Kĩ thuật lập trình
lượt xem 9
download
Hàm là một đoạn chương trình độc lập thực hiện trọn vẹn một công việc nhất định, sau đó trả về giá trị cho chương trình gọi nó.Hay nói cách khác hàm là sự chia nhỏ của chương trình.Truyền Tham Chiếu (&): Bên trong giá trị các tham số thay đổi, ra khỏi hàm bị thay đổi theo.Truyền Tham Biến (*): Bên trong giá trị các tham số thay đổi, ra khỏi hàm bị thay đổi theo.Ngôn ngữ C cho phép từ trong thân của một hàm có lời gọi hàm chính hàm đó. Hàm như vậy gọi là hàm...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kĩ thuật lập trình
- Chương 7: CON TRỎ (POINTER)
- CON TRỎ (Pointer) Khai báo biến và khởi tạo int x = 8, y = 10; 0xFA30 0xFA32 Khai báo biến pointer x -8 4 16 y -5 10 int *p; Gán địa chỉ P = &x; // p = x; Error p 0xAA00 ???? Truy xuất nội dung biến 0xAA00 0xFA30 0xFA32 ???? 6? NULL *p = *p – 12; // x = *p = – 4 , y = 10 p = &y; // y = *p = 10 , x = – 4 y – = 15; // y = *p = – 5 , x = – 4 x += 20; // x = 16 , y = *p = – 5 P = (int*)malloc(sizeof(int)); *P = x – 10; // *p = 6, x = 16, y = – 5 Free(p); // p = NULL
- Chương 8: HÀM (FUNCTION)
- Function Khái niệm Hàm là một đoạn chương trình độc lập thực hiện trọn vẹn một công việc nhất định, sau đó trả về giá trị cho chương trình gọi nó. Hay nói cách khác hàm là sự chia nhỏ của chương trình.
- Function #include Ví dụ: #include //------Prototype--------------- void HoanDoi (int& a, int& b); //--------------------------------- void main() { int a,b; clrscr(); printf("Nhap vao 2 so nguyen A,B: "); scanf("%d %d",&a,&b); printf("Truoc khi hoan doi: A=%d va B=%d\n",a,b); HoanDoi(a,b); printf("Sau khi hoan doi: A=%d va B=%d\n",a,b); getch(); } //--------------------------------- void HoanDoi (int& a, int& b) { int temp = a; a = b; b = temp; }
- Function Khai báo Tên hàm([ danh sách các tham số]); Với: Kiểu dữ liệu : int, float, char, struct... (void: không kiểu) Tên hàm : người lập trình tự đặt tên theo qui tắc như tên Biến. Ví dụ: void HoanDoi (int& a, int& b);
- Function Cách Khai báo biến trong hàm: Tên_hàm (danh sách các tham số) { Khai báo các biến cục bộ Các câu lệnh / khối lệnh hay lời gọi đến hàm khác. } #include #include //--------------------------------- //------Prototype--------------- void HoanDoi (int& a, int& b) void HoanDoi (int& a, int& b); { //--------------------------------- int temp = a; void main() a = b; { b = temp; int a,b; } clrscr(); printf("Nhap vao 2 so nguyen A,B: "); scanf("%d %d",&a,&b); printf("Truoc khi hoan doi: A=%d va B=%d\n",a,b); HoanDoi(a,b); printf("Sau khi hoan doi: A=%d va B=%d\n",a,b); getch(); }
- Function Truyền tham số hàm: 1. Truyền Tham Trị: Bên trong giá trị các tham số thay đổi, nhưng ra khỏi hàm vẫn không đổi. Truyền Tham TRỊ Ví dụ: int Tinh (int a) { int temp; a = a+3; temp = 2*(a+4); return temp; }
- Function Truyền tham số hàm: 2. Truyền Tham Chiếu (&): Bên trong giá trị các tham số thay đổi, ra khỏi hàm bị thay đổi theo. Ví dụ: Truyền Tham CHIẾU void HoanDoi (int& a, int& b) { int temp = a; a = b; b = temp; }
- Function Truyền tham số hàm: 3. Truyền Tham Biến (*): Bên trong giá trị các tham số thay đổi, ra khỏi hàm bị thay đổi theo. Ví dụ: Truyền Tham BiẾN void HoanDoi (int* a, int* b) { Cơ chế giống Tham int temp = *a; Chiếu, nhưng cách *a = *b; viết theo con trỏ *b = temp; }
- Function Hàm Đệ quy: Ngôn ngữ C cho phép từ trong thân của một hàm có lời gọi hàm chính hàm đó. Hàm như vậy gọi là hàm đệ qui. Khi hàm gọi đệ qui đến chính nó, thì mỗi lần gọi, máy sẽ tạo ra một tập các biến cục bộ mới hoàn toàn độc lập với tập các biến cục bộ đã được tạo ra trong các lần gọi trước. Ví dụ: #include #include //------------------------------------ unsigned long GiaiThua(int n) // Tính n! với n>=0 //-----Prototype------------------- { unsigned long GiaiThua(int n); unsigned long gt=1; unsigned long GiaiThuaDQ(int n); for (int i=2; i
- Chương 9: MẢNG (ARRAY)
- MẢNG MỘT CHIỀU (One-dimensional array) Nội dung Khái niệm Khai báo Khởi tạo mảng Chỉ số – giá trị – địa chỉ của phần tử mảng Truyền mảng qua tham số của hàm Các thao tác trên mảng
- MẢNG MỘT CHIỀU (One-dimensional array) Nội dung Khái niệm Khai báo Khởi tạo mảng Chỉ số(index)–Giá trị(value)–Địa chỉ(address) của phần tử mảng Truyền mảng qua tham số của hàm Các thao tác trên mảng
- Khái niệm CHỖ ĐẬU XE 0 1 2 3 4 3 Tất cả xe này của tôi
- One-dimensional array Khái niệm Mảng là nhóm các phần tử cùng kiểu dữ liệu và có chung tên. Mỗi phần tử là một biến thành phần của mảng được quản lý bằng chỉ số(index) bắt đầu từ 0 (liên tiếp, tăng một đơn vị). Như vậy để truy xuất một phần tử của mảng, chúng ta phải biết được chỉ số của nó. Trong bộ nhớ, các phần tử của mảng được cấp phát các ô nhớ có địa chỉ liên tiếp khác nhau.
- MẢNG MỘT CHIỀU (One-dimensional array) Nội dung Khái niệm Khai báo Khởi tạo mảng Chỉ số(index)–Giá trị(value)–Địa chỉ(address) của phần tử mảng Truyền mảng qua tham số của hàm Các thao tác trên mảng
- One-dimensional array Khai báo dạng con trỏ hằng (constant pointer) < Kiểu dữ liệu > < Tên mảng > [ < Số phần tử tối đa của mảng> ] ; Với: Kiểu dữ liệu : int, float, char, struct, pointer... Tên mảng : người lập trình tự đặt tên theo qui tắc như tên Biến. Tên mảng thực chất là một hằng địa chỉ của phần tử đầu tiên. Số phần tử tối đa của mảng : là hằng số nguyên cụ thể. Ví dụ: int a[100]; // Khai báo mảng số nguyên a gồm 100 phần tử #define MAX 50 float b[MAX]; // Khai báo mảng số thực b gồm 50 phần tử const int n = 10; // n là biến hằng char str[n]; // Error, n không phải là hằng số nguyên cụ thể long c[]; // Error, phải khai báo số phần tử tối đa của mảng
- One-dimensional array Khai báo dạng Con trỏ động (Pointer) (1) < Kiểu dữ liệu > *< Tên mảng >; Lưu ý: Tên mảng tại thời điểm khai báo này thực chất là biến (pointer) đang chỉ đến vùng nhớ (kể cả giá trị tại vùng nhớ đó) không tường minh. Để chính thức là mảng cần thao tác thêm: Cách 1: cùng quản lý chung với mảng đã tồn tại Ví dụ : p ?? int *p; // khai báo con trỏ p ?? ?? ? int b[100]; p = b; // p trỏ vào phần tử tại vị trí 0 của mảng b Với cách viết này có thể hiểu các cách viết sau là tương đương: p[i] *(p + i) b[i] *(b+i)
- One-dimensional array Khai báo dạng Con trỏ động (dynamic array) (2) Cách 2: Xin cấp phát một vùng nhớ động để con trỏ thành mảng động. - Dùng hàm malloc trong thư viện Ví dụ: px ???? ? int *px; ???? // Khai báo con trỏ px px = (int*) malloc(10*sizeof(int)); // Cấp phát 10 ô nhớ kiểu int Chú ý: Sau khi sử dụng xong thì nên giải phóng vùng nhớ bằng hàm free Ví dụ : free (px) ; // giải phóng vùng nhớ cho con trỏ px px 0xFA30
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng: Ngôn ngữ lập trình C/C++
229 p | 2245 | 1206
-
Bài giảng Lập trình hướng đối tượng - công cụ hỗ trợ phần mềm theo hướng đối tượng
57 p | 212 | 70
-
Bài giảng Kỹ thuật lập trình - Phạm Thế Bảo
0 p | 220 | 32
-
Bài giảng Kĩ thuật vi xử lí: Chương III - Dư Thanh Bình
65 p | 127 | 20
-
Bài giảng Kỹ thuật lập trình: Hàm băm (Hash function) - GV. Hà Đại Dương
12 p | 194 | 17
-
Bài giảng Kĩ thuật lập trình (Chương 1 - 6)
18 p | 109 | 15
-
Bài giảng Kĩ thuật vi xử lí: Chương IV - Dư Thanh Bình
147 p | 101 | 13
-
Bài giảng Cơ sở lập trình 1: Giới thiệu môn học - Lê Quý Tài
9 p | 132 | 8
-
Bài giảng Kỹ thuật lập trình: Cơ bản về ngôn ngữ lập trình
194 p | 40 | 7
-
Bài giảng Nhập môn lập trình Java: Bài 5 - Võ Tấn Dũng
35 p | 58 | 7
-
Bài giảng Cơ sở lập trình - Giới thiệu môn học
9 p | 135 | 5
-
Bài giảng Kỹ thuật lập trình: Các cấu trúc dữ liệu cơ bản (tiếp) - GV. Hà Đại Dương
32 p | 79 | 4
-
Bài giảng Ngôn ngữ lập trình Java: Chương 6.2 - TS. Phan Nguyên Hải
34 p | 13 | 4
-
Bài giảng Các kĩ thuật lập trình: Phần 1
78 p | 18 | 3
-
Bài giảng Các kĩ thuật lập trình: Phần 2
131 p | 30 | 3
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Lê Thị Ngọc Hạnh
18 p | 64 | 3
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Nguyễn Văn Huy
24 p | 35 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn