Saltar al contenido

Programación

IGCSE Ciencias de la Computación · Tema 8

Lección de video para este tema Abrir la página de video
13:11

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 y 中文 que puedes cambiar

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 nombrado que contiene un valor que puede cambiar mientras se ejecuta el programa. Una constante es un almacén nombrado cuyo valor está fijado y no cambia.

Una variable llamada age que contiene el valor 16
Una variable es un almacenamiento 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 (indicar su nombre y tipo) antes de usarlas:

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
English Español
variable/ˈveərɪəbl/ variable
constant/ˈkɒnstənt/ constante
declare/dɪˈkleə/ declarar
integer/ˈɪntɪdʒə/ entero
string/strɪŋ/ cadena
Ver lección
8.1

Tipos de datos

Un tipo de dato indica qué clase de valor contiene una variable. Debes conocer cinco tipos básicos.

Tipos de datos: entero (7), real (3.5), carácter ('A'), cadena («hola»), booleano (verdadero/falso)
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
carácter un solo carácter 'A', '?'
cadena una secuencia de caracteres "Hello"
Booleano uno de dos valores TRUE o FALSE
Vocabulario Entrenar
English Español
data type/ˈdeɪtə taɪp/ tipo de dato
real/rɪəl/ real
char/tʃɑː/ carácter
Boolean/ˈbuːlɪən/ booleano
8.1

Entrada y salida

Entrada lee un valor del usuario. Salida muestra un valor en la pantalla.

OUTPUT "What is your name?"
INPUT Name
OUTPUT "Hello ", Name
Vocabulario Entrenar
English Español
input/ˈɪnpʊt/ entrada
output/ˈaʊtpʊt/ salida
sequence/ˈsiːkwəns/ secuencia
selection/sɪˈlekʃn/ selección
iteration/ˌɪtəˈreɪʃn/ iteración
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

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

Selección elige qué pasos ejecutar, basado 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

Iteración (un bucle) repite pasos. Hay tres tipos.

Un bucle controlado por contador se 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 postcondició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
English Español
loop/luːp/ bucle
count-controlled loop/kaʊnt kənˈtrəʊld luːp/ bucle controlado por contador
pre-condition loop/priː kənˈdɪʃn luːp/ bucle de precondición
post-condition loop/pəʊst kənˈdɪʃn luːp/ bucle de postcondición
length/leŋθ/ longitud
8.1

Sumatoria y conteo

  • acumulación — seguir sumando valores a una suma total: Total ← Total + Value.
  • conteo — añadir 1 a un contador cada vez: Count ← Count + 1.
Count ← Count + 1 toma el contador 0, 1, 2, 3; Total ← Total + Value toma el total 0, 4, 11, 16 para los valores 4, 7 y 5
Un contador cuenta hacia arriba en incrementos de 1; un acumula construye una suma progresiva
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
English Español
totalling/ˈtəʊtəlɪŋ/ suma total
counting/ˈkaʊntɪŋ/ conteo
remainder/rɪˈmeɪndə/ resto
nested statement/ˈnestɪd ˈsteɪtmənt/ instrucción anidada
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
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.

8.1

Manejo de cadenas

Una cadena está formada por caracteres. Operaciones útiles:

La cadena Ada Lovelace en doce casillas numeradas de 1 a 12, con el espacio en la posición 4 y los ocho caracteres a partir de la posición 5 resaltados como SUBSTRING(FullName, 5, 8)
Las posiciones comienzan en 1 y el espacio es un carácter: el apellido son los 8 caracteres a partir de la posición 5
  • 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).

En pseudocódigo de examen, el primer carácter está en la posición 1, y SUBSTRING(name, start, length) toma length caracteres comenzando en start.

Ejemplo resuelto. Imprime el apellido de un nombre completo como "Ada Lovelace".

FullName ← "Ada Lovelace"
Position ← 0
FOR I ← 1 TO LENGTH(FullName)
    IF SUBSTRING(FullName, I, 1) = " "
      THEN
        Position ← I
    ENDIF
NEXT I
OUTPUT SUBSTRING(FullName, Position + 1, LENGTH(FullName) - Position)
  1. LENGTH(FullName) es 12 (el espacio cuenta como un carácter).
  2. El bucle verifica un carácter a la vez; el espacio está en la posición 4, así que Position es 4.
  3. El apellido comienza en la posición 5 y tiene $12 - 4 = 8$ caracteres: SUBSTRING(FullName, 5, 8) es "Lovelace".
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
English Español
substring/ˈsʌbstrɪŋ/ subcadena
upper case/ˈʌpə keɪs/ mayúscula
lower case/ˈləʊə keɪs/ minúscula
8.1

Sentidos anidados

Una instrucción anidada 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 como un procedimiento, pero devuelve un valor al lugar donde fue llamada.

Un parámetro es una entrada nombrada en un procedimiento o función; una llamada proporciona su valor. Las preguntas de examen utilizan 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

Ejemplo resuelto. Escribe una función que devuelva el número mayor de dos números, y úsala.

FUNCTION Larger(A : INTEGER, B : INTEGER) RETURNS INTEGER
    DECLARE Result : INTEGER
    IF A > B
      THEN
        Result ← A
      ELSE
        Result ← B
    ENDIF
    RETURN Result
ENDFUNCTION

Biggest ← Larger(12, 30)
OUTPUT Larger(Biggest, 25)

Larger(12, 30) devuelve 30, que se almacena en Biggest; Larger(30, 25) devuelve 30, que se muestra. A, B y Result son locales: existen solo mientras la función se ejecuta. El resultado de una función debe usarse, en una asignación o una salida; un procedimiento se ejecuta en su propia línea con CALL y no devuelve nada.

Larger(12, 30) devuelve 30 a Biggest; se llama a Larger(Biggest, 25) con A = 30 y B = 25 y devuelve 30, que se muestra
Cada llamada a una función devuelve un valor que debe utilizarse: se almacena en Biggest y después se muestra

Variables locales y globales

  • Una variable local se declara dentro de un procedimiento o función. Solo puede usarse allí.
  • Una variable global 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
English Español
procedure/prəˈsiːdʒə/ procedimiento
function/ˈfʌŋkʃn/ función
parameter/pəˈræmɪtə/ parámetro
local variable/ˈləʊkl ˈveərɪəbl/ variable local
global variable/ˈɡləʊbl ˈveərɪəbl/ variable global
library routine/ˈlaɪbrəri ruːˈtiːn/ rutina de biblioteca
maintainable/meɪnˈteɪnəbl/ mantenible
meaningful identifiers/ˈmiːnɪŋfl aɪˈdentɪfaɪəz/ identificadores significativos
comments/ˈkɒments/ comentarios
8.1

Rutinas de biblioteca

Una rutina de biblioteca es un fragmento de código predefinido que puedes 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
Llamada Resultado
MOD(17, 5) 2
DIV(17, 5) 3
ROUND(3.14159, 2) 3.14
ROUND(7.46, 1) 7.5
RANDOM() un número real aleatorio entre 0 y 1

MOD(Number, 2) = 0 comprueba si un número es par; DIV(Seconds, 60) y MOD(Seconds, 60) dividen 135 segundos en 2 minutos y 15 segundos.

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, matrices, procedimientos y funciones (totalScore, no x);
  • añade comentarios para explicar qué hacen las 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

Una matriz es una sola variable que contiene muchos valores del mismo tipo, accesibles mediante un índice (un número de posición).

Arreglos unidimensionales

Un array unidimensional (1D) es como una lista única.

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

Ejemplo resuelto. Encuentra la puntuación más alta en Scores y su posición. Scores contiene 90, 75, 98, 61, 98.

DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
Scores[3] ← 98
Scores[4] ← 61
Scores[5] ← 98

Highest ← Scores[1]
Place ← 1
FOR I ← 2 TO 5
    IF Scores[I] > Highest
      THEN
        Highest ← Scores[I]
        Place ← I
    ENDIF
NEXT I
OUTPUT "Highest ", Highest, " at position ", Place
I Scores[I] > Highest? Highest Place
inicio 90 1
2 75 no 90 1
3 98 sí 98 3
4 61 no 98 3
5 98 no 98 3

La salida es Highest 98 at position 3. Comenzar Highest en el primer elemento, no en 0, lo hace funcionar también para valores negativos; con >= en lugar de >, se encontraría la última 98 (posición 5).

Arreglos bidimensionales

Un array bidimensional (2D) es como una tabla con filas y columnas. Utiliza 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).

Ejemplo resuelto. Marks[1:3, 1:2] contiene dos calificaciones de prueba para cada uno de tres estudiantes (filas). Muestre el total de cada estudiante.

Columna 1 Columna 2
Fila 1 12 15
Fila 2 9 11
Fila 3 14 18
DECLARE Marks : ARRAY[1:3, 1:2] OF INTEGER
Marks[1, 1] ← 12
Marks[1, 2] ← 15
Marks[2, 1] ← 9
Marks[2, 2] ← 11
Marks[3, 1] ← 14
Marks[3, 2] ← 18

FOR Row ← 1 TO 3
    Total ← 0
    FOR Col ← 1 TO 2
        Total ← Total + Marks[Row, Col]
    NEXT Col
    OUTPUT "Student ", Row, ": ", Total
NEXT Row

El bucle externo selecciona un estudiante; el bucle interno suma las dos calificaciones de ese estudiante. La salida es 27, 20 y 32. Total ← 0 debe estar dentro del bucle externo: si se colocara antes, los totales continuarían hacia 27, 47 y 79.

Un programa completo para una situación

La última pregunta de la prueba 2 te pide que escribas un programa completo para una situación, utilizando arreglos. Se otorgan puntos por cada parte requerida, así que planifica las partes antes de escribir.

Ejemplo resuelto. Una estación meteorológica registra la temperatura del mediodía durante cada uno de los 7 días de una semana. Escribe un programa que:

  • introduzca las 7 temperaturas en un arreglo y acepte solo valores de −20 a 50;
  • muestre la temperatura promedio de la semana;
  • muestre cuántos días estuvieron por encima de ese promedio y cuál fue el día más caluroso.

Plan. (1) declarar el arreglo y las variables; (2) un bucle de 7 entradas, cada una con un bucle de validación; (3) un total acumulado y después el promedio; (4) un segundo bucle para contar los días por encima del promedio y encontrar el valor más alto; (5) salidas con mensajes.

DECLARE Temps : ARRAY[1:7] OF REAL
DECLARE Day, AboveCount, HotDay : INTEGER
DECLARE Total, Average : REAL

Total ← 0
FOR Day ← 1 TO 7
    OUTPUT "Enter the temperature for day ", Day
    INPUT Temps[Day]
    WHILE Temps[Day] < -20 OR Temps[Day] > 50 DO
        OUTPUT "Invalid: enter a value from -20 to 50"
        INPUT Temps[Day]
    ENDWHILE
    Total ← Total + Temps[Day]
NEXT Day

Average ← Total / 7
OUTPUT "Average temperature: ", ROUND(Average, 1)

AboveCount ← 0
HotDay ← 1
FOR Day ← 1 TO 7
    IF Temps[Day] > Average
      THEN
        AboveCount ← AboveCount + 1
    ENDIF
    IF Temps[Day] > Temps[HotDay]
      THEN
        HotDay ← Day
    ENDIF
NEXT Day

OUTPUT "Days above average: ", AboveCount
OUTPUT "Hottest day: ", HotDay, " at ", Temps[HotDay]

Por qué obtiene puntos. Cada parte requerida está presente y es fácil de encontrar: el bucle de validación vuelve a preguntar hasta que el valor está dentro del rango (un IF solo comprobaría una vez); el valor se suma al total después de que sea válido; el promedio se calcula después del bucle, no dentro de él; el contador comienza en 0 y el día más caluroso comienza en el día 1, por lo que siempre corresponde a una lectura real. Los días por encima del promedio requieren un segundo bucle, porque el promedio no se conoce hasta que se han introducido todos los valores.

Errores comunes. Dividir entre 7 dentro del primer bucle; comparar con el promedio antes de que exista; iniciar el valor más alto en 0 (incorrecto si todas las temperaturas son negativas); y mostrar resultados sin un mensaje que indique qué representa cada número.

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
English Español
array/əˈreɪ/ matriz
index/ˈɪndeks/ índice
one-dimensional (1D) array/wʌn daɪˈmenʃənl əˈreɪ/ array unidimensional (1D)
two-dimensional (2D) array/tuː daɪˈmenʃənl əˈreɪ/ array bidimensional (2D)
Ver lección
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 se detenga. Debe 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.

Ejemplo resuelto. Guarde los cinco valores de Scores en un archivo, uno por línea, y luego lea el primero de nuevo.

DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
Scores[3] ← 98
Scores[4] ← 61
Scores[5] ← 98

OPENFILE "scores.txt" FOR WRITE
FOR I ← 1 TO 5
    WRITEFILE "scores.txt", Scores[I]
NEXT I
CLOSEFILE "scores.txt"

OPENFILE "scores.txt" FOR READ
READFILE "scores.txt", FirstScore
CLOSEFILE "scores.txt"
OUTPUT FirstScore

Cada WRITEFILE añade una línea, por lo que el archivo contiene cinco líneas; la lectura comienza desde arriba, así que FirstScore es la primera nota. Abrir un archivo FOR WRITE lo inicia vacío: todo lo que ya estaba en él se pierde.

Vocabulario Entrenar
English Español
file/faɪl/ archivo
8.3

Consejos para el examen

  • Para la pregunta larga sobre una situación, enumera primero las partes requeridas y después asegúrate de que cada una aparezca en tu código, con comentarios o mensajes que indiquen dónde está.
  • 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