BÀI 1: MÁY TÍNH VÀ CHƯƠNG TRÌNH MÁY TÍNH
CÂU HỎI VÀ BÀI TẬP
Câu hỏi:
Khi soạn thảo văn bản trên máy tính và yêu cầu chương trình tìm kiếm một cụm từ trong văn bản và thay thế bằng một cụm từ khác, thực chất ta đã yêu cầu máy tính thực hiện những lệnh gì? Có thể thay đổi thứ tự những lệnh đó mà vẫn không thay đổi kết quả được không ?
Trong ví dụ về rô-bốt, nếu thay đổi thứ tự của lệnh 1 và lệnh 2 trong chương trình, rô-bốt có thực hiện được công việc nhặt rác không? Hãy xác định vị trí mới của rô-bốt sau khi thực hiện xong chương trình với thay đổi trên. Em hãy bổ sung hai lệnh để đưa rô-bôt về vị trí ban đầu?
Hãy cho biết lí do cần phải viết chương trình để điều khiển máy tính.
Tại sao người ta phải tạo ra các ngôn ngữ lập trình trong khi có thể điều khiển máy tính bằng ngôn ngữ máy.
Chương trình dịch là gì?
Trả lời:
- Ở đây, chúng ta có 2 công việc cần thực hiện, đó là:
1. Tìm kiếm một cụm từ trong văn bản:
2. Thay thế bằng một cụm từ khác.
- Để thực hiện được 2 công việc này, máy tính sẽ cần đưa ra một loạt các mệnh lệnh:
1. Sao chép cụm từ cần tìm kiếm (gọi là cụm từ 1) vào bộ nhớ của máy tính.
2. Tìm kiếm cụm từ 1 đã sao chép.
3. Xóa cụm từ 1 đã tìm kiếm được.
4. Sao chép cụm từ cần thay thế (gọi là cụm từ 2) vào bố nhớ của máy tính.
5. Từ vị trí đã xóa cụm từ 1, sao chép cụm từ 2 vào.
- Không thể thay đổi thứ tự những lệnh đó mà vẫn không thay đổi được kết quả. Ví dụ khi ta đổi lệnh 1 cho lệnh 4. Lúc đó máy sẽ thực hiện việc sao chép cụm từ 2 vào bộ nhớ, do bản chất của cụm từ 1 và 2 đều là dữ liệu nên lúc đó máy tính sẽ coi cụm từ 2 như cụm từ 1 và bắt đầu thực hiện lệnh đối với cụm từ 2. Thế nên, nếu ta thay đổi lệnh 1 cho lệnh 4 thì việc tìm kiếm và thay thế cụm từ 1 thành cụm từ 2 sẽ trở thành chương trình tìm kiếm và thay thế cụm từ 2 thành cụm từ 1. Lúc đó, kết quả sẽ bị thay đổi.
– Nếu thay đổi thứ tự của lệnh 1 và lệnh 2 trong chương trình, rô-bốt sẽ không thực hiện được công việc nhặt rác. Lúc này, rô-bốt sẽ thực hiện xong lệnh và đến vị trí mới nhưng lại không có rác để nhặt.
- Vị trí mới của rô-bôt : Cách xa vị trí rác (hình bên dưới)
- Bổ sung 2 lệnh để đưa rô-bốt trở lại vị trí ban đầu:
Lùi 3 bước.
Quay phải.
Vị trí sau khi bổ sung 2 lệnh này: hình bên dưới.
3.
Lí do cần phải viết chương trình để điều khiển máy tính là:
– Trong thực tế, các công việc của con người muốn máy tính thực hiện rất đa dạng và phức tạp. Một lệnh đơn giản không đủ để chỉ dẫn cho máy tính hoàn thành công việc. Do đó, việc viết nhiều lệnh và tập hợp lại trong một chương trình giúp con người khai thác triệt để tốc độ máy tính và điều khiển máy tính đơn giản, dễ dàng.
– Khi thực hiện chương trình, máy tính sẽ thực hiện tuần tự các lệnh có trong chương trình, nghĩa là thực hiện xong một lệnh sẽ thực hiện lệnh tiếp theo, từ lệnh đầu tiên đến lệnh cuối cùng.
4.
Người ta phải tạo ra các ngôn ngữ lập trình trong khi có thể điều khiển máy tính bằng ngôn ngữ máy tại vì:
– Đầu tiên chúng ta phải hiểu rằng, ngôn ngữ máy là các dãy bit, mỗi dãy bit chỉ bao gồm các số 0 và 1. Ví dụ: 00111010
– Chúng ta có thể thấy việc viết chương trình bằng ngôn ngữ máy, chỉ gồm những số 0 và 1 rất khó khăn và mất nhiều thời gian, công sức, cực kì khó nhớ và khó sử dụng. Do đó, để thuận tiện hơn, đơn giản, dễ hiểu hơn, các ngôn ngữ lập trình được ra đời nhằm phục vụ những mục đích đó.
5.
Chương trình dịch là:
– Do các ngôn ngữ lập trình được tạo ra nhằm mục đích dễ hiểu hơn cho con người, nhưng máy tính lại không thể hiểu được ngôn ngữ đó. Do đó, chương trình còn cần được chuyển đổi sang ngôn ngữ máy bằng một chương trình dịch tương ứng.
TÌM HIỂU MỞ RỘNG
Câu hỏi:
Có nhiều ngôn ngữ lập trình khác nhau, có thể kể tên một số ngôn ngữ phổ biến hiện nay như C, Java, Basic, Pascal… Em có thể kể tên một số ngôn ngữ lập trình khác không?
Trả lời:
Tên một số ngôn ngữ lập trình khác: Python, PHP, Go, Java Script, Visual Basic.NET, Ruby on Rails, Swift, C#, Scala