| Los candidatos deben ser capaces de: | Notas y orientaciones |
|---|---|
| 1 Declarar y utilizar variables y constantes | |
| 2 Comprender y utilizar los tipos de datos básicos | • Incluye: – entero – real – carácter – cadena – Booleano |
| 3 Comprender y utilizar la entrada y salida de datos | |
| 4 (a) Comprender y utilizar el concepto de secuencia | |
| (b) Comprender y utilizar el concepto de selección | • Incluye: – sentencias IF – sentencias CASE |
| (c) Comprender y utilizar el concepto de iteración | • Incluye: – bucles controlados por contador – bucles con precondición – bucles con postcondición |
| (d) Comprender y utilizar los conceptos de acumulación y conteo | |
| (e) Comprender y utilizar el manejo de cadenas | • Incluye: – longitud – subcadena – mayúsculas – minúsculas • El primer carácter de la cadena puede estar en la posición cero o uno |
| (f) Comprender y utilizar operadores aritméticos, relacionales y lógicos | • Aritméticos, limitados a: – + – – – / – * – ^ (elevado a una potencia) – MOD – DIV • Relacionales, limitados a: – = – < – <= – > – >= – <> (distinto de) • Lógicos, limitados a: – AND – OR – NOT |
| 5 Comprender y utilizar sentencias anidadas | • Incluye selección e iteración anidadas • No se requerirá que los candidatos escriban más de tres niveles de sentencias anidadas |
| 6 (a) Comprender qué significan procedimientos, funciones y parámetros (b) Definir y utilizar procedimientos y funciones, con o sin parámetros (c) Comprender y utilizar variables locales y globales | • Los procedimientos y funciones pueden tener hasta tres parámetros |
| 7 Comprender y utilizar rutinas de biblioteca | • Incluye: – MOD – DIV – ROUND – RANDOM |
| 8 Comprender cómo crear un programa mantenible | • Incluye el uso adecuado de: – identificadores significativos – la función de comentarios proporcionada por el lenguaje de programación – procedimientos y funciones – comentarios relevantes y apropiados para la sintaxis • Utilizar identificadores significativos para: – variables – constantes – arreglos – procedimientos y funciones |
Programación
IGCSE Ciencias de la Computación · Tema 8
13:16
Programación
Aquí hay un programa corto. Lee cinco notas de prueba e imprime el total. Las cinco notas son ocho, nueve, siete, seis y diez, así que el total debería ser cuarenta. Mira…
Narración en inglés · Subtítulos en inglés + 中文 quemados en pantalla
8.1
Variables y constantes
Syllabus
Fuente: Plan de estudios Cambridge International
Una variable 变量 es un almacén con nombre que contiene un valor que puede cambiar mientras se ejecuta el programa. Una constante 常量 es un almacén con nombre cuyo valor está fijado y no cambia.


Debes declararlas 声明 antes de usarlas (decir su nombre y tipo):
DECLARE Score : INTEGER
DECLARE Name : STRING
CONSTANT Pi ← 3.142

Utiliza una constante para un valor que nunca cambia (como Pi), para que se defina en un solo lugar y sea fácil de leer.
Variables y asignación
Paso a paso por las líneas y observe cómo cada variable toma su nuevo valor.
| Inglés | Chino | Pinyin |
|---|---|---|
| variable/ˈveərɪəbl/ | 变量 | biàn liàng |
| constant/ˈkɒnstənt/ | 常量 | cháng liàng |
| declare/dɪˈkleə/ | 声明 | shēng míng |
| integer/ˈɪntɪdʒə/ | 整数 | zhěng shù |
8.1
Tipos de datos
Un tipo de dato 数据类型 indica qué tipo de valor contiene una variable. Debes conocer cinco tipos básicos.

| Tipo | Contiene | Ejemplo |
|---|---|---|
| entero 整数 | un número entero | 42, -7 |
| real 实数 | un número con punto decimal | 3.14, -0.5 |
| char 字符 | un único carácter | 'A', '?' |
| string 字符串 | una secuencia de caracteres | "Hello" |
| Boolean 布尔值 | uno de dos valores | TRUE o FALSE |
| Inglés | Chino | Pinyin |
|---|---|---|
| data type/ˈdeɪtə taɪp/ | 数据类型 | shù jù lèi xíng |
| real/rɪəl/ | 实数 | shí shù |
| char/tʃɑː/ | 字符 | zì fú |
| string/strɪŋ/ | 字符串 | zì fú chuàn |
| Boolean/ˈbuːlɪən/ | 布尔值 | bù ěr zhí |
8.1
Entrada y salida
La entrada 输入 lee un valor del usuario. La salida 输出 muestra un valor en la pantalla.
OUTPUT "What is your name?"
INPUT Name
OUTPUT "Hello ", Name
| Inglés | Chino | Pinyin |
|---|---|---|
| input/ˈɪnpʊt/ | 输入 | shū rù |
| output/ˈaʊtpʊt/ | 输出 | shū chū |
| sequence/ˈsiːkwəns/ | 顺序 | shùn xù |
| selection/sɪˈlekʃn/ | 选择 | xuǎn zé |
| iteration/ˌɪtəˈreɪʃn/ | 迭代 | dié dài |
8.1
Las tres estructuras básicas
Todo programa se construye a partir de tres estructuras de control.

Secuencia
La secuencia 顺序 significa que los pasos se ejecutan uno tras otro, en orden, de arriba hacia abajo.
INPUT Length
INPUT Width
Area ← Length * Width
OUTPUT Area
Selección
La selección 选择 decide qué pasos ejecutar, basándose en una condición. Usa una instrucción IF, o una instrucción CASE cuando hay muchas opciones.
IF Score >= 50
THEN
OUTPUT "Pass"
ELSE
OUTPUT "Fail"
ENDIF
CASE OF Grade
'A' : OUTPUT "Excellent"
'B' : OUTPUT "Good"
OTHERWISE OUTPUT "Keep trying"
ENDCASE
Iteración
La iteración 迭代 (un bucle 循环) repite pasos. Hay tres tipos.
Un bucle controlado por contador 计数循环 repite un número fijo de veces:
FOR I ← 1 TO 5
OUTPUT "Hello"
NEXT I
Un bucle de precondición 前测循环 verifica la condición antes de cada repetición, por lo que puede ejecutarse cero veces:
WHILE Answer <> "stop" DO
INPUT Answer
ENDWHILE
Un bucle de poscondición 后测循环 verifica la condición después de cada repetición, por lo que siempre se ejecuta al menos una vez:
REPEAT
INPUT Password
UNTIL Password = "secret"

Cómo decide una escalera IF … ELSE IF
Las condiciones se prueban de arriba hacia abajo; la PRIMERA que es verdadera se ejecuta y las demás se omiten. Desliza la puntuación y observa qué rama se ilumina.
Selección
Cambie el valor y observe qué rama se ejecuta — selección en acción.
| Inglés | Chino | Pinyin |
|---|---|---|
| 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 |
| length/leŋθ/ | 长度 | cháng dù |
8.1
Sumatoria y conteo
- Sumatoria 求和 — seguir sumando valores a un total acumulado:
Total ← Total + Value. - Conteo 计数 — sumar 1 a un contador cada vez:
Count ← Count + 1.


Total ← 0
FOR I ← 1 TO 10
INPUT Mark
Total ← Total + Mark
NEXT I
OUTPUT Total
Ejemplo resuelto. Un programa debe leer 5 notas, luego mostrar el total y el promedio.
Total ← 0
FOR I ← 1 TO 5
INPUT Mark
Total ← Total + Mark
NEXT I
Average ← Total / 5
OUTPUT Total, Average
Dos líneas manejan las notas. Total ← 0 debe estar antes del bucle: si se coloca dentro, el total se reinicia en cada pasada, por lo que el programa solo mostrará la última nota. Y Average ← Total / 5 debe estar después del bucle, porque el total no está completo hasta que se haya añadido cada nota. Inicializar antes, calcular después: ese orden es lo que realmente está probando la pregunta.
| Inglés | Chino | Pinyin |
|---|---|---|
| totalling/ˈtəʊtəlɪŋ/ | 求和 | qiú hé |
| counting/ˈkaʊntɪŋ/ | 计数 | jì shù |
| remainder/rɪˈmeɪndə/ | 余数 | yú shù |
| nested statement/ˈnestɪd ˈsteɪtmənt/ | 嵌套语句 | qiàn tào yǔ jù |
8.1
Operadores
Operadores aritméticos
| Operador | Significado |
|---|---|
+ - * / |
sumar, restar, multiplicar, dividir |
^ |
elevado a la potencia |
MOD |
el resto 余数 después de la división |
DIV |
la parte de número entero de una división |
Por ejemplo, 17 MOD 5 es 2, y 17 DIV 5 es 3.
Operadores relacionales
Comparan dos valores y dan como resultado un Booleano: =, <, <=, >, >= y <> (diferente de).
Operadores lógicos
Conectan condiciones: AND (ambas deben ser verdaderas), OR (al menos una debe ser verdadera), NOT (invierte verdadero/falso).

IF Age >= 13 AND Age <= 19
THEN
OUTPUT "Teenager"
ENDIF
8.1
Manejo de cadenas
Una cadena está formada por caracteres. Operaciones útiles:
- longitud 长度 — el número de caracteres en la cadena;
- subcadena 子串 — una parte más pequeña extraída de la cadena;
- mayúsculas 大写 — cambiar letras a mayúsculas;
- minúsculas 小写 — cambiar letras a minúsculas.
name ← "Computer"
OUTPUT LENGTH(name) // 8
OUTPUT SUBSTRING(name, 1, 4) // "Comp"
OUTPUT UCASE(name) // "COMPUTER"
OUTPUT LCASE(name) // "computer"
(El primer carácter puede contarse como posición 0 o posición 1, dependiendo del lenguaje).
SUBSTRING: extraer parte de una cadena
El primer carácter está en la posición 1. SUBSTRING(Palabra, Inicio, Longitud) toma Longitud caracteres comenzando en Inicio — arrastra los dos mangos y lee la llamada que construye.
| Inglés | Chino | Pinyin |
|---|---|---|
| substring/ˈsʌbstrɪŋ/ | 子串 | zi chuàn |
| upper case/ˈʌpə keɪs/ | 大写 | dà xiě |
| lower case/ˈləʊə keɪs/ | 小写 | xiǎo xiě |
8.1
Sentidos anidados
Un sentido anidado 嵌套语句 es una estructura de control colocada dentro de otra. Puedes anidar selección e iteración.
FOR I ← 1 TO 3
IF MOD(I, 2) = 0
THEN
OUTPUT I, " is even"
ELSE
OUTPUT I, " is odd"
ENDIF
NEXT I
No tendrás que escribir más de tres niveles de anidamiento.
8.1
Procedimientos y funciones
Para evitar repetir código, puedes dividir un programa en bloques con nombre.
- Un procedimiento 过程 es un bloque de código con nombre que realiza una tarea. Se ejecuta con
CALL. - Una función 函数 es similar a un procedimiento, pero devuelve un valor hacia donde fue llamada.
Un parámetro 参数 es un valor pasado a un procedimiento o función (hasta tres 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
Variables locales y globales
- Una variable local 局部_variable se declara dentro de un procedimiento o función. Solo puede usarse allí.
- Una variable global 全局_variable se declara en el programa principal. Puede usarse en cualquier lugar.
Las variables locales son más seguras, ya que no pueden cambiarse por error desde otra parte del programa.
| Inglés | Chino | 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 |
| library routine/ˈlaɪbrəri ruːˈtiːn/ | 库程序 | kù chéng xù |
| 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.1
Rutinas de biblioteca
Una rutina de biblioteca 库程序 es un trozo de código listo para usar. Debes conocer estas:
| Rutina | Qué hace |
|---|---|
MOD |
da el resto de una división |
DIV |
da la parte de número entero de una división |
ROUND |
redondea un número real a un número de lugares decimales |
RANDOM |
da un número aleatorio |
8.1
Escribir un programa mantenible
Un programa mantenible 可维护 es fácil de leer y modificar para otras personas en el futuro. Para hacerlo:
- usa identificadores significativos 有意义的标识符 — nombres claros para variables, constantes, arreglos, procedimientos y funciones (
totalScore, nox); - añade comentarios 注释 para explicar qué hacen ciertas partes del código;
- usa procedimientos y funciones para dividir el trabajo en bloques pequeños.
8.2
Arreglos
Syllabus
| Los candidatos deben ser capaces de: | Notas y orientación |
|---|---|
| 1 Declarar y utilizar arreglos unidimensionales (1D) y bidimensionales (2D) | |
| 2 Comprender el uso de los arreglos | • Incluyendo el uso de variables como índices en los arreglos |
| 3 Escribir valores en y leer valores de un arreglo utilizando iteración | • El primer índice puede ser cero o uno • Incluyendo la iteración anidada |
Fuente: Plan de estudios Cambridge International
Un arreglo 数组 es una única variable que contiene muchos valores del mismo tipo, accesibles mediante un índice 索引 (un número de posición).
Arreglos unidimensionales
Un arreglo unidimensional (1D) 一维数组 es como una lista simple.
DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
OUTPUT Scores[1]

Puedes usar un bucle para llenar o leer un arreglo:
FOR I ← 1 TO 5
INPUT Scores[I]
NEXT I
Arreglos bidimensionales
Un arreglo bidimensional (2D) 二维数组 es como una tabla con filas y columnas. Usa dos índices.
DECLARE Grid : ARRAY[1:3, 1:3] OF INTEGER
Grid[1, 1] ← 5
Grid[2, 3] ← 8

Se lee un arreglo 2D con un bucle dentro de otro bucle (iteración anidada).
Arreglos
Seleccione una fila y una columna para leer una celda. Los arrays de Cambridge cuentan desde 1, y un elemento 2-D se escribe con UN par de corchetes — Grid[2, 3].
| Inglés | Chino | 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
Manejo de archivos
Syllabus
| Los candidatos deben ser capaces de: | Notas y orientación |
|---|---|
| 1 Comprender el propósito de almacenar datos en un archivo para su uso por parte de un programa | |
| 2 Abrir, cerrar y utilizar un archivo para la lectura y escritura | • Incluye: – lectura y escritura de elementos individuales de datos – lectura y escritura de una línea de texto |
Fuente: Plan de estudios Cambridge International
Un programa puede almacenar datos en un archivo 文件 para que se conserven después de que el programa termine. Debes abrir el archivo, usarlo y luego cerrarlo.
OPENFILE "data.txt" FOR WRITE
WRITEFILE "data.txt", "Hello"
CLOSEFILE "data.txt"
OPENFILE "data.txt" FOR READ
READFILE "data.txt", Line
CLOSEFILE "data.txt"
Puedes leer y escribir elementos individuales de datos o una línea completa de texto. Siempre cierra un archivo cuando termines de usarlo.
| Inglés | Chino | Pinyin |
|---|---|---|
| file/faɪl/ | 文件 | wén jiàn |
8.3
Consejos para el examen
- Una variable puede cambiar mientras se ejecuta el programa; una constante es fija. Aprende los cinco tipos de datos: entero, real, char, string, Boolean.
- Todo programa se construye a partir de tres estructuras: secuencia, selección (IF / CASE) e iteración (bucles).
- Un bucle WHILE prueba antes del cuerpo, por lo que puede ejecutarse cero veces; un bucle REPEAT … UNTIL prueba después, por lo que siempre se ejecuta al menos una vez.
MODda el resto yDIVla parte de número entero de una división:17 MOD 5es 2,17 DIV 5es 3.- Una función devuelve un valor; un procedimiento no. Una variable local solo funciona dentro de su bloque; una global funciona en cualquier lugar.
Lecciones interactivas sobre este tema
Trátalo paso a paso, con ejercicios de verificación instantánea.