Bài giảng Tin học đại cương - Chương 1: Cơ bản về tin học cung cấp cho người học các kiến thức: Tổng quan về máy tính, tổng quan về mạng máy tính, tổng quan về việc giải quyết bài toán trên máy tính. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1TIN HỌC ĐẠI CƯƠNG
Chương 1: Cơ bản về tin học
Trang 23 Tổng quan về việc giải quyết bài toán trên máy tính
• Khái niệm về vấn đề và bài toán
• Các bước giải quyết bài toán bằng máy tính
Trang 31.1 Giới thiệu
Tin học:
– Là một ngành khoa học chuyên nghiên cứu các phương pháp,các quá trình xử lý thông tin một cách tự động trên các phươngtiện kỹ thuật (chủ yếu là máy tính điện tử)
Trang 4Thông tin – Biểu diễn và xử lý thông tin
Thông tin (Information):
– Là một khái niệm trừu tượng, bao gồm những dữ kiện về đối tượng tại một thời điểm cụ thể Thông tin giúp con người nhận biết, hiểu và có sự đánh giá của bản thân về đối tượng.
Dữ liệu (Data):
– Là Thông tin đã được mã hoá theo một quy tắc nào đó Máy tính chỉ xử lý được dữ liệu đã mã hoá ở dạng nhị phân (các bit 0, 1) – Đơn vị đo dữ liệu:
Trang 5Thông tin – Biểu diễn và xử lý thông tin
Mã hoá thông tin trong máy tính
– Muốn máy tính lưu trữ, xử lý được thông tin, thông tin phải
được biến đổi thành các tín hiệu điện, các tín hiệu điện này tương ứng với 2 trạng thái 0 và 1 (đóng mạch/hở mạch) Các biến đổi như vậy gọi là mã hoá thông tin
– Mã hóa thông tin ở dạng văn bản đơn giản (các ký tự) người tadùng bảng mã ASCII gồm 256 (= 28) ký tự đánh số từ 0 – 255.Mỗi ký tự theo bảng mã ASCII tương ứng với 1 Byte trong bộnhớ máy tính
– Trong bộ mã Unicode người ta dùng 2 hoặc 3 byte để mã hoá 1
ký tự
→ Bộ mã Unicode có thể biểu được các ký tự của mọi ngônngữ trên thế giới
Trang 6Các hệ đếm
• Hệ đếm là tập hợp các ký hiệu (các chữ số cơ bản) để biểu diễncác số và xác định giá trị của các biểu diễn số
• Ví dụ:
• Hệ thập phân (cơ số 10, decimal)
• Hệ nhị phân (cơ số 2, binary)
• Hệ bát phân (cơ số 8, octal)
• Hệ thập lục phân (cơ số 16, hexadecimal)
Trang 7Chuyển từ cơ số 2 sang cơ số 10
(anan-1…a0)2 = an.2n + an-1.2n-1 +…+ a0.20
Ví dụ:
• 0B = 0; 10B = 2
• 1001B = 1.23 + 0.22 +0.21 + 1.20 = 9
Trang 8Chuyển từ cơ số 10 sang cơ số 2
D = số cần chuyển
Chia D (chia nguyên) liên tục cho 2
cho tới khi kết quả phép chia = 0.
Lấy phần dư các lần chia viết theo
thứ tự ngược lại.
• Kết quả: 1011
Trang 9Chuyển từ cơ số 10 sang cơ số 2 (tt)
Phần nguyên
– Chia liên tiếp cho 2
– Viết phần dư theo chiều ngược lại
dừng hoặc kết quả=0
– Viết các phần nguyên theo đúng
thứ tự được kết quả
Trang 10Chuyển đổi cơ số 16 và cơ số 10
Từ hệ 10 → hệ 16
–Thực hiện chia liên tiếp cho 16.
–Lấy phần dư viết ngược lại.
Từ hệ 16 → hệ 10
• (anan-1…a0)H= an.16n + an-1.16n-1 +…+ a0.160
Trang 11Chuyển đổi cơ số 16 và cơ số 2
Trang 12Đổi hệ 16 sang hệ 2
• Căn cứ vào bảng chuyển đổi, thay thế 1 chữ
số của số hệ 16 bằng 4 bit nhị phân.
– CH = 1100B
– 7H = 0111B
→ C7H = 1100 0 111B
Trang 13Đổi hệ 2 sang hệ 16
Nhóm 4 bit một từ phải sang trái rồi căn cứ
vào bảng chuyển đổi, thay thế bằng chữ số
Trang 16Lịch sử phát triển của máy tính
Trang 17Lịch sử phát triển của máy tính
Một số mốc lịch sử quan trọng
– Trước công nguyên : Bàn tính gảy ở Trung Quốc.
– 1642 : Bàn tính cơ của Pascal ( phép + và - ).
– 1670 : Bàn tính cơ học của Leibniz ( các phép tính thông dụng )
– 1842 : Máy tính có thể lập trình được của Charles Babbage.
– 1890 : Herman Hollerith thiết kế hệ thống có thể lưu thông tin trên bìa đục lỗ đọc
ra bằng tế bào quang điện, thành lập công ty IBM.
– 1946 : Máy ENIAC của Mỹ giá 500.000$ với 18000 bóng đèn điện tử.
– 1958 : Máy tính đầu tiên sử dụng công nghệ bóng bán dẫn transistor (IBM 7090).
– 1964 : Máy tính đầu tiên sử dụng IC (IBM 360).
– 1976 : Hãng DEC giới thiệu máy VAX 11/780.
– 1981 : IBM giới thiệu máy vi tính PC.
Trang 18Phân loại máy tính
Trang 19Cấu tạo chung của MTĐT
Mouse
Case
Optical Disk Floppy disk
Key board
Monitor
Screen
Trang 20Cấu tạo chung của MTĐT (tt)
Trang 21Cấu tạo chung của MTĐT (tt)
Khe cắm RAM
Khe cắm Card
mở rộng
Đế cắm CPU
Khe cắm cáp dữ liệu
Cổng ngoại vi chuột, bàn phím
Cổng ngoại
vi nối tiếp
Jack cắm màn hình
Lá tản nhiệt
Trang 22Cấu tạo chung của MTĐT (tt)
Bộ xử lý trung tâm (CPU)
– Đơn vị điều khiển (CU – Control Unit)
– Bộ số học & Logic (ALU – Arithmetic Logic Unit)
– Bộ nhớ (Memory)
Input Devices (các thiết bị vào)
– Keyboard, Mouse, Scanner, Microphone…v.v
Output Devices (các thiết bị ra)
– Monitor, Printer, Speaker, Projector….v.v
Trang 23Cấu tạo chung của MTĐT (tt)
– Control Unit : Thực hiện 4 thao tác cơ bản
• Fetch : Nạp chỉ thị (Instruction) hoặc dữ liệu từ bộ nhớ.
• Decode : Giải mã chỉ thị thành lệnh.
• Execute : Thực thi lệnh.
• Store : Lưu kết quả của lệnh vừa thực thi vào bộ nhớ.
– Arithmetic Logic Unit
• Phép toán số học: + - x ÷
• Phép toán so sánh: < > =
• Phép toán luận lý: and, or, not
Trang 24Cấu tạo chung của MTĐT (tt)
Chu kỳ máy (Machine Cycle)
– Instruction time: (1) và (2)
– Execution time: (3) và (4)
Cách tính tốc độ CPU
– Tốc độ của CPU được tính bằng
số triệu lệnh xử lý được trong 1
giây
– Đơn vị đo tốc độ CPU là MIPS
(Millions of Instructions Per
Second)
Trang 25Cấu tạo chung của MTĐT (tt)
CPU không sử dụng kỹ thuật Pipelining
CPU sử dụng kỹ thuật Pipelining
Trang 26Cấu tạo chung của MTĐT (tt)
Đồng hồ hệ thống (System Clock)
– Đồng bộ mọi hoạt động của máy tính
– Mỗi tick là một chu kỳ đồng hồ
– Đơn vị tính = Herzt (Hz)
1 MHz (Mega Herzt) = 1 triệu tick đồng hồ hệ thống.
1 GHz (Giga Herzt) = 1 tỉ tick đồng hồ hệ thống.
Trang 28Tổng quan về hệ điều hành (tt)
Nhiệm vụ của Hệ điều hành
– Điều khiển và quản lý trực tiếp các phần cứng (mainboard,VGA card, sound card…v.v)
– Thực hiện các thao tác cơ bản: đọc/ghi file, quản lý file …v.v– Cung cấp hệ thống giao diện sơ khai cho các ứng dụng khác.– Cung cấp hệ thống lệnh cơ bản để người dùng điều hành máy.– Cung cấp mộ số dịch vụ cơ bản: (WebBrowser, NotePad,
Calculator…v.v)
Trang 29Tổng quan về hệ điều hành (tt)
Các thành phần cơ bản của HĐH
– Hệ thống quản lý tiến trình (Processes management system).– Hệ thống quản lý bộ nhớ (Memory management system)
– Hệ thống quản lý nhập xuất (Input/Output System)
– Hệ thống quản lý tập tin (File sytstem)
– Hệ thống bảo vệ (Security system)
– Hệ thống dịch vụ lệnh (Command Services system)
– Hệ thống quản lý mạng (Networking system)
Trang 30Tổng quan về hệ điều hành (tt)
Phân loại hệ điều hành
–Dưới góc độ loại máy tính
• Hệ điều hành máy MainFrame
• Hệ điều hành máy chủ (Server)
• Hệ điều hành dành cho máy nhiều CPU
• Hệ điều hành máy tính cá nhân PC
• Hệ điều hành dành cho máy PDA (Embedded OS - hệ điềuhành nhúng)
–Dưới góc độ người sử dụng
• Hệ điều hành đơn nhiệm
• Hệ điều hành đa nhiệm một người dùng
• Hệ điều hành đa nhiệm nhiều người dùng
Trang 31Tổng quan về hệ điều hành (tt)
• Market share
Trang 321.2 Mạng máy tính
Cơ sở mạng
– Mạng máy tính là mạng của 2 hay nhiều máy tính được kết nốivới nhau bởi một đường truyền vật lý theo một kiến trúc nhấtđịnh nào nào đó
– Các thành phần của mạng máy tính:
• Các hệ thống đầu cuối
• Môi trường truyền dẫn
• Giao thức truyền thông
Các phương thức truyền thông trên mạng
– Quảng bá (broadcast)
– Điểm-Điểm
Trang 33Phương thức truyền thông
Kỹ thuật truyền tin trong mạng máy tính
– Chuyển mạch kênh (Circuit switched)
– Chuyển mạch gói (Packet switched)
– Chuyển mạch thông báo (Message Switched)
Các mô hình mạng
Trang 34Mạng Internet
Mạng Internet
– Là một hệ thống thông tin toàn cầu
– Là mạng của các mạng máy tính Hệ thống này truyền thôngtin bằng kỹ thuật chuyển mạch gói (packet switching) dựa trên
một giao thức liên mạng đã được chuẩn hóa (giao thức IP)
– Mạng Internet bao gồm hàng ngàn mạng máy tính nhỏ hơn củacác doanh nghiệp, các viện nghiên cứu và các trường đại học,của người dùng cá nhân và các chính phủ trên toàn cầu
Trang 35Email trên Internet
Email trên Internet
– Viết tắt của electronic
– Bao gồm: Chương trình
đọc mail (user agent);
Máy chủ mail (mail
server); giao thức gửi
Trang 36Email trên Internet
– Dùng web browser truy cập vào URL của mail server (vd:
http://mail.yahoo.com hoặc http://mail.google.com)
– Mọi thao tác trên web mail giống như thao tác với 1 trang
web bình thường
Trang 37Email trên Internet (tt)
Các thành phần email
– From: địa chỉ email của người gửi
– To: địa chỉ email của người nhận
– Subject: Tiêu đề của mail
– CC: đồng thời gửi cho một số địa chỉ email khác
– BCC: đồng thời gửi cho địa chỉ email khác (người nhận không biết điều này)
Trang 38Email trên Internet (tt)
Các dịch vụ cơ bản của mạng Internet
– www (wold wide web)
– Thư điện tử (email)
– Truyền, tải tập tin (FTP)
– Tán ngẫu – Chat
Các dịch vụ nâng cao của mạng internet
– Điện thoại internet (VoIP)
– Hội thảo trực tuyến (NetMeeting)
– Theo dõi, giám sát (Tracking)
– …
Trang 39World Wide Web
World Wide Web (www)
– Là dịch vụ phổ biến nhất của mạng Internet (đến mức nhiềungười hiểu đồng nhất khái nhiệm internet với web)
– Ra đời năm 1991, do Tim Berners Lee ở Trung tâm nghiên
cứu nguyên tử châu Âu (Cern) phát minh ra dựa theo một ý
tưởng về siêu văn bản được Ted Nelson đưa ra từ năm 1985.
– Có thể nói www là một cuộc cách mạng trên Internet vì nhờ nóngười dùng có thể truy cập, trao đổi thông tin một cách dễdàng
Trang 40World Wide Web (tt)
để dịch và hiển thị “câu trả lời” từ phía server gửi về
Trang 41World Wide Web (tt)
Siêu văn bản ( hypertext )
– Siêu văn bản là một loại văn bản thông thường nhưng chứa một hay nhiều tham chiếu tới các văn bản khác.
– Người sử dụng có thể đi từ tài liệu này sang tài liệu khác thông qua
các tham chiếu Như vậy ta có thể đi vào xa lộ thông tin của thế giới.
URL (Unifrom Resource Locator)
– Là chuẩn định vị tài nguyên trên mạng (thường gọi là link) Căn cứ vào URL người dùng có thể di chuyển từ văn bản này tới văn bản khác trong khái niệm siêu văn bản.
– Được dùng để tham chiếu tới tài nguyên trên Internet
– Cú pháp URL:
• Protocol://Domain-name:Port/Folder/Page?Variable=Value#Label
– Vd: http://www.utc2.edu.vn
Trang 421.3 Khái niệm về vấn đề và bài toán
Bài toán
– Trong phạm vi tin học, bài toán được hiểu là một công việc
nào đó mà ta muốn máy tính thực hiện
– 2 yếu tố quan trọng của bài toán:
• Input: dữ liệu đưa vào
• Output: kết quả cần tìm của bài toán.
– Vd: Viết một dòng chữ ra màn hình Bài toán giải phương
trình bậc 2; Bài toán quản lý điểm v.v
Thuật toán
– Là một dãy hữu hạn các thao tác được sắp xếp theo một trình
tự xác định sao cho khi thực hiện dãy thao tác đó thì từ Input của bài toán ta sẽ có Output cần tìm
Trang 43Các bước giải bài toán
Bước 1 - Xác định bài toán
– Xác định rõ Input và Output của bài toán
– Cần xác định input, output một cách cẩn thận vì nó sẽ ảnhhưởng tới việc lựa chọn thuật toán giải quyết Trong tin học, đôikhi việc xác định input/output còn phụ thuộc vào ngôn ngữ lậptrình sử dụng
Bước 2 - Thiết kế thuật toán
– Là bước quan trọng nhất để giải bài toán
– Một bài toán có thể có nhiều thuật toán để giải quyết
– Cần quan tâm tới tính hiệu quả của thuật toán (về bộ nhớ, về thời gian thực hiện v.v)
Trang 44Các bước giải bài toán (tt)
Bước 3 – Viết chương trình
– Lựa chọn ngôn ngữ lập trình phù hợp với nhu cầu và khả năng của bản thân
– Cần tận dụng các tiện ích mà các IDE ( Integrated Deverlopment
Environment )
Bước 4 – Hiệu chỉnh, làm tinh chương trình
– Cần đưa nhiều bộ số liệu khác nhau vào kiểm thử
– Đôi khi cần có kinh nghiệm và đầu óc phán đoán lỗi.
Bước 5 – Viết tài liệu
– Là hướng dẫn sử dụng, kết quả thử nghiệm, hoặc mô tả chi tiết thuật toán
Trang 45Thuật toán – Thuật giải
Định nghĩa:
– Thuật toán (algorithm) là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho khi thực hiện dãy thao tác đó thì từ Input của bài toán ta sẽ có Output cần tìm
Các đặc trưng của thuật toán
– Tính hữu hạn
– Tính xác định
– Tính đúng đắn
– Tính chi tiết: thao tác trong thuật toán phải chặt chẽ, đủ chi tiết
để 1 đối tượng có thể thực hiện được thuật toán.
– Tính phổ dụng
Trang 46Thuật toán – Thuật giải (tt)
Từ giải thuật đến chương trình
Giải thuật chỉ là “phương pháp”
Sử dụng giải thuật như thế nào để giải quyết bài toán
– Cần phải có máy tính.
– Lập trình: Mô tả (cài đặt) giải thuật lên máy tính.
Biểu diễn đối tượng xử lý bởi dữ liệu (data) trong chương trình(có nhiều kiểu dữ liệu với cấu trúc khác nhau)
Thuật giải + cấu trúc dữ liệu = chương trình
Trang 47Thuật toán – Thuật giải (tt)
Có phải mọi bài toán đều có thuật giải?
Có những bài toán không có giải thuật tổng quát để giải quyết.
Có những bài toán chưa có giải thuật hữu hiệu để giải quyết.
Có những bài toán chưa có giải thuật tìm lời giải.
Trang 48Biểu diễn thuật toán
Liệt kê từng bước
Sử dụng sơ đồ khối
Sử dụng giả ngôn ngữ lập trình
Trang 49Phương pháp liệt kê từng bước
Các thao tác của giải thuật được liệt kê từng bước
Tại mỗi bước, sử dụng ngôn ngữ tự nhiên để diễn tả côngviệc phải làm
Bước đứng trước (có số thứ tự nhỏ hơn) được thực hiệntrước
Ưu nhược điểm
– Dễ hiểu, dễ làm
– Phụ thuộc vào “cách hành văn” của người diễn đạt
– Với những giải thuật phức tạp, cách diễn đạt này trở nên rườm rà
– ….
Trang 50Ví dụ
Giải thuật “Tìm vị trí xuất hiện đầu tiên của một số
nguyên trong dãy số nguyên đã cho”:
Bước 1 : Nhập dãy số nguyên a1, a2, …., aN
Bước 2 : Nhập số nguyên s
Bước 3: Gán vị trí p ban đầu = 0 và vị trí i đang xét = 1 p = 0, i=1
Bước 4 : So sánh ai với s
Nếu ai =s thì ghi nhận vị trí p = i → Sang Bước 5
Nếu ai ≠ s và i < N thì gán i=i+1 và lặp lại bước 4, ngược
lại sang Bước 5
Bước 5 : Nếu p ≠ 0 thì đưa ra vị trí cần tìm là p, ngược lại thông báo không tìm thấy giá trị s trong dãy số đã cho.
Trang 51Biểu diễn thuật toán bằng sơ đồ khối
Sử dụng các hình khối để minh hoạ cho các lệnh hay
thao tác
Sử dụng mũi tên để diễn đạt thứ tự thực hiện
Đây là cách diễn đạt khoa học, có tính nhất quán cao
Các hình khối cơ bản
– Khối bắt đầu.
– Khối kết thúc.
– Khối thao tác cụ thể.
– Khối kiểm tra điều kiện.
– Khối vào/ra dữ liệu.
– Khối gọi chương trình con.
Các ký pháp.
Trang 52Các hình khối cơ bản
Khối bắt đầu và kết thúc
Khối input/output
Gọi chương trình con A ( ít
Khối kiểm tra điều kiện
– Tuỳ thuộc điều kiện (Đúng hay Sai) mà rẽ nhánh thích hợp
Khối thực thi công việc A
A
A
Điều kiện Đúng Sai
End
dùng )
Begin
Điểm nối
Trang 53Sơ đồ một số cấu trúc cơ bản
• Cấu trúc rẽ nhánh
if….then
Trang 54Sơ đồ một số cấu trúc cơ bản
• Cấu trúc lặp xác định
Biến = 1, 2, …,n
A
Trang 55Sơ đồ một số cấu trúc cơ bản (tt)
• Cấu trúc lặp không xác định
repeat…until
Trang 57Ví dụ
Trang 58Bài tập
1 Thuật toán tính chu vi, diện tích hình chữnhật
2 Thuật toán kiểm tra năm nhuận (năm nhuậnlà
năm chia hết cho 400 hoặc chia hết cho 4
nhưng không chia hết cho 100)
3 Thuật toán tính chu vi, diện tích tam giác biết độ
dài 3 cạnh (kiểm tra 3 cạnh tạo thành tam giác hay không trước khi tính)
4 Thuật toán hoán đổi giá trị của 2 số a vàb
Trang 593 Nhập số nguyên a, kiểm tra xem a có phải là số
hoàn hảo hay không?
Trang 60Một số bài toán cơ bản
Trang 62Bài tập
1 Nhập dãy số nguyên gồm n phần tử, đếm số phần tử
chia 5 dư 2 và nằm trong đoạn [x, y] với x, y nhập từ
bàn phím.
2 Nhập dãy số nguyên gồm n phần tử, tính trung bình
cộng và trung bình nhân các phần tử chẵn, và không
nằm trong đoạn [-35, 25].
3 Nhập dãy số nguyên gồm n phần tử.
a Đếm số cặp 2 phần tử liên tiếp thỏa mãn điều kiện số
sau lớn hơn số trước.
b Đếm số cặp 2 phần tử liên tiếp có tích chia hết cho
Trang 63Bài tập
c Đếm số cặp 3 phần tử liên tiếp có tổng chia hết cho 5
d Đếm số cặp 3 phần tử liên tiếp tạo thành cấp số cộng
4 Cho n điểm nằm trong mặt phẳng tọa độ xOy
a Đếm số điểm nằm trong góc phần tư thứnhất
b Đếm số điểm nằm trên đường phần giác của góc phần tưthứ
nhất
c Đếm số điểm nằm phía trên đường phần giác của góc phần tư
thứ nhất
d Đếm số điểm nằm trong hình tròn tâm O bán kính R(điểm nằm
trênđường trònđược coi là nằm trong hình tròn)
e Đếm số đoạn thẳng cắt trục hoành