Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 221 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
221
Dung lượng
26,54 MB
Nội dung
T R U O N G Đ Ạ I H Ọ C B A C H R H O A M A rMỌl V IỆ N C Ô N G N G H Ệ T H Ô N G T IN V À T R U Y È N T H Õ N G LƯƠNG MẠNH BÁ, Đ ỏ VÀN UY (Chủ biẽn) CAO TUẤN DŨNG, BÙI TH| HÒA NGUYỄN NGỌC DƯƠNG, ĐINH HÙNG nnnp môn Tin (IN TR QDUCTIQ N TO IN PQRMATIC) (d ù n Ĩ cho S IN ỈĨ v iê n c c TRUỜ NC đ ại học, cao Đậ TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI • • • VIÊN CỊNG NGHỆ THƠNG TIN VÀ TRUYỀN THÒNG LƯƠNG MẠNH BÁ - Đ ỗ VĂN UY (Chủ biên) CAO TUÂN DŨNG - BÙI THỊ HÒA NGUYỄN NGOC DƯƠNG - ĐINH HÙNG NữẬPM Ô I!^ T m HỌC (INTRODUCTION TO INPORMATIC) (ỉ>ùng cho Sinh viên trường Đại học, Cao đẳng) NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT HÀ NÔI Tập thê tác giả Lương Mạnh Bá - Đỗ Văn Uy (Chủ biên) Bùi Thị Hòa - Đinh Hùng Cao Tuấn Dũng - Nguyễn Lương Mạnh Bá Phần Tin học Cd sở Ngọc Dương Phần Phần Bài tập c L iĩ m đẩu Thì đại cương hay Nhập mơn Tin học hay Nhập mơn Cơng nghệ tlìỏng tin môn học bắt buộc cho Sinlỉ viên trường Đại học hay Cao đẳng từ năm bước vào học Môn học nhằm cung cấp cho Sinh viên khái niệm Tin học như: Thơng tin, liệu, qui trình xử lý Tin Máy tính diện tử, Kiến trúc chức nùng máy tính, Ngồi ra, nhằm giúp sinh viên hiểu việc lập trình giải tốn máy tính, mơn học thường lựa chọn giới thiệu ngơn ngữ lập trình thơng dụng, có cấu trúc đ ể đưa vùo học Tiếp sau, với kiến thức thu từ môn học tùy theo đặc thù ngành học mù sinh viên dược tiếp tục học thêm nhiều lĩnh vực chuyên sáu khác với sinh viên thuộc cliuỵén ngành Công nghệ thông tin Nhận thức tầm quan trọng môn học mà hầu hết trường dại học hay cao đẳng gắng biên soạn cho tài liệu mơn học cách hợp lý Tuy nhiên, đặc thù ngành Công nghệ thông tin biến chuyển nhanh nên việc lựa chọn dể cung cấp cho bước han dầu biến động Khoa Cơng nghệ thơng tin trước dày Viện Cơng nglìệ thông tin Truyền thông ngày (lã nhiều lần tổ chức hiên soạn nhầm cho (]('/! tùi liệu phù hợp nlìất song nhiệm vụ khó khàn Tập thể tác giả súcli váo nám 2007 Ban Chủ nhiệm Khoa Công nghệ thông tin giao cho biên soạn hài giảng mơn Nhập mơn Tin học Cuốn sách hình thành clìủ yếu dựa trẽn tài liệu theo đề cương Khoa Cơnịỉ nghệ thơng tin chủ trì GS, TS Nguyễn Thúc Hải k ế thừa tài liệu thày cô dạy môn này: TS Nguyễn Kim Klìúnlì nhiều thày khác Khoa Nhóm tác giả qua thực tế giảng dạy ĐỈỈBK muốn cung cấp tài liệu tương đối phù hợp cho sinh viên hình tạo klìúc nhan ngùnli Cóng nghệ ĩ hơng tin hay ngồi ngành Do vậy, bơ cục sách gồm hai phần bản: Tin học củn Lập trình với Ngơn ngữC Phần Tin học củn bán cung cấp nlìữníỊ khái niệm sở có mỏ rộng clìO phù hợp với lìiện naỵ, nhân mạnh vào kiến trúc cliứn nũng máy tính, hệ điều hành, mạng máy tính, Phần tlìứ hai trình bày ngơn ngữ lập trình c , ngơn ngữ phổ dụng Trước đày, ngôn ngữ lập trình dược chọn Turbo Pascal, song khơng cịn phổ biến Việc trình bày Ngơn ngữC theo quan điểm minh họa cách lập trình máy tính clìứ khơng dơn lù việc ỉịiới thiệu ngơn ngữ Ngồi ra, nhằm giúp sinh viên tìm thấy ví dụ minh họa, tác giả cung cấp thêm phần 3: Chương trình viết TC2.0 gồm nhiều thí dụ từ đơn giản đến phức tạp Mục đích sách làm tài liệu tham khảo hay tài liệu học sinh viên Tuy nhiên, giáo viên có thê tham khảo, chọn lọc clìo phù ìụrp số thí dụ phần minh họa Các tác giả chán thành cám ơn dẫn thày Ban Chủ nhiệm Khoa, tài liệu cung cấp GS, TS Nguyễn Thúc Hải, TS Nguyễn Kim Khánh nhiều thày cô khác Các tác giả cám ơn đồng nghiệp, thày cỏ Đại học phía Nam thơng qua giảng điện tử cung cấp cho tư liệu tham kháo Đ ể tài liệu ngày hồn thiện hơn, chúng tơi mong nhận ý kiến em sinh vién, thày cô, đồng nghiệp xa gần Mọi ý kiến đóng góp xin gửi địa chỉ: balm(a)soỉctJiut.edu.vn uydv(a)soỉct.hut.edu.vn Các tác giả PHÀN X _ TIN HỌC CĂN BẢN ■ BÀ11: CÁC KHÁI NIỆM VÊ THÔNG TIN - DỬ LIỆU VÀ TIN HỌC 1.1 Thông tin xử lý thông tin I u Thông tin - Dữ liệu - Trí thức Thơng tin - Information • Thông tin - lnformation Khái niệm thông tin (information) sử dụng thường ngày Thông tin mang lại cho người hiểu biết, nhận thức tốt đối tượng đời sống xã hội, thiên nhiên, giúp cho họ thực hợp lý công việc cần làm để đạt tới mục đích cách tốt Người ta quan niệm rằng, thông tin kết xử lý, điều khiển tổ chức liệu theo cách mà bổ sung thêm tri thức cho người nhận Nói cách khác, thơng tin ngữ cảnh liệu xem xét • Dữ liệu - Data Dữ liệu (data) biểu diễn thơng tin thể tín hiệu vật lý Thơng tin chứa đựng ý nghĩa cịn liệu kiện khơng có cấu trúc khơng có ý ngliĩa chúng khơng tổ chức xử lý Dữ liệu thực tể là: - Các số liệu thường mô tả bàng số bảng biểu - Các ký hiệu qui ước, ví dụ chữ viết Các tín hiệu vật lý ví dụ ánh sáng, âm thanh, nhiệt độ, áp suất, Theo quan niệm chung người làm cơng nghệ thơng tin thơng tin hiểu biết chủng ta lĩnh vực đấy, cịn liệu thơng tin biểu diễn xử lý máy tính • Tri thức - Knovvledge Tri thức theo nghĩa tlnrònti thònụ tin mức trừu tirợniỉ hon ri tliírc đa dạng, kiện, thơn” tin cách mà người tliu thập cỊua kinh nghiệm qua đào tạo Nó hiểu biết chiiníỊ hay lĩnh vực cụ thể Thuật ngữ tri thức sỉr dụnti theo nghĩa “hiểu" chủ thể với liềm cho mục đích chun dụng Hệ thống thơng tin (information system) hệ thống ghi nhận liệu, xừ lý chúng để tạo nên thơng tin có ý nghĩa dĩr liẹii ??? Dữ liệu — -ỳ x ù lý Thông tin —^ x lý Tri thức 1.1.2 Qui trình xử lý thơng tin Mọi q trình xử lý thơng tin bàng máy tính hay bời người đirợc thực theo qui trình sau: Dữ liệu (data) nhập đầu vào (Input), qua q trình xử lý để nhận thơng tin đầu (Output) Dữ liệu trinh nhập, xử lý xuất lưu trữ NHẬP D LIỆU (INPUT) X Ử LÝ (PROCESSING) XUÁT DŨ LIỆU (OUTPUT)’ LƯUTRŨ(STORAGE) Hình 1.1 Mơ hinh tổng qt q trình xử lý thơng tin Thơng tin thu thập lưu trữ, qua trinh xử lý trừ thành liệu để theo trình xir lý liệu khác tạo thơng tin thei) ý đồ người f Con người có nhiều cách để có liệu thơng tin Người ta lưu trữ thơng tin qua tranh vẽ, giây, sách báo, hình ảnh phim, băng từ Trong thời đại hiệii nay, lượng thông tin đến với lúc nhiều người dùng cơng cụ hỗ trợ cho việc lưu trữ, chọn lọc xử lý thông tin gọi máy tính điện từ (Computer) Máy tính điện tử giúp người tiết kiệm nhiều thời gian, cơng sức tàng độ xác cao việc tự động hố phần hay tồn phần q trình xử lý thơng tin 1.2 Máy t í n h p h â n loại máy tính điện tử ì 2.1 Lịch sử phát triển mảy tính điện tử Do nhu cầu cần tăniỊ độ xác tính tốn giảm thời gian tính tốn, người lỊuan tâm chế tạo cơng cụ tính tốn từ xira: bàn tính tay cùa người Trung Ọuốc, máv cộng học nhà toán học Pháp Blaise Pascal (1623 - 1662), máy tính học có ihc cộng, trừ, nhân, chia nhà toán học Đức Gottfried Wilhelmvoii Leibniz (1646 - 1716), máy sai phân đề tính đa thức tốn học Tuy nhiên, máy tính điện tử thực bắt đầu hình thành vào thập niên 1950 đến trải qua hệ dựa vào tiến công nghệ điện từ vi điện tử cãi liến ngun lý, tính loại hình cùa - Thế hệ I (1950 - 1958): máy tính sử dụng bóng đèn điện tử chân khơng, mạch riêng rẽ, vào số liệu phiếu đục lỗ, điều khiển tay Máy có kích thước lớn, tiịu thụ lượng nhiều, tốc độ tính chậm khoảng 300 - 3.000 phép tinh/s Loại máy tính điểiì hinh hệ EDVAC (Mỹ) hay BESEM (Liên Xô cũ), - T hế hệ (1958 - 1964): máy tính dùng xử lý đèn bán dẫn, mạch in Máy tính đă có chương trình dịch Cobol, Portran hệ điều hành đơn giản Kích thước niáy cịn lớn, tốc độ tính khoảng 10.000 -100.000 phép tính/giây Điển loại lBM-1070 (Mỹ) hay MINSK (Liên Xơ cũ), - Thế hệ (1965 - 1974); máy tính gắn vi xử lý bàng vi mạch điện tử cỡ nhỏ có tốc độ tính khoảng 100.000 - I triệu phép tính/giây Máy có hệ điều hành đa chương trinh, nhiều người đồng thời theo kiểu phân chia thời gian Kết từ máy tính in trực tiếp máy in Điển loại IBM360 (Mỹ) hay EC (Liên Xô cũ), - Thế hệ (1974 - nay): máy tínli bắt đầu có vi mạch đa xử lý có tốc độ tính hàng chục triệu đến hàng tỷ phép tính/s Giai đoạn hình thành loại máy tính chính: máy tính cá nhân để bàn (Personal Computer - PC) xách tay (Laptop Notebook Computer) loại máy tính chuyên nghiệp thực đa chương trình, đa xử lý, , hinh thành hệ thống mạng máy tính (Computer Networks), ứng dụng phong phú đa phương tiện - Thế hệ (1990 - nay): bắt đầu nghiên cứu tạo máy tính mơ phịng hoạt động cùa năo hành vi người, có trí khơn nhân tạo với khả tự suy diễn phát triển tình nhận hệ quản lý kiến thức để giải toán đa dạng 1.2.2 Phân h i máy tính điện tử Trên thực tế tồn nhiều cách phân loại máy tính khác Theo hiệu nănị tính tốn, phân loại máy tính sau: - M y Vi tính (M ic r o c o m p u te r o r PC): Loại thường thiết kế ch( người dùng, giá thành rè Hiện nay, máy vi tính phổ dụng xuất hiệr nhiều dạng: máy để bàn (D estop), máy trạm (Workstation), máy xách ta> (N otebook) máv tính bỏ túi - M y tính tầm tr u n g (M in i C o m p u ter): Là loại máy tính có tốc độ hiệi tính tốn mạnh máy vi tính Chúng thường thiết kế để sử dụng ch( ứng dụng phức tạp Giá máy cỡ hàng vài chục nghìn U SD • Máy tính lớn (Maínframe Computer) Siêu máy tính (SuperComputer) máy tính c ó tổ chức bên phức tạp, c ó tốc đ(' siêu nhanh hiệu tính tốn cao, c ỡ hàng tỷ phép tính/giây Các máy tính ch( phép nhiều người dùng đồng thời sử dụng Trung tâm tính tốn/ Việr nghiên cứu để giải toán phức tạp, yêu cầu cao tốc độ Chủng C( giá thành đắt, cỡ hàng trăm ngàn, chí hàng triệu USD Theo phương pháp xử lí tin phân loại máy tính : máy tính tương tự, má> tính số, máy tính lượng tử Một cách phân loại khác theo phương thức sử dụng máy chủ máy trạm 1.3 Tin học ngành công nghệ liên quan ỉ.3.1 Tin học Thuật ngữ Tin học có nguồn gốc từ tiếng Đức vào năm 1957 d o Karl Steinhllc^ đề xướng báo Informatik: Aulomatische Informationsverarheitung (i.e "ínformatics: automatic infomiation Processing") Sau vào năm 1962, Plìilippt Drevíus người Pháp gọi “informatique”, Walter P.Baiier sử dụnị tên Phần lớn nước Tây Âu, trừ Anh chấp nhận, Anh người ta sử dụnị thuật ngữ ‘Computer Science’, hay ‘computing Science’ thuật ngữ dịch, N ga cũnị chấp nhận tên informatika (1966) Tin học xem ngành khoa học nghiên cứu phương pháp, cơng nghệ Ví kỹ thuật xử lý thông tin cách tự động Công cụ chù yếu sử dụng tin học lí máy tính điện tử thiết bị truyền tin khác Nội dung nghiên cứu tin học chi yếu gồm hai phần: s t r u c t Node *p, *Q; p = L; if (P->Nex t == NULL) w h ile { ((Stop==0) Q = if return 1; &&(P->Next != NULL)) P->N ext; (P -> In fo < Q ->Info) e l s e s t o p = ; p = P->N ext; _ } if (St(3p » - 0) return 1; e l s e rgturn 0; ) char TT2{ítruct Node *L) {// Ham viet khong DQ Ề ' / / Ham t r s ve g ia t r i neu DS co thu t u / / h o p ngu5c lai ’ trtỈ3ng lli char Tf»uTu; Node *p, *Q; ) return 1; { p rin tf(''\ %d", t m p - > I n f o ) ; tmp = tm p -> N e x t; ) } 205 v o i d DaoNguoc( s t r u c t Node ** L) { s t r u c t Node * b e f o r e , * C u r r e n t , *after; b e f o r e = NULL; if (*L != NƯLL) { C u r r e n t = *L; / / danh sach khong rong // c u r r e n t t r o ve dau DS a f t e r = C u r r e n t “>N ext; / / w h i l e ( a f t e r != NULL) a f t e r t r o ve phan t u t i e p í a u {C urrent->N ext = b efo re; // dao t r o before = C u rre n t; Current = a f t e r ; // x e t phan tu t i e p sau ; a fte r = afte r->N e xt; / / g i u d i a c h i phan tu t i e p th(o } C urren t->N ext = b efo re; *L = C u r r e n t ; } } v o i d m ain ( v o id ) { Elem *L; c l r s c r (); L = ( s t r u c t Node *) m a l l o c ( s i z e o f ( s t r u c t Node)) ; L -> In fo = l; L - > N e x t = ( s t r u c t Node *) m a l l o c ( s i z e o f ( s t r u c t N o d e ) ) ; L -> N e x t-> In fo =2; L ->N ext-> N ext = ( s t r u c t Node *) m a l l o c (s i z e o f (s t r u c t Ncdfô) ) ; L - > N e x t - > N e x t - > I n f o = 3; L - > N e x t - > N e x t - > N e x t = NULL; P rin tf(" \n Danh s a c h theo c h i e u x u o i X n ) ; T v e lL is t(L ); if (TTl(L) == 1) p r i n t f ( * » \ n DS co thu t u ! ! ! \ n ” ) ; e l s e p r i n t f ( ”\ n DS Khong co T T ! \ n ” ) ; if (TT2(L) == 1) p rin tf(" \n DS co thu t u ! ! ! - D Q \ n ” ) ; e l s e p r i n t f ( ”\ n DS Khong co T T ! - D Q \ n " ) ; p r i n t f ( " \D a n h s a c h dao n g u o c : ” ; 206 D a o N g u o c (& L ) ; T r a v e l L i s t (L ) ; if (TTl(L) -= 1) p r i n t f ( ”\n DS co thu tu!!!\n»»); else printf("\n DS Khong co TT!\n"); if (TT2(L) == 1) printf("\n DS co thu t u !!!- D Q \ n ” ); else printf{"\n DS Khong co TT! -DQ\n” ); g e tc h (); } Bàí 3: Cây nhị phân Chương trình minh họa việc tạo lập nhị phân tìm kiếm duyệt # include< io h> # in c lu d e < s t d i o h> #include typedef struct Node { int info; struct Node *left/ *right; } ; vo.id MakeTree (struct Node **T) { int n,i,X; ‘itruct Node *R; // p la cha, q la printf("\So nut cua c a y : ” ); Cc'ìnf ( " %d", &n) ; ior (i=l;i