Skip to content · ⁨Saltar al contenido⁩

Selección e iteración

AP Ciencias de la Computación A · Topic 2 · ⁨Tema 2⁩

Train · ⁨Entrenar⁩
Video lesson for this topic · ⁨Lección de video para este tema⁩ Open the video page · ⁨Abrir la página de video⁩
7:59

Selección e iteración

Aquí hay tres bucles. Diferen por un solo carácter cada uno —un menor que en lugar de menor o igual, un mayor que en lugar de menor—. El primero ejecuta…

English narration · English + 中文 subtitles burned in · ⁨Narración en inglés · Subtítulos en inglés + 中文 quemados en pantalla⁩

2.1

Selection and Repetition in Algorithms · ⁨Selección e Iteración en Algoritmos⁩

Syllabus
English

Learning Objective 2.1.A: Represent patterns and algorithms that involve selection and repetition found in everyday life using written language or diagrams.

  • 2.1.A.1 The building blocks of algorithms include sequencing, selection, and repetition.
  • 2.1.A.2 Algorithms can contain selection, through decision making, and repetition, via looping.
  • 2.1.A.3 Selection occurs when a choice of how the execution of an algorithm will proceed is based on a true or false decision.
  • 2.1.A.4 Repetition is when a process repeats itself until a desired outcome is reached.
  • 2.1.A.5 The order in which sequencing, selection, and repetition are used contributes to the outcome of the algorithm.
Español

Objetivo de aprendizaje 2.1.A: Representar patrones y algoritmos que involucran selección y repetición presentes en la vida cotidiana utilizando lenguaje escrito o diagramas.

  • 2.1.A.1 Los bloques de construcción de los algoritmos incluyen secuencia, selección y repetición.
  • 2.1.A.2 Los algoritmos pueden contener selección, a través de la toma de decisiones, y repetición, mediante bucles.
  • 2.1.A.3 La selección ocurre cuando una elección sobre cómo procederá la ejecución de un algoritmo se basa en una decisión verdadera o falsa.
  • 2.1.A.4 La repetición es cuando un proceso se repite hasta alcanzar un resultado deseado.
  • 2.1.A.5 El orden en que se utilizan la secuencia, la selección y la repetición contribuye al resultado del algoritmo.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

Algorithms are built from three control structures 控制结构: sequence (steps in order), selection 选择 (choosing a path), and iteration 迭代 (repeating steps). This topic covers selection and iteration – the tools that let a program make decisions and loop.

Español
Un diagrama de flujo con un rombo de decisión: la selección elige qué camino sigue el algoritmo
Un diagrama de flujo con un rombo de decisión: la selección elige qué camino sigue el algoritmo

Los algoritmos se construyen a partir de tres estructuras de control: secuencia (pasos en orden), selección (elegir una ruta) e iteración (repetir pasos). Este tema cubre la selección y la iteración, las herramientas que permiten a un programa tomar decisiones y repetir bloques de código.

Las tres estructuras de control: secuencia, selección e iteración
Las tres estructuras de control: secuencia, selección e iteración
Vocabulary · ⁨Vocabulario⁩ Train · ⁨Entrenar⁩
English · ⁨Inglés⁩ Chinese · ⁨Chino⁩ Pinyin
control structures/kənˈtrəʊl ˈstrʌktʃəz/ 控制结构 kòng zhì jié gòu
selection/sɪˈlekʃn/ 选择 xuǎn zé
iteration/ˌɪtəˈreɪʃn/ 迭代 dié dài
boolean expression/ˈbuːlɪən ekˈspreʃn/ 布尔表达式 bù ěr biǎo dá shì
relational operators/rɪˈleɪʃənl ˈɒpəreɪtəz/ 关系运算符 guān xì yùn suàn fú
if statement/ɪf ˈsteɪtmənt/ 条件语句 tiáo jiàn yǔ jù
Logical operators/ˈlɒdʒɪkl ˈɒpəreɪtəz/ 逻辑运算符 luó jí yùn suàn fú
short-circuit evaluation/ʃɔːt ˈsɜːkɪt ɪˌvæljuːˈeɪʃn/ 短路求值 duǎn lù qiú zhí
De Morgan's laws/də ˈmɔːɡənz lɔːz/ 德摩根定律 dé mó gēn dìng lǜ
while loop/waɪl luːp/ 循环 xún huán
infinite loop/ˈɪnfɪnət luːp/ 无限循环 wú xiàn xún huán
flag/flæɡ/ 标志 biāo zhì
nested loop/ˈnestɪd luːp/ 嵌套循环 qiàn tào xún huán
Run-time analysis/rʌn taɪm əˈnæləsɪs/ 运行时间分析 yùn xíng shí jiān fēn xī
2.2

Boolean Expressions · ⁨Expresiones Booleanas⁩

Syllabus
English

Learning Objective 2.2.A: Develop code to create Boolean expressions with relational operators and determine the result of these expressions.

  • 2.2.A.1 Values can be compared using the relational operators == and != to determine whether the values are the same. With primitive types, this compares the actual primitive values. With reference types, this compares the object references.
  • 2.2.A.2 Numeric values can be compared using the relational operators <, >, <=, and >= to determine the relationship between the values.
  • 2.2.A.3 An expression involving relational operators evaluates to a Boolean value.
Español

Objetivo de Aprendizaje 2.2.A: Desarrollar código para crear expresiones booleanas con operadores relacionales y determinar el resultado de estas expresiones.

  • 2.2.A.1 Los valores se pueden comparar utilizando los operadores relacionales == y != para determinar si los valores son iguales. Con tipos primitivos, esto compara los valores primitivos reales. Con tipos de referencia, esto compara las referencias del objeto.
  • 2.2.A.2 Los valores numéricos se pueden comparar utilizando los operadores relacionales <, >, <= y >= para determinar la relación entre los valores.
  • 2.2.A.3 Una expresión que involucra operadores relacionales se evalúa como un valor booleano.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English
Logic gates & the half-adder

A boolean expression 布尔表达式 evaluates to true or false, using relational operators 关系运算符: == (equal), != (not equal), <, >, <=, >=. Note == compares primitive values but object references for objects, so use .equals for Strings.

Español
Compuertas lógicas y el sumador medio

Una expresión booleana 布尔表达式 evalúa a true o false, utilizando operadores relacionales 关系运算符: == (igual), != (diferente), <, >, <=, >=. Tenga en cuenta que == compara valores primitivos pero referencias de objeto para objetos, por lo que debe usar .equals para Strings.

Las tres familias de operadores: aritméticos, relacionales y lógicos
Las tres familias de operadores: aritméticos, relacionales y lógicos
Explore · ⁨Explorar⁩

Explorar la tabla de verdad AND

Una expresión booleana se evalúa como true o false. AND es verdadero solo cuando ambos operandos son verdaderos; alterne las entradas para ver los cuatro casos.

2.3

The if Statement · ⁨La sentencia if⁩

Syllabus
English

Learning Objective 2.3.A: Develop code to represent branching logical processes by using selection statements and determine the result of these processes.

  • 2.3.A.1 Selection statements change the sequential execution of statements.
  • 2.3.A.2 An if statement is a type of selection statement that affects the flow of control by executing different segments of code based on the value of a Boolean expression.
  • 2.3.A.3 A one-way selection (if statement) is used when there is a segment of code to execute under a certain condition. In this case, the body is executed only when the Boolean expression is true.
  • 2.3.A.4 A two-way selection (if-else statement) is used when there are two segments of code—one to be executed when the Boolean expression is true and another segment for when the Boolean expression is false. In this case, the body of the if is executed when the Boolean expression is true, and the body of the else is executed when the Boolean expression is false.
Español

Objetivo de aprendizaje 2.3.A: Desarrollar código para representar procesos lógicos de ramificación mediante sentencias de selección y determinar el resultado de estos procesos.

  • 2.3.A.1 Las sentencias de selección modifican la ejecución secuencial de las instrucciones.
  • 2.3.A.2 Una instrucción if es un tipo de sentencia de selección que afecta el flujo de control ejecutando diferentes segmentos de código según el valor de una expresión booleana.
  • 2.3.A.3 Una selección de un solo camino (instrucción if) se utiliza cuando hay un segmento de código que debe ejecutarse bajo una condición determinada. En este caso, el cuerpo se ejecuta únicamente cuando la expresión booleana es true.
  • 2.3.A.4 Una selección de dos caminos (instrucción if-else) se utiliza cuando hay dos segmentos de código: uno para ser ejecutado cuando la expresión booleana es true y otro segmento para cuando la expresión booleana es false. En este caso, el cuerpo del if se ejecuta cuando la expresión booleana es true, y el cuerpo del else se ejecuta cuando la expresión booleana es false.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

An if statement 条件语句 runs a block only when its condition is true; an optional else gives an alternative:

Español

Una sentencia if 条件语句 ejecuta un bloque solo cuando su condición es verdadera; un opcional else ofrece una alternativa:

if (score >= 60) {
    System.out.println("Pass");
} else {
    System.out.println("Fail");
}
Semáforos: la selección elige qué rama se ejecuta, al igual que las sentencias if eligen rutas de código
Semáforos: la selección elige qué rama se ejecuta, al igual que las sentencias if eligen rutas de código
Explore · ⁨Explorar⁩

Ver qué rama elige un if

Una sentencia if ejecuta su cuerpo solo cuando la condición es verdadera, de lo contrario salta a else. Deslice la puntuación a través de los límites y observe cómo cambia la calificación.

2.4

Nested if Statements · ⁨Sentencias if anidadas⁩

Syllabus
English

Learning Objective 2.4.A: Develop code to represent nested branching logical processes and determine the result of these processes.

  • 2.4.A.1 Nested if statements consist of if, if-else, or if-else-if statements within if, if-else, or if-else-if statements.
  • 2.4.A.2 The Boolean expression of the inner nested if statement is evaluated only if the Boolean expression of the outer if statement evaluates to true.
  • 2.4.A.3 A multiway selection (if-else-if) is used when there are a series of expressions with different segments of code for each condition. Multiway selection is performed such that no more than one segment of code is executed based on the first expression that evaluates to true. If no expression evaluates to true and there is a trailing else statement, then the body of the else is executed.
Español

Objetivo de aprendizaje 2.4.A: Desarrollar código para representar procesos lógicos de ramificación anidada y determinar el resultado de estos procesos.

  • 2.4.A.1 Las instrucciones if anidadas consisten en instrucciones if, if-else o if-else-if dentro de instrucciones if, if-else o if-else-if.
  • 2.4.A.2 La expresión booleana de la instrucción if anidada interna se evalúa solo si la expresión booleana de la instrucción if externa se evalúa como true.
  • 2.4.A.3 Una selección múltiple (if-else-if) se utiliza cuando hay una serie de expresiones con diferentes segmentos de código para cada condición. La selección múltiple se realiza de tal manera que no se ejecuta más de un segmento de código según la primera expresión que se evalúa como true. Si ninguna expresión se evalúa como true y existe una instrucción trailing else, entonces se ejecuta el cuerpo de la instrucción else.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

Placing an if inside another, or chaining with else if, tests several cases in order. Only the first matching branch runs:

Español

Colocar un if dentro de otro, o encadenar con else if, permite probar varios casos en orden. Solo se ejecuta la rama coincidente primera:

if (g >= 90) grade = 'A';
else if (g >= 80) grade = 'B';
else grade = 'C';
2.5

Compound Boolean Expressions · ⁨Expresiones Booleanas Compuestas⁩

Syllabus
English

Learning Objective 2.5.A: Develop code to represent compound Boolean expressions and determine the result of these expressions.

  • 2.5.A.1 Logical operators ! (not), && (and), and || (or) are used with Boolean expressions. The expression !a evaluates to true if a is false and evaluates to false otherwise. The expression a && b evaluates to true if both a and b are true and evaluates to false otherwise. The expression a || b evaluates to true if a is true, b is true, or both, and evaluates to false otherwise. The order of precedence for evaluating logical operators is ! (not), && (and), then || (or). An expression involving logical operators evaluates to a Boolean value.
  • 2.5.A.2 Short-circuit evaluation occurs when the result of a logical operation using && or || can be determined by evaluating only the first Boolean expression. In this case, the second Boolean expression is not evaluated.
Español

Objetivo de aprendizaje 2.5.A: Desarrollar código para representar expresiones booleanas compuestas y determinar el resultado de estas expresiones.

  • 2.5.A.1 Operadores lógicos ! (negación), && (conjunción) y || (disyunción) se utilizan con expresiones booleanas. La expresión !a se evalúa como true si a es false y se evalúa como false en caso contrario. La expresión a && b se evalúa como true si tanto a como b son true y se evalúa como false en caso contrario. La expresión a || b se evalúa como true si a es true, b es true o ambas lo son, y se evalúa como false en caso contrario. El orden de precedencia para evaluar los operadores lógicos es ! (negación), && (conjunción) y luego || (disyunción). Una expresión que involucra operadores lógicos se evalúa a un valor booleano.
  • 2.5.A.2 La evaluación por cortocircuito ocurre cuando el resultado de una operación lógica utilizando && o || puede determinarse evaluando únicamente la primera expresión booleana. En este caso, la segunda expresión booleana no se evalúa.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English
Short-circuit evaluation

Logical operators 逻辑运算符 combine conditions: && (and – both true), || (or – at least one true), ! (not – reverse). Java uses short-circuit evaluation 短路求值: && stops if the left side is false, and || stops if the left side is true – useful to guard against errors, e.g. if (n != 0 && total / n > 5).

Español
Evaluación de cortocircuito

Los operadores lógicos 逻辑运算符 combinan condiciones: && (y – ambas verdaderas), || (o – al menos una verdadera), ! (no – inverso). Java utiliza evaluación de cortocircuito 短路求值: && se detiene si el lado izquierdo es falso, y || se detiene si el lado izquierdo es verdadero – útil para proteger contra errores, p. ej., if (n != 0 && total / n > 5).

2.6

Comparing Boolean Expressions · ⁨Comparando Expresiones Booleanas⁩

Syllabus
English

Learning Objective 2.6.A: Compare equivalent Boolean expressions.

  • 2.6.A.1 Two Boolean expressions are equivalent if they evaluate to the same value in all cases. Truth tables can be used to prove Boolean expressions are equivalent.
  • 2.6.A.2 De Morgan's law can be applied to Boolean expressions to create equivalent Boolean expressions. Under De Morgan's law, the Boolean expression !(a && b) is equivalent to !a || !b and the Boolean expression !(a || b) is equivalent to !a && !b.

Learning Objective 2.6.B: Develop code to compare object references using Boolean expressions and determine the result of these expressions.

  • 2.6.B.1 Two different variables can hold references to the same object. Object references can be compared using == and !=.
  • 2.6.B.2 An object reference can be compared with null, using == or !=, to determine if the reference actually references an object.
  • 2.6.B.3 Classes often define their own equals method, which can be used to specify the criteria for equivalency for two objects of the class. The equivalency of two objects is most often determined using attributes from the two objects.
    • Exclusion statement: Overriding the equals method is outside the scope of the AP Computer Science A course and exam.
Español

Objetivo de Aprendizaje 2.6.A: Comparar expresiones booleanas equivalentes.

  • 2.6.A.1 Dos expresiones booleanas son equivalentes si evalúan al mismo valor en todos los casos. Las tablas de verdad se pueden utilizar para demostrar que las expresiones booleanas son equivalentes.
  • 2.6.A.2 La ley de De Morgan se puede aplicar a las expresiones booleanas para crear expresiones booleanas equivalentes. Según la ley de De Morgan, la expresión booleana !(a && b) es equivalente a !a || !b y la expresión booleana !(a || b) es equivalente a !a && !b.

Objetivo de Aprendizaje 2.6.B: Desarrollar código para comparar referencias de objetos utilizando expresiones booleanas y determinar el resultado de dichas expresiones.

  • 2.6.B.1 Dos variables diferentes pueden contener referencias al mismo objeto. Las referencias de objeto se pueden comparar utilizando == y !=.
  • 2.6.B.2 Una referencia de objeto se puede comparar con null, utilizando == o !=, para determinar si la referencia realmente apunta a un objeto.
  • 2.6.B.3 Las clases suelen definir su propio método equals, el cual se puede utilizar para especificar los criterios de equivalencia para dos objetos de la clase. La equivalencia de dos objetos se determina más frecuentemente utilizando los atributos de ambos objetos.
    • Afirmación de exclusión: Sobrescribir el método equals está fuera del alcance del curso y del examen de AP Computer Science A.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

De Morgan's laws 德摩根定律 rewrite negations: !(a && b) equals !a || !b, and !(a || b) equals !a && !b. Two boolean expressions are equivalent if they give the same result for every input – a truth table proves it. Simplifying conditions this way is a common exam task.

Español

Las leyes de De Morgan 德摩根定律 reescriben negaciones: !(a && b) es igual a !a || !b, y !(a || b) es igual a !a && !b. Dos expresiones booleanas son equivalentes si dan el mismo resultado para cada entrada; una tabla de verdad lo demuestra. Simplificar condiciones de esta manera es una tarea común en los exámenes.

2.7

while Loops · ⁨Bucle while⁩

Syllabus
English

Learning Objective 2.7.A: Identify when an iterative process is required to achieve a desired result.

  • 2.7.A.1 Iteration is a form of repetition. Iteration statements change the flow of control by repeating a segment of code zero or more times as long as the Boolean expression controlling the loop evaluates to true.
  • 2.7.A.2 An infinite loop occurs when the Boolean expression in an iterative statement always evaluates to true.
  • 2.7.A.3 The loop body of an iterative statement will not execute if the Boolean expression initially evaluates to false.
  • 2.7.A.4 Off by one errors occur when the iteration statement loops one time too many or one time too few.

Learning Objective 2.7.B: Develop code to represent iterative processes using while loops and determine the result of these processes.

  • 2.7.B.1 A while loop is a type of iterative statement. In while loops, the Boolean expression is evaluated before each iteration of the loop body, including the first. When the expression evaluates to true, the loop body is executed. This continues until the Boolean expression evaluates to false, whereupon the iteration terminates.
Español

Objetivo de Aprendizaje 2.7.A: Identificar cuándo se requiere un proceso iterativo para obtener un resultado deseado.

  • 2.7.A.1 La iteración es una forma de repetición. Las sentencias de iteración modifican el flujo de control repitiendo un segmento de código cero o más veces mientras la expresión booleana que controla el bucle sea true.
  • 2.7.A.2 Un bucle infinito ocurre cuando la expresión booleana en una sentencia iterativa siempre evalúa a true.
  • 2.7.A.3 El cuerpo del bucle de una sentencia iterativa no se ejecutará si la expresión booleana evalúa inicialmente a false.
  • 2.7.A.4 Los errores off by one (error de uno) ocurren cuando la sentencia de iteración se ejecuta una vez demasiado o una vez insuficiente.

Objetivo de Aprendizaje 2.7.B: Desarrollar código que represente procesos iterativos utilizando bucles while y determinar el resultado de estos procesos.

  • 2.7.B.1 Un bucle while es un tipo de sentencia iterativa. En los bucles while, la expresión booleana se evalúa antes de cada iteración del cuerpo del bucle, incluida la primera. Cuando la expresión evalúa a true, se ejecuta el cuerpo del bucle. Esto continúa hasta que la expresión booleana evalúa a false, momento en el cual termina la iteración.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

A while loop 循环 repeats while its condition stays true, testing before each pass. You must change something inside so the loop eventually stops, or it becomes an infinite loop 无限循环:

Español

Un bucle while 循环 repite mientras su condición se mantiene verdadera, probándola antes de cada paso. Debe cambiar algo dentro para que el bucle se detenga eventualmente, o se convertirá en un bucle infinito 无限循环:

Los tres tipos de bucles difieren en dónde se prueba la condición
Los tres tipos de bucles difieren en dónde se prueba la condición
int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}
Explore · ⁨Explorar⁩

Rastrear un bucle while

Un bucle while se repite mientras su condición permanezca verdadera, actualizando sus variables en cada pasada. Pase paso a paso para ver cómo se acumula la suma de cuadrados.

2.8

for Loops · ⁨Bucle for⁩

Syllabus
English

Learning Objective 2.8.A: Develop code to represent iterative processes using for loops and determine the result of these processes.

  • 2.8.A.1 A for loop is a type of iterative statement. There are three parts in a for loop header: the initialization, the Boolean expression, and the update.
  • 2.8.A.2 In a for loop, the initialization statement is only executed once before the first Boolean expression evaluation. The variable being initialized is referred to as a loop control variable. The Boolean expression is evaluated immediately after the loop control variable is initialized and then following each execution of the increment statement until it is false. In each iteration, the update is executed after the entire loop body is executed and before the Boolean expression is evaluated again.
  • 2.8.A.3 A for loop can be rewritten into an equivalent while loop (and vice versa).
Español

Objetivo de aprendizaje 2.8.A: Desarrollar código que represente procesos iterativos utilizando bucles for y determinar el resultado de estos procesos.

  • 2.8.A.1 Un bucle for es un tipo de instrucción iterativa. El encabezado de un bucle for tiene tres partes: la inicialización, la expresión booleana y la actualización.
  • 2.8.A.2 En un bucle for, la instrucción de inicialización solo se ejecuta una vez antes de la primera evaluación de la expresión booleana. La variable que se está inicializando se denomina variable de control del bucle. La expresión booleana se evalúa inmediatamente después de inicializar la variable de control del bucle y luego tras cada ejecución de la instrucción de incremento hasta que sea false. En cada iteración, la actualización se ejecuta después de que se completa todo el cuerpo del bucle y antes de evaluar nuevamente la expresión booleana.
  • 2.8.A.3 Un bucle for puede reescribirse como un bucle while equivalente (y viceversa).

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

A for loop packs initialization, condition, and update into one line – best when you know the count:

A for and an equivalent while do the same work; be able to convert between them.

Español

Un bucle for agrupa inicialización, condición y actualización en una sola línea; es ideal cuando se conoce la cantidad:

for (int i = 0; i < n; i++) {
    // runs n times, i = 0..n-1
}

Un for y un while equivalente realizan el mismo trabajo; debe ser capaz de convertir entre ellos.

Una línea de ensamblaje: los bucles repiten un proceso para cada elemento, como for y while
Una línea de ensamblaje: los bucles repiten un proceso para cada elemento, como for y while
Explore · ⁨Explorar⁩

Rastrear un bucle for

Un bucle for se ejecuta un número fijo de veces, avanzando su contador a través de un rango. Observe cómo el contador y el total acumulado avanzan una pasada a la vez.

2.9

Building Complete Selection and Iteration Algorithms · ⁨Construcción de Algoritmos Completos de Selección e Iteración⁩

Syllabus
English

Learning Objective 2.9.A: Develop code for standard and original algorithms (without data structures) and determine the result of these algorithms.

  • 2.9.A.1 There are standard algorithms to:
    • identify if an integer is or is not evenly divisible by another integer
    • identify the individual digits in an integer
    • determine the frequency with which a specific criterion is met
    • determine a minimum or maximum value
    • compute a sum or average
Español

Objetivo de aprendizaje 2.9.A: Desarrollar código para algoritmos estándar y originales (sin estructuras de datos) y determinar el resultado de dichos algoritmos.

  • 2.9.A.1 Existen algoritmos estándar para:
    • identificar si un entero es o no divisible exactamente por otro entero
    • identificar los dígitos individuales de un entero
    • determinar la frecuencia con la que se cumple un criterio específico
    • determinar un valor mínimo o máximo
    • calcular una suma o un promedio

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

Combine loops and conditions to solve real problems – count, sum, find a maximum, or test a property:

Two integer patterns the exam tests directly use % and /. To read the digits of an integer one at a time, repeatedly take n % 10 (the last digit) and then n = n / 10 (drop it). To test divisibility, n % d == 0 means n is evenly divisible by d. Combine them with a counter to find the frequency with which some criterion is met.

Standard patterns like a running total, a counter, or a flag 标志 (a boolean that records whether something happened) recur throughout the course.

Español

Combine bucles y condiciones para resolver problemas reales: contar, sumar, encontrar un máximo o probar una propiedad:

int max = arr[0];
for (int k = 1; k < arr.length; k++) {
    if (arr[k] > max) max = arr[k];
}

Dos patrones de enteros que el examen prueba directamente usan % y /. Para leer los dígitos de un entero uno a la vez, tome repetidamente n % 10 (el último dígito) y luego n = n / 10 (elimínelo). Para probar divisibilidad, n % d == 0 significa que n es divisible exactamente por d. Combínelos con un contador para encontrar la frecuencia con la cual se cumple algún criterio.

Patrones estándar como un total acumulado, un contador o una bandera 标志 (un booleano que registra si ocurrió algo) aparecen a lo largo del curso.

2.10

String Algorithms · ⁨Algoritmos de Cadenas⁩

Syllabus
English

Learning Objective 2.10.A: Develop code for standard and original algorithms that involve strings and determine the result of these algorithms.

  • 2.10.A.1 There are standard string algorithms to:
    • find if one or more substrings have a particular property
    • determine the number of substrings that meet specific criteria
    • create a new string with the characters reversed
Español

Objetivo de Aprendizaje 2.10.A: Desarrollar código para algoritmos estándar y originales que involucran cadenas y determinar el resultado de estos algoritmos.

  • 2.10.A.1 Existen algoritmos estándar de cadenas para:
    • encontrar si uno o más subcadenas tienen una propiedad particular
    • determinar la cantidad de subcadenas que cumplen criterios específicos
    • crear una nueva cadena con los caracteres invertidos

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

Loop through a string by index to process each character:

Typical tasks: count occurrences, build a reversed or filtered copy, or test whether one string contains another.

Español

Recorra una cadena por índice para procesar cada carácter:

for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    // count vowels, reverse, check for a substring, ...
}

Tareas típicas: contar ocurrencias, construir una copia invertida o filtrada, o probar si una cadena contiene otra.

2.11

Nested Iteration · ⁨Iteración Anidada⁩

Syllabus
English

Learning Objective 2.11.A: Develop code to represent nested iterative processes and determine the result of these processes.

  • 2.11.A.1 Nested iteration statements are iteration statements that appear in the body of another iteration statement. When a loop is nested inside another loop, the inner loop must complete all its iterations before the outer loop can continue to its next iteration.
Español

Objetivo de Aprendizaje 2.11.A: Desarrollar código para representar procesos iterativos anidados y determinar el resultado de estos procesos.

  • 2.11.A.1 Las instrucciones de iteración anidadas son instrucciones de iteración que aparecen en el cuerpo de otra instrucción de iteración. Cuando un bucle está anidado dentro de otro bucle, el bucle interno debe completar todas sus iteraciones antes de que el bucle externo pueda continuar con su siguiente iteración.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English

A nested loop 嵌套循环 puts one loop inside another; the inner loop completes fully for each pass of the outer. If the outer runs $n$ times and the inner $m$ times, the body runs $n\times m$ times – the basis for processing grids and comparing all pairs.

Español

Un bucle anidado 嵌套循环 coloca un bucle dentro de otro; el bucle interno se completa completamente para cada paso del externo. Si el externo se ejecuta $n$ veces y el interno $m$ veces, el cuerpo se ejecuta $n\times m$ veces; esto es la base para procesar cuadrículas y comparar todos los pares.

2.12

Informal Run-Time Analysis · ⁨Análisis Informal del Tiempo de Ejecución⁩

Syllabus
English

Learning Objective 2.12.A: Calculate statement execution counts and informal run-time comparison of iterative statements.

  • 2.12.A.1 A statement execution count indicates the number of times a statement is executed by the program. Statement execution counts are often calculated informally through tracing and analysis of the iterative statements.
Español

Objetivo de aprendizaje 2.12.A: Calcular el conteo de ejecuciones de sentencias y la comparación informal del tiempo de ejecución de sentencias iterativas.

  • 2.12.A.1 Un conteo de ejecuciones de sentencias indica el número de veces que una sentencia es ejecutada por el programa. Los conteos de ejecuciones de sentencias a menudo se calculan de forma informal mediante trazado y análisis de las sentencias iterativas.

Source: College Board AP Course and Exam Description · ⁨Fuente: College Board AP Course and Exam Description⁩

English
Big-O growth rates

Run-time analysis 运行时间分析 counts how many basic steps an algorithm takes as the input size $n$ grows. Count the executions of the innermost statement: a single loop over $n$ items is linear ($n$ steps); two nested loops over $n$ are quadratic ($n^2$). This informal counting lets you compare two algorithms' efficiency.

Exam skill: for a nested loop, be able to state how many times the inner statement runs in terms of the loop bounds – a frequent multiple-choice question.

Worked example. How many stars does this print?

The inner loop runs i times for each outer i: 0 + 1 + 2 + 3 = 6 stars. When the inner bound is the outer variable, the total is the triangular sum $0+1+\dots+(n-1)=\dfrac{n(n-1)}{2}$ – here $\dfrac{4\times3}{2}=6$ – not the full $n^2=16$ of a rectangular nested loop.

Español
Tasas de crecimiento Big-O

El análisis del tiempo de ejecución 运行时间分析 cuenta cuántos pasos básicos toma un algoritmo a medida que crece el tamaño de la entrada $n$. Cuente las ejecuciones de la declaración más interna: un solo bucle sobre $n$ elementos es lineal ($n$ pasos); dos bucles anidados sobre $n$ son cuadráticos ($n^2$). Este conteo informal le permite comparar la eficiencia de dos algoritmos.

Cómo crece el tiempo de ejecución con el número de elementos n
Cómo crece el tiempo de ejecución con el número de elementos n

Habilidad de examen: para un bucle anidado, sea capaz de indicar cuántas veces se ejecuta la declaración interna en función de los límites de los bucles; es una pregunta de opción múltiple frecuente.

Ejemplo resuelto. ¿Cuántas estrellas imprime este código?

for (int i = 0; i < 4; i++)
    for (int j = 0; j < i; j++)
        System.out.print("*");

El bucle interno se ejecuta i veces para cada i externo: 0 + 1 + 2 + 3 = 6 estrellas. Cuando el límite interno es la variable externa, el total es la suma triangular $0+1+\dots+(n-1)=\dfrac{n(n-1)}{2}$; aquí $\dfrac{4\times3}{2}=6$, no los $n^2=16$ completos de un bucle anidado rectangular.

Explore · ⁨Explorar⁩

Comparar cómo escalan los algoritmos

Tiempo de ejecución describe cómo crece el número de pasos con el tamaño de entrada $n$. Aumente $n$ y observe cómo una complejidad lineal $O(n)$ supera ampliamente a una cuadrática $O(n^2)$.

2.12

Exam tips · ⁨Consejos para el examen⁩

English
  • Get boundary conditions right: use < vs <= deliberately, and watch the first and last iteration of every loop (off-by-one is the classic bug).
  • Build compound conditions with &&, ||, ! and remember short-circuit evaluation (put the null check first).
  • Trace nested loops by counting how many times the inner body runs in total.
  • Choose the right structure — if/else if for ranges, a loop for repetition — and avoid an infinite loop by updating the loop variable.
  • Apply De Morgan's laws when you simplify or negate a boolean condition.
Español
  • Establezca correctamente las condiciones de contorno: use < vs <= deliberadamente, y vigile la primera y última iteración de cada bucle (el error clásico es off-by-one).
  • Construya condiciones compuestas con &&, ||, ! y recuerde la evaluación de cortocircuito (coloque la comprobación de nulo primero).
  • Realice trazados de bucles anidados contando cuántas veces se ejecuta el cuerpo interno en total.
  • Elija la estructura adecuada: if/else if para rangos, un bucle para repeticiones; evite un bucle infinito actualizando la variable del bucle.
  • Aplique las leyes de De Morgan cuando simplifique o niegue una condición booleana.

Interactive lessons on this topic · ⁨Lecciones interactivas sobre este tema⁩

Work through it step by step, with instant-check exercises. · ⁨Trátalo paso a paso, con ejercicios de verificación instantánea.⁩

Past Papers · ⁨Exámenes Anteriores⁩

More topics in AP Ciencias de la Computación A · ⁨Más temas en AP Ciencias de la Computación A⁩

Log in or create account · ⁨Iniciar sesión o crear cuenta⁩

IGCSE, A-Level & AP