kỹ thuật lập trình C chuyên nghiệp phần 2 pot

18 344 0
kỹ thuật lập trình C chuyên nghiệp phần 2 pot

Đ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

Phương pháp Heuristic ề ẫ y Trong nhi ề u b ài toán dùng p hương p háp th ử -saisẽ d ẫ n đếnsố lượng thử quá lớn không chấpnhận được. ề ẫ ế y Heuristic chính là ướclượng v ề khả năng d ẫ n đ ế nlờigiải củamộttrạng thái: phương pháp vét cạnnhưng có thêm tri hứ đi kè ối bộ ê lý h ớ đíh ê t hứ c đi kè m, t ối ưucục bộ , nguy ê n lý h ư ớ ng đí c h , nguy ê n lý sắpthứ tự, í d y v í d ụ: Mộtembébị lạc đường về nhà, em nhớ nhà mình cao nhất trong khu vực em sẽ tìm đến tòa nhà cao nhất trong vùng em trong khu vực , em sẽ tìm đến tòa nhà cao nhất trong vùng em thấy, rồilạitiếptục , Giải phương trình bậc 2 , đoán nghiệm theo Vi - ét Giải phương trình bậc 2 , đoán nghiệm theo Vi ét kiế h hiề hiề Tìm kiế mt h eo c hiề u sâu và c hiề u rộng rộng y Là thử sai theo nguyên lý mê cung hay chính là thử y Là thử - sai theo nguyên lý mê cung hay chính là thử - sai kếthợplầnngược. y Ngược với tìm kiếm theo chiều sâu tìm kiếm theo chiều y Ngược với tìm kiếm theo chiều sâu , tìm kiếm theo chiều rộng mang hình ảnh củavếtdầu loang. Giảithu ậ t A * ậ Phươn g p há p trí tu ệ nhân t ạ o g pp ệ ạ y " Dạy " máy tính để có " trí thông minh " như con người y Dạy máy tính để có trí thông minh như con người bắtchướckhả năng "suy luận" của con người. ví dụ : bài toán đong nước có 3 bình A B và C có dung ví dụ : bài toán đong nước , có 3 bình A , B , và C có dung tích 5, 8, và 13 lít. Làm sao đong được 11 lít nướctrong bình C? Bình C ban đầu đầy nước bình C? Bình C ban đầu đầy nước . Mộtsố phương pháp chuyểngiao tri thức 1. Biểudiễntri thức 2 Hệ hê i 2 . Hệ c h uy ê ng i a 3. Máy học MM ảả ng ng ArrayArray MM ảả ng ng ArrayArray Phạm Thế Bảo Trường Đạihọc Khoa họcTự nhiên Tp HCM Trường Đại học Khoa học Tự nhiên Tp . HCM MảMả AA Mả ng Mả ng –– A rray A rray  MộtMộtsốsố tínhtính chấtchất Kh iKh i bábá ảả tt CC  Kh a iKh a i bá o bá om ả ngm ả ng t rong t rong CC  TruyTruy xuấtxuất cáccác thànhthành phầnphần  TruyềnTruyền thamtham sốsố kiểukiểumảngmảng chocho hàmhàm  MộtMột ốố thth tátá ởở  MộtMột s ố s ố th ao th ao tá c tá ccơcơ s ở s ở  MảngMảng nhiềunhiềuchiềuchiều MảMả Mộ ố íh hấMộ ố íh hấ Mả ng Mả ng –– Mộ t s ố t í n h c hấ t Mộ t s ố t í n h c hấ t ểể ấấ  MảngMảng làlà mộtmộtki ể uki ể ud ữ d ữ liệuliệucócó c ấ uc ấ utrúctrúc dodo ngườingườilậplập trìnhtrình địnhđịnh nghĩanghĩa DùDù biểbiể diễdiễ áá đốiđối tt dữdữ liệliệ ởở dd ộtột  Dù ng Dù ng biể u biể u diễ n diễ nc á cc á c đốiđối t ượng t ượng dữdữ liệ u liệ u ởở d ạng d ạng m ột m ột dãydãy cáccác thànhthành phầnphầncócó cùngcùng kiểukiểuvớivới nhaunhau ––kiểukiểucơcơ sởsở sởsở  NNLTNNLT CC luônluôn chỉchỉđịnhđịnh mộtmộtkhốikhốinhớnhớ liênliên tụctụcchocho m ộ tm ộ tbi ế nbi ế nki ể uki ể umản g mản g ộộ gg  KíchKích thướcthướccủacủamảngmảng đượcđượcxácxác địnhđịnh ngayngay khikhi khaikhai báobáo vàvà khôn g khôn g baobao g iờ g iờ tha y tha y đ ổ iđ ổ i gg gg yy MảMả Kh i bá CKh i bá C Mả ng Mả ng –– Kh a i bá o trong CKh a i bá o trong C tdftdf kiể ơ ởkiể ơ ở Tê kiểTê kiể [[ Sốthà h hầSốthà h hầ ]] t ype d e ft ype d e f kiể uc ơ s ởkiể uc ơ s ở Tê n kiể u Tê n kiể u [[ Sốthà n h p hầ n Sốthà n h p hầ n ]] ;; kiểucủamỗi thành phầnkiểucủamỗi thành phần hằ ố ố thà h hầhằ ố ố thà h hầ kiểu của mỗi thành phầnkiểu của mỗi thành phần hằ ng s ố , s ố thà n h p hầ n hằ ng s ố , s ố thà n h p hầ n tối đa của mảngtối đa của mảng do lập trình viên đặt têndo lập trình viên đặt tên typedeftypedef intint A INT[ A INT[100100];]; ////AINTAINT là kiểu mảng biểu diễn dãy gồm 100 thành phần intlà kiểu mảng biểu diễn dãy gồm 100 thành phần int AINTAINT a;a; //a: //a: biếnbiếnkiểukiểu AINTAINT MảngMảng Ví dVí d Mảng Mảng –– Ví d ụ Ví d ụ #define SIZE 10 #define SIZE 10 int a[5]; // a dãy gồm5 số nguyên long int big[100]; // big: chiếm 400 bytes! double d [ 100 ] ; // d: chiếm 800 b y tes! [] // y long double v[SIZE];// v:10 long doubles long double d[2.5]; long double d[0]; long double d[-4]; long do ble d[n] long do u ble d[n] ; MảngMảng Ví dVí d khởitrị cho 5 Mảng Mảng –– Ví d ụ Ví d ụ i [5] {1020304050} khởi trị cho 5 thành phần i nt a [5] = { 10 , 20 , 30 , 40 , 50} ; double d[100] = { 1.5, 2.7}; short primes[] = { 1, 2, 3, 5, 7, 11, 13}; long b[50] = { 0 }; 2 thành phần đầutiênđược đầu tiên được khởi trị, phần còn lại: 0 compiler xác định kích thước gồm 7 thành phần cách nhanh nhất để int i = 7; const int c=5; thành phần cách nhanh nhất để khởi trị tất cả các thành phần bằng 0 const int c = 5; int a[i]; double d[c]; short primes[]; short primes[]; [...]... xuất c c phần tử C c thành phần c a mảng đư c truy xuất thông qua chỉ số c a chúng 0 size-1 ủ hú sizei Thao t c truy xuất không kiểm tra giới hạn c a chỉ số nhưng giá trị không kiểm soát đư c int main() { int a[6]; int i = 7; a[0] = 59; a[5] = -10; a[i /2] = 2; a[6] = 0; a[-1] = 5; return 0; } a 0 1 2 3 4 5 Truyền th T ề tham số Mảng cho hà ố Mả h hàm Tham số kiể mảng đ Th ố kiểu ả đư c t ề cho hà chính... 2, 3, 5, 7, 11 }; sum(primes, 6); printf("%li\n", primes[0]); return 0; } void sum(long a[], int sz) { int i; long total = 0; for(i = 0; i < sz; i++) total += a[i]; a[0] = total; } primes 1 2 3 5 7 11 a sz 6 dùng để kiểm tra giới hạn chỉ số tổng đư c lưu vào phần tử đầu tiên Chú ý Không Khô thể th hiệ c c th tá chép nội d th c hiện á thao t c hé ội dung một mảng ột ả sang mảng kh c kh c Chép từng phần. .. phần tử mảng char A[3]={‘a’,’b’, c }; A[3]={‘a’,’b’, c }; char B[3]; B = A; // ??? for(int for(int i=0; i . d [c] ; short primes[]; short primes[]; MảngMảng –– TruyTruy xuấtxuất c cc c phầnphần tửtử  C cC c thànhthành phầnphầncủacủamảngmảng đư c ượctruytruy xuấtxuất thôngthông quaqua chỉchỉ sốsố ủủ húhú 00 ii 11 MảngMảng TruyTruy xuấtxuất c cc c phầnphần tửtử c ủ ac ủ ac hú ngc hú ng 00 . m ột m ột dãydãy c cc c thànhthành phầnphầnc c c ngcùng kiểukiểuvớivới nhaunhau ––kiểukiểuc c sởsở sởsở  NNLTNNLT CC luônluôn chỉchỉđịnhđịnh mộtmộtkhốikhốinhớnhớ liênliên tụctụcchocho m ộ tm ộ tbi ế nbi ế nki ể uki ể umản g mản g ộộ gg . ý KhôKhô thểthể thth hiệhiệ áá thth tátá héhé ộiội dd ộtột ảả  Khô ng Khô ng thểthể th c th c hiệ n hiệ nc á cc á c th ao th ao tá c tá cc hé pc hé pn ội n ội d ung d ung m ột m ột m ả ngm ả ng sang sang mảngmảng kháckh c ChépChép từngtừng phầnphần tửtử mảngmảng ChépChép từngtừng phầnphần tửtử mảngmảng char

Ngày đăng: 22/07/2014, 16:21

Từ khóa liên quan

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

Tài liệu liên quan