Saltar al contenido

Programación

IGCSE Ciencias de la Computación · Tema 8

Entrenar
Lección de video para este tema Abrir la página de video
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
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

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.

Una variable llamada age que contiene el valor 16
Una variable es un almacén con nombre cuyo valor puede cambiar
Líneas de código del programa en una pantalla
Las variables y las constantes son almacenes con nombre para valores, definidos en el código del programa

Debes declararlas 声明 antes de usarlas (decir su nombre y tipo):

DECLARE Score : INTEGER
DECLARE Name : STRING
CONSTANT Pi ← 3.142
Dos módulos de memoria RAM
Mientras se ejecuta un programa, sus variables se almacenan en la memoria del ordenador (RAM)

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.

Explorar

Variables y asignación

Paso a paso por las líneas y observe cómo cada variable toma su nuevo valor.

Vocabulario Entrenar
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.

Tipos de datos: entero (7), real (3.5), char ('A'), string ("hello"), boolean (true/false)
Los tipos de datos básicos: entero, real, char, string y boolean
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
Vocabulario Entrenar
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
Vocabulario Entrenar
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.

Tres diagramas de flujo pequeños: secuencia (cajas en línea), selección (una prueba que se ramifica en dos caminos) e iteración (una prueba con un cuerpo que vuelve a empezar)
Las tres estructuras de control: la secuencia ejecuta los pasos en orden, la selección elige una rama y la iteración repite un cuerpo

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"
Dos diagramas de flujo de bucles: WHILE prueba la condición antes del cuerpo; REPEAT ejecuta primero el cuerpo y prueba después
Un bucle de precondición (WHILE) prueba antes del cuerpo, por lo que puede ejecutarse cero veces; un bucle de poscondición (REPEAT) prueba después, por lo que se ejecuta al menos una vez
Explorar

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.

Explorar

Selección

Cambie el valor y observe qué rama se ejecuta — selección en acción.

Vocabulario Entrenar
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.
count = count + 1 cuenta de 1 en 1; total = total + value suma a un total acumulado
Un contador aumenta de 1 en 1; un total construye una suma acumulada
Una tabla de trazado siguiendo un bucle sobre los valores 4, 7 y 5: total pasa de 0, 4, 11, 16 mientras count pasa de 0, 1, 2, 3
Una tabla de trazado sigue un bucle de sumatoria y conteo paso a paso
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.

Vocabulario Entrenar
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).

Tres familias de operadores: los operadores aritméticos como más y por dan un número, los operadores relacionales como menor que comparan y dan verdadero o falso, los operadores lógicos AND OR NOT conectan condiciones
Las tres familias de operadores: aritméticos, relacionales y lógicos
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).

Explorar

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.

Vocabulario Entrenar
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.

Vocabulario Entrenar
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, no x);
  • 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]
Cinco cajas en fila etiquetadas con índice 1 a 5, conteniendo valores, con el valor en el índice 2 resaltado como 75
Un arreglo 1D contiene muchos valores en una sola variable; cada uno se encuentra por su índice

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
Una cuadrícula de 3 por 3 con filas y columnas numeradas; la celda en la fila 2, columna 3 está resaltada y etiquetada como grid row 2 column 3
Un arreglo 2D es una tabla; cada valor se encuentra mediante dos índices, [fila, columna]

Se lee un arreglo 2D con un bucle dentro de otro bucle (iteración anidada).

Explorar

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].

Vocabulario Entrenar
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.

Vocabulario Entrenar
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.
  • MOD da el resto y DIV la parte de número entero de una división: 17 MOD 5 es 2, 17 DIV 5 es 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.

Exámenes Anteriores

Más temas en IGCSE Ciencias de la Computación

Iniciar sesión o crear cuenta

IGCSE, A-Level & AP