Bài giảng Kĩ thuật lập trình pdf

62 428 0
Bài giảng Kĩ thuật lập trình pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CON TRỎ (POINTER) Chương 7: CON TRỎ (Pointer) Gán địa chỉ P = &x; // p = x; Error Truy xuất nội dung biến *p = *p – 12; p = &y; y – = 15; x += 20; P = (int*)malloc(sizeof(int)); *P = x – 10; Free(p); Khai báo biến và khởi tạo int x = 8, y = 10; Khai báo biến pointer int *p; x 0xFA30 y 0xFA32 ???? p ???? 0xFA30 0xFA32 NULL 8 10 - 4 - 5 16 6 ? // x = *p = – 4 , y = 10 // y = *p = 10 , x = – 4 // y = *p = – 5 , x = – 4 // x = 16 , y = *p = – 5 // *p = 6, x = 16, y = – 5 0xAA00 // p = NULL ???? 0xAA00 ???? HÀM (FUNCTION) Chương 8: Function  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. Khái niệm Function Ví dụ: #include <stdio.h> #include <conio.h> // 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 <Kiu d liệu trả về> 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); Khai báo Function <Kiểu trả về> 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. } Cách Khai báo biến trong hàm: #include <stdio.h> #include <conio.h> // 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 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. Ví dụ: int Tinh (int a) { int temp; a = a+3; temp = 2*(a+4); return temp; } Truyền Tham TRỊ 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ụ: void HoanDoi (int& a, int& b) { int temp = a; a = b; b = temp; } Truyền Tham CHIẾU 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ụ: void HoanDoi (int* a, int* b) { int temp = *a; *a = *b; *b = temp; } Truyền Tham BiẾN Cơ chế giống Tham Chiếu, nhưng cách viết theo con trỏ [...]... array Các thao tác trên mảng            Nhập và xuất mảng Kỹ thuật đặt cờ hiệu Kỹ thuật đặt lính canh Tìm kiếm trên mảng Đếm – Tần suất Tính tổng – Trung bình có điều kiện Sắp xếp mảng Xóa phần tử của mảng Chèn thêm phần tử vào mảng Tách / chia mảng Ghép / nối mảng One-dimensional array Nhập và xuất mảng Viết chương trình nhập xuất mảng một chiều các số nguyên #include #include... 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]; #define MAX 50 float... 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 // -Prototype unsigned long GiaiThua(int n); unsigned long GiaiThuaDQ(int n); //... < n; i ++) { printf (“ a [%d] = “, i); scanf (“ %d “, &a[i]); } } // void XuatMang (int a[], int n) { for (int i = 0; i < n; i ++) printf (“ %d \t “, a[i]); } One-dimensional array Kỹ thuật đặt cờ hiệu Viết hàm kiểm tra xem mảng các số nguyên có thứ tự tăng dần không? Index 0 1 2 3 4 5 6 7 8 9 a -3 -1 1 5 2 8 3 2 4 3 5 1 5 8 8 5 8 4 // Trả về 1: Nếu mảng tăng dần, ngược lại trả... về 0 int KiemTraTang (int a[ ], int n) { int flag = 1; for (int i = 0; i < n-1; i ++ ) if ( a[i] > a[i+1] ) // Vi phạm điều kiện tăng dần { flag = 0; break; } return flag; } One-dimensional array Kỹ thuật đặt lính canh Viết hàm tìm giá trị lớn nhất trong mảng một chiều các số nguyên i Index 0 1 2 3 4 5 6 7 8 9 a -3 -1 5 int TimMax (int a[], int n) { int max, i; max = a[0]; i = 1; while ( i < n ) . 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&. 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ử. đệ 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<conio.h>

Ngày đăng: 25/03/2014, 05:24

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan