Nhập môn máy tính
Mở đầu
Với tài liệu này, hi vọng các bạn sẽ hiểu thêm về chiếc máy vi tính, về thế giới Internet.
Để theo dõi bài viết, bạn không cần phải có bất cứ kiến thức
nền tảng nào về máy tính, về mạng máy tính, về Internet.
Tài liệu sẽ trình bày các đặc điểm cơ bản của máy tính, ví
dụ: nó hoạt động ra sao, nó có thể làm được những việc gì, và những việc gì nó
không thể làm được.
Khi nói đến máy tính, có một công thức phổ biến là:
Computer = Powerful + Stupid
Tạm dịch:
Máy tính = Tính toán nhanh + Trí tuệ tầm thường
-
Tính toán nhanh: là nói về khả năng xử lý các phép toán
của máy tính, nó có thể thực hiện hàng tỉ phép toán trong một giây.
-
Trí tuệ tầm thường: muốn nói về cái cách nó làm một
công việc, nó làm việc hết sức máy móc, không có sáng tạo, chỉ làm được các
phép toán đơn giản, và không có khả năng nhìn nhận vấn đề một cách sâu sắc như
con người.
Tuy nhiên, bản thân máy tính lại là một sự kết hợp hiệu quả
giữa hai đặc điểm này. Đây là một sự kết hợp khá đặc biệt. Sự kết hợp giữa khả
năng làm việc rất nhanh và đặc tính là chỉ làm được các việc rất đơn giản.
Hãy quan sát một đoạn mã lập trình dưới đây, để thấy các
công việc mà máy tính có thể thực hiện được là rất đơn giản.
CongViec1 (1+1)
CongViec2 2 < 10 ?
CongViec3 …
CongViec4 …
Ở đoạn mã trên, công việc 1, máy tính sẽ thực hiện phép
cộng: 1 + 1 và công việc 2, máy tính sẽ cho biết 2 có nhỏ hơn 10 hay không?
Tuy nhiên, như chúng ta đã biết, máy tính lại là một công cụ
rất hữu ích, không thể thiếu trong cuộc sống, nó hỗ trợ con người trong mọi
lĩnh vực.
Bằng cách nào, mà từ một chiếc máy chỉ có khả năng thực hiện
các công việc đơn giản, làm việc một cách máy móc, lại trở thành một thiết bị
rất hữu ích và không thể thiếu trong cuộc sống như vậy? Bạn sẽ tìm được câu trả
lời ở các phần sau.
Máy tính hoạt động như thế nào?
Máy tính được điều khiển bằng các đoạn mã lập trình.
Hình 1 là mô hình một cái máy tính với đoạn mã lập trình bên
trong. Đoạn mã thực hiện hai công việc là: thực hiện phép tính 1 + 1 và cho
biết 2 có nhỏ hơn 10 hay không.
Trong mô hình đơn giản này, máy tính sẽ thực hiện tuần tự
các lệnh từ trên xuống. Tới đây có thể bạn sẽ thắc mắc: “Tại sao máy tính chỉ
làm được các công việc đơn giản như vậy, thì làm sao nó lại có rất nhiều các
ứng dụng hữu ích trong cuộc sống?”.
Hãy quan sát Hình 2 dưới đây.
Câu trả lời chính là lập trình cho máy tính.
Sau đây là các bước để có được một chương trình ứng dụng cho
máy tính. Ví dụ, chương trình tìm và khử tình trạng bị mắt đỏ trên các tấm hình.
-
Bước đầu lập trình viên sẽ có ý tưởng là tìm và khử
tình trạng bị mắt đỏ trên các tấm hình.
-
Bằng trí tưởng tượng và óc sáng tạo, anh ta sẽ nghĩ ra
một số giải pháp để giải quyết bài toán này bằng máy tính.
-
Sau đó sẽ thực hiện cấu trúc và phân rã bài toán ban đầu
thành nhiều bài toán nhỏ hơn, để máy tính có thể thực hiện được.
-
Sau cùng là lập trình, tức là hướng dẫn cho máy tính
làm từng bước để làm sao đạt được mục đích cuối cùng.
Trong thực tế, các tiện ích, các ứng dụng mà bạn đã sử dụng
trong điện thoại di động, máy chụp hình kĩ thuật số, hoặc trong máy tính, tất
cả đều là kết quả do một hoặc nhiều người đã làm việc vất vả để tạo ra nó.
Ở đây đã có một sự cộng tác hiệu quả, giữa một bên là lập
trình viên, là con người với óc sáng tạo và cảm nhận sâu sắc về thế giới, luôn
nghĩ ra những việc có ích để làm. Và một bên là máy tính với khả năng xử lý rất
nhanh các lệnh do người lập trình đưa ra. Để cuối cùng có được kết quả như mong
muốn của con người, xem Hình 3.
Sự cộng tác giữa con người và máy tính đã giúp cho máy tính đang
làm được rất nhiều việc hữu ích.
Vì vậy, tài liệu này sẽ tập trung vào hai mảng lớn là tìm
hiểu về máy tính và lập trình cho máy tính làm việc.
Lập trình cho máy tính
Lập trình là việc sử dụng một ngôn ngữ mà máy tính có thể
hiểu được, để lập chương trình (kịch bản) cho máy tính làm việc.
Phần tiếp theo sẽ trình bày một số ví dụ đơn giản về lập
trình cho máy tính, mục đích là giúp bạn làm quen với khái niệm lập trình, và
phần nào hiểu thêm về bản chất làm việc rất máy móc của máy tính.
Để đơn giản, ví dụ sẽ sử dụng ngôn ngữ lập trình JavaScript.
Với ngôn ngữ này bạn chỉ cần có trình duyệt web là có thể lập trình, chạy thử
và xem kết quả. Tất nhiên, chỉ là các chương trình đơn giản đầu tiên.
Ví dụ 1: Viết chương trình in các số ra màn hình.
Để thực hiện, bạn mở trình duyệt web lên (Mozilla Firefox,
Chrome, Internet Explorer).
Dán đường dẫn sau vào thanh địa chỉ của trình duyệt web: http://www.w3schools.com/js/tryit.asp?filename=tryjs_myfirst
Màn hình kết quả như Hình 4 dưới đây.
Ở Hình 4, bạn nhập mã lập trình vào cửa sổ phía trái, có tên
là Source Code, sau đó bấm nút Submit Code để ra lệnh cho máy tính thực thi
đoạn mã lập trình, và máy tính sẽ xuất kết quả sang màn hình phía bên phải, có
tên là Result.
In số
Để in các số: 1, 2, 3 ra màn hình, bạn xóa sạch màn hình Source
Code và nhập vào đoạn mã sau.
<!DOCTYPE
html>
<html>
<body>
<script>
document.write(1);
document.write
(2, 3);
</script>
</body>
</html>
Sau đó bấm nút Submit Code để xem kết quả.
Việc học một ngôn ngữ lập trình (ví dụ JavaScript) cũng
tương tự như học một ngoại ngữ. Bạn học được càng nhiều thì càng có khả năng
nói chuyện được với máy tính nhiều hơn. Vì vậy, bạn phải thật kiên trì.
Vì máy tính làm việc rất máy móc, nên cú pháp của ngôn ngữ
lập trình quy định rất chặt chẽ. Bạn không thể viết một cách tự do như khi viết
email. Bạn có thể kiểm tra tính chất này bằng cách xóa đi một dấu chấm, một dấu
phẩy, hay một dấu ngoặc đơn ở đoạn mã bên trên là máy tính sẽ không hiểu và
không thể thực thi đoạn mã.
In chuỗi
Chuỗi là một dãy các kí tự.
Ví dụ: địa chỉ một trang web như “www.google.com”
được xem là một chuỗi. Hoặc khi các bạn nhập văn bản trong một trình soạn thảo,
thì một đoạn văn bản đó cũng có thể được xem là một chuỗi.
Bạn có thể thêm dòng mã:
document.write
(“Chao cac ban”);
vào sau dòng mã:
document.write
(2, 3);
ở ví dụ in số, để in chuỗi Chao cac ban ra màn hình.
Trong JavaScript, chuỗi thường được bao lại bằng một cặp dấu
nháy kép.
Ví dụ sau phản ánh rất rõ điều này, cũng cùng là nội dung:
document.write(1)
Tuy nhiên, khi viết bình thường nó sẽ là một lệnh để máy
tính thực thi, nhưng khi bao nội dung đó bằng một cặp dấu nháy kép, nó sẽ trở
thành một chuỗi.
Bạn nhập đoạn mã sau và chạy thử:
<!DOCTYPE
html>
<html>
<body>
<script>
document.write(1);
document.write
("document.write(1);");
</script>
</body>
</html>
Kết quả sẽ là:
1document.write(1);
-------------------------
Dựa theo bài giảng của tác giả Nick Parlante, trong loạt bài
giảng về Computer Science 101 – Đại học Stanford – Mỹ - 2014.
https://class.coursera.org/cs101-selfservice/wiki/view?page=code-1
------------------------
Cập nhật: 2014/6/18