Saltar al contenido

Diseño de algoritmos y resolución de problemas

IGCSE Ciencias de la Computación · Tema 7

Entrenar
Lección de video para este tema Abrir la página de video
9:17

Ciclo de vida del desarrollo de programas

Cada aplicación en tu teléfono fue escrita por alguien como esto. Pero no empezaron escribiendo código. Antes de la primera línea, el problema fue estudiado, la solución…

Narración en inglés · Subtítulos en inglés + 中文 quemados en pantalla

Syllabus
Los candidatos deben ser capaces de: Notas y orientación
1 Comprender el ciclo de vida del desarrollo de programas, limitado a: análisis, diseño, codificación y pruebas • Incluyendo identificar cada etapa y realizar estas tareas para cada una: – análisis: abstracción, descomposición del problema, identificación del problema y los requisitos – diseño: descomposición, diagramas estructurales, diagramas de flujo, pseudocódigo – codificación: escritura de código de programa y pruebas iterativas – pruebas: prueba del código de programa utilizando datos de prueba
2 (a) Comprender que todo sistema informático está compuesto por sub-sistemas, que a su vez están compuestos por más sub-sistemas (b) Comprender cómo un problema puede descomponerse en sus partes componentes • Incluyendo: – entradas – procesos – salidas – almacenamiento
(c) Utilizar diferentes métodos para diseñar y construir una solución a un problema • Incluyendo: – diagramas estructurales – diagramas de flujo – pseudocódigo
3 Explicar el propósito de un algoritmo dado • Incluyendo: – indicar el propósito de un algoritmo – describir los procesos implicados en un algoritmo
4 Comprender los métodos estándar de solución • Limitado a: – búsqueda lineal – ordenamiento burbuja – totales – conteo – encontrar valores máximos, mínimos y promedios
5 (a) Comprender la necesidad de realizar comprobaciones de validación sobre los datos de entrada y los diferentes tipos de comprobación de validación • Incluyendo: – comprobación de rango – comprobación de longitud – comprobación de tipo – comprobación de presencia – comprobación de formato – dígito de control
(b) Comprender la necesidad de realizar comprobaciones de verificación sobre los datos de entrada y los diferentes tipos de comprobación de verificación • Incluyendo: – comprobación visual – comprobación de doble entrada
6 Sugerir y aplicar datos de prueba adecuados • Limitado a: – normales – anómalos – extremos – de límite • Los datos extremos son el valor aceptable más grande/más pequeño • Los datos de límite son el valor aceptable más grande/más pequeño y el valor rechazado correspondiente más pequeño/más grande
7 Completar una tabla de seguimiento para documentar una ejecución en seco de un algoritmo • Incluyendo, en cada paso de un algoritmo: – variables – salidas – indicaciones al usuario
8 Identificar errores en algoritmos dados y sugerir formas de corregir estos errores
9 Escribir y modificar algoritmos para problemas o escenarios dados, utilizando: pseudocódigo, código de programa y diagramas de flujo • Se requiere precisión al escribir algoritmos, por ejemplo, x > y es aceptable pero x es mayor que y no lo es • Véase la sección 4 para los símbolos de los diagramas de flujo • Véase la sección 4 para el pseudocódigo

Fuente: Plan de estudios Cambridge International

7.1

El ciclo de vida del desarrollo de programas

El ciclo de vida del desarrollo de programas (程序开发生命周期) es el conjunto de etapas utilizadas para crear un programa. Existen cuatro etapas.

Un programador escribiendo código en una computadora
El software es escrito por programadores, quienes siguen el ciclo de vida del desarrollo
Etapa Qué se hace
análisis 分析 estudiar el problema y determinar qué se necesita
diseño 设计 planificar cómo funcionará el programa
codificación 编码 escribir el código del programa y probarlo a medida que se avanza
pruebas 测试 ejecutar el programa terminado con datos de prueba para encontrar errores
Cuatro etapas en fila — análisis, diseño, codificación, pruebas — con una flecha que retroalimenta desde las pruebas hacia el diseño
Las cuatro etapas del desarrollo de programas; las pruebas retroalimentan para corregir y refinar el diseño
Un diagrama de flujo de un programa con cajas de proceso y rombos de decisión
Un diagrama de flujo de un programa establece los pasos y decisiones durante la etapa de diseño

Análisis

En el análisis se comprende el problema. Dos habilidades clave ayudan:

  • abstracción 抽象 — conservar solo los detalles importantes e ignorar el resto;
  • descomposición 分解 — dividir un problema grande en partes más pequeñas y fáciles.

Diseño

En el diseño se planifica la solución, utilizando a menudo la descomposición. Se pueden mostrar las partes como sub-sistemas 子系统 en un diagrama de estructura 结构图 (un gráfico que divide un sistema en cajas más pequeñas).

Codificación y pruebas

En la codificación se escribe el código del programa. Se utiliza la prueba iterativa 迭代测试 — probar pequeñas partes repetidamente a medida que se construyen. En las pruebas se ejecuta todo el programa con datos de prueba 测试数据 para verificar que funcione.

Vocabulario Entrenar
Inglés Chino Pinyin
program development life cycle/ˈprəʊɡræm dɪˈveləpmənt laɪf ˈsaɪkl/ 程序开发生命周期 chéng xù kāi fā shēng mìng zhōu qī
analysis/əˈnæləsɪs/ 分析 fēn xī
design/dɪˈzaɪn/ 设计 shè jì
coding/ˈkəʊdɪŋ/ 编码 biān mǎ
testing/ˈtestɪŋ/ 测试 cè shì
abstraction/əbˈstrækʃn/ 抽象 chōu xiàng
decomposition/ˌdiːkɒmpəˈzɪʃn/ 分解 fēn jiě
sub-systems/sʌb ˈsɪstəmz/ 子系统 zi xì tǒng
structure diagram/ˈstrʌktʃə ˈdaɪəɡræm/ 结构图 jié gòu tú
iterative testing/ˈɪtərətɪv ˈtestɪŋ/ 迭代测试 dié dài cè shì
test data/test ˈdeɪtə/ 测试数据 cè shì shù jù
flowchart/ˈfləʊtʃɑːt/ 流程图 liú chéng tú
7.2

Herramientas de diseño

Se puede planificar una solución de tres formas principales.

  • un diagrama de estructura — muestra las partes de un sistema y cómo se integran;
  • un diagrama de flujo 流程图 — un diagrama que usa cajas y flechas para mostrar los pasos en orden;
  • pseudocódigo 伪代码 — pasos escritos en inglés simple similar al código (no un lenguaje real).
Un diagrama de flujo para sumar los números del 1 a n, con símbolos de inicio/fin, entrada/salida, proceso y decisión, además de una leyenda que nombra cada forma
Un diagrama de flujo para el algoritmo de suma, usando los símbolos estándar (inicio/fin, entrada/salida, proceso, decisión)
7.3

Algoritmos

Ordenamiento burbuja, paso a paso

Un algoritmo 算法 es un conjunto de pasos, en el orden correcto, que resuelve un problema. Todo algoritmo se puede dividir en tres partes:

  • entrada 输入 — los datos que entran;
  • procesamiento 处理 — el trabajo realizado sobre los datos;
  • salida 输出 — el resultado que sale.

Esto se llama descomposición en entradas, procesos y salidas. Por ejemplo, para "encontrar el promedio de tres notas": las entradas son las tres notas; el procesamiento es sumarlas y dividirlas entre 3; la salida es el promedio.

Tres cajas — ENTRADA (las 3 notas), PROCESO (sumarlas, dividir entre 3), SALIDA (el promedio) — unidas por flechas
Cada algoritmo se descompone en entrada, procesamiento y salida — aquí, encontrando el promedio de tres notas
Vocabulario Entrenar
Inglés Chino Pinyin
bubble sort/ˈbʌbl sɔːt/ 冒泡排序 mào pào pái xù
totalling/ˈtəʊtəlɪŋ/ 求和 qiú hé
counting/ˈkaʊntɪŋ/ 计数 jì shù
maximum/ˈmæksɪməm/ 最大值 zuì dà zhí
minimum/ˈmɪnɪməm/ 最小值 zuì xiǎo zhí
7.4

Validación y verificación

Cuando se ingresan datos, se verifican para reducir errores.

La validación 验证 verifica que los datos sean lógicos y sigan las reglas. No puede verificar que los datos sean verdaderos, solo que estén permitidos.

Verificación de validación Qué verifica
verificación de rango 范围检查 el valor está entre un valor mínimo y máximo permitido
verificación de longitud 长度检查 el número de caracteres es permitido (ej. una contraseña ≥ 8)
verificación de tipo 类型检查 los datos son del tipo correcto (ej. un número, no letras)
verificación de presencia 存在性检查 algo ha sido realmente ingresado (no dejado en blanco)
verificación de formato 格式检查 los datos están en el patrón correcto (ej. una fecha como dd/mm/yyyy)
dígito de control 校验码 un dígito adicional confirma que un número fue ingresado correctamente

La verificación 核实 verifica que los datos fueron copiados o ingresados correctamente (sin errores mientras se tecleaban). Dos métodos:

  • verificación visual 目视检查 — una persona compara los datos tecleados con el original;
  • doble entrada 双重输入 — los datos se ingresan dos veces y se comparan las dos copias.
7.5

Tablas de trazado

Una tabla de trazado 追踪表 registra el valor de cada variable a medida que un algoritmo se ejecuta, paso a paso. Ayuda a:

Una tabla de trazado con columnas count, total, output
Una tabla de trazado registra el valor de cada variable a medida que el programa se ejecuta
  • verificar que un algoritmo funciona correctamente;
  • averiguar qué hace un algoritmo siguiéndolo con datos dados.

Ejemplo: tracee este algoritmo con la entrada 5.

INPUT N
Total ← 0
FOR I ← 1 TO N
    Total ← Total + I
NEXT I
OUTPUT Total
i total OUTPUT
1 1
2 3
3 6
4 10
5 15 15

El trazado muestra que el algoritmo suma del 1 a n. Con la entrada 5, la salida es 15.

Ejemplo resuelto. Tracee este algoritmo y dé la salida.

X ← 20
Count ← 0
WHILE X > 1
    X ← DIV(X, 2)
    Count ← Count + 1
ENDWHILE
OUTPUT Count

DIV devuelve solo la parte de número entero de una división. Tome una fila por pasada: x se convierte en 10 (count 1), luego 5 (count 2), luego 2 (count 3), luego 1 (count 4). Ahora x > 1 es falso, así que el bucle se detiene y la salida es 4. Dos hábitos protegen estas calificaciones: probar la condición antes de cada pasada en lugar de después, y escribir una nueva fila para cada pasada — intentar retener los valores en su cabeza es lo que hace que los trazados fallen.

Explorar

Una tabla de seguimiento

Paso a paso por el bucle y complete la tabla de seguimiento, una fila por pasada.

Vocabulario Entrenar
Inglés Chino Pinyin
pseudocode/ˈsuːdəʊkəʊd/ 伪代码 wěi dài mǎ
algorithm/ˈælɡərɪθəm/ 算法 suàn fǎ
input/ˈɪnpʊt/ 输入 shū rù
processing/ˈprəʊsesɪŋ/ 处理 chǔ lǐ
output/ˈaʊtpʊt/ 输出 shū chū
validation/ˌvælɪˈdeɪʃn/ 验证 yàn zhèng
range check/reɪndʒ tʃek/ 范围检查 fàn wéi jiǎn chá
length check/leŋθ tʃek/ 长度检查 cháng dù jiǎn chá
type check/taɪp tʃek/ 类型检查 lèi xíng jiǎn chá
presence check/ˈprezəns tʃek/ 存在性检查 cún zài xìng jiǎn chá
format check/ˈfɔːmæt tʃek/ 格式检查 gé shì jiǎn chá
check digit/tʃek ˈdɪdʒɪt/ 校验码 jiào yàn mǎ
verification/ˌverɪfɪˈkeɪʃn/ 核实 hé shí
visual check/ˈvɪʒuːəl tʃek/ 目视检查 mù shì jiǎn chá
double entry/ˈdʌbl ˈentri/ 双重输入 shuāng chóng shū rù
trace table/treɪs ˈteɪbl/ 追踪表 zhuī zōng biǎo
7.6

Datos de prueba

Los datos de prueba 测试数据 son los datos que usa para probar un programa. Hay cuatro tipos que debe conocer.

Tipo Significado Ejemplo (edad 0–120 permitida)
normal 正常数据 datos lógicos que deberían ser aceptados 25
anormal 异常数据 datos incorrectos que deberían ser rechazados -4 o "cat"
extremo 极端数据 los valores más grandes y pequeños aún permitidos 0 y 120
límite/borde 边界数据 los valores a ambos lados de un límite (uno permitido, uno no) 120 y 121
Vocabulario Entrenar
Inglés Chino Pinyin
normal/ˈnɔːml/ 正常数据 zhèng cháng shù jù
abnormal/əbˈnɔːml/ 异常数据 yì cháng shù jù
extreme/ekˈstriːm/ 极端数据 jí duān shù jù
boundary/ˈbaʊndəri/ 边界数据 biān jiè shù jù
7.7

Métodos estándar de solución

Debe conocer estos algoritmos comunes.

Búsqueda lineal

Una búsqueda lineal 线性查找 revisa cada elemento de una lista, uno por uno, hasta que encuentra el valor deseado o llega al final.

Found ← FALSE
FOR I ← 0 TO 9
    IF List[I] = SearchValue
      THEN
        Found ← TRUE
    ENDIF
NEXT I
OUTPUT Found
Una lista de ocho números siendo escaneada de izquierda a derecha, buscando el 5; los primeros cuatro no coinciden y el quinto se encuentra
La búsqueda lineal revisa cada elemento por turno desde el principio hasta que encuentra el valor

Ordenamiento burbuja

Un ordenamiento burbuja 冒泡排序 coloca una lista en orden. Compara cada par de elementos adyacentes y los intercambia si están en el orden incorrecto. Repite esto hasta que no se necesiten más intercambios.

FOR I ← 0 TO 8
    IF List[I] > List[I + 1]
      THEN
        Temp ← List[I]
        List[I] ← List[I + 1]
        List[I + 1] ← Temp
    ENDIF
NEXT I
Una lista donde el primer par 5 y 2 está fuera de orden, mostrado intercambiándose a 2 y 5, con una nota para repetir para cada par
El ordenamiento burbuja compara cada par adyacente y los intercambia si están fuera de orden, repitiendo hasta que esté ordenado

Sumatoria y conteo

  • sumatoria 求和 — seguir sumando valores a un total acumulado (Total ← Total + Value).
  • conteo 计数 — sumar 1 a un contador cada vez que ocurre algo (Count ← Count + 1).

Máximo, mínimo y promedio

  • para encontrar el máximo 最大值: guardar el valor más grande visto hasta ahora.
  • para encontrar el mínimo 最小值: guardar el valor más pequeño visto hasta ahora.
  • para encontrar el promedio 平均值: dividir el total por cuántos valores hay.
Total ← 0
FOR I ← 0 TO 9
    Total ← Total + List[I]
NEXT I
Average ← Total / 10
OUTPUT Average
Vocabulario Entrenar
Inglés Chino Pinyin
linear search/ˈlɪnɪə sɜːtʃ/ 线性查找 xiàn xìng chá zhǎo
average/ˈævrɪdʒ/ 平均值 píng jūn zhí
7.8

Consejos para el examen

  • Aprenda las cuatro etapas del ciclo de vida: análisis → diseño → codificación → pruebas. La abstracción conserva solo los detalles importantes; la descomposición divide un problema en partes más pequeñas.
  • La validación verifica que los datos sean lógicos (verificaciones de rango, longitud, tipo, presencia, formato); la verificación verifica que fueron copiados correctamente (una verificación visual o doble entrada).
  • Aprenda los cuatro tipos de datos de prueba: normal (aceptado), anormal (rechazado), extremo (el más grande/más pequeño aún permitido), límite/borde (los valores a ambos lados de un límite).
  • Para averiguar qué hace un algoritmo, complete una tabla de trazado — anote el valor de cada variable en cada paso.
  • Conozca los algoritmos estándar: búsqueda lineal (revisar cada elemento por turno) y ordenamiento burbuja (intercambiar pares adyacentes hasta que no se necesiten más intercambios).

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