Bỏ qua nội dung

Lập trình

Khoa học máy tính IGCSE · Chủ đề 8

Bài học video cho chủ đề này Mở trang video
13:16

Lập trình

Đây là một chương trình ngắn. Nó đọc năm điểm kiểm tra và in tổng. Năm điểm là tám, chín, bảy, sáu và mười, nên tổng phải là bốn mươi. Hãy xem…

Giọng đọc tiếng Anh · phụ đề tiếng Anh + 中文 được ghi trực tiếp

8.1

Biến và hằng số

Chương trình
Thí sinh cần có thể: Ghi chú và hướng dẫn
1 Khai báo và sử dụng biến và hằng số
2 Hiểu và sử dụng các kiểu dữ liệu cơ bản • Bao gồm: – số nguyên – số thực – ký tự – chuỗi – Boolean
3 Hiểu và sử dụng đầu vào và đầu ra
4 (a) Hiểu và sử dụng khái niệm sự tuần tự
(b) Hiểu và sử dụng khái niệm sự lựa chọn • Bao gồm: – lệnh IF – lệnh CASE
(c) Hiểu và sử dụng khái niệm lặp lại • Bao gồm: – vòng lặp kiểm soát bởi đếm – vòng lặp tiền điều kiện – vòng lặp hậu điều kiện
(d) Hiểu và sử dụng các khái niệm cộng tổng và đếm số
(e) Hiểu và sử dụng khái niệm xử lý chuỗi • Bao gồm: – độ dài – chuỗi con – hoa – thường • Ký tự đầu tiên của chuỗi có thể là vị trí 0 hoặc 1
(f) Hiểu và sử dụng toán tử số học, liên hệ và logic • Số học, giới hạn ở: – + – – / * ^ (lũy thừa) MOD DIV • Liên hệ, giới hạn ở: = < – <= – > >= <> (không bằng) • Logic, giới hạn ở: AND OR NOT
5 Hiểu và sử dụng câu lệnh lồng nhau • Bao gồm: câu lệnh lựa chọn lồng nhau và lặp lồng nhau • Thí sinh sẽ không cần viết nhiều hơn ba mức lồng nhau
6 (a) Hiểu khái niệm về thủ tục, hàm và tham số (b) Định nghĩa và sử dụng thủ tục và hàm, có hoặc không có tham số (c) Hiểu và sử dụng biến cục bộ và biến toàn cục • Thủ tục và hàm có thể có tối đa ba tham số
7 Hiểu và sử dụng thủ tục thư viện • Bao gồm: – MOD – DIV – ROUND – RANDOM
8 Hiểu cách tạo ra một chương trình dễ bảo trì • Bao gồm việc sử dụng phù hợp: – tên định nghĩa có ý nghĩa – tính năng bình luận do ngôn ngữ lập trình cung cấp – thủ tục và hàm – bình luận về cú pháp liên quan và phù hợp • Sử dụng tên định nghĩa có ý nghĩa cho: – biến – hằng – mảng – thủ tục và hàm

Nguồn: Chương trình Cambridge International

Một biến là nơi lưu trữ có tên chứa một giá trị có thể thay đổi trong khi chương trình chạy. Một hằng số là nơi lưu trữ có tên có giá trị cố định và không thay đổi.

Biến có tên age chứa giá trị 16
Biến (variable) là nơi lưu trữ có tên mà giá trị của nó có thể thay đổi
Các dòng mã nguồn trên màn hình
Biến và hằng số là nơi lưu trữ có tên cho các giá trị, được thiết lập trong mã nguồn của chương trình

Bạn cần khai báo chúng (nói tên và kiểu) trước khi sử dụng:

DECLARE Score : INTEGER
DECLARE Name : STRING
CONSTANT Pi ← 3.142
Hai mô-đun bộ nhớ RAM
Trong khi chương trình chạy, các biến của nó được lưu trong bộ nhớ máy tính (RAM)

Sử dụng hằng số cho một giá trị không bao giờ thay đổi (như Pi), để nó được thiết lập ở một nơi và dễ đọc.

Khám phá

Biến và gán giá trị

Lặp qua từng dòng và quan sát cách mỗi biến nhận giá trị mới.

Từ vựng Luyện tập
English Tiếng Việt
variable/ˈveərɪəbl/ A quantity or named value that can change or take different values.
constant/ˈkɒnstənt/ A named or literal value that does not change during the relevant part of a program.
declare/dɪˈkleə/ declare
integer/ˈɪntɪdʒə/ A whole number that may be positive, negative or zero.
string/strɪŋ/ A sequence of characters treated as a single data value.
8.1

Kiểu dữ liệu

Một kiểu dữ liệu nói lên loại giá trị mà một biến chứa. Bạn cần biết năm kiểu cơ bản.

Kiểu dữ liệu: integer (7), real (3.5), char ('A'), string ("hello"), boolean (true/false)
Các kiểu dữ liệu cơ bản: số nguyên, số thực, ký tự, chuỗi và boolean
Type Holds Example
integer một số nguyên 42, -7
real một số có dấu phẩy thập phân 3.14, -0.5
char một ký tự đơn lẻ 'A', '?'
xâu ký tự một chuỗi các ký tự "Hello"
Boolean một trong hai giá trị TRUE hoặc FALSE
Từ vựng Luyện tập
English Tiếng Việt
data type/ˈdeɪtə taɪp/ A classification of values that determines their representation and permitted operations.
real/rɪəl/ real
char/tʃɑː/ char
Boolean/ˈbuːlɪən/ A logical value that is either true or false.
8.1

Nhập và xuất

Nhập đọc một giá trị từ người dùng. Xuất hiển thị một giá trị trên màn hình.

OUTPUT "What is your name?"
INPUT Name
OUTPUT "Hello ", Name
Từ vựng Luyện tập
English Tiếng Việt
input/ˈɪnpʊt/ A value, signal or resource supplied to a function, program, device or process.
output/ˈaʊtpʊt/ A result produced by a function, calculation, device or program.
8.1

Ba cấu trúc cơ bản

Mọi chương trình đều được xây dựng từ ba cấu trúc điều khiển.

Ba sơ đồ khối nhỏ: tuần tự (các hộp xếp hàng ngang), lựa chọn (một phép kiểm tra chia nhánh hai hướng), và lặp lại (một phép kiểm tra có thân lặp quay lại)
Ba cấu trúc điều khiển: tuần tự chạy các bước theo thứ tự, lựa chọn chọn một nhánh, lặp lại lặp lại một thân lệnh

Tuần tự

Tuần tự có nghĩa là các bước được thực hiện lần lượt, theo thứ tự từ trên xuống dưới.

INPUT Length
INPUT Width
Area ← Length * Width
OUTPUT Area

Lựa chọn

Lựa chọn quyết định sẽ thực hiện những bước nào dựa trên một điều kiện. Sử dụng câu lệnh IF, hoặc câu lệnh CASE khi có nhiều lựa chọn.

IF Score >= 50
  THEN
    OUTPUT "Pass"
  ELSE
    OUTPUT "Fail"
ENDIF
CASE OF Grade
    'A' : OUTPUT "Excellent"
    'B' : OUTPUT "Good"
    OTHERWISE OUTPUT "Keep trying"
ENDCASE

Lặp lại

Lặp lại (vòng lặp) thực thi đi lặp lại các bước. Có ba loại.

Một vòng lặp điều khiển bằng bộ đếm lặp lại một số lượng cố định lần:

FOR I ← 1 TO 5
    OUTPUT "Hello"
NEXT I

Một vòng lặp tiền điều kiện kiểm tra điều kiện trước mỗi lần lặp, nên nó có thể chạy không lần nào:

WHILE Answer <> "stop" DO
    INPUT Answer
ENDWHILE

Một vòng lặp hậu điều kiện kiểm tra điều kiện sau mỗi lần lặp, nên nó luôn chạy ít nhất một lần:

REPEAT
    INPUT Password
UNTIL Password = "secret"
Hai sơ đồ khối vòng lặp: WHILE kiểm tra điều kiện trước thân; REPEAT chạy thân trước và kiểm tra sau
Vòng lặp tiền điều kiện (WHILE) kiểm tra trước thân, nên có thể chạy không lần nào; vòng lặp hậu điều kiện (REPEAT) kiểm tra sau, nên chạy ít nhất một lần
Khám phá

Cách một thang IF … ELSE IF đưa ra quyết định

Các điều kiện được kiểm tra từ trên xuống dưới; ĐẦU TIÊN đáp ứng điều kiện sẽ chạy và phần còn lại bị bỏ qua. Kéo điểm số và xem nhánh nào sáng lên.

Khám phá

Sự lựa chọn

Thay đổi giá trị và xem nhánh nào được thực thi — minh họa cho câu lệnh chọn lựa.

Từ vựng Luyện tập
English Tiếng Việt
loop/luːp/ A structure that repeats a sequence of instructions.
count-controlled loop/kaʊnt kənˈtrəʊld luːp/ A loop that repeats according to a counter, usually for a specified number of iterations.
pre-condition loop/priː kənˈdɪʃn luːp/ A loop that tests its continuation condition before executing its body, so the body may run zero times.
post-condition loop/pəʊst kənˈdɪʃn luːp/ A loop that tests its continuation or termination condition after executing its body, so it runs at least once.
length/leŋθ/ The distance between two points.
8.1

Tổng hợp và đếm

  • tổng hợp — liên tục cộng các giá trị vào tổng đang tích lũy: Total ← Total + Value.
  • đếm — cộng 1 vào bộ đếm mỗi lần: Count ← Count + 1.
count = count + 1 đếm tăng theo 1; total = total + value cộng vào tổng tích lũy
Bộ đếm tăng theo bước 1; tổng tích lũy thành tổng cộng dồn
Bảng truy vết theo dõi vòng lặp với các giá trị 4, 7 và 5: total đi qua 0, 4, 11, 16 trong khi count đi qua 0, 1, 2, 3
Bảng truy vết theo dõi từng bước của vòng lặp tổng hợp và đếm
Total ← 0
FOR I ← 1 TO 10
    INPUT Mark
    Total ← Total + Mark
NEXT I
OUTPUT Total

Ví dụ đã giải. Một chương trình phải đọc 5 điểm số, sau đó xuất tổng và trung bình.

Total ← 0
FOR I ← 1 TO 5
    INPUT Mark
    Total ← Total + Mark
NEXT I
Average ← Total / 5
OUTPUT Total, Average

Hai dòng mang điểm số. Total ← 0 phải nằm trước vòng lặp: đặt nó bên trong thì tổng sẽ được khởi tạo lại ở mỗi lần chạy, khiến chương trình chỉ xuất điểm số cuối cùng. Và Average ← Total / 5 phải nằm sau vòng lặp, vì tổng chưa hoàn chỉnh cho đến khi tất cả điểm số đã được cộng. Khởi tạo trước, tính toán sau — thứ tự này chính là điều mà đề bài thực sự kiểm tra.

Từ vựng Luyện tập
English Tiếng Việt
totalling/ˈtəʊtəlɪŋ/ totalling
counting/ˈkaʊntɪŋ/ counting
remainder/rɪˈmeɪndə/ The amount left after division into equal whole groups, or the residual expression after algebraic division.
nested statement/ˈnestɪd ˈsteɪtmənt/ nested statement
8.1

Toán tử

Toán tử số học

Toán tử Ý nghĩa
+ - * / cộng, trừ, nhân, chia
^ mũ hóa (lũy thừa)
MOD phần dư sau khi chia
DIV phần nguyên của một phép chia

Ví dụ, 17 MOD 5 là 2, và 17 DIV 5 là 3.

Toán tử quan hệ

Chúng so sánh hai giá trị và trả về kết quả Boolean: =, <, <=, >, >=, và <> (không bằng).

Toán tử logic

Chúng ghép nối các điều kiện: AND (cả hai phải đúng), OR (ít nhất một phải đúng), NOT (đảo ngược đúng/sai).

Ba họ toán tử: toán tử số học như cộng và nhân trả về số, toán tử quan hệ như nhỏ hơn so sánh và trả về đúng hoặc sai, toán tử logic AND OR NOT ghép nối các điều kiện
Ba họ toán tử: số học, quan hệ và logic
IF Age >= 13 AND Age <= 19
  THEN
    OUTPUT "Teenager"
ENDIF
8.1

Xử lý xâu ký tự

Một xâu ký tự được tạo bởi các ký tự. Các thao tác hữu ích:

  • chiều dài — số lượng ký tự trong xâu;
  • xâu con — một phần nhỏ hơn lấy ra từ xâu;
  • viết hoa — chuyển chữ cái thành chữ in hoa;
  • viết thường — chuyển chữ cái thành chữ in thường.
name ← "Computer"
OUTPUT LENGTH(name)          // 8
OUTPUT SUBSTRING(name, 1, 4) // "Comp"
OUTPUT UCASE(name)           // "COMPUTER"
OUTPUT LCASE(name)           // "computer"

(Ký tự đầu tiên có thể được đếm là vị trí 0 hoặc vị trí 1, tùy thuộc vào ngôn ngữ.)

Khám phá

SUBSTRING: lấy một phần của chuỗi

Ký tự đầu tiên ở vị trí 1. SUBSTRING(Word, Start, Length) lấy Length ký tự bắt đầu từ Start — kéo hai tay cầm và đọc cú gọi tạo ra.

Từ vựng Luyện tập
English Tiếng Việt
substring/ˈsʌbstrɪŋ/ A smaller part taken from the string.
upper case/ˈʌpə keɪs/ Change letters to capitals.
lower case/ˈləʊə keɪs/ Change letters to small letters.
8.1

Câu lệnh lồng nhau

Một câu lệnh lồng nhau là một cấu trúc điều khiển được đặt bên trong một cấu trúc khác. Bạn có thể lồng nhau cả lựa chọn và lặp lại.

FOR I ← 1 TO 3
    IF MOD(I, 2) = 0
      THEN
        OUTPUT I, " is even"
      ELSE
        OUTPUT I, " is odd"
    ENDIF
NEXT I

Bạn sẽ không cần viết quá ba cấp độ lồng nhau.

8.1

Thủ tục và hàm

Để tránh lặp lại mã nguồn, bạn có thể chia chương trình thành các khối có tên.

  • Một thủ tục là một khối mã có tên thực hiện một nhiệm vụ. Bạn gọi nó bằng CALL.
  • Một hàm giống như thủ tục, nhưng nó trả về một giá trị về nơi nó được gọi.

Một tham số là một giá trị được truyền vào thủ tục hoặc hàm (tối đa ba tham số).

PROCEDURE Greet(PersonName : STRING)
    OUTPUT "Hello ", PersonName
ENDPROCEDURE

CALL Greet("Sam")
FUNCTION Square(N : INTEGER) RETURNS INTEGER
    RETURN N * N
ENDFUNCTION

Answer ← Square(5)   // answer is 25

Biến cục bộ và biến toàn cục

  • Một biến cục bộ được khai báo bên trong thủ tục hoặc hàm. Nó chỉ có thể được sử dụng tại đó.
  • Một biến toàn cục được khai báo trong chương trình chính. Nó có thể được sử dụng ở mọi nơi.

Biến cục bộ an toàn hơn, vì chúng không thể bị thay đổi nhầm lẫn từ một phần khác của chương trình.

Từ vựng Luyện tập
English Tiếng Việt
procedure/prəˈsiːdʒə/ A named sequence of instructions that performs a task when called.
function/ˈfʌŋkʃn/ A mapping that assigns exactly one output to each allowed input.
parameter/pəˈræmɪtə/ A value that specifies a particular member of a family of functions, models or systems.
local variable/ˈləʊkl ˈveərɪəbl/ local variable
global variable/ˈɡləʊbl ˈveərɪəbl/ global variable
library routine/ˈlaɪbrəri ruːˈtiːn/ A ready-made piece of code you can use.
maintainable/meɪnˈteɪnəbl/ maintainable
meaningful identifiers/ˈmiːnɪŋfl aɪˈdentɪfaɪəz/ meaningful identifiers
comments/ˈkɒments/ comments
8.1

Hàm thư viện

Một hàm thư viện là một đoạn mã có sẵn mà bạn có thể sử dụng. Bạn cần biết những hàm sau:

Hàm Tác dụng
MOD trả về phần dư của một phép chia
DIV trả về phần nguyên của một phép chia
ROUND làm tròn một số thực đến một số chữ số thập phân
RANDOM trả về một số ngẫu nhiên
8.1

Viết chương trình dễ bảo trì

Một chương trình dễ bảo trì là chương trình dễ đọc và dễ sửa đổi bởi người khác sau này. Để làm được điều đó:

  • sử dụng tên gọi có ý nghĩa — tên rõ ràng cho biến, hằng, mảng, thủ tục và hàm (totalScore, không phải x);
  • thêm ghi chú để giải thích các phần của mã nguồn làm gì;
  • sử dụng thủ tục và hàm để chia công việc thành các khối nhỏ.
8.2

Mảng

Chương trình
Thí sinh cần có thể: Ghi chú và hướng dẫn
1 Khai báo và sử dụng mảng một chiều (1D) và mảng hai chiều (2D)
2 Hiểu cách sử dụng mảng • Bao gồm việc sử dụng biến làm chỉ mục trong mảng
3 Ghi giá trị vào, và đọc giá trị từ, một mảng bằng cách lặp lại • Chỉ mục đầu tiên có thể là 0 hoặc 1 • Bao gồm cả lặp lại lồng nhau

Nguồn: Chương trình Cambridge International

Một mảng là một biến duy nhất lưu trữ nhiều giá trị cùng loại, được truy cập thông qua một chỉ mục (một số vị trí).

Mảng một chiều

Một mảng một chiều (1D) giống như một danh sách đơn.

DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
OUTPUT Scores[1]
Năm hộp xếp thành hàng được dán nhãn từ chỉ mục 1 đến 5, chứa các giá trị, với giá trị tại chỉ mục 2 được làm nổi bật là 75
Mảng 1 chiều lưu nhiều giá trị trong một biến; mỗi giá trị được truy cập bằng chỉ mục của nó

Bạn có thể sử dụng vòng lặp để điền hoặc đọc mảng:

FOR I ← 1 TO 5
    INPUT Scores[I]
NEXT I

Mảng hai chiều

Một mảng hai chiều (2D) giống như một bảng có các hàng và cột. Nó sử dụng hai chỉ mục.

DECLARE Grid : ARRAY[1:3, 1:3] OF INTEGER
Grid[1, 1] ← 5
Grid[2, 3] ← 8
Lưới 3x3 có đánh số hàng và cột; ô ở hàng 2, cột 3 được làm nổi bật và được dán nhãn là grid row 2 column 3
Mảng 2D là một bảng; mỗi giá trị được tìm thấy bởi hai chỉ mục, [hàng, cột]

Bạn đọc mảng 2D bằng cách dùng vòng lặp lồng nhau (lặp lồng).

Khám phá

Mảng

Chọn một hàng và một cột để đọc một ô. Mảng Cambridge đếm từ 1, và phần tử 2-D được viết bằng MỘT cặp ngoặc vuông — Grid[2, 3].

Từ vựng Luyện tập
English Tiếng Việt
array/əˈreɪ/ An indexed collection of elements arranged in one or more dimensions.
index/ˈɪndeks/ A position marker or lookup structure used to locate data within a collection or database.
one-dimensional (1D) array/wʌn daɪˈmenʃənl əˈreɪ/ one-dimensional (1D) array
two-dimensional (2D) array/tuː daɪˈmenʃənl əˈreɪ/ two-dimensional (2D) array
8.3

Xử lý tệp tin

Chương trình
Thí sinh cần có thể: Ghi chú và hướng dẫn
1 Hiểu mục đích của việc lưu trữ dữ liệu trong một tệp tin để chương trình sử dụng
2 Mở, đóng và sử dụng tệp tin để đọc và ghi • Bao gồm: – đọc và ghi từng mục dữ liệu – đọc và ghi một dòng văn bản

Nguồn: Chương trình Cambridge International

Một chương trình có thể lưu dữ liệu vào một tệp tin để dữ liệu được giữ lại sau khi chương trình dừng. Bạn phải mở tệp tin, sử dụng nó, rồi đóng nó lại.

OPENFILE "data.txt" FOR WRITE
WRITEFILE "data.txt", "Hello"
CLOSEFILE "data.txt"

OPENFILE "data.txt" FOR READ
READFILE "data.txt", Line
CLOSEFILE "data.txt"

Bạn có thể đọc và ghi từng mục dữ liệu riêng lẻ hoặc cả một dòng văn bản. Luôn đóng tệp tin khi đã hoàn thành việc sử dụng.

Từ vựng Luyện tập
English Tiếng Việt
file/faɪl/ file
8.3

Mẹo làm bài thi

  • Một biến có thể thay đổi khi chương trình đang chạy; một hằng thì cố định. Hãy học năm loại dữ liệu: nguyên (integer), thực (real), ký tự (char), chuỗi (string), Boolean.
  • Mọi chương trình đều được xây dựng từ ba cấu trúc: trình tự (sequence), lựa chọn (IF / CASE), và lặp (loops).
  • Vòng lặp WHILE kiểm tra điều kiện trước thân lệnh, nên nó có thể không chạy lần nào; vòng lặp REPEAT … UNTIL kiểm tra sau, nên nó luôn chạy ít nhất một lần.
  • MOD trả về phần dư và DIV trả về phần nguyên của phép chia: 17 MOD 5 là 2, 17 DIV 5 là 3.
  • Một hàm trả về một giá trị; một thủ tục thì không. Một biến địa phương chỉ hoạt động bên trong khối code của nó; một biến toàn cục hoạt động ở bất cứ đâu.
Từ vựng Luyện tập
English Tiếng Việt
sequence/ˈsiːkwəns/ The steps run one after another, in order, from top to bottom.
selection/sɪˈlekʃn/ Choosing which branch of instructions to execute according to a condition.
iteration/ˌɪtəˈreɪʃn/ Repeating a sequence of instructions or calculations.

Bài học tương tác về chủ đề này

Làm theo từng bước, kèm theo bài tập kiểm tra ngay lập tức.

Đề thi cũ

Nhiều chủ đề hơn trong Khoa học máy tính IGCSE

Đăng nhập hoặc tạo tài khoản

IGCSE, A-Level & AP