SGK Tin Học 8 - Bài 3. CHƯƠNG TRÌNH MÁY TÍNH VÀ DỮ LIỆU

  • Bài 3. CHƯƠNG TRÌNH MÁY TÍNH VÀ DỮ LIỆU trang 1
  • Bài 3. CHƯƠNG TRÌNH MÁY TÍNH VÀ DỮ LIỆU trang 2
  • Bài 3. CHƯƠNG TRÌNH MÁY TÍNH VÀ DỮ LIỆU trang 3
  • Bài 3. CHƯƠNG TRÌNH MÁY TÍNH VÀ DỮ LIỆU trang 4
  • Bài 3. CHƯƠNG TRÌNH MÁY TÍNH VÀ DỮ LIỆU trang 5
  • Bài 3. CHƯƠNG TRÌNH MÁY TÍNH VÀ DỮ LIỆU trang 6
  • Bài 3. CHƯƠNG TRÌNH MÁY TÍNH VÀ DỮ LIỆU trang 7
BÃI 3
CHƯƠNG TRÌNH MÁY TÍNH
VÀ DỮ LIỆU
Dữ liệu vầ kiểu dữ liệu
Máy tính là công cụ xử lí thông tin, còn chương trình chỉ dẫn cho máy tính cách thức xử lí thông tin để có kết quả mong muốn. Thông tin rất đa dạng nên dữ liệu trong máy tính cũng rất khác nhau về bản chất. Đê’ dễ dàng quản lí và tăng hiệu quả xử lí, các ngôn ngữ lập trình thường phân chia dữ liệu thành các kiểu khác nhau: chữ, số nguyên, số thập phân,...
Ví dụ 1. Hình 1 8 dưới đây minh hoạ kết quả thực hiện của một chương trình: in ra màn hình với các kiểu dữ liệu quen thuộc là chữ và số.
hao Cac Ban
007 + 5123 = 7130 1927.5 chia 3 bang 642.50000
Hình 18
Các kiểu dữ liệu khác nhau thường được xử lí theo các cách khác nhau. Chẳng hạn, ta có thể thực hiện các phép toán số học với các số, nhưng với các kí tự hay xâu kí tự thì các phép toán đó không có nghĩa.
Các ngôn ngữ lập trình định nghĩa sẵn một số kiểu dữ liệu cơ bản. Kiểu dữ liệu xác định miền giá trị của dữ liệu và các phép toán có thể thực hiện trên các giá trị đó. Dưới đây là một số kiểu dữ liệu thường dùng nhất:
Số nguyên, ví dụ số học sinh của một lớp, sô' sách trong thư viện,...
Số thực, ví dụ chiểu cao của bạn Bình, điểm trung bình môn Toán,...
Kí tự là một chữ, chữ số hay kí hiệu đặc biệt khác, ví dụ: “a”, “A”,	“1	”
(chữ số 1, khác với số nguyên 1), “ ” (kí tự trống),... Trong đa số các trường hợp, kí tự thường là một “chữ cái” lấy từ bảng chữ cái của ngôn ngữ lập trình.
Xâu kí tự (hay xâu) là dãy liên tiếp các kí tự (tối đa 255 kí tự), ví dụ: “Chao cac ban”, “Lop 8E", “2/9/1 945”...
Trong các ngôn ngữ lập trình, dữ liệu kiểu số nguyên còn có thể được phân chia tiếp thành các kiểu nhỏ hơn theo các phạm vi giá trị khác nhau, dữ liệu kiểu số thực còn có thể được phân chia thành các kiểu có độ chính xác (số chữ số thập phân) khác nhau.
Ngoài các kiểu nói trên, mổi ngôn ngữ lập trình cụ thể còn định nghĩa nhiều kiểu dữ liệu khác, số các kiểu dữ liệu và tên kiểu dữ liệu trong mỗi ngôn ngữ lập trình có thể khác nhau.
Ví dụ 2. Bảng 1 dưới đây liệt kê một số kiểu dữ liệu co bản của ngôn ngữ lập trình Pascal:
Tên kiểu
Phạm vi giá trị
integer
Số nguyên trong khoảng từ - 32768 đến 32767.
real
Số thực có giá trị tuyệt đối trong khoảng
2,9 X 10-39 đến 1,7 X 1038 và số 0.
char
Kí tự trong bảng chữ cái.
string
Xâu kí tự, tối đa gồm 255 kí tự.
Bảng 1
Trong Pascal, để chỉ rõ cho chương trình dịch hiểu dãy chữ số là kiểu xâu, ta phải đặt dãy số đó trong cặp dấu nháy đơn. Ví dụ '5324', '863'.
Các phép toán với dữ liệu kiểu số
Trong mọi ngôn ngữ lập trình ta đều có thể thực hiện các phép toán số học cộng, trừ, nhân và chia với các số nguyên và số thực.
Chẳng hạn, bảng dưới đây là kí hiệu của các phép toán số học đó trong ngôn ngữ Pascal:
Kí hiệu
Phép toán
Kiểu dữ liệu
+
cộng
số nguyên, số thực
-
trừ
số nguyên, số thực
*
nhân
số nguyên, số thực
/
chia
số nguyên, số thực
div
chia lấy phần nguyên
số nguyên
mod
chia lấy phần dư
số nguyên
Bảng 2
Chúng ta đã quen thuộc với các phép toán cộng, trừ, nhân và chia. Tuy nhiên, hãy lưu ý rằng hầu hết các ngôn ngữ lập trình đểu xem kết quả chia hai số n và m (tức n/m) là số thực, cho dù n và m là các số nguyên và n có thể chia hết cho m.
Dưới đây là các ví dụ về phép chia, phép chia lấy phần nguyên và phép chia lấy phần dư:
5/2 = 2.5	-12/5 =-2.4.
5 div 2 = 2
5 mod 2 = 1
-12 div 5 = -2 -1 2 mod 5 = -2
Sử dụng dấu ngoặc, ta có thể kết hợp các phép tính số học nói trên để có các biểu thức số học phức tạp hơn. Sau đây là một số ví dụ về biểu thức số học và cách viết chúng trong ngôn ngữ lập trình Pascal:
Biểu thức số học
Cách viết trong Pascal
a X b - c + d
a* b-c+d
15 + 5X 1
15+5* (a/2)
x + 5	y ,
-—(x + 2)2
a + 3 b + 5
(x+5)/(a+3)-y/(b+5)* (x+2)* (x+2)
Chú ý rằng khi viết các biểu thức toán, để dễ phân biệt, ta có thể dùng các cặp dấu ngoặc tròn ( và ), dấu ngoặc vuông [ và ], dấu ngoặc nhọn { và } để gộp các phép toán, nhưng trong các ngôn ngữ lập trình chỉ được sử dụng dấu ngoặc tròn cho mục đích này.
Ví dụ, biểu thức (a + b)(c - d) + 6 _ a khị vịê't trong Pascal sẽ có dạng:
( (a + b)* (c - d) + 6)/3 - a
Các phép so sánh
Ngoài các phép toán sô' học, ta còn thường so sánh các số.
Khi viết chương trình, để so sánh dữ liệu (số, biểu thức,...) chúng ta sử dụng các kí hiệu do ngôn ngữ lập trình quy định.
Kí hiệu các phép toán và phép so sánh có thể khác nhau, tuỳ theo từng ngôn ngữ lập trình.
Bảng 3 dưới đây cho biết kí hiệu của các phép so sánh trong ngôn ngữ Pascal:
Phép so sánh
Kí hiệu toán học
Kí hiệu trong Pascal
Ví dụ
trong Pascal
Bằng
=
=
5 = 5
Khác
6 5
Nhỏ hơn
<
<
3 < 5
Nhỏ hơn hoặc bằng
<
<=
5 <= 6
Lớn hơn
>
>
9 > 6
Lớn hơn hoặc bằng
>
>=
9 >= 6
*	Bảng 3
Kết quả của phép so sánh chỉ có thể là đúng hoặc sai. Ví dụ, phép so sánh 9 > 6 cho kết quả đúng, 10 = 9 cho kết quả sai hoặc 5 < 3 cũng cho kết quả sai,...
Để so sánh giá trị của hai biểu thức, chúng ta cũng sử dụng một trong các kí hiệu toán học trong bảng 3. Ví dụ:
5x2 = 9;15 + 7>20-3;5 + x<10
Kết quả so sánh thứ nhất là sai (10 = 9), còn kết quả so sánh thứ hai (22 > 1 7) là đúng. Kết quả so sánh thứ ba (5 + X < 10) đúng hoặc sai phụ thuộc vào giá trị cụ thể của X.
Giao tiếp người - máy tính
Trong khi thực hiện chương trình máy tính, con người thường có nhu cầu can thiệp vào quá trình tính toán, thực hiện việc kiểm tra, điều chỉnh, bổ sung. Ngược lại, máy tính cũng cho thông tin về kết quả tính toán, thông báo, gợi ý,... Quá trình trao đổi dữ liệu hai chiều như thế thường được gọi là giao tiếp hay tương tác giữa người và máy tính. Với các máy tính cá nhân, tương tác người-máy thường được thực hiện nhờ các thiết bị chuột, bàn phím và màn hình. Dưới đây là một số trưởng hợp tương tác người-máy.
Thông báo kết quả tính toán
Thông báo kết quả tính toán là yêu cầu đầu tiên đối với mọi chương trình. Ví dụ, câu lệnh
write('Dien tich hinh tron la ',X);
in kết quả tính diện tích hình tròn ra màn hình như hình 1 9 dưới đây:
Dien tich hinh tron la 49.35_
Hình 19
Nhập dữ liệu
Một trong những tương tác thường gặp là chương trình yêu cầu nhập dữ liệu. Chương trình sẽ tạm ngừng để chờ người dùng “nhập dữ liệu” từ bàn phím hay bằng chuột. Hoạt động tiếp theo của chương trình sẽ tuỳ thuộc vào dữ liệu được nhập vào.
Ví dụ, chương trình yêu cầu nhập năm sinh từ bàn phím. Khi đó ta cần gõ một số tự nhiên ứng với năm sinh. Sau khi nhấn phím Enter để xác nhận, chương trình sẽ tiếp tục hoạt động.
ìan hay nbap nan sinh:
Hình 20
Hai câu lệnh Pascal dưới đây sẽ cho kết quả như hình trên:
write('Ban hay nhap nam sinh:'); read(NS);
Tạm ngừng chương trình
Có hai chế độ tạm ngừng của chương trình: Tạm ngừng trong một khoảng thời gian nhất định và tạm ngừng cho đến khi người dùng nhấn phím.
Ví dụ 3. Giả sử trong chương trình Pascal có các câu lệnh sau:
Writeln('Cac ban cho 2 giay nhe...');
Delay(2000) ;
Sau khi in ra màn hình dòng chữ “Cac ban cho 2 giay nhe...”, chương trình sẽ tạm ngừng trong 2 giây, sau đó mới thực hiện tiếp.
Cac ban clio 2 giay nhe..
Hình 21
Ví dụ 4. Khi chạy đoạn chương trình Pascal có các câu lệnh
writẹln('So Pi = ' ,Pij; readl-n;
sau khi thông báo kết quả tính số 71, chương trình sẽ tạm ngừng chờ người dùng nhấn phím Enter, rồi mới thực hiện tiếp.
So Pi = 3.141592?
Hình 22
Hộp thoại
Hộp thoại được sử dụng như một công cụ cho việc giao tiếp người-máy tính trong khi chạy chương trình. Ví dụ, khi người dùng thao tác để thoát khỏi chương trình đang chạy, hộp thoại dạng sau đây có thể xuất hiện:
Hình 23
Khi đó, nếu nháy chuột vào nút Đồng ý, chương trình sẽ kết thúc còn nháy nút Huỷ lệnh, chương trình vẫn tiếp tục như bình thường.
GHI NHÓ
Các ngôn ngữ lập trình thường phân chia dữ liệu cần xử lí theo các kiểu khác nhau, vói các phép toán có thể thực hiện trên từng kiểu dữ liệu đó.
Quá trình trao đổi dữ liệu hai chiều giữa người và máy tính khi chương trình hoạt động thường được gọi là giao tiếp hoặc tương tác người-máy.
Câu hoi và bài tập
Hãy nêu ít nhất hai kiểu dữ liệu và một phép toán có thể thục hiện đuạc trên một kiểu dữ liệu, nhưng phép toán đó không có nghĩa trên kiểu dữ liệu kia.
Dãy chữ số 2010 có thể thuộc những kiểu dữ liệu nào?
Hãy phân biệt ý nghĩa của các câu lệnh Pascal sau đây:
Writeln('5+20=','20+5'); và Writeln('5+20=',20+5);
Hai lệnh sau có tương đưong vối nhau không? Tại sao?
Writeln('100'); và Writeln (100);
Viết các biểu thức toán dưới đây bằng các kí hiệu trong Pascal:
- + —;	b) ax2 + bx + c ;
b d
c) 1 - £ (b + 2);	d) (a2 + b)(l + c)3.
X 5
Chuyển các biểu thức được viết trong Pascal sau đây thành các biểu thúc toán:
(a + b)* (a + b) - x/y;
b / (a* a + c) ;
a*a/ ( (2*b + c)* (2* b + c) ) ;
1 + 1/2 + l/(2*3) + l/(3*4)+ l/(4*5).
Hãy xác định kết quả của các phép so sánh sau đây:
a)15-8>3;	b) (20 - 15)2 * 25;
c)ll2=121;	d)x>10-3x.
Viết các biểu thức ỏ bài tập ó bằng các kí hiệu trong Pascal.