| Os candidatos devem ser capazes de: | Notas e orientações |
|---|---|
| 1 Declarar e usar variáveis e constantes | |
| 2 Compreender e usar tipos de dados básicos | • Incluindo: – inteiro – real – char – string – Booleano |
| 3 Compreender e usar entrada e saída | |
| 4 (a) Compreender e usar o conceito de sequência | |
| (b) Compreender e usar o conceito de seleção | • Incluindo: – instruções IF – instruções CASE |
| (c) Compreender e usar o conceito de iteração | • Incluindo: – laços controlados por contagem – laços de pré-condição – laços de pós-condição |
| (d) Compreender e usar os conceitos de somatório e contagem | |
| (e) Compreender e usar o conceito de manipulação de strings | • Incluindo: – comprimento – substring – upper – lower • O primeiro caractere da string pode ser posição zero ou um |
| (f) Compreender e utilizar operadores aritméticos, relacionais e lógicos | • Aritméticos, limitados a: – + – – – / – * – ^ (elevado à potência) – MOD – DIV • Relacionais, limitados a: – = – < – <= – > – >= – <> (diferente de) • Lógicos, limitados a: – AND – OR – NOT |
| 5 Compreender e usar instruções aninhadas | • Incluindo seleção e iteração aninhadas • Os candidatos não serão exigidos a escrever mais de três níveis de instruções aninhadas |
| 6 (a) Compreender o significado de procedimentos, funções e parâmetros (b) Definir e usar procedimentos e funções, com ou sem parâmetros (c) Compreender e usar variáveis locais e globais | • Procedimentos e funções podem ter até três parâmetros |
| 7 Compreender e usar rotinas de biblioteca | • Incluindo: – MOD – DIV – ROUND – RANDOM |
| 8 Compreender como criar um programa mantensível | • Incluindo uso adequado de: – identificadores significativos – recurso de comentários fornecido pela linguagem de programação – procedimentos e funções – comentários relevantes e apropriados da sintaxe • Use identificadores significativos para: – variáveis – constantes – arrays – procedimentos e funções |
Programação
Ciência da Computação do IGCSE · Tópico 8
13:16
Programação
Aqui está um programa curto. Ele lê cinco notas de teste e imprime o total. As cinco notas são oito, nove, sete, seis e dez, então o total deve ser quarenta. Observe…
Narração em inglês · Legendas em inglês + 中文 gravadas
8.1
Variables and constants
Programa
Fonte: Programa Cambridge International
Uma variable 变量 é um armazém nomeado que segura um valor que pode mudar enquanto o programa executa. Uma constante 常量 é um armazém nomeado cujo valor é fixo e não muda.


Você deve declare 声明 eles (dizer seu nome e tipo) antes do uso:
DECLARE Score : INTEGER
DECLARE Name : STRING
CONSTANT Pi ← 3.142

Use uma constante para um valor que nunca muda (como Pi), para que seja definido em um único lugar e fácil de ler.
Variáveis e atribuição
Passe pelas linhas e observe cada variável assumir o seu novo valor.
| Inglês | Chinês | Pinyin |
|---|---|---|
| variable/ˈveərɪəbl/ | 变量 | biàn liàng |
| constant/ˈkɒnstənt/ | 常量 | cháng liàng |
| declare/dɪˈkleə/ | 声明 | shēng míng |
8.1
Data types
Um data type 数据类型 diz que tipo de valor uma variável segura. Você deve conhecer cinco tipos básicos.

| Tipo | Holds | Exemplo |
|---|---|---|
| integer 整数 | um número inteiro | 42, -7 |
| real 实数 | um número com ponto decimal | 3.14, -0.5 |
| char 字符 | um único caractere | 'A', '?' |
| string 字符串 | uma sequência de caracteres | "Hello" |
| Boolean 布尔值 | um de dois valores | TRUE ou FALSE |
| Inglês | Chinês | Pinyin |
|---|---|---|
| data type/ˈdeɪtə taɪp/ | 数据类型 | shù jù lèi xíng |
| integer/ˈɪntɪdʒə/ | 整数 | zhěng shù |
| real/rɪəl/ | 实数 | shí shù |
| char/tʃɑː/ | 字符 | zì fú |
| string/strɪŋ/ | 字符串 | zì fú chuàn |
| Boolean/ˈbuːlɪən/ | 布尔值 | bù ěr zhí |
8.1
Input and output
Entrada 输入 lê um valor do usuário. Saída 输出 mostra um valor na tela.
OUTPUT "What is your name?"
INPUT Name
OUTPUT "Hello ", Name
| Inglês | Chinês | Pinyin |
|---|---|---|
| input/ˈɪnpʊt/ | 输入 | shū rù |
| output/ˈaʊtpʊt/ | 输出 | shū chū |
8.1
The three basic structures
Todo programa é construído a partir de três estruturas de controle.

Sequência
Sequência 顺序 significa que as etapas são executadas uma após a outra, em ordem, de cima para baixo.
INPUT Length
INPUT Width
Area ← Length * Width
OUTPUT Area
Seleção
Seleção 选择 escolhe quais etapas executar, baseado em uma condição. Use uma instrução IF, ou uma instrução CASE quando houver muitas opções.
IF Score >= 50
THEN
OUTPUT "Pass"
ELSE
OUTPUT "Fail"
ENDIF
CASE OF Grade
'A' : OUTPUT "Excellent"
'B' : OUTPUT "Good"
OTHERWISE OUTPUT "Keep trying"
ENDCASE
Iteração
Iteração 迭代 (um loop 循环) repete etapas. Existem três tipos.
Um count-controlled loop 计数循环 repete um número fixo de vezes:
FOR I ← 1 TO 5
OUTPUT "Hello"
NEXT I
Um pre-condition loop 前测循环 verifica a condição antes de cada repetição, então pode executar zero vezes:
WHILE Answer <> "stop" DO
INPUT Answer
ENDWHILE
Um post-condition loop 后测循环 verifica a condição depois de cada repetição, então sempre executa pelo menos uma vez:
REPEAT
INPUT Password
UNTIL Password = "secret"

Como uma escada IF … ELSE IF decide
As condições são testadas de cima para baixo; a PRIMEIRA que for verdadeira executa e as outras são puladas. Deslize a pontuação e observe qual ramificação acende.
Seleção
Altere o valor e observe qual ramo é executado — seleção em ação.
| Inglês | Chinês | Pinyin |
|---|---|---|
| sequence/ˈsiːkwəns/ | 顺序 | shùn xù |
| selection/sɪˈlekʃn/ | 选择 | xuǎn zé |
| iteration/ˌɪtəˈreɪʃn/ | 迭代 | dié dài |
| loop/luːp/ | 循环 | xún huán |
| count-controlled loop/kaʊnt kənˈtrəʊld luːp/ | 计数循环 | jì shù xún huán |
| pre-condition loop/priː kənˈdɪʃn luːp/ | 前测循环 | qián cè xún huán |
| post-condition loop/pəʊst kənˈdɪʃn luːp/ | 后测循环 | hòu cè xún huán |
8.1
Somatório e contagem
- totalling 求和 — continuar somando valores a um total acumulado:
Total ← Total + Value. - counting 计数 — adicionar 1 a um contador cada vez:
Count ← Count + 1.

*A trace table segue um loop de totalling e counting passo a passo
Total ← 0
FOR I ← 1 TO 10
INPUT Mark
Total ← Total + Mark
NEXT I
OUTPUT Total
Worked example. Um programa deve ler 5 notas, depois exibir o total e a média.
Total ← 0
FOR I ← 1 TO 5
INPUT Mark
Total ← Total + Mark
NEXT I
Average ← Total / 5
OUTPUT Total, Average
Duas linhas transportam as notas. Total ← 0 deve ficar antes do loop: coloque-o dentro e o total será reiniciado em cada passagem, então o programa exibirá apenas a última nota. E Average ← Total / 5 deve ficar depois do loop, porque o total não está completo até que todas as notas tenham sido somadas. Inicialize antes, calcule depois — essa ordem é o que a questão realmente testa.
| Inglês | Chinês | Pinyin |
|---|---|---|
| totalling/ˈtəʊtəlɪŋ/ | 求和 | qiú hé |
| counting/ˈkaʊntɪŋ/ | 计数 | jì shù |
8.1
Operators
Operadores aritméticos
| Operador | Significado |
|---|---|
+ - * / |
add, subtract, multiply, divide |
^ |
raised to the power of |
MOD |
the remainder 余数 after division |
DIV |
the whole-number part of a division |
Por exemplo, 17 MOD 5 é 2, e 17 DIV 5 é 3.
Relational operators
Estes comparam dois valores e dão um resultado Booleano: =, <, <=, >, >=, e <> (not equal to).
Logical operators
Estes unem condições: AND (ambas devem ser verdadeiras), OR (pelo menos uma deve ser verdadeira), NOT (reverte verdadeiro/falso).

IF Age >= 13 AND Age <= 19
THEN
OUTPUT "Teenager"
ENDIF
| Inglês | Chinês | Pinyin |
|---|---|---|
| remainder/rɪˈmeɪndə/ | 余数 | yú shù |
8.1
Manipulação de strings
Uma string é feita de caracteres. Operações úteis:
- comprimento 长度 — o número de caracteres na string;
- substring 子串 — uma parte menor retirada da string;
- upper case 大写 — alterar letras para maiúsculas;
- lower case 小写 — alterar letras para minúsculas.
name ← "Computer"
OUTPUT LENGTH(name) // 8
OUTPUT SUBSTRING(name, 1, 4) // "Comp"
OUTPUT UCASE(name) // "COMPUTER"
OUTPUT LCASE(name) // "computer"
(O primeiro caractere pode ser contado como posição 0 ou posição 1, dependendo da linguagem.)
SUBSTRING: pegar parte de uma string
O primeiro caractere está na posição 1. SUBSTRING(Palavra, Início, Comprimento) pega Caracteres Length começando em Início — arraste as duas alças e leia a chamada que ela constrói.
| Inglês | Chinês | Pinyin |
|---|---|---|
| substring/ˈsʌbstrɪŋ/ | 子串 | zi chuàn |
| upper case/ˈʌpə keɪs/ | 大写 | dà xiě |
| lower case/ˈləʊə keɪs/ | 小写 | xiǎo xiě |
| length/leŋθ/ | 长度 | cháng dù |
8.1
Nested statements
Uma nested statement 嵌套语句 é uma estrutura de controle colocada dentro de outra. Você pode aninhar selection e iteration.
FOR I ← 1 TO 3
IF MOD(I, 2) = 0
THEN
OUTPUT I, " is even"
ELSE
OUTPUT I, " is odd"
ENDIF
NEXT I
Você não precisará escrever mais de três níveis de aninhamento.
| Inglês | Chinês | Pinyin |
|---|---|---|
| nested statement/ˈnestɪd ˈsteɪtmənt/ | 嵌套语句 | qiàn tào yǔ jù |
8.1
Procedimentos e funções
Para evitar repetir código, você pode dividir um programa em blocos nomeados.
- Uma procedure 过程 (rotina) é um bloco de código nomeado que executa uma tarefa. Você a executa com
CALL. - Uma função 函数 (função) é como uma procedure, mas ela retorna um valor para o local onde foi chamada.
Um parameter 参数 (parâmetro) é um valor passado para uma procedure ou função (até três parâmetros).
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
Variáveis locais e globais
- Uma local variable 局部变量 (variável local) é declarada dentro de uma procedure ou função. Ela só pode ser usada ali.
- Uma global variable 全局变量 (variável global) é declarada no programa principal. Ela pode ser usada em qualquer lugar.
Variáveis locais são mais seguras, pois não podem ser alteradas por engano a partir de outra parte do programa.
| Inglês | Chinês | Pinyin |
|---|---|---|
| procedure/prəˈsiːdʒə/ | 过程 | guò chéng |
| function/ˈfʌŋkʃn/ | 函数 | hán shù |
| parameter/pəˈræmɪtə/ | 参数 | cān shù |
| local variable/ˈləʊkl ˈveərɪəbl/ | 局部变量 | jú bù biàn liàng |
| global variable/ˈɡləʊbl ˈveərɪəbl/ | 全局变量 | quán jú biàn liàng |
8.1
Rotinas da biblioteca
Uma library routine 库程序 (rotina de biblioteca) é um trecho de código pronto para uso. Você deve conhecer estes:
| Routine | O que faz |
|---|---|
MOD |
dá o resto de uma divisão |
DIV |
dá a parte inteira de uma divisão |
ROUND |
arredonda um número real para um número de casas decimais |
RANDOM |
dá um número aleatório |
| Inglês | Chinês | Pinyin |
|---|---|---|
| library routine/ˈlaɪbrəri ruːˈtiːn/ | 库程序 | kù chéng xù |
8.1
Escrevendo um programa mantensável
Um programa maintainable 可维护 (mantensável) é fácil para outras pessoas lerem e alterarem depois. Para criar um:
- usar meaningful identifiers 有意义的标识符 — nomes claros para variáveis, constantes, arrays, procedures e functions (
totalScore, nãox); - adicione comments 注释 (comentários) para explicar o que as partes do código fazem;
- use procedures e functions para dividir o trabalho em pequenos blocos.
| Inglês | Chinês | Pinyin |
|---|---|---|
| maintainable/meɪnˈteɪnəbl/ | 可维护的 | kě wéi hù de |
| meaningful identifiers/ˈmiːnɪŋfl aɪˈdentɪfaɪəz/ | 有意义的标识符 | yǒu yì yì de biāo shí fú |
| comments/ˈkɒments/ | 注释 | zhù shì |
8.2
Matrizes
Programa
| Os candidatos devem ser capazes de: | Notas e orientações |
|---|---|
| 1 Declarar e usar arrays unidimensionais (1D) e bidimensionais (2D) | |
| 2 Compreender o uso de arrays | • Incluindo o uso de variáveis como índices em arrays |
| 3 Escrever valores em e ler valores de um array usando iteração | • O primeiro índice pode ser zero ou um • Incluindo iteração aninhada |
Fonte: Programa Cambridge International
Um array 数组 (array) é uma única variável que armazena muitos valores do mesmo tipo, encontrados por um index 索引 (índice, um número de posição).
Arrays unidimensionais
Um one-dimensional (1D) array 一维数组 (array unidimensional) é como uma lista simples.
DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
OUTPUT Scores[1]

Você pode usar um loop para preencher ou ler um array:
FOR I ← 1 TO 5
INPUT Scores[I]
NEXT I
Arrays bidimensionais
Um two-dimensional (2D) array 二维数组 (array bidimensional) é como uma tabela com linhas e colunas. Ele usa dois índices.
DECLARE Grid : ARRAY[1:3, 1:3] OF INTEGER
Grid[1, 1] ← 5
Grid[2, 3] ← 8

Você lê um array 2D com um loop dentro de outro loop (iteração aninhada).
Matrizes
Escolha uma linha e uma coluna para ler uma célula. Os arrays da Cambridge contam a partir de 1, e um elemento 2D é escrito com UM par de parênteses — Grid[2, 3].
| Inglês | Chinês | Pinyin |
|---|---|---|
| array/əˈreɪ/ | 数组 | shù zǔ |
| index/ˈɪndeks/ | 索引 | suǒ yǐn |
| one-dimensional (1D) array/wʌn daɪˈmenʃənl əˈreɪ/ | 一维数组 | yī wéi shù zǔ |
| two-dimensional (2D) array/tuː daɪˈmenʃənl əˈreɪ/ | 二维数组 | èr wéi shù zǔ |
8.3
Manipulação de arquivos
Programa
| Os candidatos devem ser capazes de: | Notas e orientações |
|---|---|
| 1 Compreender o propósito de armazenar dados em um arquivo para uso por um programa | |
| 2 Abrir, fechar e usar um arquivo para leitura e escrita | • Incluindo: – ler e escrever itens únicos de dados – ler e escrever uma linha de texto |
Fonte: Programa Cambridge International
Um programa pode armazenar dados em um arquivo 文件 (arquivo) para que ele seja mantido após o programa parar. Você deve abrir o arquivo, usá-lo e depois fechá-lo.
OPENFILE "data.txt" FOR WRITE
WRITEFILE "data.txt", "Hello"
CLOSEFILE "data.txt"
OPENFILE "data.txt" FOR READ
READFILE "data.txt", Line
CLOSEFILE "data.txt"
Você pode ler e escrever itens individuais de dados ou uma linha inteira de texto. Sempre feche um arquivo quando terminar de usá-lo.
| Inglês | Chinês | Pinyin |
|---|---|---|
| file/faɪl/ | 文件 | wén jiàn |
8.3
Dicas de prova
- Uma variable (variável) pode mudar enquanto o programa roda; uma constante (constante) é fixa. Aprenda os cinco tipos de dados: integer, real, char, string, Boolean.
- Todo programa é construído a partir de três estruturas: sequence (sequência), selection (seleção - IF / CASE) e iteration (iteração - loops).
- Um loop WHILE testa antes do corpo, então pode rodar zero vezes; um loop REPEAT … UNTIL testa depois, então sempre roda pelo menos uma vez.
MODdá o resto eDIVa parte inteira de uma divisão:17 MOD 5é 2,17 DIV 5é 3.- Uma função retorna um valor; uma procedure não. Uma variável local funciona apenas dentro do seu bloco; uma global funciona em qualquer lugar.
Aulas interativas sobre este tópico
Passe por ele passo a passo, com exercícios de verificação instantânea.