1. Trang chủ
  2. » Giáo án - Bài giảng

BÀI GIẢNG TIN học đại CƯƠNG IT1110

165 324 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 165
Dung lượng 3,7 MB

Nội dung

2010 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG [BÀI GIẢNG TIN HỌC ĐẠI CƯƠNG - IT1110] [Type the abstract of the document here The abstract is typically a short summary of the contents of the document Type the abstract of the document here The abstract is typically a short summary of the contents of the document.] THÔNG TIN MÔN HỌC Trình độ: Sinh viên đại học ngành Khối lượng: 4(3-1-1-8) • Lý thuyết: 45 tiết • Bài tập/BTL: 15 tiết (bài tập, thảo luận) • Thí nghiệm: (x tiết)(thực hành) Mô tả vắn tắt nội dung: Khái niệm thông tin, biểu diễn thông tin máy tính Hệ thống máy tính: phần cứng, phần mềm, hệ điều hành, mạng máy tính Giải toán máy tính Các cấu trúc lập trình MỤC LỤC PHẦN TIN HỌC CĂN BẢN I.1 Thông tin biểu diễn thông tin (5T lý thuyết) I.1.1 Các khái niệm thông tin tin học (1T lý thuyết) I.1.1.1 Thông tin xử lý thông tin a Thông tin - Dữ liệu – Tri thức .8 b Qui trình xử lý thông tin .9 I.1.1.2 Máy tính điện tử phân loại a Lịch sử phát triển máy tính điện tử .9 b Phân loại máy tính điện tử 10 I.1.1.3 Tin học ngành công nghệ liên quan 10 a Tin học 10 b Công nghệ thông tin (Information Technology - IT) 11 c Công nghệ thông tin truyền thông 11 I.1.2 Biểu diễn liệu máy tính (4T lý thuyết) 11 I.1.2.1 Biểu diễn số hệ đếm .11 a Hệ đếm số b 12 b Hệ đếm thập phân (Decimal system, b=10) .12 c Hệ đếm nhị phân (Binary system, b=2) .13 d Hệ đếm bát phân (Octal system, b=8) 13 e Hệ đếm thập lục phân (Hexa-decimal system, b=16) 13 f Chuyển đổi số từ hệ thập phân sang hệ đếm số b 13 I.1.2.2 Biểu diễn liệu máy tính đơn vị thông tin 14 a Nguyên tắc chung 14 b Đơn vị thông tin 15 I.1.2.3 Biểu diễn số nguyên 15 a Số nguyên không dấu 16 b Số nguyên có dấu 16 c Tính toán số học với số nguyên .16 Cộng/ trừ số nguyên 16 Nhân/ chia số nguyên 17 I.1.2.4 Biểu diễn số thực 18 a Nguyễn tắc chung 18 b Chuẩn IEEE754/85 19 I.1.2.5 Biểu diễn ký tự .19 a Nguyên tắc chung 19 b Bộ mã ASCII .20 c Bộ mã Unicode 23 I.2 HỆ THỐNG MÁY TÍNH (7 tiết) 23 I.2.1 Hệ thống máy tính (3T lý thuyết) .23 a Mô hình máy tính 23 b Bộ xử lý trung tâm – CPU 25 c Bộ nhớ .26 d Hệ thống vào-ra 27 e Liên kết hệ thống (buses) 29 I.2.1.2 Phần mềm máy tính .30 a Dữ liệu giải thuật 30 b Chương trình ngôn ngữ lập trình 34 c Phân loại phần mềm máy tính 36 I.2.2 Mạng máy tính (2T lý thuyết) 37 I.2.2.1 Lịch sử phát triển mạng máy tính 37 I.2.2.2 Phân loại mạng máy tính .37 I.2.2.3 Các thành phần mạng máy tính 38 I.2.2.4 Mạng Internet 39 BÀI TẬP TIN HỌC CƠ BẢN (2T BÀI TẬP) 40 … 40 I.2.3 Giới thiệu hệ điều hành (2T lý thuyết) .40 I.2.3.1 Các khái niệm 40 a Khái niệm hệ điều hành .40 b Tệp (File) 41 c Quản lý tệp hệ điều hành 42 I.2.3.2 Hệ lệnh hệ điều hành 43 I.2.3.3 Hệ điều hành Windows 43 a Sự đời phát triển .43 b Khởi động thoát khỏi Windows XP 44 c Một số thuật ngữ thao tác thường sử dụng 44 d Cấu hình Windows (Control Panel) 46 e Windows Explorer 51 55 I.3 Các hệ thống ứng dụng (4T lý thuyết) 55 I.3.1 Các hệ thống quản lý thông tin .55 I.3.1.1 Các khái niệm thông tin Hệ thống quản lý thông tin 55 I.3.1.2 Phân loại 55 a Phân loại theo cấp bậc quản lý 55 b Phân loại theo chức nghiệp vụ 58 c Phân loại theo quy mô tích hợp 59 I.3.2 Hệ thông tin bảng tính 61 I.3.3 Hệ quản trị sở liệu .66 I.3.3.1 Cơ sở liệu 66 a Khái niệm Cơ Sở Dữ Liệu 66 b Hệ quản trị sở liệu 71 I.3.4 Các hệ thống thông minh .75 Bài tập Tin học (2 tiết BT) 76 … 76 PHẦN II GIẢI QUYẾT BÀI TOÁN 76 II.1 Thuật toán(4 tiết LT) 76 II.1.1 Định nghĩa thuật toán 76 II.1.2 Biểu diễn thuật toán .77 II.1.2.1 Ngôn ngữ lưu đồ 78 II.1.2.2 Mã giả 82 II.1.3 Thuật toán đệ qui 83 II.1.4 Một số thuật toán thông dụng .84 II.1.4.1 Thuật toán số học 84 II.1.4.2 Thuật toán dãy 85 II.1.5 Thuật giải heuristic 86 II.1.5.1 Thuật giải – Sự mở rộng khái niệm thuật toán 86 II.1.5.2 Thuật giải heuristic 86 II.2 Giải toán (4 tiết LT, tiết BT) 87 II.2.1 Khái niệm toán 87 II.2.2 Các bước giải toán máy tính 88 Bài tập Thuật toán (2 tiết BT) .89 II.2.3 Các phương pháp giải toán máy tính 89 II.2.3.1 Giải toán theo hướng xác định trực tiếp lời giải: 89 II.2.3.2 Giải toán theo hướng tìm kiếm lời giải 90 II.2.4 Phân loại toán 90 II.2.4.1 Độ phức tạp thuật toán 90 II.2.4.2 Phân loại toán 92 PHẦN LẬP TRÌNH 94 III.1 Tổng quan ngôn ngữ C (3 tiết LT) 94 III.1.1 Lịch sử phát triển 94 III.1.2 Các phần tử ngôn ngữ C 95 1.2.1 Tập kí tự 95 1.2.2 Từ khóa .95 1.2.3 Định danh 96 1.2.4 Các kiểu liệu 97 1.2.5 Hằng 98 1.2.6 Biến .99 1.2.7 Hàm .99 1.2.8 Biểu thức 100 1.2.9 Câu lệnh 100 1.2.10 Chú thích 101 III.1.3 Cấu trúc chương trình C 101 III.1.4 Biên dịch chương trình C 104 III.1.5 Trình biên dịch Turbo C++ .104 III.1.6 Cài đặt sử dụng Turbo C++ 3.0 104 III.2 Kiểu liệu biểu thức C (4 tiết LT) .105 III.2.1 Các kiểu liệu chuẩn C (1 tiết LT) .105 III.2.2 Các biểu thức 108 III.2.3 Các phép toán 109 III.2.3.1 Phép toán số học .109 III.2.3.2 Phép toán quan hệ .110 III.2.3.3 Các phép toán logic 111 III.2.3.4 Phép toán gán 111 III.2.4 Thứ tự ưu tiên phép toán 113 III.2.5 Một số toán tử đặc trưng C .114 III.3 Cấu trúc lập trình C (6 tiết LT) 117 III.3.1 Vào/ra 117 III.3.1.1 Các lệnh vào liệu với biến (printf, scanf) 117 III.3.1.2 Các lệnh nhập xuất khác 122 III.3.2 Cấu trúc lệnh khối .123 III.3.3 Cấu trúc if 124 III.3.4 Cấu trúc lựa chọn switch 125 III.3.5 Vòng lặp for 129 Bài tập Lập trình (2 tiết BT) .131 III.3.6 Vòng lặp while – while 131 III.3.7 Các lệnh thay đổi cấu trúc lập trình 134 III.3.7.1 continue 135 III.3.7.2 break .135 III.4 Mảng xâu ký tự (5 tiết LT) 136 III.4.1 Mảng 136 III.4.1.1 Khái niệm mảng .136 III.4.1.2 Khai báo sử dụng mảng .136 III.4.1.3 Các thao tác mảng 138 a.Nhập liệu cho mảng 138 b.Xuất liệu chứa mảng 139 c.Tìm phần tử có giá trị lớn nhất, phần tử có giá trị nhỏ .140 III.4.1.4 Tìm kiếm mảng 141 III.4.1.5 Sắp xếp mảng 142 Bài tập Lập trình (3 tiết BT) .144 III.4.2 Xâu ký tự (2 tiết LT) 144 III.4.2.1 Khái niệm xâu ký tự 144 III.4.2.2 Khai báo sử dụng xâu 145 a Khai báo xâu kí tự 145 b Truy nhập vào phần tử xâu 145 III.4.2.3 Các hàm xử lý ký tự 146 III.4.2.4 Các hàm xử lý xâu 147 a.Vào liệu 147 b.Một số hàm xử lí xâu kí tự khác 148 III.5 Cấu trúc (2 tiết LT) 150 III.5.1 Khái niệm cấu trúc 150 III.5.2 Khai báo sử dụng cấu trúc 150 III.5.2.1 Khai báo kiểu liệu cấu trúc 150 III.5.2.2 Khai báo biến cấu trúc: .151 III.5.2.3 Định nghĩa kiểu liệu cấu trúc với typedef 152 III.5.3 Xử lý liệu cấu trúc .153 III.5.3.1 Truy nhập trường liệu cấu trúc .153 III.5.3.2 Phép gán biến cấu trúc .154 III.6 Hàm (2 tiết LT) 155 III.6.1 Khái niệm hàm 155 III.6.1.1 Khái niệm chương trình .155 III.6.1.2 Phân loại chương trình con: 156 III.6.2 Khai báo sử dụng hàm 157 III.6.2.1 Khai báo hàm 157 III.6.2.2 Sử dụng hàm .159 III.6.3 Phạm vi biến 161 Bài tập Lập trình (2 tiết BT) .164 BUỔI PHẦN TIN HỌC CĂN BẢN (16 tiết Lý thuyết, tiết Bài tập, tiết Thực hành) I.1 Thông tin biểu diễn thông tin (5T lý thuyết) I.1.1 Các khái niệm thông tin tin học (1T lý thuyết) I.1.1.1 Thông tin xử lý thông tin a Thông tin - Dữ liệu – Tri thức Thông tin- Information 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 liệu kiện cấu trúc ý nghĩ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ả 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 lĩnh vực đấy, liệu thông tin biểu diễn xử lý máy tính Tri thức – Knowledge Tri thức theo nghĩa thường thông tin mức trừu tượng Tri thức đa dạng, kiện, thông tin cách mà người thu thập qua kinh nghiệm qua đào tạo Nó hiểu biết chung hay lĩnh vực cụ thể Thuật ngữ tri thức sử dụng theo nghĩa “hiểu” chủ thể với tiềm cho mục đích chuyên 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 liệu Dữ liệu  Thông tin xử lý  Tri thức xử lý b Qui trình xử lý thông tin Mọi trình xử lý thông tin máy tính hay người thực theo qui trình sau: Dữ liệu (Data) nhập đầu vào (Input), qua trình xử lý để nhận thông tin đầu (Output) Dữ liệu trình nhập, xử lý xuất lưu trữ NHẬP DỮ LIỆU XỬ LÝ XUẤT DỮ LIỆU (INPUT) (PROCESSING) (OUTPUT) LƯU TRỮ (STORAGE) Xử lý thông tin máy tính điện tử Thông tin thu thập lưu trữ, qua trình xử lý trở thành liệu để theo trình xử lý liệu khác tạo thông tin theo ý đồ người 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 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 hoá phần hay toàn phần trình xử lý thông tin I.1.1.2 Máy tính điện tử phân loại a Lịch sử phát triển máy tính điện tử Do nhu cầu cần tăng độ xác tính toán giảm thời gian tính toán, người quan tâm chế tạo công cụ tính toán từ xưa: bàn tính tay người Trung Quốc, máy cộng học nhà toán học Pháp Blaise Pascal (1623 - 1662), máy tính học cộng, trừ, nhân, chia nhà toán học Đức Gottfried Wilhelmvon Leibniz (1646 - 1716), máy sai phân để tính đa thức toá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 tiến nguyên lý, tính loại hình • Thế hệ (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 tính/s Loại máy tính điển hình hệ EDVAC (Mỹ) hay BESEM (Liên Xô cũ), • Thế 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, Fortran hệ điều hành đơn giản Kích thước máy lớn, tốc độ tính khoảng 10.000 -100.000 phép tính/s Điển loại IBM-1070 (Mỹ) hay MINSK (Liên Xô cũ), • Thế hệ (1965 - 1974): máy tính gắn vi xử lý vi mạch điện tử cỡ nhỏ có tốc độ tính khoảng 100.000 - triệu phép tính/s Máy có hệ điều hành đa chương trình, 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 IBM-360 (Mỹ) hay EC (Liên Xô cũ), • Thế hệ (1974 - nay): máy tính 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ý, hình 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ô hoạt động 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 • Máy tính lượng tử b Phân loạ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 phân loại máy tính theo hiệu tính toán sau: • Máy Vi tính (Microcomputer or PC): Loại thường thiết kế cho người dùng, giá thành rẻ Hiện nay, máy vi tính phổ dụng xuất nhiều dạng: máy để bàn (Destop), máy trạm (Workstation), máy xách tay (Notebook) máy tính bỏ túi • Máy tính tầm trung (Mini Computer): Là loại máy tính có tốc độ hiệu tính toán mạnh máy vi tính Chúng thường thiết kế để sử dụng cho ứng dụng phức tạp Giá máy cỡ hàng vài chục nghìn USD • Máy tính lớn (Mainframe 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 toán cao, cỡ hàng tỷ phép tính/giây Các máy tính cho phép nhiều người dùng đồng thời sử dụng Trung tâm tính toán/ Viện 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 I.1.1.3 Tin học ngành công nghệ liên quan a Tin học Thuật ngữ Tin học có nguồn gốc từ tiếng Đức vào năm 1957 Karl Steinbuch đề xướng báo Informatik: Automatische Informationsverarbeitung (i.e "Informatics: automatic 10 Bài giảng tin học đại cương Khai báo thứ khai báo kiểu liệu cấu trúc có tên sinh_vien gồm có trường liệu ma_so_sinh_vien kiểu xâu kí tự, ho_va_ten kiểu xâu kí tự diem_TinDC kiểu số thực float Ở khai báo thứ ta khai báo kiểu liệu cấu trúc có tên point_3D gồm có trường trường có kiểu liệu số thực float Vì trường kiểu liệu nên ta sử dụng mảng để thay cấu trúc, nhiên việc sử dụng cấu trúc để mô tả liệu điểm chiều giúp mô tả tự nhiên hơn, “thật” (nghĩa cấu trúc tọa độ độc lập với nhau, nhìn từ bên toạ độ lại thể thống cung cấp thông tin vị trí điểm Còn sử dụng mảng tọa độ điểm độc lập rời rạc với nhau, không thấy mối liên hệ Khi ta phải tự ngầm quy ước phần tử mảng có số 3*k, 3*k+1 3*k+2 với k = 0, 1, 2, … tọa độ điểm) III.5.2.2 Khai báo biến cấu trúc: Để khai báo biến cấu trúc ta dùng cú pháp khai báo sau struct tên_cấu_trúc tên_biến_cấu_trúc; Ví dụ: struct sinh_vien a, b, c; Câu lệnh khai báo biến tên a, b, c có kiểu liệu cấu trúc sinh_vien Tuy nhiên ta kết hợp đồng thời vừa khai báo kiểu liệu cấu trúc vừa khai báo biến cấu trúc cách sử dụng cú pháp khai báo sau: struct [tên_cấu_trúc] { ; } tên_biến_cấu_trúc; Theo cú pháp khai báo ta thấy phần tên_cấu_trúc có không Nếu có tên_cấu_trúc sau ta khai báo bổ sung biến có kiểu liệu tên_cấu_trúc đó, tên_cấu_trúc cấu trúc khai báo tương ứng không sử dụng sau Ví dụ: struct diem_thi { float diem_Toan; float diem_Ly; float diem_Hoa; } struct thi_sinh { char SBD[10]; // số báo danh char ho_va_ten[30]; struct diem_thi ket_qua; } thi_sinh_1, thi_sinh_2; 151 Bài giảng tin học đại cương Qua ví dụ ta thấy cấu trúc lồng nhau, nghĩa cấu trúc trường liệu cấu trúc khác, mức độ lồng không hạn chế Để tăng thêm tiện lợi, ngôn ngữ C cho phép khai báo trực tiếp trường liệu cấu trúc bên cấu trúc chứa nó, ta viết lại ví dụ sau struct thi_sinh { char SBD[10]; char ho_va_ten[30]; struct diem_thi { float diem_Toan; float diem_Ly; float diem_Hoa; }ket_qua; } thi_sinh_1, thi_sinh_2; III.5.2.3 Định nghĩa kiểu liệu cấu trúc với typedef Trong ví dụ trước ta thấy khai báo biến cấu trúc khóa struct, sau đến tên cấu trúc đến tên biến Cách khai báo có phần "rắc rối" so với khai báo biến thông thường có không trường hợp người lập trình quên đặt từ khóa struct đầu Để tránh điều đó, ngôn ngữ C cho phép ta đặt tên cho kiểu liệu cấu trúc câu lệnh typedef có cú pháp khai báo sau : typedef struct tên_cũ tên_mới; Hoặc ta đặt lại tên cho cấu trúc khai báo cú pháp typedef struct [tên_cũ] { ; }danh_sách_các_tên_mới; Sau câu lệnh ta sử dụng tên_mới thay cho tổ hợp struct tên_cũ khai báo biến Lưu ý: Được phép đặt tên_mới trùng với tên_cũ Ví dụ: struct point_3D { float x, y, z; } P; struct point_3D M; typedef struct point_3D point_3D; point_3D N; Trong ví dụ ta đặt lại tên cho cấu trúc struct point_3D thành point_3D dùng tên làm kiểu liệu cho khai báo biến N Các biến P, M khai báo theo cách biết 152 Bài giảng tin học đại cương Ví dụ: typedef struct point_2D { float x, y; }point_2D, diem_2_chieu, ten_bat_ki; point_2D X; diem_2_chieu Y; ten_bat_ki Z; Với ví dụ ta cần ý point_2D, diem_2_chieu ten_bat_ki tên biến mà tên cấu trúc struct point_2D Các biến X, Y, Z khai báo với kiểu liệu tên III.5.3 Xử lý liệu cấu trúc III.5.3.1 Truy nhập trường liệu cấu trúc Dữ liệu biến cấu trúc bao gồm nhiều trường liệu, trường liệu độc lập với Do muốn thay đổi nội dung liệu bên biến cấu trúc ta cần truy nhập tới trường thực thao tác cần thiết trường Để truy nhập tới trường cấu trúc ta dùng cú pháp sau: tên_biến_cấu_trúc.tên_trường Dấu chấm “.” sử dụng cú pháp toán tử truy nhập thành phần cấu trúc, trường truy nhập lại cấu trúc ta tiếp tục áp dụng toán tử để truy nhập tới trường thành phần nằm mức sâu Giờ ta “đối xử” tên_biến_cấu_trúc.tên_trường giống biến thông thường có kiểu liệu kiểu liệu tên_trường, tức ta nhập giá trị, hiển thị giá trị biến cấu trúc, sử dụng giá trị biểu thức… Ví dụ: // cấu trúc mô tả điểm không gian chiều // trường liệu gồm: tên điểm tọa độ điểm // tọa độ cấu trúc gồm trường: hoành độ tung độ #include #include void main() { struct point_2D { char ten_diem; struct { float x, y; } toa_do; 153 Bài giảng tin học đại cương } p; float temp_float; char temp_char; printf(“\n Hay nhap thong tin ve mot diem”); printf(“\n Ten cua diem: “); fflush(stdin); scanf(“%c”,&temp_char); p.ten_diem = temp_char; printf(“\n nhap vao hoanh cua diem: “); scanf(“%f”,&temp_float); p.toa_do.x = temp_float; // giả sử điểm xét nằm đường thẳng y = 3x + 2; p.toa_do.y = 3*p.toa_do.x + 2; printf(“\n %c = (%5.2f,%5.2f)”,p.ten_diem, p.toa_do.x, p.toa_do.y); getch(); } Kết chạy chương trình: Hay nhap thong tin ve mot diem Ten cua diem: A nhap vao hoanh cua diem: A = ( 5.00,17.00) Lưu ý: Cũng việc nhập giá trị cho phần tử mảng, việc nhập giá trị cho trường cấu trúc (đặc biệt trường có kiểu liệu float) nên thực qua biến trung gian để tránh tình làm treo máy kết nhập không ý III.5.3.2 Phép gán biến cấu trúc Giả sử ta có biến cấu trúc a b có kiểu liệu cấu trúc đó, giả sử trường liệu a khởi tạo (tức giá trị trường liệu xác định) Giờ ta muốn giá trị trường liệu b có giá trị giống với trường liệu tương ứng a Ta thực điều cách gán giá trị trường a cho trường tương ứng b Cách “thủ công” bất tiện cấu trúc có nhiều trường liệu Do C cung cấp cho ta phương tiện để thực việc cách thứ 2, sử dung phép gán biến cấu trúc Phép gán cấu trúc có cú pháp tương tự phép gán thông thường biến_cấu_trúc_1 = biến_cấu_trúc_2; Câu lệnh gán giá trị trường biến_cấu_trúc_2 cho trường tương ứng biến_cấu_trúc_1 Ví dụ: #include #include 154 Bài giảng tin học đại cương #include void main() { struct s { char ho_ten[20]; float diem; }a, b, c; float temp_f; printf("\na.ho_ten: ");fflush(stdin); gets(a.ho_ten); printf("\na.diem = ");scanf("%f",&temp_f); a.diem = temp_f; strcpy(c.ho_ten, a.ho_ten); c.diem = a.diem; b = a; printf("\na: %20s %5.2f", a.ho_ten, a.diem); printf("\nb: %20s %5.2f", b.ho_ten, b.diem); printf("\nc: %20s %5.2f\n", c.ho_ten, c.diem); } Kết thực a.ho_ten: nguyen van minh a.diem = 7.5 a: nguyen van minh 7.50 b: nguyen van minh 7.50 c: nguyen van minh 7.50 Trong chương trình ta nhập giá trị cho trường biến cấu trúc a từ bàn phím, sau copy liệu từ biến a sang biến c cách chép trường, copy liệu từ biến a sang biến b cách dùng lệnh gán Kết rõ ràng cách thứ ngắn gọn Lưu ý : Để copy liệu xâu kí tự ta phải dùng lệnh strcpy(), không dùng lệnh gán thông thường để copy nội dung xâu kí tự BUỔI 15 III.6 Hàm (2 tiết LT) III.6.1 Khái niệm hàm III.6.1.1 Khái niệm chương trình Trong lập trình thường gặp đoạn chương trình lặp lặp lại nhiều lần chỗ khác Để tránh rườm rà tiết kiệm công sức, đoạn chương trình 155 Bài giảng tin học đại cương thay chương trình tương ứng cần ta việc gọi chương trình mà viết lại đoạn chương trình Lấy ví dụ giải toán lượng giác ta thường xuyên cần phải tính giá trị sin đại lượng lượng giác x Như ta nên lập chương trình tên sin tham số x để tính giá trị sin(x) Mỗi cần tính toán giá trị sin đại lượng y ta cần gọi chương trình sin lập sẵn truyền đại lượng y làm tham số cho chương trình sin ta thu kết mong muốn mà viết lại đoạn chương trình tính giá trị sin(y) Bên cạnh chương trình sin có nhiều chương trình khác tạo sẵn cos, exp (dùng để tính lũy thừa số e), pow (tính lũy thừa), sqrt (tính bậc 2), giúp người lập trình tính toán giá trị đại lượng thông dụng Những chương trình nằm thư viện chương trình mẫu trình biên dịch C quản lý, chúng gọi chương trình chuẩn Trình biên dịch Turbo C++ phân loại đặt chương trình chuẩn đơn vị chương trình khác dạng tệp tiêu đề stdio.h, conio.h, math.h, string.h Ngoài có lý khác cần đến chương trình Khi ta giải toán lớn chương trình ta lớn dài, điều làm cho việc sửa chữa, gỡ rối, hiệu chỉnh chương trình gặp nhiều khó khăn Nhưng ta chia toán lớn, phức tạp ban đầu thành toán nhỏ tương đối độc lập với nhau, lập chương trình giải toán con, cuối ghép chương trình lại thành chương trình giải toán ban đầu tiện lợi cho việc phát triển, kiểm tra sửa chữa chương trình Việc tương tự dây chuyền sản xuất công nghiệp ta lắp ráp sản phẩm hoàn thiện từ bán thành phẩm, module chế tạo nơi khác Vì bán thành phẩm chế tạo độc lập nên phát lỗi module ta việc tìm đến nơi sản xuất để sửa chữa Việc chia nhỏ chương trình thành chương trình đảm nhận công việc nhỏ khác tư tưởng cho phương pháp lập trình có cấu trúc (structured programming) Cần lưu ý có chương trình sử dụng lần làm cho chương trình trở nên sáng sủa dễ đọc, dễ hiểu III.6.1.2 Phân loại chương trình con: Có loại chương trình hàm (function) thủ tục (procedure) Sự khác hàm thủ tục chỗ hàm sau thực xong trả giá trị, thủ tục không trả giá trị Mặc dù hàm thủ tục tương đương nhau, tức xây dựng thủ tục có chức tương đương với hàm xây dựng hàm có chức tương đương với thủ tục Vì có ngôn ngữ lập trình cho phép chương trình hàm thủ tục (Pascal) có ngôn ngữ cho phép chương trình hàm mà (như C, Java) Lưu ý chương trình hàm có giá trị trả Nếu thực giá trị để trả (nghĩa hoạt động giống thủ tục) ta phải khai báo hàm có kiểu giá trị trả “không kiểu giá trị cả” (kiểu void C) 156 Bài giảng tin học đại cương III.6.2 Khai báo sử dụng hàm III.6.2.1 Khai báo hàm Cú pháp khai báo hàm C sau [] ([,…]) Thân hàm Khai báo hàm chia làm phần: - Dòng đầu hàm: [] ([,…]) - Thân hàm: tập hợp khai báo câu lệnh đặt cặp dấu ngoặc nhọn { … } Trong thân hàm có lệnh return Ví dụ sau khai báo định nghĩa hàm tính giai thừa số nguyên dương Ta quy ước giai thừa số âm –1, 0, số nguyên dương a a! = a × (a-1) ×…× int giai_thua(int a) { int ket_qua; int i; ket_qua = 1; for(i = 0;i Dòng đầu hàm −−−−−−−−−−−−−> Các khai báo −−−−−−−−−−−−−> Các câu lệnh } 157 Bài giảng tin học đại cương Các thành phần dòng đầu hàm Dòng đầu hàm thông tin trao đổi bên bên hàm Khi nói tới dòng đầu hàm ta nói tới tên hàm, hàm cần thông tin từ môi trường để hoạt động (các tham số đầu vào), hàm cung cấp thông tin cho môi trường (những tham số đầu giá trị trả về) Dòng đầu hàm phân biệt hàm với nhau, hay nói cách khác hàm có dòng đầu hàm giống Kiểu liệu trả hàm Thông thường hàm sau thực trả giá trị kết tính toán Để sử dụng giá trị ta cần phải biết thuộc kiểu liệu Kiểu liệu đối tượng tính toán hàm trả gọi kiểu liệu trả hàm Trong C, kiểu liệu trả hàm kiểu liệu (kiểu liệu có sẵn kiểu liệu người dùng tự định nghĩa) không kiểu liệu mảng Nếu kiểu liệu trả kiểu void hàm không trả giá trị Trường hợp ta không khai báo kiểu liệu trả chương trình dịch C ngầm hiểu kiểu liệu trả hàm kiểu int Tên hàm Tên hàm là định danh hợp lệ Tuy nhiên tên hàm nên mang nghĩa gợi ý chức công việc mà hàm thực Ví dụ hàm có chức tính trả bình phương số thực x nên có tên binh_phuong Trong C, hàm không đặt tên trùng Tham số hàm Tham số hàm thông tin cần cho hoạt động hàm thông tin, kết tính toán hàm trả lại Tức có tham số chứa liệu vào cung cấp cho hàm, có tham số chứa liệu mà hàm tính toán Các tham số sử dụng lời khai báo hàm gọi tham số hình thức Nó tham số giả định hàm Khi khai báo tham số hình thức hàm phải tên tham số kiểu liệu tham số Các tham số cung cấp cho hàm trình thực hàm gọi tham số thực Kiểu liệu tham số thực cung cấp cho hàm chương trình phải giống kiểu liệu tham số hình thức tương ứng với tham số thực đó, không có báo lỗi biên dịch Một hàm có một, nhiều tham số Nếu có nhiều tham số chúng phải phân cách với dấu phẩy Lưu ý hàm tham số phải có cặp dấu ngoặc đơn sau tên hàm, ví dụ main() Lệnh return Trong chương trình, hàm thực ta gặp lời gọi hàm hàm chương trình Một lời gọi hàm tên hàm theo sau tham số thực chương trình Sau hàm 158 Bài giảng tin học đại cương thực xong, trở chương trình gọi Có cách để từ hàm trở chương trình gọi hàm: - Sau thực tất câu lệnh có thân hàm - Khi gặp lệnh return Cú pháp chung lệnh return return biểu_thức; Khi gặp lệnh này, chương trình tính toán giá trị biểu_thức, lấy kết tính toán làm giá trị trả cho lời gọi hàm kết thúc việc thực hàm, trở chương trình gọi Trong lệnh return phần biểu_thức, ta kết thúc thực hàm mà không trả giá trị Ví dụ phân tích #include #include int max(int x, int y, int z) { int max; max = x>y?x:y; max = max>z?max:z; return max; } void main() { int a,b,c; clrscr(); printf("\n Nhap gia tri cho so nguyen a, b, c: "); scanf("%d %d %d",&a,&b,&c); printf("\n Gia tri cac so vua nhap: "); printf(" a = %-5d b = %-5d c = %-5d"); printf("\n Gia tri lon nhat so la %d",max(a,b,c)); getch(); } III.6.2.2 Sử dụng hàm Một hàm sau khai báo sử dụng Để sử dụng hàm (hay nói gọi hàm) ta sử dụng cú pháp sau: ([danh sách tham số]) Ví dụ: chương trình khai báo định nghĩa hàm có tên Uscln với tham số có kiểu unsigned int Hàm Uscln tìm ước số chung lớn tham số theo thuật toán Euclid trả ước số chung tìm Sau ta gọi hàm Uscln hàm main để tìm ước số chung lớn số nguyên nhập từ bàn phím #include #include 159 Bài giảng tin học đại cương unsigned int Uscln(unsigned int a, unsigned int b) { unsigned int u; if (a[...]... tr Anh u chp nhn Anh ngi ta s dng thut ng computer science, hay computing science l thut ng dch, Nga cng chp nhn tờn informatika (1966) Tin hc c xem l ngnh khoa hc nghiờn cu cỏc phng phỏp, cụng ngh v k thut x lý thụng tin mt cỏch t ng Cụng c ch yu s dng trong tin hc l mỏy tớnh in t v cỏc thit b truyn tin khỏc Ni dung nghiờn cu ca tin hc ch yu gm 2 phn: K thut phn cng (Hardware engineering): nghiờn... trin cỏc h iu hnh, cỏc tin ớch chung cho mỏy tớnh v mng mỏy tớnh, cỏc phn mm ng dng phc v cỏc mc ớch x lý v khai thỏc thụng tin khỏc nhau ca con ngi b Cụng ngh thụng tin (Information Technology - IT) Thut ng Cụng ngh thụng tin xut hin Vit nam vo nhng nm 90 ca th k 20 Theo Information Technology Association of America (ITAA): Cụng ngh thụng tin l ngnh nghiờn cu cỏc h thng thụng tin da vo mỏy tớnh, c... mt cỏch ngn gn, IT x lý vi cỏc mỏy tớnh in t v cỏc phn mm mỏy tớnh nhm chuyn i, lu tr, bo v, truyn tin v trớch rỳt thụng tin mt cỏch an ton Theo NQ49 CP thỡ Cụng ngh thụng tin l Cỏc ng dng ngy nay ca IT: Qun tr d liu Thit k h thng c s d liu Qun lý h thng thụng tin Qun lý h thng c Cụng ngh thụng tin v truyn thụng Ngy nay, khuynh hng s dng "information" thay th cho "data" v cú xu th m rng cho lnh... hỡnh v, hỡnh chp vo mỏy tớnh Thụng tin nguyờn thu trờn giy s c quột thnh cỏc tớn hiu s to thnh cỏc tp tin nh (image file) Cỏc thit b ra: Mn hỡnh (Screen hay Monitor, thit b ra chun): dựng hin th thụng tin cho ngi s dng xem Thụng tin c th hin ra mn hỡnh bng phng phỏp ỏnh x b nh (memory mapping), vi cỏch ny mn hỡnh ch vic c liờn tc b nh v hin th (display) bt k thụng tin no hin cú trong vựng nh ra mn... nhm lm tng tc trao i thụng tin B nh cache thuc b nh RAM, cú dung lng nh Nú cha mt phn chng trỡnh v d 26 liu m CPU ang x lý, do vy thay vỡ ly lnh v d liu t b nh chớnh, CPU s ly trờn cache Hu ht cỏc mỏy tớnh hin nay u cú cache tớch hp trờn chip vi x lý B nh ngoi B nh ngoi (External Memory) L thit b lu tr thụng tin vi dung lng ln, thụng tin khụng b mt khi khụng cú in Cỏc thụng tin ny cú th l phn mm mỏy... tin n v nh nht biu din thụng tin gi l bit Mt bit tng ng vi mt s kin cú 1 trong 2 trng thỏi Vớ d: Mt mch ốn cú 2 trng thỏi l: Tt (Off) khi mch in qua cụng tc l h M (On) khi mch in qua cụng tc l úng S hc nh phõn s dng hai ký s 0 v 1 biu din cỏc s Vỡ kh nng s dng hai s 0 v 1 l nh nhau nờn mt ch th ch gm mt ch s nh phõn cú th xem nh l n v cha thụng tin nh nht Bit l ch vit tt ca BInary digiT Trong tin. .. N(b) l cỏc s phn nguyờn trong phộp nhõn vit ra theo th t tớnh toỏn I.1.2.2 Biu din d liu trong mỏy tớnh v n v thụng tin a Nguyờn tc chung Thụng tin v d liu m con ngi hiu c tn ti di nhiu dng khỏc nhau, vớ d nh cỏc s liu, cỏc ký t vn bn, õm thanh, hỡnh nh, nhng trong mỏy tớnh mi thụng tin v d liu u c biu din bng s nh phõn (chui bit) a d liu vo cho mỏy tớnh, cn phi mó hoỏ nú v dng nh phõn Vi cỏc kiu... nhiu thụng tin, hỡnh nh, õm thanh v thng c s dng trong cỏc phng tin a truyn thụng (multimedia) Cú hai loi ph bin l: a CD (dung lng khong 700 MB) v DVD (dung lng khong 4.7 GB) Cỏc loi b nh ngoi khỏc nh th nh (Memory Stick, Compact Flash Card), USB Flash Drive cú dung lng ph bin l 32 MB, 64 MB, 128 MB, Hỡnh I.2.1.1.c Mt s loi b nh ngoi d H thng vo-ra Chc nng ca h thng vo-ra l trao i thụng tin gia mỏy... Only Memory) l B nh ch c thụng tin, dựng lu tr cỏc chng trỡnh h thng, chng trỡnh iu khin vic nhp xut c s (ROM-BIOS : ROM-Basic Input/Output System) Thụng tin trờn ROM khụng th thay i v khụng b mt ngay c khi khụng cú in RAM (Random Access Memory) l B nh truy xut ngu nhiờn, c dựng lu tr d liu v chng trỡnh trong quỏ trỡnh thao tỏc v tớnh toỏn RAM cú c im l ni dung thụng tin cha trong nú s mt i khi mt... l trong du phy ng Khi tớnh toỏn hin nay c b sung thờm khi tớnh toỏn du phy ng FPU (Floating Point Unit)- hay cũn gi l b ng x lý (Coproccesor Unit) Tp cỏc thanh ghi (Registers) c gn cht vo CPU bng cỏc mch in t lm nhim v b nh trung gian cho CPU Cỏc thanh ghi mang cỏc chc nng chuyờn dng giỳp tng tc trao i thụng tin 25 trong mỏy tớnh Trờn cỏc CPU hin nay cú t vi chc n vi trm thanh ghi di ca cỏc thanh

Ngày đăng: 24/06/2016, 17:36

TỪ KHÓA LIÊN QUAN

w