Chương 1a

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

Hiểu biết về hệ thống máy tính

Một hệ thống máy tính là sự kết hợp của tất cả các thành phần cần thiết để xử lý và lưu trữ
dữ liệu bằng máy tính. Mọi hệ thống máy tính đều bao gồm nhiều phần cứng
và phần mềm.
2 Phần cứng là thiết bị, hoặc các thiết bị vật lý, được liên kết với máy tính. Đối với
ví dụ, bàn phím, chuột, loa và máy in đều là phần cứng. Các thiết bị là
được sản xuất khác nhau cho các máy tính có kích thước khác nhau — ví dụ: máy tính lớn,
máy tính xách tay và các thiết bị rất nhỏ được nhúng vào các sản phẩm như điện thoại, ô tô và
bộ điều nhiệt. Tuy nhiên, các loại hoạt động được thực hiện bởi các máy tính có kích thước khác nhau
rất giống nhau. Khi bạn nghĩ về một máy tính, bạn thường nghĩ về vật lý của nó
đầu tiên là các thành phần, nhưng để một máy tính trở nên hữu ích, nó cần nhiều hơn các thiết bị; một máy tính
cần được hướng dẫn. Cũng như thiết bị âm thanh nổi của bạn không hoạt động nhiều cho đến khi bạn
cung cấp âm nhạc, phần cứng máy tính cần hướng dẫn kiểm soát cách thức và thời điểm dữ liệu
các mục là đầu vào, cách chúng được xử lý và hình thức mà chúng được xuất hoặc lưu trữ.
Phần mềm là hướng dẫn của máy tính cho phần cứng biết phải làm gì. Phần mềm là
chương trình , là các tập lệnh do người lập trình viết. Bạn có thể mua bản viết sẵn
chương trình được lưu trữ trên đĩa hoặc bạn tải xuống từ Web. Ví dụ,
các doanh nghiệp sử dụng các chương trình kế toán và xử lý văn bản cũng như những người sử dụng máy tính
thưởng thức các chương trình chơi nhạc và trò chơi. Ngoài ra, bạn có thể viết
các chương trình. Khi bạn viết hướng dẫn phần mềm, bạn đang lập trình . Cuốn sách này
tập trung vào quá trình lập trình.
Phần mềm có thể được phân thành hai loại lớn:
Phần mềm ứng dụng bao gồm tất cả các chương trình bạn áp dụng cho một công việc, chẳng hạn như word-
chương trình xử lý, bảng tính, chương trình tính lương và kiểm kê, và trò chơi. Khi nào
bạn nghe mọi người nói rằng họ đã “tải ứng dụng xuống thiết bị di động”, họ chỉ đơn giản là
sử dụng cách viết tắt của ứng dụng.
Phần mềm hệ thống bao gồm các chương trình mà bạn sử dụng để quản lý máy tính của mình,
bao gồm các hệ điều hành như Windows, Linux hoặc UNIX cho các máy tính lớn hơn và
Google Android và Apple iOS dành cho điện thoại thông minh.
Cuốn sách này tập trung vào logic được sử dụng để viết các chương trình phần mềm ứng dụng, mặc dù nhiều
các khái niệm áp dụng cho cả hai loại phần mềm.
Cùng với nhau, phần cứng máy tính và phần mềm hoàn thành ba hoạt động chính trong các chương trình:
Đầu vào —Các mục dữ liệu nhập vào hệ thống máy tính và được đặt trong bộ nhớ, nơi chúng có thể
được xử lý. Các thiết bị phần cứng thực hiện các thao tác nhập liệu bao gồm bàn phím và
chuột. Các mục dữ liệu bao gồm tất cả văn bản, số và nguyên liệu thô khác được nhập vào
vào và xử lý bằng máy tính. Trong kinh doanh, nhiều mục dữ liệu được sử dụng là dữ kiện và
số liệu về các thực thể như sản phẩm, khách hàng và nhân sự. Tuy nhiên, dữ liệu cũng có thể
bao gồm các mục như hình ảnh, âm thanh và chuyển động vuốt chuột hoặc vuốt ngón tay của người dùng.
Xử lý —Xử lý các mục dữ liệu có thể liên quan đến việc tổ chức hoặc phân loại chúng, kiểm tra
để đảm bảo độ chính xác hoặc thực hiện các phép tính với chúng. Thành phần phần cứng
thực hiện các loại tác vụ này là đơn vị xử lý trung tâm , hoặc CPU . Một số thiết bị, chẳng hạn như
Trang 2

máy tính bảng và điện thoại thông minh, thường chứa nhiều bộ xử lý. Viết chương trình
sử dụng hiệu quả một số CPU đòi hỏi các kỹ thuật đặc biệt.
Đầu ra —Sau khi các mục dữ liệu đã được xử lý, thông tin kết quả thường được gửi đến
máy in, màn hình hoặc một số thiết bị đầu ra khác để mọi người có thể xem, diễn giải và sử dụng
các kết quả. Các chuyên gia lập trình thường sử dụng thuật ngữ dữ liệu cho các mục đầu vào, nhưng sử dụng
3
thuật ngữ thông tin cho dữ liệu đã được xử lý và xuất ra. Đôi khi bạn đặt
xuất trên các thiết bị lưu trữ , chẳng hạn như ổ cứng, phương tiện flash của bạn hoặc thiết bị dựa trên đám mây.
( Đám mây đề cập đến các thiết bị ở các vị trí từ xa được truy cập thông qua Internet.)
không thể đọc dữ liệu trực tiếp từ các thiết bị lưu trữ này, nhưng các thiết bị giữ thông tin cho
truy xuất sau. Khi bạn gửi đầu ra tới một thiết bị lưu trữ, đôi khi nó được sử dụng sau này như
đầu vào cho chương trình khác.
Bạn viết hướng dẫn máy tính bằng ngôn ngữ lập trình máy tính như Visual Basic,
C #, C ++ hoặc Java. Cũng giống như một số người nói tiếng Anh và những người khác nói tiếng Nhật, các lập trình viên
viết chương trình bằng các ngôn ngữ khác nhau. Một số lập trình viên chỉ làm việc bằng một ngôn ngữ,
trong khi những người khác biết một số và sử dụng một trong những phù hợp nhất với nhiệm vụ hiện tại.
Các hướng dẫn bạn viết bằng ngôn ngữ lập trình được gọi là mã chương trình ; khi nào
bạn viết hướng dẫn, bạn đang viết mã chương trình .
Mọi ngôn ngữ lập trình đều có các quy tắc quản lý việc sử dụng từ và dấu câu của nó. Những
các quy tắc được gọi là cú pháp của ngôn ngữ . Sai lầm trong cách sử dụng ngôn ngữ là lỗi cú pháp . nếu bạn
hỏi, "Làm thế nào để bộ địa lý cũng lưu trữ tôi?" bằng tiếng Anh, hầu hết mọi người có thể tìm ra những gì bạn có thể
có nghĩa là, mặc dù bạn không sử dụng cú pháp tiếng Anh thích hợp — bạn đã trộn lẫn từ
trật tự, sai chính tả một từ và sử dụng một từ không chính xác. Tuy nhiên, máy tính gần như không
thông minh như hầu hết mọi người; trong trường hợp này, bạn cũng có thể đã hỏi máy tính, “Xpu mxv ort
dod nmcad bf B? ” Trừ khi cú pháp hoàn hảo, máy tính không thể giải thích
hướng dẫn ngôn ngữ lập trình ở tất cả.
Khi bạn viết một chương trình, bạn thường gõ các hướng dẫn của nó bằng bàn phím. Khi bạn gõ
hướng dẫn chương trình, chúng được lưu trữ trong bộ nhớ máy tính , là
lưu trữ tạm thời, nội bộ. Bộ nhớ truy cập ngẫu nhiên , hoặc RAM , là một dạng nội bộ, dễ bay hơi
ký ức. Các chương trình hiện đang chạy và các mục dữ liệu hiện đang được sử dụng
được lưu trữ trong RAM để truy cập nhanh. Bộ nhớ trong dễ thay đổi — nội dung của bộ nhớ bị mất khi
máy tính bị tắt hoặc mất nguồn. Thông thường, bạn muốn có thể truy xuất và có lẽ
sửa đổi các hướng dẫn được lưu trữ sau đó, vì vậy bạn cũng lưu trữ chúng trên thiết bị lưu trữ vĩnh viễn,
chẳng hạn như một chiếc đĩa. Các thiết bị lưu trữ vĩnh viễn không dễ thay đổi — nghĩa là, nội dung của chúng là
bền bỉ và được giữ lại ngay cả khi mất điện. Nếu bạn bị mất điện trong khi
đang làm việc trên máy tính nhưng có thể khôi phục công việc của bạn khi có điện trở lại, điều đó không
bởi vì công việc vẫn còn trong RAM. Hệ thống của bạn đã được định cấu hình để tự động lưu
công việc của bạn đều đặn trên một thiết bị lưu trữ không linh hoạt — thường là ổ cứng của bạn.

Sau khi chương trình máy tính được nhập bằng cách sử dụng các câu lệnh của ngôn ngữ lập trình và được lưu trữ trong
bộ nhớ, nó phải được dịch sang ngôn ngữ máy đại diện cho hàng triệu lần bật / tắt
mạch bên trong máy tính. Các câu lệnh ngôn ngữ lập trình của bạn được gọi là nguồn
mã và các câu lệnh ngôn ngữ máy đã dịch là mã đối tượng .

Mỗi ngôn ngữ lập trình sử dụng một phần mềm, được gọi là trình biên dịch hoặc trình thông dịch , để
dịch mã nguồn của bạn sang ngôn ngữ máy. Ngôn ngữ máy còn được gọi là nhị phân
Trang 3

ngôn ngữ và được biểu diễn dưới dạng một chuỗi các số 0 và 1. Trình biên dịch hoặc trình thông dịch
dịch mã của bạn cho bạn biết nếu bất kỳ thành phần ngôn ngữ lập trình nào đã được sử dụng
không chính xác. Các lỗi cú pháp tương đối dễ tìm và sửa vì trình biên dịch của bạn hoặc
thông dịch viên làm nổi bật chúng. Nếu bạn viết một chương trình máy tính bằng ngôn ngữ như C ++
nhưng đánh vần sai một trong các từ của nó hoặc đảo ngược thứ tự thích hợp của hai từ, phần mềm
cho bạn biết rằng nó đã phát hiện ra lỗi bằng cách hiển thị thông báo lỗi ngay khi bạn cố gắng
dịch chương trình.

Mặc dù có sự khác biệt về cách thức hoạt động của trình biên dịch và trình thông dịch, nhưng chức năng cơ bản của chúng là giống nhau — để
dịch các câu lệnh lập trình của bạn thành mã mà máy tính có thể sử dụng. Khi bạn sử dụng trình biên dịch, toàn bộ
chương trình được dịch trước khi nó có thể thực thi; khi bạn sử dụng trình thông dịch, mỗi hướng dẫn chỉ được dịch
trước khi thực hiện. Thông thường, bạn không chọn loại bản dịch nào sẽ sử dụng — nó phụ thuộc vào
ngôn ngữ lập trình. Tuy nhiên, có một số ngôn ngữ mà cả trình biên dịch và thông dịch viên đều
có sẵn.

Sau khi mã nguồn của chương trình được dịch thành công sang ngôn ngữ máy, máy tính
có thể thực hiện các hướng dẫn của chương trình. Khi các hướng dẫn được thực hiện, một chương trình sẽ chạy ,
hoặc thực thi . Trong một chương trình thông thường, một số đầu vào sẽ được chấp nhận, một số quá trình xử lý sẽ xảy ra,
và kết quả sẽ được xuất ra.

Bên cạnh các ngôn ngữ lập trình phổ biến, toàn diện như Java và C ++, nhiều lập trình viên
sử dụng ngôn ngữ kịch bản (còn được gọi là ngôn ngữ lập trình kịch bản hoặc ngôn ngữ tập lệnh) chẳng hạn như
Python, Lua, Perl và PHP. Các tập lệnh được viết bằng các ngôn ngữ này thường có thể được nhập trực tiếp từ bàn phím
và được lưu trữ dưới dạng văn bản thay vì dưới dạng tệp thực thi nhị phân. Các chương trình ngôn ngữ kịch bản được thông dịch
từng dòng mỗi khi chương trình thực thi, thay vì được lưu trữ dưới dạng biên dịch (nhị phân). Tuy nhiên, với tất cả
ngôn ngữ lập trình, mỗi lệnh phải được dịch sang ngôn ngữ máy trước khi nó có thể thực thi.

HAI SỰ THẬT & MỘT LỜI NÓI DỐI


Hiểu biết về hệ thống máy tính

Trong mỗi phần Hai sự thật và một lời nói dối, hai trong số các câu được đánh số là đúng, và một câu
là sai. Xác định câu sai và giải thích tại sao câu đó sai.

1. Phần cứng là thiết bị, hoặc các thiết bị, được liên kết với máy tính.
Phần mềm là máy tính hướng dẫn.

2. Các quy tắc ngữ pháp của một ngôn ngữ lập trình máy tính là cú pháp của nó.

3. Bạn viết chương trình bằng ngôn ngữ máy và phần mềm dịch thuật chuyển đổi
các câu lệnh cho một ngôn ngữ lập trình.
Trang 4

Hiểu logic chương trình đơn giản


Một chương trình có lỗi cú pháp không thể được dịch hoàn toàn và không thể thực thi. Một chương trình với
không có lỗi cú pháp nào có thể dịch và có thể thực thi, nhưng nó vẫn có thể chứa lỗi logic và
kết quả là tạo ra đầu ra không chính xác. Để một chương trình hoạt động bình thường, bạn phải phát triển
logic đúng đắn ; nghĩa là bạn phải viết hướng dẫn chương trình theo một trình tự cụ thể, bạn phải 5
không bỏ bất kỳ hướng dẫn nào và bạn không được thêm các hướng dẫn không liên quan.
Giả sử bạn hướng dẫn ai đó
làm một chiếc bánh như sau: Đừng làm điều đó
Lấy một cái bát Đừng nướng một chiếc bánh như
Khuấy động điều này!
Thêm hai quả trứng
Thêm một gallon xăng
Nướng ở nhiệt độ 350 độ trong 45 phút
Thêm ba cốc bột mì

Các hướng dẫn nướng bánh nguy hiểm được hiển thị bằng biểu tượng Không làm. Bạn sẽ thấy biểu tượng này khi
cuốn sách chứa một thực hành lập trình không được khuyến khích được sử dụng như một ví dụ về những gì không nên làm.

Mặc dù các hướng dẫn nướng bánh sử dụng cú pháp ngôn ngữ tiếng Anh một cách chính xác,
hướng dẫn không theo trình tự, một số hướng dẫn bị thiếu và một số hướng dẫn thuộc về
các thủ tục khác ngoài việc nướng bánh. Nếu bạn làm theo các hướng dẫn này, bạn sẽ không thực hiện
bánh ăn được, và bạn có thể kết thúc với một thảm họa. Nhiều lỗi logic khó hơn
xác định vị trí hơn là lỗi cú pháp — bạn sẽ dễ dàng xác định xem trứng có bị viết sai chính tả hay không
trong một công thức hơn là bạn có thể biết liệu có quá nhiều trứng hoặc nếu chúng được thêm vào quá sớm.
Cũng giống như hướng dẫn nướng có thể được cung cấp bằng tiếng Quan Thoại, tiếng Urdu hoặc tiếng Tây Ban Nha, logic của chương trình có thể
được diễn đạt chính xác bằng bất kỳ số ngôn ngữ lập trình nào. Vì cuốn sách này không
liên quan đến một ngôn ngữ cụ thể, các ví dụ lập trình có thể được viết bằng
Visual Basic, C ++ hoặc Java. Để thuận tiện, cuốn sách này sử dụng các hướng dẫn được viết bằng tiếng Anh!

Sau khi bạn học tiếng Pháp, bạn sẽ tự động biết hoặc có thể dễ dàng tìm ra nhiều từ tiếng Tây Ban Nha. Tương tự, sau
bạn học một ngôn ngữ lập trình, việc hiểu nhiều ngôn ngữ khác sẽ dễ dàng hơn nhiều.

Hầu hết các chương trình máy tính đơn giản bao gồm các bước thực hiện nhập, xử lý và xuất.
Giả sử bạn muốn viết một chương trình máy tính để nhân đôi bất kỳ số nào bạn cung cấp. Bạn có thể
viết chương trình bằng ngôn ngữ lập trình như Visual Basic hoặc Java, nhưng nếu bạn muốn
viết nó bằng cách sử dụng các câu lệnh giống như tiếng Anh, nó sẽ giống như sau:
nhập myNumber
đặt myAnswer = myNumber * 2
xuất myAnswer
Trang 5

Quá trình nhân đôi số bao gồm ba hướng dẫn:


Hướng dẫn nhập myNumber là một ví dụ về thao tác nhập. Khi mà
máy tính diễn giải hướng dẫn này, nó biết nhìn vào thiết bị đầu vào để có được
con số. Khi bạn làm việc trong một ngôn ngữ lập trình cụ thể, bạn viết các hướng dẫn
cho máy tính biết thiết bị nào cần truy cập để nhập dữ liệu. Ví dụ: khi người dùng nhập
6
số làm dữ liệu cho một chương trình, người dùng có thể dùng chuột bấm vào số, nhập
từ bàn phím hoặc nói bằng micrô. Tuy nhiên, về mặt logic, nó không quan trọng
thiết bị phần cứng nào được sử dụng, miễn là máy tính biết chấp nhận một số. Khi nào
số được truy xuất từ một thiết bị đầu vào, nó được đặt trong bộ nhớ của máy tính trong một
​​
biến có tên myNumber . Một biến là một vị trí bộ nhớ được đặt tên có giá trị có thể thay đổi—
ví dụ: giá trị của myNumber có thể là 3 khi chương trình được sử dụng lần đầu tiên
và 45 khi nó được sử dụng vào lần tiếp theo. Trong cuốn sách này, tên biến sẽ không chứa
không gian nhúng; ví dụ, cuốn sách sẽ sử dụng myNumber thay vì my Number .

Từ góc độ logic, khi bạn nhập, xử lý hoặc xuất một giá trị, thiết bị phần cứng không liên quan. Các
điều này cũng đúng trong cuộc sống hàng ngày của bạn. Nếu bạn làm theo hướng dẫn "Lấy trứng làm bánh", nó không thực sự quan trọng nếu
bạn mua chúng từ một cửa hàng hoặc thu hoạch chúng từ những con gà của chính bạn — bạn sẽ nhận được trứng theo cách nào đó.
Có thể có những cân nhắc thực tế khác nhau đối với việc lấy trứng, cũng giống như việc lấy dữ liệu từ
một cơ sở dữ liệu lớn thay vì lấy dữ liệu từ một người dùng thiếu kinh nghiệm làm việc tại nhà trên máy tính xách tay
máy vi tính. Hiện tại, cuốn sách này chỉ quan tâm đến logic của các hoạt động, không phải là tiểu tiết.

Một phòng học đại học tương tự như một biến được đặt tên ở chỗ tên của nó (có lẽ là Tòa nhà 204 Adams) có thể chứa
các nội dung khác nhau tại các thời điểm khác nhau. Ví dụ: lớp học Logic của bạn có thể họp ở đó vào tối thứ Hai và
lớp toán có thể họp ở đó vào sáng thứ Ba.

Tập lệnh myAnswer = myNumber * 2 là một ví dụ về hoạt động xử lý.


Trong hầu hết các ngôn ngữ lập trình, dấu hoa thị được sử dụng để biểu thị phép nhân, vì vậy điều này
hướng dẫn có nghĩa là “Thay đổi giá trị của vị trí bộ nhớ myAnswer để bằng giá trị
tại vị trí bộ nhớ myNumber lần hai. ” Các phép toán không phải là duy nhất
loại hoạt động xử lý, nhưng chúng rất điển hình. Như với các hoạt động nhập liệu, loại
phần cứng được sử dụng để xử lý là không liên quan — sau khi bạn viết một chương trình, nó có thể được sử dụng trên
máy tính có tên thương hiệu, kích thước và tốc độ khác nhau.
Trong chương trình nhân đôi số, lệnh myAnswer đầu ra là một ví dụ về một
hoạt động đầu ra. Trong một chương trình cụ thể, câu lệnh này có thể khiến đầu ra
xuất hiện trên màn hình (có thể là màn hình plasma phẳng hoặc màn hình điện thoại thông minh),
hoặc đầu ra có thể là máy in (có thể là tia laze hoặc phun mực), hoặc đầu ra có thể là
writetentoa diskor DVD .logicoftheoutput processis thesamenomatter whathardware
thiết bị bạn sử dụng. Khi lệnh này thực thi, giá trị được lưu trữ trong bộ nhớ tại vị trí
có tên myAnswer được gửi đến một thiết bị đầu ra. (Giá trị đầu ra cũng vẫn còn trong máy tính
bộ nhớ cho đến khi thứ khác được lưu trữ tại cùng một vị trí bộ nhớ hoặc nguồn điện bị mất.)

Xem video Một chương trình đơn giản.


Trang 6

vị trí của myNumber có một địa chỉ số cụ thể, nhưng khi bạn viết chương trình, bạn hiếm khi cần
quan tâm đến giá trị của địa chỉ bộ nhớ; thay vào đó, bạn sử dụng tên dễ nhớ mà bạn
tạo. Các lập trình viên máy tính thường đề cập đến các địa chỉ bộ nhớ bằng cách sử dụng ký hiệu thập lục phân, hoặc cơ số 16.
Sử dụng hệ thống này, họ có thể sử dụng một giá trị như 42FF01A để tham chiếu đến địa chỉ bộ nhớ. Mặc dù việc sử dụng
các chữ cái, một địa chỉ như vậy vẫn là một số thập lục phân. Phụ lục A chứa thông tin về cách đánh số này
7
hệ thống.

HAI SỰ THẬT & MỘT LỜI NÓI DỐI


Hiểu logic chương trình đơn giản

1. Một chương trình có lỗi cú pháp có thể thực thi nhưng có thể tạo ra kết quả không chính xác.

2. Mặc dù cú pháp của các ngôn ngữ lập trình khác nhau, nhưng cùng một logic chương trình
có thể được diễn đạt bằng các ngôn ngữ khác nhau.

3. Hầu hết các chương trình máy tính đơn giản bao gồm các bước thực hiện nhập, xử lý,
và đầu ra.

Hiểu về chu trình phát triển chương trình


Công việc của một lập trình viên liên quan đến việc viết các hướng dẫn (chẳng hạn như những hướng dẫn trong chương trình nhân đôi trong
phần trước), nhưng một lập trình viên chuyên nghiệp thường không chỉ ngồi xuống
bàn phím máy tính và bắt đầu nhập. Hình 1-1 minh họa chu trình phát triển chương trình ,
có thể được chia nhỏ thành ít nhất bảy bước:

1. Hiểu vấn đề.


2. Lập kế hoạch logic.

3. Mã chương trình.

4. Sử dụng phần mềm (trình biên dịch hoặc trình thông dịch) để dịch chương trình sang máy
ngôn ngữ.

5. Chạy thử chương trình.


6. Đưa chương trình vào sản xuất.

7. Duy trì chương trình.


Trang 7

Hiểu biết
vấn đề

Duy trì Lập kế hoạch


số 8 chương trình Hợp lý

Đặt chương trình Ghi


trong sản xuất mã

Kiểm tra Dịch


chương trình mã

Hình 1-1 Chu trình phát triển chương trình


© 2015 Cengage Learning

Hiểu vấn đề
Các lập trình viên máy tính chuyên nghiệp viết các chương trình để thỏa mãn nhu cầu của người khác, được gọi là
người dùng hoặc người dùng cuối . Ví dụ về người dùng cuối bao gồm bộ phận Nhân sự
cần một danh sách in của tất cả nhân viên, bộ phận Thanh toán muốn một danh sách khách hàng là những người
Các khoản thanh toán của họ đã quá hạn 30 ngày trở lên và bộ phận Đặt hàng cần có trang Web
để cung cấp cho người mua một giỏ hàng trực tuyến. Bởi vì các lập trình viên đang cung cấp một dịch vụ
đối với những người dùng này, trước tiên các lập trình viên phải hiểu người dùng muốn gì. Khi một chương trình
chạy, bạn thường nghĩ về logic là một chu trình của các hoạt động đầu vào-xử lý-đầu ra, nhưng khi
bạn lập kế hoạch cho một chương trình, bạn nghĩ đến đầu ra đầu tiên. Sau khi bạn hiểu những gì mong muốn
kết quả là bạn có thể lập kế hoạch đầu vào và các bước xử lý để đạt được nó.
Giả sử giám đốc nhân sự nói với một lập trình viên, "Bộ phận của chúng tôi cần một
danh sách tất cả nhân viên đã ở đây hơn năm năm, bởi vì chúng tôi muốn mời họ tham gia
bữa tối cảm ơn đặc biệt. ” Nhìn bề ngoài, đây có vẻ như là một yêu cầu đơn giản. Một kinh nghiệm
lập trình viên, tuy nhiên, sẽ biết rằng yêu cầu là không đầy đủ. Ví dụ, bạn có thể không
biết câu trả lời cho những câu hỏi sau đây về việc bao gồm những nhân viên nào:
Giám đốc muốn có danh sách chỉ nhân viên toàn thời gian hay danh sách toàn thời gian và bán thời gian
nhân viên với nhau?
Cô ấy có muốn bao gồm những người đã làm việc cho công ty từ một tháng đến ...
cơ sở hợp đồng tháng trong năm năm qua, hay chỉ nhân viên thường xuyên, cố định?
Các nhân viên được liệt kê có cần phải làm việc cho tổ chức trong 5 năm kể từ không
hôm nay, kể từ ngày của bữa ăn tối, hoặc vào một số ngày giới hạn khác?
Điều gì về một nhân viên làm việc ba năm, nghỉ phép hai năm, và
đã trở lại được ba năm?
Trang 8

Hiểu về chu trình phát triển chương trình

Lập trình viên không thể đưa ra bất kỳ quyết định nào trong số này; người dùng (trong trường hợp này là Con người
Giám đốc tài nguyên) phải giải quyết những câu hỏi này.

Vẫn có thể cần nhiều quyết định hơn. Ví dụ:


Dữ liệu nào nên được bao gồm cho mỗi nhân viên được liệt kê? Nếu danh sách có cả hai đầu tiên
và họ? Số an sinh xã hội? Số điện thoại? Địa chỉ? 9

Danh sách có nên theo thứ tự bảng chữ cái không? Nhân viên ID số thứ tự? Thời hạn phục vụ
đặt hàng? Một số đơn đặt hàng khác?
Nếu nhân viên được nhóm theo bất kỳ tiêu chí nào, chẳng hạn như số bộ phận hoặc số năm
dịch vụ?

Một số phần tài liệu thường được cung cấp để giúp lập trình viên hiểu
vấn đề. Tài liệu bao gồm tất cả các thủ tục giấy tờ hỗ trợ cho một chương trình; nó có thể
bao gồm các mục như yêu cầu ban đầu cho chương trình từ người dùng, đầu ra mẫu và
mô tả về các mục dữ liệu có sẵn để đầu vào.

Hiểu vấn đề có thể còn khó hơn nếu bạn đang viết một ứng dụng mà bạn
hy vọng tiếp thị cho thiết bị di động. Các nhà phát triển doanh nghiệp thường được người dùng tiếp cận với
một nhu cầu, nhưng các nhà phát triển ứng dụng di động thành công thường cố gắng xác định nhu cầu mà người dùng không
thậm chí nhận thức được chưa. Ví dụ: không ai biết họ muốn chơi Angry Birds hoặc rời đi
tin nhắn trên Facebook trước khi các ứng dụng đó được phát triển. Các nhà phát triển ứng dụng dành cho thiết bị di động cũng
phải xem xét nhiều kỹ năng của người dùng hơn là các lập trình viên phát triển các ứng dụng
được sử dụng nội bộ trong một công ty. Các nhà phát triển ứng dụng dành cho thiết bị di động phải đảm bảo các chương trình của họ
hoạt động với nhiều kích thước màn hình và thông số kỹ thuật phần cứng vì cạnh tranh phần mềm là
cường độ cao và phần cứng thay đổi nhanh chóng.

Hiểu đầy đủ vấn đề có thể là một trong những khía cạnh khó nhất của lập trình.
Trong bất kỳ công việc nào, mô tả về những gì người dùng cần có thể mơ hồ — tệ hơn nữa, người dùng có thể không
thực sự biết họ muốn gì và những người dùng nghĩ rằng họ biết thường thay đổi suy nghĩ của họ
sau khi xem sản lượng mẫu. Một lập trình viên giỏi thường là cố vấn một phần, thám tử một phần!

Xem video Chu trình phát triển chương trình, Phần 1.

Lập kế hoạch Logic


Trung tâm của quá trình lập trình nằm ở việc lập kế hoạch logic của chương trình. Trong giai đoạn này
của quy trình, lập trình viên lập kế hoạch các bước của chương trình, quyết định các bước bao gồm
và làm thế nào để đặt hàng chúng. Bạn có thể lập kế hoạch giải pháp cho một vấn đề theo nhiều cách. Hai cái nhất
các công cụ lập kế hoạch phổ biến là lưu đồ và mã giả. Cả hai công cụ đều liên quan đến việc viết các bước
của chương trình bằng tiếng Anh, giống như bạn sẽ lên kế hoạch cho một chuyến đi trên giấy trước khi lên xe
hoặc lên kế hoạch cho chủ đề bữa tiệc trước khi mua đồ ăn và những món quà.
Bạn có thể nghe các nhà lập trình gọi việc lập kế hoạch một chương trình là “phát triển một thuật toán”. An
thuật toán là chuỗi các bước hoặc quy tắc bạn tuân theo để giải quyết một vấn đề.
Trang 9

Ngoài lưu đồ và mã giả, các lập trình viên sử dụng nhiều công cụ khác để trợ giúp trong chương trình
phát triển. Một trong những công cụ như vậy là biểu đồ IPO, mô tả các nhiệm vụ đầu vào, xử lý và đầu ra.
Một số lập trình viên hướng đối tượng cũng sử dụng biểu đồ TOE, trong đó liệt kê các nhiệm vụ, đối tượng và sự kiện. bên trong
phiên bản toàn diện của cuốn sách này, bạn có thể tìm hiểu về bảng phân cảnh và UML, thường
được sử dụng trong các ứng dụng hướng đối tượng, tương tác.

10
Lập trình viên không nên lo lắng về cú pháp của bất kỳ ngôn ngữ cụ thể nào trong quá trình
giai đoạn lập kế hoạch, nhưng nên tập trung vào việc tìm ra chuỗi sự kiện sẽ dẫn đến
đầu vào có sẵn cho đầu ra mong muốn. Lập kế hoạch logic bao gồm suy nghĩ cẩn thận về tất cả
các giá trị dữ liệu có thể có mà một chương trình có thể gặp phải và cách bạn muốn chương trình xử lý
mỗi kịch bản. Quá trình xem xét logic của một chương trình trên giấy trước khi bạn thực sự
viết chương trình được gọi là kiểm tra bàn . Bạn sẽ tìm hiểu thêm về lập kế hoạch logic
trong suốt cuốn sách này; trên thực tế, cuốn sách hầu như chỉ tập trung vào bước quan trọng này.

Mã hóa chương trình


Sau khi logic được phát triển, chỉ khi đó lập trình viên mới có thể viết mã nguồn cho một
chương trình. Hàng trăm ngôn ngữ lập trình có sẵn. Lập trình viên chọn cụ thể
vì một số ngôn ngữ có các khả năng tích hợp giúp chúng hoạt động hiệu quả hơn những ngôn ngữ khác
xử lý các loại hoạt động nhất định. Bất chấp sự khác biệt của chúng, các ngôn ngữ lập trình là
khá giống nhau về các khả năng cơ bản của chúng — mỗi khả năng đều có thể xử lý các hoạt động đầu vào, số học
xử lý, hoạt động đầu ra và các chức năng tiêu chuẩn khác. Logic được phát triển để giải quyết một
vấn đề lập trình có thể được thực hiện bằng bất kỳ số ngôn ngữ nào. Chỉ sau khi chọn một
ngôn ngữ lập trình viên phải quan tâm đến dấu câu thích hợp và chính xác
chính tả của lệnh — nói cách khác, sử dụng cú pháp chính xác.
Một số lập trình viên có kinh nghiệm có thể kết hợp thành công việc lập kế hoạch logic và lập trình
mã hóa trong một bước. Điều này có thể hoạt động để lập kế hoạch và viết một chương trình rất đơn giản, giống như bạn
có thể lập kế hoạch và viết bưu thiếp cho bạn bè bằng một bước. Một bài báo hay một Hollywood
kịch bản, tuy nhiên, cần lập kế hoạch trước khi viết — và hầu hết các chương trình cũng vậy.
Bước nào khó hơn: lập kế hoạch logic hoặc mã hóa chương trình? Ngay bây giờ, nó có vẻ như
bạn rằng viết bằng ngôn ngữ lập trình là một nhiệm vụ rất khó khăn, xem xét tất cả các chính tả
và các quy tắc cú pháp bạn phải học. Tuy nhiên, bước lập kế hoạch thực sự khó hơn. Cái nào
khó hơn: nghĩ ra những khúc mắc về cốt truyện của một cuốn tiểu thuyết bí ẩn bán chạy nhất, hoặc
viết bản dịch một cuốn tiểu thuyết hiện có từ tiếng Anh sang tiếng Tây Ban Nha? Và bạn nghĩ ai được
trả nhiều tiền hơn, nhà văn tạo ra cốt truyện hay người dịch? (Thử hỏi bạn bè tên bất kỳ
dịch giả nổi tiếng!)

Sử dụng phần mềm để dịch chương trình sang ngôn ngữ máy
Mặc dù có nhiều ngôn ngữ lập trình nhưng mỗi máy tính chỉ biết một
ngôn ngữ — ngôn ngữ máy của nó, bao gồm 1 và 0. Máy tính hiểu máy
ngôn ngữ bởi vì chúng được tạo thành từ hàng nghìn công tắc điện nhỏ, mỗi công tắc có thể
được đặt ở trạng thái bật hoặc tắt, được biểu thị bằng 1 hoặc 0, tương ứng.
Trang 10

Hiểu về chu trình phát triển chương trình

Các ngôn ngữ như Java hoặc Visual Basic có sẵn cho các lập trình viên vì ai đó có
đã viết một chương trình biên dịch (trình biên dịch hoặc trình thông dịch) để thay đổi
Ngôn ngữ lập trình cấp cao giống tiếng Anh sang ngôn ngữ máy cấp thấp mà
máy tính hiểu. Khi bạn học cú pháp của một ngôn ngữ lập trình,
lệnh hoạt động trên bất kỳ máy nào đã cài đặt phần mềm ngôn ngữ.
Tuy nhiên, các lệnh của bạn sau đó được dịch sang ngôn ngữ máy, khác nhau ở nhiều 11

chế tạo máy tính và các mô hình.


Nếu bạn viết một câu lệnh lập trình không chính xác (ví dụ: do viết sai chính tả một từ, hãy sử dụng
từ không tồn tại trong ngôn ngữ hoặc sử dụng ngữ pháp "bất hợp pháp"), chương trình phiên dịch
không biết cách tiếp tục và đưa ra thông báo lỗi xác định lỗi cú pháp.
Mặc dù việc mắc lỗi không bao giờ được mong muốn, nhưng lỗi cú pháp không phải là lỗi sâu nhất của lập trình viên
mối quan tâm, bởi vì trình biên dịch hoặc trình thông dịch bắt mọi lỗi cú pháp và hiển thị
tin nhắn thông báo cho bạn về sự cố. Máy tính sẽ không thực thi một chương trình
chứa ngay cả một lỗi cú pháp.
Thông thường, một lập trình viên phát triển logic, viết mã và biên dịch chương trình, nhận
một danh sách các lỗi cú pháp. Sau đó, lập trình viên sửa lỗi cú pháp và biên dịch
chương trình một lần nữa. Việc sửa tập hợp lỗi đầu tiên thường xuyên làm xuất hiện các lỗi mới mà ban đầu
không rõ ràng đối với trình biên dịch. Ví dụ: nếu bạn có thể sử dụng trình biên dịch tiếng Anh và
gửi câu dg đuổi theo con mèo, lúc đầu trình biên dịch có thể chỉ ra một câu
lỗi cú pháp. Từ thứ hai, dg, là bất hợp pháp vì nó không phải là một phần của ngôn ngữ tiếng Anh.
Chỉ sau khi bạn sửa từ thành dog thì trình biên dịch mới tìm thấy một lỗi cú pháp khác trên
từ thứ ba, đuổi theo, bởi vì nó là dạng động từ sai cho chủ ngữ con chó. Điều này không có nghĩa là
đuổi theo nhất thiết là từ sai. Có thể con chó là sai; có lẽ chủ đề nên là chó,
trong trường hợp đó đuổi theo là đúng. Các trình biên dịch không phải lúc nào cũng biết chính xác ý bạn, cũng như
biết những gì cần sửa chữa thích hợp, nhưng họ biết khi có điều gì đó sai với
cú pháp của bạn.

Xem video Chu trình phát triển chương trình, Phần 2.

Các lập trình viên thường biên dịch mã của họ từng phần một. Nó ít áp đảo hơn nhiều và
dễ hiểu hơn về các lỗi được phát hiện trong 20 dòng mã cùng một lúc hơn là cố gắng
sửa lỗi sau 2.000 dòng mã đã được viết. Khi viết một chương trình,
một lập trình viên có thể cần phải biên dịch lại mã nhiều lần. Một chương trình thực thi là
chỉ được tạo khi mã không có lỗi cú pháp. Sau khi một chương trình đã được dịch sang
ngôn ngữ máy, chương trình ngôn ngữ máy được lưu và có thể chạy bất kỳ số
lần mà không cần lặp lại bước dịch. Bạn chỉ cần dịch lại mã của mình nếu bạn
thực hiện các thay đổi đối với các câu lệnh mã nguồn của bạn. Hình 1-2 cho thấy một sơ đồ của toàn bộ
quá trình.
Trang 11

Dữ liệu mà
chương trình sử dụng

12
Nếu không có
Viết và sửa Biên dịch lỗi cú pháp Thực thi được
mã chương trình chương trình chương trình

Nếu có
lỗi cú pháp

Danh sách của Chương trình


cú pháp đầu ra
lỗi
tin nhắn

Hình 1-2 Tạo một chương trình thực thi


© 2015 Cengage Learning

Kiểm tra chương trình


Một chương trình không có lỗi cú pháp không nhất thiết là không có lỗi logic. Một lỗi logic
kết quả khi bạn sử dụng một câu lệnh đúng về mặt cú pháp nhưng lại sử dụng câu lệnh sai cho câu lệnh hiện tại
bối cảnh. Ví dụ, câu tiếng Anh The dog đuổi the cat, mặc dù về mặt cú pháp
hoàn hảo, không đúng về mặt logic nếu con chó đuổi theo một quả bóng hoặc con mèo là kẻ gây hấn.

Khi một chương trình không có lỗi cú pháp, người lập trình có thể kiểm tra nó — nghĩa là, thực thi nó với
một số dữ liệu mẫu để xem liệu kết quả có đúng về mặt logic hay không. Nhắc lại nhân đôi số
chương trình:

nhập myNumber
đặt myAnswer = myNumber * 2
xuất myAnswer

Nếu bạn thực thi chương trình, hãy cung cấp giá trị 2 làm đầu vào cho chương trình và câu trả lời 4 là
hiển thị, bạn đã thực hiện một lần chạy thử chương trình thành công.
Tuy nhiên, nếu câu trả lời 40 được hiển thị, có thể chương trình chứa một lỗi logic. Có lẽ
dòng mã thứ hai đã bị gõ sai với một số 0 thừa, do đó chương trình đọc:
nhập myNumber Đừng làm điều đó
đặt myAnswer = myNumber * 20 Lập trình viên đã gõ
xuất myAnswer 20 thay vì 2.

Đặt 20 thay vì 2 trong câu lệnh nhân gây ra lỗi logic. Thông báo rằng
không có gì sai về mặt cú pháp với chương trình thứ hai này — việc nhân một
số bằng 20 bằng 2 — nhưng nếu lập trình viên chỉ định nhân đôi số myNumber , thì một lôgic
đã xảy ra lỗi.
Trang 12

Quá trình tìm kiếm và sửa lỗi chương trình được gọi là gỡ lỗi . Bạn gỡ lỗi một
chương trình bằng cách kiểm tra nó bằng cách sử dụng nhiều bộ dữ liệu. Ví dụ: nếu bạn viết chương trình cho
nhân đôi một số, sau đó nhập 2 và nhận giá trị đầu ra là 4, điều đó không nhất thiết có nghĩa là
bạn có một chương trình chính xác. Có lẽ bạn đã gõ nhầm chương trình này:

nhập myNumber Đừng làm điều đó


13
đặt myAnswer = myNumber + 2 Lập trình viên đã gõ
xuất myAnswer "+" thay vì " * ".

Đầu vào là 2 dẫn đến câu trả lời là 4, nhưng điều đó không có nghĩa là chương trình của bạn tăng gấp đôi
số — nó thực sự chỉ thêm 2 vào chúng. Nếu bạn kiểm tra chương trình của mình với dữ liệu bổ sung và
nhận được câu trả lời sai — ví dụ: nếu bạn nhập 7 và nhận được câu trả lời là 9 — bạn biết là có
một vấn đề với mã của bạn.

Việc lựa chọn dữ liệu thử nghiệm tự nó là một nghệ thuật, và nó cần được thực hiện cẩn thận. Nếu con người
Bộ phận tài nguyên muốn có một danh sách tên của các nhân viên năm năm, sẽ là một sai lầm
thử nghiệm chương trình với một tệp mẫu nhỏ chỉ gồm những nhân viên lâu năm. Nếu không có nhân viên mới hơn
là một phần của dữ liệu đang được sử dụng để thử nghiệm, bạn không thực sự biết liệu chương trình có
loại họ khỏi danh sách năm năm. Nhiều công ty không biết rằng phần mềm của họ có
cho đến khi một tình huống bất thường xảy ra — ví dụ: lần đầu tiên một nhân viên có
hơn chín người phụ thuộc, lần đầu tiên một khách hàng đặt hàng hơn 999 mặt hàng cùng một lúc, hoặc
khi Internet hết địa chỉ IP được cấp phát, một vấn đề được gọi là cạn kiệt IPV4.

Đưa Chương trình vào Sản xuất


Sau khi chương trình được kiểm tra kỹ lưỡng và gỡ lỗi, nó đã sẵn sàng để tổ chức sử dụng.
Đưa chương trình vào sản xuất có thể có nghĩa là chỉ cần chạy chương trình một lần, nếu nó
được viết để đáp ứng yêu cầu của người dùng về một danh sách đặc biệt. Tuy nhiên, quá trình này có thể mất hàng tháng nếu
chương trình sẽ được chạy thường xuyên, hoặc nếu nó là một trong một hệ thống lớn các chương trình đang
đã phát triển. Có lẽ những người nhập dữ liệu phải được đào tạo để chuẩn bị đầu vào cho
chương trình, người dùng phải được đào tạo để hiểu đầu ra hoặc dữ liệu hiện có trong công ty
phải được thay đổi sang một định dạng hoàn toàn mới để phù hợp với chương trình này. Chuyển đổi ,
toàn bộ các hành động mà một tổ chức phải thực hiện để chuyển sang sử dụng một chương trình mới hoặc một bộ
đôi khi có thể mất hàng tháng hoặc hàng năm để hoàn thành.

Duy trì Chương trình


Sau khi các chương trình được đưa vào sản xuất, việc thực hiện các thay đổi cần thiết được gọi là bảo trì .
Việc bảo trì có thể được yêu cầu vì nhiều lý do: ví dụ: vì thuế suất mới
theo luật định, định dạng của tệp đầu vào bị thay đổi hoặc người dùng cuối yêu cầu thông tin bổ sung
không bao gồm trong các thông số kỹ thuật đầu ra ban đầu. Thông thường, công việc lập trình đầu tiên của bạn sẽ
yêu cầu duy trì các chương trình đã viết trước đó. Khi bạn duy trì các chương trình khác
đã viết, bạn sẽ đánh giá cao nỗ lực mà lập trình viên ban đầu đã bỏ ra để viết rõ ràng
Trang 13

mã, sử dụng các tên biến hợp lý và ghi lại công việc của họ. Khi bạn làm
các thay đổi đối với các chương trình hiện có, bạn lặp lại chu trình phát triển. Đó là, bạn phải
hiểu các thay đổi, sau đó lập kế hoạch, viết mã, dịch và kiểm tra chúng trước khi đưa chúng vào
sản xuất. Nếu yêu cầu một số lượng lớn các thay đổi chương trình, thì chương trình gốc
có thể ngừng hoạt động và chu kỳ phát triển chương trình có thể được bắt đầu cho một chương trình mới.

Xem video Chu trình phát triển chương trình, Phần 3.

HAI SỰ THẬT & MỘT LỜI NÓI DỐI


Hiểu về chu trình phát triển chương trình
1. Hiểu được vấn đề cần phải giải quyết có thể là một trong những vấn đề khó nhất
các khía cạnh của lập trình.

2. Hai công cụ lập kế hoạch logic được sử dụng phổ biến nhất là lưu đồ và
mã giả.

3. Lưu lượng chương trình là một quá trình rất khác nếu bạn sử dụng
ngôn ngữ lập trình thay vì ngôn ngữ mới hơn.

Sử dụng tuyên bố mã giả và biểu tượng lưu đồ


Khi các lập trình viên lập kế hoạch logic cho một giải pháp cho một vấn đề lập trình, họ thường sử dụng
một trong hai công cụ: mã giả (phát âm là mã sue-doe) hoặc lưu đồ.
Mã giả là một biểu diễn giống tiếng Anh của các bước hợp lý mà nó cần để giải quyết một
vấn đề. Pseudo là một tiền tố có nghĩa là sai, và để viết mã một chương trình có nghĩa là đặt nó vào
ngôn ngữ lập trình; do đó, mã giả chỉ đơn giản có nghĩa là mã sai hoặc các câu
dường như đã được viết bằng ngôn ngữ lập trình máy tính nhưng không nhất thiết
tuân theo tất cả các quy tắc cú pháp của bất kỳ ngôn ngữ cụ thể nào.

Lưu đồ là một đại diện bằng hình ảnh của cùng một thứ.
Trang 14

Sử dụng tuyên bố mã giả và biểu tượng lưu đồ

Viết mã giả
Bạn đã thấy các ví dụ về các câu lệnh đại diện cho mã giả trước đó trong phần này
chương, và không có gì bí ẩn về chúng. Năm câu sau đây cấu thành
một biểu diễn mã giả của một bài toán nhân đôi số:
khởi đầu 15
nhập myNumber
đặt myAnswer = myNumber * 2
xuất myAnswer
dừng lại

Sử dụng mã giả liên quan đến việc viết ra tất cả các bước bạn sẽ sử dụng trong một chương trình. Thông thường,
các lập trình viên mở đầu mã giả của họ bằng một câu lệnh bắt đầu như bắt đầu và kết thúc nó bằng
một tuyên bố kết thúc như dừng lại . Các câu lệnh giữa bắt đầu và dừng trông giống như tiếng Anh
và được thụt vào một chút để bắt đầu và dừng nổi bật. Hầu hết các lập trình viên không bận tâm
với dấu chấm câu, chẳng hạn như dấu chấm ở cuối câu lệnh mã giả, mặc dù nó sẽ không
sai khi sử dụng chúng nếu bạn thích phong cách đó. Tương tự, không cần viết hoa chữ cái đầu tiên
từ trong một tuyên bố, mặc dù bạn có thể chọn làm như vậy.
Mã giả khá linh hoạt vì nó là một công cụ lập kế hoạch chứ không phải là sản phẩm cuối cùng. Vì thế,
ví dụ: bạn có thể thích bất kỳ điều nào sau đây:
Thay vì bắt đầu và dừng lại , một số nhà phát triển mã giả sẽ sử dụng các thuật ngữ khác như
bắt đầu và kết thúc .

Thay vì viết myNumber đầu vào , một số nhà phát triển sẽ viết get myNumber hoặc đọc
myNumber .
Thay vì viết set myAnswer = myNumber * 2 , một số nhà phát triển sẽ viết
tính myAnswer = myNumber nhân 2 lần hoặc tính myAnswer khi myNumber nhân đôi .

Thay vì viết myAnswer đầu ra , nhiều nhà phát triển mã giả sẽ viết hiển thị
myAnswer , in myAnswer , hoặc viết myAnswer .
Vấn đề là, các câu lệnh mã giả là các hướng dẫn để truy xuất một số ban đầu từ
một thiết bị đầu vào và lưu trữ nó trong bộ nhớ nơi nó có thể được sử dụng trong tính toán, sau đó lấy
câu trả lời được tính toán từ bộ nhớ và gửi nó đến một thiết bị đầu ra để một người có thể nhìn thấy nó.
Khi cuối cùng bạn chuyển đổi mã giả của mình sang một ngôn ngữ lập trình cụ thể, bạn sẽ
không có tính linh hoạt như vậy bởi vì cú pháp cụ thể sẽ được yêu cầu. Ví dụ: nếu bạn sử dụng
Ngôn ngữ lập trình C # và viết câu lệnh để xuất câu trả lời ra màn hình, bạn
sẽ viết mã như sau:
Console.Write (myAnswer);

Việc sử dụng chính xác các từ, cách viết hoa và dấu câu rất quan trọng trong câu lệnh C #,
nhưng không có trong câu lệnh mã giả. Tham chiếu nhanh 1-1 tóm tắt mã giả
các tiêu chuẩn được sử dụng trong cuốn sách này. (Lưu ý rằng Tham chiếu Nhanh đề cập đến các mô-đun; bạn sẽ học
về các mô-đun trong Chương 2. Các tính năng bổ sung của kiểu mã giả sẽ được thảo luận dưới dạng chủ đề
được giới thiệu xuyên suốt cuốn sách này.)
Trang 15

THAM KHẢO NHANH 1-1 Chuẩn mã giả

Các chương trình bắt đầu bằng bắt đầu và kết thúc bằng điểm dừng ; hai từ này là
luôn thẳng hàng.
16
Bất cứ khi nào một tên mô-đun được sử dụng, nó được theo sau bởi một tập hợp các dấu ngoặc đơn.
Mô-đun bắt đầu bằng tên mô-đun và kết thúc bằng trở lại . Tên mô-đun và
trả về luôn luôn được căn chỉnh.
Mỗi câu lệnh chương trình thực hiện một hành động — ví dụ: nhập, xử lý,
hoặc đầu ra.

Câu lệnh chương trình được thụt vào một vài khoảng trắng so với bắt đầu hoặc
tên mô-đun.

Mỗi câu lệnh chương trình xuất hiện trên một dòng nếu có thể. Khi điều này là không thể,
dòng tiếp tục được thụt vào.

Câu lệnh chương trình bắt đầu bằng các chữ cái thường.

Không có dấu câu nào được sử dụng để kết thúc câu lệnh.

Khi bạn học cách tạo các câu lệnh mã giả và lưu đồ, bạn sẽ hiểu được mức độ chi tiết
bao gồm. Các tuyên bố đại diện cho các bước chính phải được hoàn thành mà không bao gồm phút
điểm. Khái niệm này tương tự như viết một dàn ý bài luận, trong đó mỗi phát biểu của dàn ý thể hiện
một đoạn văn.

Vẽ lưu đồ
Một số lập trình viên chuyên nghiệp thích viết mã giả để vẽ lưu đồ,
bởi vì việc sử dụng mã giả giống với việc viết các câu lệnh cuối cùng trong
ngôn ngữ lập trình. Những người khác thích vẽ lưu đồ để thể hiện logic
dòng chảy, bởi vì lưu đồ cho phép người lập trình hình dung dễ dàng hơn cách thức chương trình
các câu lệnh sẽ kết nối. Đặc biệt đối với các lập trình viên mới bắt đầu, sơ đồ là một
công cụ tuyệt vời giúp họ hình dung cách các câu lệnh trong chương trình
có quan hệ với nhau.

Bạn có thể vẽ sơ đồ bằng tay hoặc sử dụng phần mềm, chẳng hạn như Microsoft Word và
Microsoft PowerPoint, có chứa các công cụ tăng lưu lượng. Bạn có thể sử dụng một số khác
chương trình phần mềm, chẳng hạn như Visio và Visual Logic, đặc biệt để tạo lưu đồ.
Trang 16

Sử dụng tuyên bố mã giả và biểu tượng lưu đồ

Khi bạn tạo một lưu đồ, bạn sẽ vẽ hình học


hình dạng chứa các câu lệnh riêng lẻ và nhập myNumber
được kết nối với các mũi tên. Bạn sử dụng một
hình bình hành để đại diện cho một ký hiệu đầu vào ,
cho biết một hoạt động đầu vào. Bạn viết một đầu vào Hình 1-3 Ký hiệu đầu vào
tuyên bố bằng tiếng Anh bên trong hình bình hành, © 2015 Cengage Learning
17
như hình 1-3.
Các câu lệnh hoạt động số học là ví dụ về đặt myAnswer =
myNumber * 2
Chế biến. Trong một sơ đồ, bạn sử dụng một hình chữ nhật làm
biểu tượng xử lý có chứa một câu lệnh xử lý,
như hình 1-4. Hình 1-4 Biểu tượng xử lý
Để biểu diễn một câu lệnh đầu ra, bạn sử dụng cùng một © 2015 Cengage Learning

ký hiệu như cho các câu lệnh đầu vào — ký hiệu đầu ra
là một hình bình hành, như trong Hình 1-5. Bởi vì
hình bình hành được sử dụng cho cả đầu vào và đầu ra, xuất myAnswer

nó thường được gọi là ký hiệu đầu vào / đầu ra hoặc


I / O biểu tượng .
Hình 1-5 Ký hiệu đầu ra
© 2015 Cengage Learning

Một số chương trình phần mềm sử dụng lưu đồ (chẳng hạn như Visual Logic) sử dụng hình bình hành nghiêng trái để
đại diện cho đầu ra. Miễn là người tạo lưu đồ và người đọc lưu đồ đang giao tiếp,
hình dạng được sử dụng là không liên quan. Cuốn sách này sẽ tuân theo quy ước chuẩn nhất về việc sử dụng chữ nghiêng bên phải
hình bình hành cho cả đầu vào và đầu ra.

Để hiển thị trình tự chính xác của các câu lệnh này, bạn sử dụng mũi tên hoặc đường biểu diễn để kết nối
các bước. Bất cứ khi nào có thể, hầu hết lưu đồ nên đọc từ trên xuống dưới hoặc từ trái
sang ngay trên một trang. Đó là cách chúng ta đọc tiếng Anh, vì vậy khi lưu đồ tuân theo quy ước này,
chúng dễ hiểu hơn đối với chúng tôi.
Để hoàn chỉnh, một sơ đồ phải bao gồm thêm hai phần tử: ký hiệu đầu cuối hoặc bắt đầu /
các ký hiệu dừng, ở mỗi đầu. Thông thường, bạn đặt một từ như bắt đầu hoặc bắt đầu trong thiết bị đầu cuối đầu tiên
biểu tượng và một từ như kết thúc hoặc dừng ở từ khác. Biểu tượng đầu cuối tiêu chuẩn có hình dạng như
một trường đua; nhiều lập trình viên gọi hình dạng này như một hình thoi, bởi vì nó giống với
hình dạng của loại thuốc bạn có thể sử dụng để làm dịu cơn đau họng. Hình 1-6 cho thấy một
lưu đồ cho chương trình nhân đôi một số và mã giả cho cùng một vấn đề.
Bạn có thể thấy từ hình bên rằng lưu đồ và câu lệnh mã giả giống nhau—
chỉ khác nhau về hình thức trình bày.
Trang 17

Sơ đồ Mã giả

khởi đầu

18 nhập myNumber

khởi đầu
nhập myNumber
đặt myAnswer = đặt myAnswer = myNumber * 2
myNumber * 2
xuất myAnswer
dừng lại

xuất myAnswer

dừng lại

Hình 1-6 Lưu đồ và mã giả của chương trình nhân đôi một số
© 2015 Cengage Learning

Các lập trình viên hiếm khi tạo cả mã giả và lưu đồ cho cùng một vấn đề. Bạn
thường sử dụng cái này hoặc cái kia. Trong một chương trình lớn, bạn thậm chí có thể thích viết mã giả
cho một số bộ phận và để vẽ sơ đồ cho những bộ phận khác.
Khi bạn nói với một người bạn cách đến nhà của bạn, bạn có thể viết một loạt hướng dẫn hoặc
bạn có thể vẽ một bản đồ. Mã giả tương tự như hướng dẫn bằng văn bản, từng bước; a
lưu đồ, giống như một bản đồ, là một hình ảnh đại diện cho cùng một thứ. Tham khảo nhanh 1-2
tóm tắt các ký hiệu lưu đồ được sử dụng trong cuốn sách này.

THAM KHẢO NHANH 1-2 Biểu tượng Lưu đồ

Thiết bị đầu cuối Phán quyết

Dòng chảy Nội bộ


cuộc gọi mô-đun

Đầu ra đầu vào


Bên ngoài
cuộc gọi mô-đun

Quá trình
Trang 18

Sử dụng tuyên bố mã giả và biểu tượng lưu đồ

Hướng dẫn lặp lại


Sau khi lưu đồ hoặc mã giả đã được phát triển, người lập trình chỉ cần: (1)
mua máy tính, (2) mua trình biên dịch ngôn ngữ, (3) học ngôn ngữ lập trình, (4) viết mã
chương trình, (5) cố gắng biên dịch nó, (6) sửa lỗi cú pháp, (7) biên dịch lại, (8) kiểm tra nó
với một số bộ dữ liệu và (9) đưa nó vào sản xuất. 19

"Ái chà!" bạn có thể đang nói với chính mình. “Điều này đơn giản là không đáng! Tất cả những điều đó có tác dụng
tạo một lưu đồ hoặc mã giả, và sau đó tất cả các bước khác? Với năm đô la, tôi có thể mua một
máy tính bỏ túi sẽ tăng gấp đôi số bất kỳ cho tôi ngay lập tức! ” Bạn hoàn toàn đúng. Nếu điều này
là một chương trình máy tính thực và tất cả những gì nó làm là gấp đôi giá trị của một số, nó sẽ không
đáng để nỗ lực. Viết một chương trình máy tính chỉ đáng giá nếu bạn có nhiều
con số (giả sử 10.000) tăng gấp đôi trong một khoảng thời gian giới hạn — giả sử trong hai phút tiếp theo.
Thật không may, chương trình được biểu diễn trong Hình 1-6 không nhân đôi 10.000 số; nó
nhân đôi chỉ một. Tất nhiên, bạn có thể thực hiện chương trình 10.000 lần, nhưng điều đó sẽ
yêu cầu bạn phải ngồi vào máy tính và chạy đi chạy lại chương trình. Bạn sẽ là
tốt hơn với một chương trình có thể xử lý 10.000 số, cái này đến số khác.

Một giải pháp là viết chương trình được hiển thị trong Hình 1-7 và thực hiện các bước tương tự 10.000
lần. Tất nhiên, viết chương trình này sẽ rất tốn thời gian; bạn cũng có thể mua
máy tính.

khởi đầu
nhập myNumber
đặt myAnswer = myNumber * 2
xuất myAnswer
nhập myNumber
đặt myAnswer = myNumber * 2
xuất myAnswer Đừng làm điều đó
nhập myNumber Bạn sẽ không bao giờ muốn
đặt myAnswer = myNumber * 2 viết lặp đi lặp lại như vậy
xuất myAnswer danh sách các hướng dẫn.
… Và tiếp tục như vậy cho 9.997 lần nữa

Hình 1-7 Mã giả không hiệu quả cho chương trình nhân đôi 10.000 số
© 2015 Cengage Learning

Một giải pháp tốt hơn là để máy tính thực hiện lặp đi lặp lại cùng một bộ ba lệnh
một lần nữa, như trong Hình 1-8. Sự lặp lại của một loạt các bước được gọi là một vòng lặp . Với cái này
cách tiếp cận, máy tính nhận một số, nhân đôi nó, hiển thị câu trả lời và sau đó bắt đầu lại với
hướng dẫn đầu tiên. Vị trí tương tự trong bộ nhớ, được gọi là myNumber , được sử dụng lại cho số thứ hai
và cho bất kỳ số tiếp theo nào. Vị trí trong bộ nhớ có tên myAnswer được sử dụng lại mỗi lần để
lưu trữ kết quả của phép nhân. Tuy nhiên, logic được minh họa trong sơ đồ ở
Hình 1-8 có một vấn đề lớn — những vấn đề này không bao giờ kết thúc. Lập trình này
tình huống không xác định là vòng lặp vô hạn asan — luồng logic không có hồi kết. Bạn sẽ học theo cách
để xử lý vấn đề này ở phần sau của chương này; bạn sẽ học một cách vượt trội trong Chương 3.
Trang 19

khởi đầu

nhập myNumber
20

Đừng làm điều đó

đặt myAnswer = Logic này tiết kiệm


myNumber * 2 các bước, nhưng nó có một
lỗ hổng chết người - nó không bao giờ
kết thúc.

xuất myAnswer

Hình 1-8 Lưu đồ của chương trình nhân đôi số vô hạn


© 2015 Cengage Learning

HAI SỰ THẬT & MỘT LỜI NÓI DỐI


Sử dụng tuyên bố mã giả và biểu tượng lưu đồ

1. Khi bạn vẽ một lưu đồ, bạn sử dụng một hình bình hành để biểu diễn một đầu vào
hoạt động.

2. Khi bạn vẽ một lưu đồ, bạn sử dụng một hình bình hành để biểu diễn một quá trình xử lý
hoạt động.

3. Khi bạn vẽ một lưu đồ, bạn sử dụng một hình bình hành để biểu diễn một đầu ra
hoạt động.
Sử dụng giá trị Sentinel để kết thúc chương trình
Logic trong sơ đồ nhân đôi số, thể hiện trong Hình 1-8, có một lỗ hổng lớn —
chương trình chứa một vòng lặp vô hạn. Ví dụ: nếu các số đầu vào đang được nhập tại
bàn phím, chương trình sẽ tiếp tục chấp nhận các số và xuất giá trị nhân đôi của chúng
mãi mãi. Tất nhiên, người dùng có thể từ chối nhập bất kỳ số nào nữa. Nhưng chương trình không thể
tiến bộ thêm trong khi chờ đợi đầu vào; trong khi đó, chương trình đang chiếm
bộ nhớ máy tính và buộc tài nguyên hệ điều hành. Từ chối nhập thêm
số không phải là một giải pháp thực tế. Một cách khác để kết thúc chương trình đơn giản là tắt
Trang 20

Sử dụng giá trị Sentinel để kết thúc chương trình

máy vi tính. Nhưng một lần nữa, đó không phải là giải pháp tốt nhất cũng không phải là cách thanh lịch cho chương trình
để kết thúc.

Cách tốt hơn để kết thúc chương trình là đặt một giá trị xác định trước cho myNumber có nghĩa là
"Dừng chương trình!" Ví dụ: người lập trình và người dùng có thể đồng ý rằng người dùng sẽ
không bao giờ cần biết nhân đôi của 0 (không), vì vậy người dùng có thể nhập số 0 để dừng. Chương trình
21
sau đó có thể kiểm tra bất kỳ giá trị đến nào có trong myNumber và nếu nó là 0, hãy dừng chương trình.
Kiểm tra một giá trị còn được gọi là đưa ra quyết định .
Bạn thể hiện một quyết định trong một sơ đồ bằng cách vẽ một biểu tượng quyết định , có hình dạng giống như một
kim cương. Viên kim cương thường chứa một câu hỏi, câu trả lời là một trong hai
các lựa chọn loại trừ lẫn nhau — thường có hoặc không. Tất cả các câu hỏi hay về máy tính chỉ có hai
các câu trả lời loại trừ lẫn nhau, chẳng hạn như có và không hoặc đúng và sai. Ví dụ: “Ngày nào trong
năm là sinh nhật của bạn? " không phải là một câu hỏi máy tính hay vì có thể có 366
các câu trả lời. Tuy nhiên, "Sinh nhật của bạn có phải là ngày 24 tháng 6 không?" là một câu hỏi hay về máy tính bởi vì
câu trả lời luôn là có hoặc không.
Câu hỏi để dừng chương trình nhân đôi phải là "Giá trị của myNumber vừa được nhập
bằng 0? ” hoặc “ myNumber = 0? Gọi tắt là ”. Lưu đồ hoàn chỉnh bây giờ sẽ giống như một
được hiển thị trong Hình 1-9.

khởi đầu Đừng làm điều đó


Logic này không phải là
có cấu trúc; bạn sẽ
tìm hiểu về cấu trúc
nhập myNumber trong Chương 3.

số của tôi Đúng


dừng lại
= 0?

Không

đặt myAnswer =
myNumber * 2

xuất myAnswer

Hình 1-9 Lưu đồ của chương trình nhân đôi số với giá trị trọng điểm là 0
© 2015 Cengage Learning

Tất nhiên, một nhược điểm của việc sử dụng 0 để dừng một chương trình là nó sẽ không hoạt động nếu người dùng
cần tìm giá trị nhân đôi của 0. Trong trường hợp đó, một số giá trị nhập dữ liệu khác mà người dùng sẽ không bao giờ
Trang 21

cần, chẳng hạn như 999 hoặc –1, có thể được chọn để báo hiệu rằng chương trình sẽ kết thúc. A
giá trị được chọn trước làm dừng việc thực thi chương trình thường được gọi là giá trị giả vì
nó không đại diện cho dữ liệu thực, mà chỉ là một tín hiệu để dừng lại. Đôi khi, một giá trị như vậy được gọi là
giá trị sentinel vì nó đại diện cho một điểm vào hoặc ra, giống như một người lính canh gác bảo vệ
Pháo đài.
Không phải tất cả các chương trình đều dựa vào việc nhập dữ liệu của người dùng từ bàn phím; nhiều dữ liệu đọc từ một đầu vào
thiết bị, chẳng hạn như đĩa. Khi các tổ chức lưu trữ dữ liệu trên đĩa hoặc thiết bị lưu trữ khác, họ
không thường sử dụng giá trị giả để báo hiệu phần cuối của tệp. Đối với một điều, một đầu vào
bản ghi có thể có hàng trăm trường và nếu bạn lưu trữ một bản ghi giả trong mọi tệp, bạn sẽ
lãng phí một lượng lớn dung lượng lưu trữ trên “nondata”. Ngoài ra, thường khó chọn
giá trị sentinel cho các trường trong tệp dữ liệu của công ty. Bất kỳ balanceDue , thậm chí một số không hoặc tiêu cực
số, có thể là một giá trị hợp pháp và bất kỳ Tên khách hàng nào , ngay cả “ZZ”, có thể là một ai đó
Tên. May mắn thay, các ngôn ngữ lập trình có thể nhận ra phần cuối của dữ liệu trong một tệp
tự động, thông qua một mã được lưu trữ ở cuối dữ liệu. Nhiều lập trình
ngôn ngữ sử dụng thuật ngữ eof (cho cuối tệp) để chỉ điểm đánh dấu này tự động hoạt động như một
lính gác. Do đó, cuốn sách này sử dụng eof để chỉ ra phần cuối của dữ liệu bất cứ khi nào sử dụng một hình nộm
giá trị không thực tế hoặc không thuận tiện. Trong sơ đồ thể hiện trong Hình 1-10, câu hỏi eof
được tô bóng.

khởi đầu Đừng làm điều đó


Logic này không phải là
có cấu trúc; bạn sẽ
tìm hiểu về cấu trúc
nhập myNumber trong Chương 3.

Đúng
eof? dừng lại

Không

đặt myAnswer =
myNumber * 2

xuất myAnswer

Hình 1-10 Lưu đồ sử dụng eof


© 2015 Cengage Learning
Trang 22

HAI SỰ THẬT & MỘT LỜI NÓI DỐI


Sử dụng giá trị Sentinel để kết thúc chương trình

1. Chương trình chứa một vòng lặp vô hạn là một chương trình không bao giờ kết thúc. 23

2. Một giá trị được chọn trước làm dừng việc thực thi một chương trình thường được gọi là
giá trị dummy hoặc giá trị sentinel.

3. Nhiều ngôn ngữ lập trình sử dụng thuật ngữ fe (cho phần cuối tệp) để chỉ một điểm đánh dấu
tự động hoạt động như một trạm gác.

Hiểu môi trường lập trình và người dùng


Nhiều cách tiếp cận có thể được sử dụng để viết và thực thi một chương trình máy tính. Khi bạn lên kế hoạch cho một
logic của chương trình, bạn có thể sử dụng lưu đồ, mã giả hoặc kết hợp cả hai. Khi bạn
viết mã chương trình, bạn có thể nhập các câu lệnh vào nhiều trình soạn thảo văn bản khác nhau. Khi chương trình của bạn
thực thi, nó có thể chấp nhận đầu vào từ bàn phím, chuột, micrô hoặc bất kỳ đầu vào nào khác
và khi bạn cung cấp đầu ra của chương trình, bạn có thể sử dụng văn bản, hình ảnh hoặc âm thanh.

Phần này mô tả các môi trường phổ biến nhất mà bạn sẽ gặp khi
người lập trình.

Hiểu môi trường lập trình


Khi bạn lập kế hoạch logic cho một chương trình máy tính, bạn có thể sử dụng giấy và bút chì để tạo
lưu đồ hoặc bạn có thể sử dụng phần mềm cho phép bạn thao tác các hình dạng lưu đồ. nếu bạn
chọn viết mã giả, bạn có thể làm như vậy bằng tay hoặc bằng chương trình xử lý văn bản.
Để nhập chương trình vào máy tính để bạn có thể dịch và thực thi nó, bạn thường sử dụng
bàn phím để gõ các câu lệnh của chương trình vào một trình soạn thảo. Bạn có thể nhập một chương trình vào một trong các
tiếp theo:
Một trình soạn thảo văn bản thuần túy
Một trình soạn thảo văn bản là một phần của môi trường phát triển tích hợp
Một soạn thảo văn bản là một chương trình mà bạn sử dụng để tạo ra tập tin văn bản đơn giản. Nó tương tự như một từ
bộ xử lý, nhưng không có nhiều tính năng. Bạn có thể sử dụng một trình soạn thảo văn bản như Notepad để
đi kèm với Microsoft Windows. Hình 1-11 cho thấy một chương trình C # trong Notepad chấp nhận
một số và nhân đôi nó. Lợi thế của việc sử dụng một trình soạn thảo văn bản đơn giản để nhập và lưu
chương trình là chương trình đã hoàn thành không yêu cầu nhiều dung lượng đĩa để lưu trữ. Đối với
Ví dụ, tệp được hiển thị trong Hình 1-11 chỉ chiếm 314 byte dung lượng.
Trang 23

24

Dòng này chứa một


lời nhắc cho người dùng biết
nhập cái gì. Bạn sẽ
tìm hiểu thêm về lời nhắc
trong Chương 2.

Hình 1-11 Chương trình nhân đôi số AC # trong Notepad

Bạn có thể sử dụng trình chỉnh sửa của môi trường phát triển tích hợp ( IDE ) để nhập
chương trình. IDE là một gói phần mềm cung cấp trình soạn thảo, trình biên dịch và các
các công cụ lập trình. Ví dụ, Hình 1-12 cho thấy một chương trình C # trong Microsoft Visual
Studio IDE , một môi trường chứa các công cụ hữu ích để tạo các chương trình trong Visual Basic,
C ++ và C #.

Hình 1-12 Chương trình nhân đôi số AC # trong Visual Studio


Trang 24 Hiểu môi trường lập trình và người dùng

Sử dụng IDE rất hữu ích cho các lập trình viên vì thông thường nó cung cấp các tính năng tương tự như
bạn tìm thấy trong nhiều bộ xử lý văn bản. Đặc biệt, trình soạn thảo của IDE thường bao gồm
các tính năng như sau:
Nó sử dụng các màu khác nhau để hiển thị các thành phần ngôn ngữ khác nhau, làm cho các thành phần như dữ liệu
loại dễ xác định hơn. 25

Nó làm nổi bật các lỗi cú pháp một cách trực quan cho bạn.
Nó sử dụng tính năng hoàn thành câu lệnh tự động; khi bạn bắt đầu nhập một câu lệnh, IDE
gợi ý một khả năng hoàn thành, mà bạn có thể chấp nhận bằng một lần nhấn phím.

Nó cung cấp công cụ cho phép youto bước thô chương trình 'điều hành đơn giản tại một thời điểm
vì vậy bạn có thể dễ dàng theo dõi logic của chương trình và xác định nguồn gốc của bất kỳ lỗi nào.
Khi bạn sử dụng IDE để tạo và lưu một chương trình, bạn chiếm nhiều dung lượng đĩa hơn
khi sử dụng trình soạn thảo văn bản thuần túy. Ví dụ, chương trình trong Hình 1-12 chiếm nhiều hơn
49.000 byte dung lượng ổ đĩa.

Mặc dù các môi trường lập trình khác nhau có thể trông khác nhau và cung cấp các
các tính năng, quá trình sử dụng chúng rất giống nhau. Khi bạn lập kế hoạch logic cho một chương trình
sử dụng mã giả hoặc lưu đồ, không quan trọng bạn sử dụng môi trường lập trình nào
sẽ sử dụng để viết mã của bạn và khi bạn viết mã bằng ngôn ngữ lập trình, nó sẽ
không quan trọng bạn sử dụng môi trường nào để viết nó.

Hiểu môi trường người dùng


Người dùng có thể thực thi một chương trình bạn đã viết trong bất kỳ môi trường nào. Đối với
ví dụ, một người dùng có thể thực thi chương trình nhân đôi số từ một dòng lệnh như
một trong hình 1-13. Một dòng lệnh là một vị trí trên màn hình máy tính của bạn mà tại đó
bạn nhập các mục nhập văn bản để giao tiếp với hệ điều hành của máy tính. Trong chương trình
trong Hình 1-13, người dùng được yêu cầu một số và kết quả được hiển thị.

Hình 1-13 Thực thi chương trình nhân đôi số trong môi trường dòng lệnh

Nhiều chương trình không được chạy ở dòng lệnh trong môi trường văn bản, nhưng được chạy bằng cách sử dụng
giao diện người dùng đồ họa hoặc GUI (phát âm là gooey), cho phép người dùng tương tác với
chương trình trong môi trường đồ họa. Khi chạy một chương trình GUI, người dùng có thể nhập
nhập vào hộp văn bản hoặc sử dụng chuột hoặc thiết bị trỏ khác để chọn các tùy chọn trên màn hình.
Hình 1-14 cho thấy một chương trình nhân đôi số thực hiện chính xác nhiệm vụ giống như
một trong Hình 1-13, nhưng chương trình này sử dụng GUI.
Trang 25

Hình 1-14 Thực thi chương trình nhân đôi số trong môi trường GUI

Một chương trình dòng lệnh và một chương trình GUI có thể được viết trong cùng một chương trình
ngôn ngữ. (Ví dụ, các chương trình trong Hình 1-13 và 1-14 đều được viết bằng cách sử dụng
C #.) Tuy nhiên, bất kể môi trường nào được sử dụng để viết hoặc thực thi một chương trình, logic
quy trình là như nhau. Hai chương trình trong hình 1-13 và 1-14 đều chấp nhận đầu vào, thực hiện
nhân và hiệu suất. Trong cuốn sách này, bạn sẽ không tập trung vào môi trường nào
được sử dụng để nhập các câu lệnh của chương trình, bạn cũng không cần quan tâm đến loại môi trường mà người dùng
sẽ thấy. Thay vào đó, bạn sẽ quan tâm đến logic áp dụng cho tất cả các tình huống lập trình.

HAI SỰ THẬT & MỘT LỜI NÓI DỐI


Hiểu môi trường lập trình và người dùng

1. Bạn có thể nhập một chương trình vào một trình soạn thảo là một phần của sự phát triển tích hợp
nhưng việc sử dụng aplain texteditor cung cấp cho bạn nhiều trợ giúp lập trình hơn.

2. Khi một chương trình chạy từ dòng lệnh, người dùng nhập văn bản để cung cấp đầu vào.

3. Mặc dù GUI và môi trường dòng lệnh trông khác nhau, nhưng logic của đầu vào,
xử lý và đầu ra áp dụng cho cả hai loại chương trình.

Hiểu sự phát triển của các mô hình lập trình


Mọi người đã viết các chương trình máy tính hiện đại từ những năm 1940. Già nhất
ngôn ngữ lập trình yêu cầu người lập trình làm việc với địa chỉ bộ nhớ và
ghi nhớ các mã khó xử liên quan đến ngôn ngữ máy. Lập trình mới hơn
ngôn ngữ trông giống với ngôn ngữ tự nhiên hơn và dễ sử dụng hơn, một phần vì chúng
cho phép người lập trình đặt tên cho các biến thay vì sử dụng các địa chỉ bộ nhớ khó sử dụng. Cũng thế,
các ngôn ngữ lập trình mới hơn cho phép lập trình viên tạo các mô-đun độc lập hoặc
các phân đoạn chương trình có thể được nối với nhau theo nhiều cách khác nhau. Máy tính cũ nhất
các chương trình được viết trong một phần, từ đầu đến cuối, nhưng các chương trình hiện đại hiếm khi
được viết theo cách đó — chúng được tạo ra bởi các nhóm lập trình viên, mỗi nhóm phát triển có thể tái sử dụng và
các thủ tục chương trình có thể kết nối. Viết một số mô-đun nhỏ dễ dàng hơn viết một mô-đun
Trang 26
Hiểu sự phát triển của các mô hình lập trình

chương trình lớn và hầu hết các nhiệm vụ lớn sẽ dễ dàng hơn khi bạn chia nhỏ công việc thành các đơn vị và nhận được
những người lao động khác để giúp đỡ một số đơn vị.
Ada Byron Lovelace dự đoán sự phát triển của phần mềm vào năm 1843; cô ấy thường được coi là người đầu tiên
người lập trình. Cơ sở cho hầu hết các phần mềm hiện đại được Alan Turing đề xuất vào năm 1935.

27

Hiện tại, hai mô hình hoặc mô hình chính được các lập trình viên sử dụng để phát triển chương trình
và các thủ tục của họ:
Lập trình thủ tục tập trung vào các thủ tục mà người lập trình tạo ra. Đó là,
các nhà lập trình thủ tục tập trung vào các hành động được thực hiện — ví dụ: nhận được
nhập dữ liệu cho một nhân viên và viết các phép tính cần thiết để tạo ra một phiếu lương
từ dữ liệu. Các lập trình viên theo thủ tục sẽ tiếp cận công việc tạo ra một phiếu lương
bằng cách chia nhỏ quy trình thành các nhiệm vụ phụ có thể quản lý.
Lập trình hướng đối tượng tập trung vào các đối tượng hoặc "sự vật" và mô tả các tính năng của chúng
(còn gọi là thuộc tính) và các hành vi. Ví dụ, các lập trình viên hướng đối tượng có thể
thiết kế một ứng dụng trả lương bằng cách suy nghĩ về nhân viên và phiếu lương, và bằng cách mô tả
thuộc tính của chúng. Nhân viên có tên và số An sinh xã hội, và phiếu lương có
tên và số tiền kiểm tra. Sau đó, các lập trình viên sẽ nghĩ về các hành vi của
nhân viên và phiếu lương, chẳng hạn như nhân viên được tăng lương và thêm người phụ thuộc và
tiền lương đang được tính toán và đầu ra. Các lập trình viên hướng đối tượng sau đó sẽ xây dựng
ứng dụng từ các thực thể này.
Với cách tiếp cận, thủ tục hoặc hướng đối tượng, bạn có thể tạo ra một khoản tiền lương chính xác,
và cả hai mô hình đều sử dụng các mô-đun chương trình có thể tái sử dụng. Sự khác biệt chính nằm ở trọng tâm
lập trình viên thực hiện trong giai đoạn lập kế hoạch sớm nhất của một dự án. Hiện tại, cuốn sách này
tập trung vào các kỹ thuật lập trình thủ tục. Các kỹ năng bạn đạt được trong lập trình
theo thủ tục — khai báo các biến, chấp nhận đầu vào, đưa ra quyết định, tạo ra đầu ra và
cứ như vậy — sẽ phục vụ bạn tốt cho dù cuối cùng bạn viết chương trình bằng cách sử dụng thủ tục
cách tiếp cận, cách tiếp cận hướng đối tượng hoặc cả hai. Ngôn ngữ lập trình mà bạn
viết mã nguồn của bạn có thể xác định cách tiếp cận của bạn. Bạn có thể viết một chương trình thủ tục
trong bất kỳ ngôn ngữ nào hỗ trợ hướng đối tượng, nhưng điều ngược lại không phải lúc nào cũng đúng.

HAI SỰ THẬT & MỘT LỜI NÓI DỐI


Hiểu sự phát triển của các mô hình lập trình

1. Các chương trình máy tính cổ nhất được viết trong nhiều mô-đun riêng biệt.

2. Người lập trình theo thủ tục tập trung vào các hành động được thực hiện bởi một chương trình.

3. Lập trình viên hướng đối tượng tập trung vào các đối tượng của chương trình và các thuộc tính của chúng
và các hành vi.
Trang 27

Tóm tắt chương


Cùng với nhau, phần cứng máy tính (thiết bị vật lý) và phần mềm (hướng dẫn) thực hiện được ba
28 các hoạt động chính: đầu vào, xử lý và đầu ra. Bạn viết hướng dẫn máy tính trong một
ngôn ngữ lập trình máy tính yêu cầu cú pháp cụ thể; hướng dẫn được dịch
sang ngôn ngữ máy bằng trình biên dịch hoặc trình thông dịch. Khi cả cú pháp và logic của một
chương trình chính xác, bạn có thể chạy hoặc thực thi chương trình để tạo ra kết quả mong muốn.

Để một chương trình hoạt động bình thường, bạn phải phát triển logic chính xác. Lỗi logic nhiều
khó xác định hơn lỗi cú pháp.
Công việc của một lập trình viên liên quan đến việc hiểu vấn đề, lập kế hoạch logic, mã hóa
chương trình, dịch chương trình sang ngôn ngữ máy, thử nghiệm chương trình, đưa
chương trình vào sản xuất và duy trì nó.

Khi các lập trình viên lập kế hoạch logic cho một giải pháp cho một vấn đề lập trình, họ thường
sử dụng lưu đồ hoặc mã giả. Khi bạn vẽ một lưu đồ, bạn sử dụng các hình bình hành để
đại diện cho các hoạt động đầu vào và đầu ra, và hình chữ nhật để đại diện cho quá trình xử lý.
Các lập trình viên cũng sử dụng các quyết định để kiểm soát sự lặp lại của các tập lệnh.

Để tránh tạo một vòng lặp vô hạn khi lặp lại các hướng dẫn, bạn có thể kiểm tra một lực lượng giám sát
giá trị. Bạn thể hiện một quyết định trong một sơ đồ bằng cách vẽ một biểu tượng hình kim cương
chứa một câu hỏi, câu trả lời là có hoặc không.
Youcantypeaprogramintoa plaintext editor hoặc onethat ispart ofanintegrateddevelopment
Môi trường. Khi các giá trị dữ liệu của chương trình được nhập từ bàn phím, chúng có thể được nhập
tại dòng lệnh trong môi trường văn bản hoặc trong GUI. Dù bằng cách nào thì logic cũng tương tự.

Các lập trình viên hướng thủ tục và hướng đối tượng tiếp cận vấn đề một cách khác nhau. Thủ tục
lập trình viên tập trung vào các hành động được thực hiện với dữ liệu. Hướng đối tượng
lập trình viên tập trung vào các đối tượng và các hành vi và thuộc tính của chúng.

Điều khoản quan trọng


Một hệ thống máy tính là sự kết hợp của tất cả các thành phần cần thiết để xử lý và lưu trữ
dữ liệu bằng máy tính.

Phần cứng là tập hợp các thiết bị vật lý bao gồm một hệ thống máy tính.

Phần mềm bao gồm các chương trình cho máy tính biết phải làm gì.

Chương trình là tập hợp các hướng dẫn cho một máy tính.

Lập trình là hành động phát triển và viết chương trình.

Phần mềm ứng dụng bao gồm tất cả các chương trình bạn áp dụng cho một nhiệm vụ.

Một ứng dụng là một phần mềm ứng dụng; thuật ngữ này thường được sử dụng cho các ứng dụng trên
thiêt b di đ ng.

ộ
Trang 28

Phần mềm hệ thống bao gồm các chương trình mà bạn sử dụng để quản lý máy tính của mình.

Đầu vào mô tả việc nhập các mục dữ liệu vào bộ nhớ máy tính bằng cách sử dụng các thiết bị phần cứng như
bàn phím và chuột.

Các mục dữ liệu bao gồm tất cả văn bản, số và thông tin khác được máy tính xử lý.
29
Xử lý các mục dữ liệu có thể liên quan đến việc tổ chức chúng, kiểm tra độ chính xác của chúng, hoặc
thực hiện các phép toán trên chúng.

Khối xử lý trung tâm, hay CPU , là thành phần phần cứng máy tính xử lý dữ liệu.

Đầu ra mô tả hoạt động truy xuất thông tin từ bộ nhớ và gửi nó đến một
, chẳng hạn như màn hình hoặc máy in, để mọi người có thể xem, diễn giải và làm việc với kết quả.

Thông tin là dữ liệu đã qua xử lý.

Thiết bị lưu trữ là các loại thiết bị phần cứng, chẳng hạn như đĩa, lưu trữ thông tin cho
truy xuất sau.

Các đám mây liên quan đến máy tính từ xa truy cập thông qua Internet.

Các ngôn ngữ lập trình , chẳng hạn như Visual Basic, C #, C ++ hoặc Java, được sử dụng để viết chương trình.

Mã chương trình là tập hợp các lệnh mà lập trình viên viết bằng ngôn ngữ lập trình.

Mã hóa chương trình là hành động viết các chỉ dẫn của ngôn ngữ lập trình.

Các cú pháp của một ngôn ngữ là quy tắc ngữ pháp của nó.

Một lỗi cú pháp là một lỗi trong ngôn ngữ hay ngữ pháp.

Bộ nhớ máy tính là bộ nhớ tạm thời, lưu trữ bên trong máy tính.

Bộ nhớ truy cập ngẫu nhiên ( RAM ) là bộ nhớ tạm thời, bộ nhớ trong của máy tính.

Dễ bay hơi mô tả bộ lưu trữ có nội dung bị mất khi mất điện.

Không bay hơi mô tả bộ lưu trữ có nội dung được giữ lại khi mất điện.

Ngôn ngữ máy là ngôn ngữ mạch bật / tắt của máy tính.

Mã nguồn là các câu lệnh mà lập trình viên viết bằng ngôn ngữ lập trình.

Mã đối tượng là ngôn ngữ máy được dịch.

Một trình biên dịch hoặc thông dịch viên dịch một ngôn ngữ cấp cao sang ngôn ngữ máy và
cho biết nếu bạn đã sử dụng một ngôn ngữ lập trình không chính xác.

Ngôn ngữ nhị phân được biểu diễn bằng một chuỗi các số 0 và 1.

Để chạy hoặc thực thi một chương trình là thực hiện các hướng dẫn của nó.

Ngôn ngữ kịch bản (còn được gọi là ngôn ngữ lập trình kịch bản hoặc ngôn ngữ tập lệnh )
chẳng hạn như Python, Lua, Perl và PHP được sử dụng để viết các chương trình được nhập trực tiếp từ
bàn phím. Ngôn ngữ kịch bản được lưu trữ dưới dạng văn bản thay vì dưới dạng tệp thực thi nhị phân.
Trang 29

Một lỗi lôgic xảy ra khi các hướng dẫn không chính xác được thực hiện hoặc khi các hướng dẫn được
thực hiện sai thứ tự.

Các luận lý của một chương trình máy tính là chuỗi hoàn chỉnh các hướng dẫn mà dẫn đến một
giải pháp của vấn đề.
30 Một biến là một vị trí bộ nhớ được đặt tên có giá trị có thể thay đổi.

Chu trình phát triển chương trình bao gồm các bước xảy ra trong thời gian tồn tại của chương trình.

Người dùng (hoặc người dùng cuối ) là những người sử dụng và hưởng lợi từ các chương trình máy tính.

Tài liệu bao gồm tất cả các thủ tục giấy tờ hỗ trợ cho một chương trình.

Một thuật toán là chuỗi các bước cần thiết để giải quyết bất kỳ vấn đề.

Một biểu đồ IPO là một công cụ phát triển chương trình này sẽ phác họa đầu vào, xử lý, và đầu ra
các nhiệm vụ.
Một biểu đồ TOE là một công cụ phát triển chương trình danh sách nhiệm vụ, đối tượng, và các sự kiện.
Kiểm tra bàn là quá trình xem xét một giải pháp chương trình trên giấy.

Một ngôn ngữ lập trình cấp cao hỗ trợ cú pháp giống như tiếng Anh.

Một ngôn ngữ máy ở mức độ thấp được tạo thành từ 1s và 0s và không sử dụng một cách dễ dàng giải thích
các tên biến.

Gỡ lỗi là quá trình tìm kiếm và sửa lỗi chương trình.

Chuyển đổi là toàn bộ tập hợp các hành động mà một tổ chức phải thực hiện để chuyển sang sử dụng
chương trình hoặc tập hợp các chương trình.

Bảo trì bao gồm tất cả các cải tiến và sửa chữa được thực hiện đối với một chương trình sau khi nó ở trong
sản xuất.

Mã giả là một biểu diễn giống như tiếng Anh của các bước hợp lý mà nó cần để giải quyết một vấn đề.

Lưu đồ là một biểu diễn bằng hình ảnh của các bước hợp lý mà nó cần để giải quyết một vấn đề.

Một inputsymbol indicatesan hoạt động đầu vào và là representedby một sơ đồ parallelogramin.

Một biểu tượng xử lý cho biết một hoạt động xử lý và được biểu thị bằng một hình chữ nhật trong
lưu đồ.

Một biểu tượng đầu ra cho biết một hoạt động đầu ra và được biểu thị bằng một hình bình hành trong
lưu đồ.

Ký hiệu đầu vào / đầu ra hoặc ký hiệu I / O được biểu diễn bằng một hình bình hành trong sơ đồ.

Các dòng hoặc mũi tên, kết nối các bước trong một sơ đồ.

Một ký hiệu đầu cuối cho biết phần đầu hoặc phần cuối của một đoạn lưu đồ và được biểu thị
bằng hình thoi.

Một vòng lặp là một sự lặp lại của một loạt các bước.
Trang 30

Một vòng lặp vô hạn xảy ra khi logic lặp lại không thể kết thúc.

Đưa ra quyết định là hành động thử nghiệm một giá trị.

Một biểu tượng quyết định được hình dạng như một viên kim cương và sử dụng để đại diện cho các quyết định trong sơ đồ.

Một giá trị giả là một giá trị chọn trước mà dừng việc thực hiện một chương trình. 31

Một giá trị sentinel là một giá trị chọn trước mà dừng việc thực hiện một chương trình.

Thuật ngữ eof có nghĩa là cuối tệp.

Một soạn thảo văn bản là một chương trình mà bạn sử dụng để tạo ra tập tin văn bản đơn giản; nó tương tự như một từ
bộ xử lý, nhưng không có nhiều tính năng.

Một môi trường phát triển tích hợp ( IDE ) là một gói phần mềm cung cấp một trình soạn thảo,
trình biên dịch và các công cụ lập trình khác.

Microsoft Visual Studio IDE là một gói phần mềm có chứa các công cụ hữu ích để tạo
chương trình trong Visual Basic, C ++ và C #.

Một dòng lệnh là một vị trí trên màn hình máy tính của bạn mà bạn gõ mục văn bản để
giao tiếp với hệ điều hành của máy tính.

Một giao diện người dùng đồ họa, hoặc GUI (rệt dính), cho phép người dùng tương tác với một
chương trình trong môi trường đồ họa.

Lập trình theo thủ tục là một mô hình lập trình tập trung vào các thủ tục
người lập trình tạo.
Lập trình hướng đối tượng là một mô hình lập trình tập trung vào các đối tượng hoặc "sự vật"
và mô tả các tính năng (còn gọi là thuộc tính) và hành vi của chúng.
Bài tập

Câu hỏi đánh giá

1. Các chương trình máy tính còn được gọi là .


a. phần cứng c. dữ liệu
b. phần mềm d. thông tin
2. Các hoạt động chính của máy tính bao gồm .

a. phần cứng và phần mềm


b. đầu vào, xử lý và đầu ra
c. trình tự và vòng lặp
d. bảng tính, xử lý văn bản và truyền dữ liệu

Trang 31

CHƯƠNG 1 Tổng quan về Máy tính và Lập trình

3. Visual Basic, C ++ và Java là tất cả các ví dụ về máy tính .

a. các hệ điều hành c. ngôn ngữ máy


b. phần cứng d. ngôn ngữ lập trình

4. Các quy tắc của một ngôn ngữ lập trình là .


32
a. cú pháp c. định dạng
b. Hợp lý d. các tùy chọn
5. Nhiệm vụ quan trọng nhất của trình biên dịch hoặc trình thông dịch là .

a. tạo các quy tắc cho một ngôn ngữ lập trình
b. dịch các câu lệnh tiếng Anh sang một ngôn ngữ chẳng hạn như Java
c. dịch các câu lệnh ngôn ngữ lập trình sang ngôn ngữ máy
d. thực thi các chương trình ngôn ngữ máy để thực hiện các tác vụ hữu ích
6. Cái nào sau đây là bộ nhớ tạm thời, bộ nhớ trong?

a. CPU c. bàn phím


b. ổ đĩa cứng d. ký ức
7. Cặp quy trình lập trình theo bước nào sau đây là đúng thứ tự?

a. mã chương trình, lập kế hoạch logic


b. kiểm tra chương trình, dịch nó sang ngôn ngữ máy
c. đưa chương trình vào sản xuất, hiểu rõ vấn đề
d. viết mã chương trình, dịch nó sang ngôn ngữ máy

8. Nhiệm vụ quan trọng nhất của một lập trình viên trước khi lập kế hoạch logic của một chương trình là
đến .
a. quyết định sử dụng ngôn ngữ lập trình nào
b. mã vấn đề
c. đào tạo người dùng của chương trình

https://translate.googleusercontent.com/translate_f 27/32
9/7/2021 Hiểu biết về hệ thống máy tính
d. hiểu vấn đề
9. Hai công cụ được sử dụng phổ biến nhất để lập kế hoạch logic của chương trình
Chúng tôi .

a. lưu đồ và mã giả
b. ASCII và EBCDIC
c. Java và Visual Basic
d. bộ xử lý văn bản và bảng tính

10. Viết chương trình bằng ngôn ngữ như C ++ hoặc Java được gọi là các
chương trình.
a. phiên dịch c. phiên dịch
b. mã hóa d. biên dịch

Trang 32

Bài tập

11. Một ngôn ngữ lập trình giống tiếng Anh như Java hoặc Visual Basic là
a ngôn ngữ lập trình.

a. cấp máy c. trình độ cao


b. cấp thấp d. cấp nhị phân
12. Trường hợp nào sau đây là một ví dụ về lỗi cú pháp? 33

a. sản xuất đầu ra trước khi chấp nhận đầu vào


b. trừ khi bạn muốn thêm
c. viết sai chính tả một từ ngôn ngữ lập trình
d. tất cả những điều trên
13. Trường hợp nào sau đây là một ví dụ về lỗi lôgic?

a. thực hiện số học với một giá trị trước khi nhập nó
b. chấp nhận hai giá trị đầu vào khi một chương trình chỉ yêu cầu một
c. chia cho 3 khi bạn muốn chia cho 30
d. tất cả những điều trên

14. Hình bình hành là biểu tượng lưu đồ biểu diễn .

a. đầu vào c. hoặc a hoặc b


b. đầu ra d. không có cái nào ở trên
15. Trong một lưu đồ, một hình chữ nhật đại diện cho .

a. đầu vào c. một câu hỏi


b. một lính canh d. Chế biến
16. Trong sơ đồ, ký hiệu quyết định là một .

a. hình bình hành c. hình thoi


b. hình chữ nhật d. kim cương
17. Thuật ngữ eof đại diện cho .

a. một thiết bị đầu vào tiêu chuẩn


b. một giá trị sentinel chung
c. tình trạng không còn bộ nhớ để lưu trữ
d. luồng logic trong một chương trình
18. Khi bạn sử dụng IDE thay vì một trình soạn thảo văn bản đơn giản để phát triển một
chương trình, .

a. logic phức tạp hơn c. cú pháp khác nhau


b. logic đơn giản hơn d. một số trợ giúp được cung cấp
https://translate.googleusercontent.com/translate_f 28/32
9/7/2021 Hiểu biết về hệ thống máy tính

19. Khi bạn viết một chương trình sẽ chạy trong môi trường GUI thay vì
môi trường dòng lệnh, .

a. logic rất khác c. bạn không cần phải lập kế hoạch logic
b. một số cú pháp khác nhau d. người dùng bối rối hơn

Trang 33

CHƯƠNG 1 Tổng quan về Máy tính và Lập trình

20. So với lập trình thủ tục, với hướng đối tượng
lập trình, .

a. trọng tâm của lập trình viên khác nhau


b. bạn không thể sử dụng một số ngôn ngữ, chẳng hạn như Java
34 c. bạn không chấp nhận đầu vào
d. bạn không tính toán mã; chúng được tạo tự động

Bài tập lập trình

1. Ghép định nghĩa với thuật ngữ thích hợp.

1. Các thiết bị hệ thống máy tính a. trình biên dịch

2. Một từ khác để chỉ các chương trình b. cú pháp


3. Quy tắc ngôn ngữ c. Hợp lý

4. Thứ tự hướng dẫn d. phần cứng


5. Phiên dịch ngôn ngữ e. phần mềm

2. Bằng cách nói của riêng bạn, hãy mô tả các bước để viết một chương trình máy tính.

3. Ghép từ với hình dạng thích hợp (xem Hình 1-15).

1. Đầu vào A.

2. Chế biến B.

3. Đầu ra C.

4. Quyết định D.

5. Thiết bị đầu cuối

Hình 1-15 Nhận dạng hình dạng


© 2015 Cengage Learning

https://translate.googleusercontent.com/translate_f 29/32
9/7/2021 Hiểu biết về hệ thống máy tính

Trang 34

Bài tập

4. Vẽ lưu đồ hoặc viết mã giả để biểu diễn logic của một chương trình
cho phép người dùng nhập một giá trị. Chương trình chia giá trị cho 2 và xuất ra
kết quả.
5. Vẽ lưu đồ hoặc viết mã giả để biểu diễn logic của một chương trình
cho phép người dùng nhập giá trị cho một cạnh của khối lập phương. Chương trình tính toán 35
diện tích bề mặt của một mặt của hình lập phương, diện tích bề mặt của hình lập phương và thể tích của nó.
Chương trình xuất ra tất cả các kết quả.
6. Vẽ lưu đồ hoặc viết mã giả để biểu diễn logic của một chương trình
cho phép người dùng nhập hai giá trị. Chương trình xuất ra sản phẩm của
hai giá trị.
7. a. Vẽ lưu đồ hoặc viết mã giả để biểu diễn logic của một chương trình
cho phép người dùng nhập các giá trị cho chiều rộng và chiều dài của sàn phòng tính bằng feet.
Chương trình xuất ra diện tích của sàn theo đơn vị feet vuông.
b. Sửa đổi chương trình tính toán diện tích sàn để tính toán và xuất ra
số viên gạch vuông 6 tấc cần để lát nền.

8. a. Vẽ lưu đồ hoặc viết mã giả để biểu diễn logic của một chương trình
cho phép người dùng nhập các giá trị cho chiều rộng và chiều dài của bức tường tính bằng feet. Các
chương trình xuất ra diện tích của bức tường tính bằng feet vuông.
b. Sửa đổi chương trình tính diện tích tường để cho phép người dùng nhập giá
của một gallon sơn. Giả sử rằng một gallon sơn bao phủ 350 feet vuông của một
Tường. Chương trình xuất ra số gallon cần thiết và chi phí của công việc.
(Đối với bài tập này, giả sử rằng bạn không cần tính đến các cửa sổ hoặc
cửa và bạn có thể mua một phần gallon sơn.)
c. Sửa đổi chương trình tính toán chi phí sơn để cho phép người dùng nhập
số ô cửa không phải sơn. Giả sử rằng mỗi ô cửa
là 14 bộ vuông. Đưa ra số gallon cần thiết và chi phí của công việc.
9. Nghiên cứu tỷ giá hối đoái tiền tệ hiện hành. Vẽ lưu đồ hoặc viết giả
mã đại diện cho logic của một chương trình cho phép người dùng nhập một số
đô la và chuyển đổi nó sang Euro và yên Nhật.

10. Vẽ lưu đồ hoặc viết mã giả để biểu diễn logic của một chương trình
cho phép người dùng nhập các giá trị cho mức lương cơ bản của nhân viên bán hàng, tổng doanh số bán hàng và
tỷ lệ hoa hồng. Chương trình tính toán và xuất ra khoản thanh toán của nhân viên bán hàng bằng
cộng mức lương cơ sở vào sản phẩm của tổng doanh số và tỷ lệ hoa hồng.
11. Một cửa hàng ký gửi chấp nhận một sản phẩm để bán và đặt giá ban đầu. Mỗi
tháng mà mặt hàng không bán, giá sẽ giảm 20 phần trăm. Khi mặt hàng
bán, chủ sở hữu mặt hàng nhận được 60% giá bán và cửa hàng nhận được
40 phần trăm. Vẽ lưu đồ hoặc viết mã giả để biểu diễn logic của một
chương trình cho phép người dùng nhập giá sản phẩm ban đầu. Đầu ra là
giá ưu đãi, mức giảm của chủ sở hữu và mức giảm của cửa hàng mỗi tháng trong ba lần đầu tiên
tháng mặt hàng được bán.

Trang 35

CHƯƠNG 1 Tổng quan về Máy tính và Lập trình

https://translate.googleusercontent.com/translate_f 30/32
9/7/2021 Hiểu biết về hệ thống máy tính

12. Một ứng dụng trên điện thoại di động cho phép người dùng nhấn vào một nút để khởi động bộ đếm thời gian đếm
giây. Khi người dùng nhấn nút một lần nữa, bộ đếm thời gian sẽ dừng lại. Vẽ sơ đồ
hoặc viết mã giả chấp nhận thời gian đã trôi qua tính bằng giây và hiển thị giá trị
tính bằng phút và giây. Ví dụ: nếu thời gian đã trôi qua là 130 giây,
đầu ra sẽ là 2 phút 10 giây.
36

Thực hiện bảo trì

1. Trong chương này, bạn đã biết rằng một số nhiệm vụ được giao cho các lập trình viên mới
thường xuyên liên quan đến việc bảo trì — thực hiện các thay đổi đối với các chương trình hiện có vì
yêu cầu mới. Tệp có tên MAINTENANCE01-01.txt được bao gồm trong
tập tin sinh viên có thể tải xuống. Giả sử rằng chương trình này là một chương trình làm việc trong
tổ chức của bạn và tổ chức đó cần sửa đổi như được mô tả trong các nhận xét
(dòng bắt đầu bằng hai dấu gạch chéo) ở đầu tệp. Công việc của bạn là thay đổi
chương trình để đáp ứng các thông số kỹ thuật mới.

Tìm lỗi

Kể từ những ngày đầu của lập trình máy tính, lỗi chương trình đã được gọi là lỗi.
Thuật ngữ này thường được cho là có nguồn gốc từ một loài bướm đêm thực tế đã được phát hiện
bị mắc kẹt trong mạch của một máy tính tại Đại học Harvard năm 1945. Trên thực tế, thuật ngữ
lỗi đã được sử dụng trước năm 1945 có nghĩa là sự cố với bất kỳ thiết bị điện nào; ngay cả trong
Cuộc đời của Thomas Edison, nó có nghĩa là một khiếm khuyết công nghiệp. Tuy nhiên, thuật ngữ gỡ lỗi là
kết hợp chặt chẽ hơn với việc sửa lỗi cú pháp và logic chương trình hơn bất kỳ
loại rắc rối khác.

1. Các tệp có thể tải xuống của bạn cho Chương 1 bao gồm DEBUG01-01.txt, DEBUG01-02.txt,
và DEBUG01-03.txt. Mỗi tệp bắt đầu bằng một số nhận xét (các dòng bắt đầu bằng
hai dấu gạch chéo) mô tả chương trình. Kiểm tra mã giả theo sau
nhận xét giới thiệu, sau đó tìm và sửa tất cả các lỗi.

2. Các tệp có thể tải xuống của bạn cho Chương 1 bao gồm một tệp có tên DEBUG01-04.jpg
chứa một sơ đồ có lỗi cú pháp và / hoặc lôgic. Kiểm tra lưu đồ và
sau đó tìm và sửa tất cả các lỗi.

Khu vực chơi game

1. Năm 1952, AS Douglas viết bằng Tiến sĩ tại Đại học Cambridge của ông. luận văn về
tương tác giữa con người với máy tính và tạo ra trò chơi máy tính đồ họa đầu tiên — a
phiên bản của Tic-Tac-Toe. Trò chơi được lập trình trên ống chân không EDSAC
máy tính lớn. Trò chơi máy tính đầu tiên thường được giả định là Spacewar !,

Trang 36

Bài tập

được phát triển vào năm 1962 tại MIT; trò chơi điện tử thương mại đầu tiên là Pong,
được Atari giới thiệu vào năm 1972. Năm 1980, Tiểu hành tinh và Tàu đổ bộ Mặt Trăng của Atari trở thành
trò chơi điện tử đầu tiên được đăng ký với Văn phòng Bản quyền Hoa Kỳ. Xuyên suốt
Những năm 1980, người chơi đã dành hàng giờ đồng hồ với những trò chơi mà bây giờ có vẻ rất đơn giản và vô cảm;
bạn có nhớ chơi Adventure, Oregon Trail, Where in the World Is Carmen
Sandiego ?, hay Myst? 37

Ngày nay, các trò chơi máy tính thương mại phức tạp hơn nhiều; họ đòi hỏi
https://translate.googleusercontent.com/translate_f 31/32
9/7/2021 Hiểu biết về hệ thống máy tính
nhiều lập trình viên, nghệ sĩ đồ họa và người thử nghiệm để phát triển chúng, và nhiều
cần có nhân viên quản lý và tiếp thị để thúc đẩy họ. Một trò chơi có thể
tốn nhiều triệu đô la để phát triển và tiếp thị, nhưng một trò chơi thành công có thể
kiếm được hàng trăm triệu đô la. Rõ ràng, với phần giới thiệu ngắn gọn về
lập trình bạn đã có trong chương này, bạn không thể tạo
trò chơi. Tuy nhiên, bạn có thể bắt đầu.

Mad Libs là một trò chơi dành cho trẻ em, trong đó người chơi cung cấp một số từ
sau đó được lồng ghép vào một câu chuyện ngớ ngẩn. Trò chơi giúp trẻ hiểu khác nhau
các phần của bài phát biểu vì chúng được yêu cầu cung cấp các loại từ cụ thể.
Ví dụ, bạn có thể hỏi một đứa trẻ về một danh từ, một danh từ khác, một tính từ, và
một động từ thì quá khứ. Đứa trẻ có thể trả lời bằng những câu trả lời như cái bàn, cuốn sách, ngớ ngẩn,
và đã nghiên cứu. Mad Lib mới được tạo ra có thể là:

Mary có một cái bàn nhỏ


Cuốn sách của nó ngớ ngẩn như tuyết

Và ở mọi nơi mà Mary đã học

Bảng đã chắc chắn để đi.


Tạo logic cho chương trình Mad Lib chấp nhận năm từ từ đầu vào, sau đó
tạo và hiển thị một câu chuyện ngắn hoặc bài đồng dao cho trẻ nhỏ sử dụng chúng.

Lên cho cuộc thảo luận

1. Công cụ nào tốt hơn để học lập trình — lưu đồ hay mã giả?
Trích dẫn bất kỳ nghiên cứu giáo dục nào bạn có thể tìm thấy.

2. Hình ảnh của lập trình viên máy tính trong văn hóa đại chúng là gì? Là hình ảnh
trong sách khác với trong chương trình truyền hình và phim? Bạn có muốn hình ảnh đó cho
bản thân bạn?

https://translate.googleusercontent.com/translate_f 32/32

You might also like