Le code ci-dessous utilise la pseudocode AP CSP — la référence neutre linguistique de l'examen. L'affectation s'écrit a ← expression, et les indices de liste commencent à 1.
Algorithmes et programmation
AP Principes de l'informatique · Sujet 3
9:17
Algorithmes et programmation
Imaginez un annuaire contenant un million de noms, et vous devez en trouver un. Vérifiez-les un par un, et vous pourriez y passer toute la journée. Il existe un moyen de le trouver en environ…
Narration en anglais · Sous-titres anglais + 中文 incrustés
3.1
Variables et affectations
Programme
Compréhension durable (AAP-1) : Pour trouver des solutions spécifiques à des problèmes généralisables, les programmeurs représentent et organisent les données de multiples façons.
Objectif d'apprentissage AAP-1.A : Représenter une valeur avec une variable. [Compétence 3.A]
- AAP-1.A.1 Une variable est une abstraction à l'intérieur d'un programme qui peut contenir une valeur. Chaque variable possède un espace de stockage associé représentant une seule valeur à la fois, mais cette valeur peut être une liste ou une autre collection contenant elle-même plusieurs valeurs.
- AAP-1.A.2 L'utilisation de noms de variables significatifs facilite la lisibilité du code du programme et la compréhension des valeurs représentées par les variables.
- AAP-1.A.3 Certains langages de programmation fournissent des types pour représenter les données, auxquels on accède via des variables. Ces types incluent les nombres, les booléens, les listes et les chaînes de caractères.
- AAP-1.A.4 Certaines valeurs sont mieux adaptées à la représentation avec un type de donnée particulier plutôt qu'avec un autre.
Objectif d'apprentissage AAP-1.B : Déterminer la valeur d'une variable en résultat d'une affectation. [Compétence 4.B]
-
AAP-1.B.1 L'opérateur d'affectation permet à un programme de modifier la valeur représentée par une variable.
-
AAP-1.B.2 La feuille de référence de l'examen fournit l'opérateur "$\leftarrow$" à utiliser pour l'affectation. Par exemple,
Texte :
a ← expressionBloc :
a ← expressionévalue
expressionpuis attribue une copie du résultat à la variablea. -
AAP-1.B.3 La valeur stockée dans une variable sera la dernière valeur assignée. Par exemple :
a ← 1b ← aa ← 2display(b)affiche toujours
1.
Source : Description du cours et de l'examen AP College Board
Une variable 变量 est un emplacement nommé contenant une valeur. L'opérateur d'affectation 赋值 stocke la valeur de droite dans la variable de gauche :

a ← 5
b ← a + 3 // b is now 8
Une variable contient une seule valeur à la fois ; une nouvelle affectation la remplace. Les variables permettent à un programme de stocker une entrée, de mémoriser des résultats et de les réutiliser.
Observer une variable conserver et changer sa valeur
Une variable est une boîte nommée qui stocke une valeur à la fois. Une affectation copie une valeur dans la boîte ; affecter à nouveau écrase ce qui s'y trouvait.
| Anglais | Chinois | Pinyin |
|---|---|---|
| variable/ˈveərɪəbl/ | 变量 | biàn liàng |
| assignment/əˈsaɪnmənt/ | 赋值 | fù zhí |
| Data abstraction/ˈdeɪtə əbˈstrækʃn/ | 数据抽象 | shù jù chōu xiàng |
| remainder/rɪˈmeɪndə/ | 余数 | yú shù |
| string/strɪŋ/ | 字符串 | zì fú chuàn |
| concatenation/kənˌkætəˈneɪʃn/ | 拼接 | pīn jiē |
| Boolean expression/ˈbuːlɪən ekˈspreʃn/ | 布尔表达式 | bù ěr biǎo dá shì |
| conditional (selection)/kənˈdɪʃənl/ | 条件语句 | tiáo jiàn yǔ jù |
| nested conditional/ˈnestɪd kənˈdɪʃənl/ | 嵌套条件 | qiàn tào tiáo jiàn |
| Iteration (a loop)/ˌɪtəˈreɪʃn/ | 迭代 | dié dài |
| infinite loop/ˈɪnfɪnət luːp/ | 无限循环 | wú xiàn xún huán |
3.2
Abstraction de données
Programme
Compréhension durable (AAP-1) : Pour trouver des solutions spécifiques à des problèmes généralisables, les programmeurs représentent et organisent les données de multiples façons.
Objectif d'apprentissage AAP-1.C : Représenter une liste ou une chaîne de caractères à l'aide d'une variable. [Compétence 3.A]
-
AAP-1.C.1 Une liste est une séquence ordonnée d'éléments. Par exemple,
[value1, value2, value3, ...]décrit une liste où
value1est le premier élément,value2est le deuxième élément,value3est le troisième élément, et ainsi de suite. -
AAP-1.C.2 Un élément est une valeur individuelle dans une liste qui se voit attribuer un index unique.
-
AAP-1.C.3 Un index est une méthode courante pour référencer les éléments d'une liste ou d'une chaîne de caractères à l'aide de nombres naturels.
-
AAP-1.C.4 Une chaîne de caractères est une séquence ordonnée de caractères.
Objectif d'apprentissage AAP-1.D : Pour l'abstraction de données : a. Développer une abstraction de données en utilisant des listes pour stocker plusieurs éléments. [Compétence 3.B] b. Expliquer comment l'utilisation de l'abstraction de données gère la complexité dans le code du programme. [Compétence 3.C]
-
AAP-1.D.1 L'abstraction de données fournit une séparation entre les propriétés abstraites d'un type de données et les détails concrets de sa représentation.
-
AAP-1.D.2 Les abstractions de données gèrent la complexité des programmes en donnant un nom à un ensemble de données sans faire référence aux détails spécifiques de la représentation.
-
AAP-1.D.3 Les abstractions de données peuvent être créées à l'aide de listes.
-
AAP-1.D.4 Le développement d'une abstraction de données à implémenter dans un programme peut entraîner un programme plus facile à développer et à maintenir.
-
AAP-1.D.5 Les abstractions de données contiennent souvent différents types d'éléments.
-
AAP-1.D.6 L'utilisation de listes permet de traiter plusieurs éléments apparents comme une seule valeur. Les listes sont désignées par différents noms, tels que tableau, selon le langage de programmation.
- Énoncé d'exclusion (EK AAP-1.D.6) : L'utilisation de listes chaînées est hors du champ de ce cours et de l'examen AP.
-
AAP-1.D.7 La feuille de référence de l'examen fournit la notation
[value1, value2, value3, ...]pour créer une liste avec ces valeurs comme premier, deuxième, troisième, etc. éléments. Par exemple,
-
Texte :
aList ← [value1, value2, value3, ...]Bloc :
aList ← value1, value2, value3crée une nouvelle liste contenant les valeurs
value1,value2,value3et...aux indices1,2,3et...respectivement et l'attribue àaList. -
Texte :
aList ← []Bloc :
aList ←(vide)crée une nouvelle liste vide et l'attribue à
aList. -
Texte :
aList ← bListBloc :
aList ← bListattribue une copie de la liste
bListà la listeaList. Par exemple, sibListcontient[20, 40, 60], alorsaListcontiendra également[20, 40, 60]après l'attribution.
-
-
AAP-1.D.8 La feuille de référence de l'examen décrit une structure de liste dont les valeurs d'index vont de 1 au nombre d'éléments de la liste, inclus. Pour toutes les opérations de liste, si un index de liste est inférieur à 1 ou supérieur à la longueur de la liste, un message d'erreur est produit et le programme se termine.
Source : Description du cours et de l'examen AP College Board
L'abstraction de données 数据抽象 permet de gérer la complexité en donnant un seul nom à un ensemble de données — par exemple, une liste plutôt que des dizaines de variables séparées. Elle cache les détails : vous utilisez la collection nommée sans vous soucier de son stockage. Les listes (ci-dessous) constituent l'abstraction de données principale du cours.
3.3
Expressions mathématiques
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.A : Exprimer un algorithme utilisant la séquence sans utiliser un langage de programmation. [Compétence 2.A]
- AAP-2.A.1 Un algorithme est un ensemble fini d'instructions accomplissant une tâche spécifique.
- AAP-2.A.2 Au-delà des langages de programmation visuels et textuels, les algorithmes peuvent être exprimés de diverses manières, telles que le langage naturel, les diagrammes et le pseudocode.
- AAP-2.A.3 Les algorithmes exécutés par des programmes sont implémentés à l'aide de langages de programmation.
- AAP-2.A.4 Tout algorithme peut être construit à l'aide de combinaisons de séquence, de sélection et d'itération.
Objectif d'apprentissage AAP-2.B : Représenter un processus algorithmique étape par étape à l'aide d'instructions de code séquentielles. [Compétence 2.B]
- AAP-2.B.1 La séquence est l'application de chaque étape d'un algorithme dans l'ordre dans lequel les instructions de code sont données.
- AAP-2.B.2 Une instruction de code est une partie du code d'un programme qui exprime une action à effectuer.
- AAP-2.B.3 Une expression peut consister en une valeur, une variable, un opérateur ou un appel de procédure retournant une valeur.
- AAP-2.B.4 Les expressions sont évaluées pour produire une seule valeur.
- AAP-2.B.5 L'évaluation des expressions suit un ordre d'opérations défini par le langage de programmation.
- AAP-2.B.6 Les instructions séquentielles s'exécutent dans l'ordre dans lequel elles apparaissent dans le segment de code.
- AAP-2.B.7 La clarté et la lisibilité sont des considérations importantes lors de l'expression d'un algorithme dans un langage de programmation.
Objectif d'apprentissage AAP-2.C : Évaluer des expressions utilisant des opérateurs arithmétiques. [Compétence 4.B]
-
AAP-2.C.1 Les opérateurs arithmétiques font partie de la plupart des langages de programmation et comprennent les opérateurs d'addition, de soustraction, de multiplication, de division et de module.
-
AAP-2.C.2 La feuille de référence de l'examen fournit
a MOD b, qui évalue au reste de la division deaparb. On suppose queaest un entier supérieur ou égal à0et quebest un entier supérieur à0. Par exemple,17 MOD 5évalue à2. -
AAP-2.C.3 La feuille de référence de l'examen fournit les opérateurs arithmétiques
+,-,*,/etMOD.Texte et Bloc :
a + ba - ba * ba / ba MOD b
Ceux-ci sont utilisés pour effectuer des opérations arithmétiques sur
aetb. Par exemple,17 / 5évalue à3.4. -
AAP-2.C.4 L'ordre des opérations utilisé en mathématiques s'applique lors de l'évaluation des expressions. L'opérateur
MODa la même priorité que les opérateurs*et/.
Source : Description du cours et de l'examen AP College Board
Les programmes calculent avec les opérateurs +, -, *, /, et MOD (le reste d'une division, par ex. 17 MOD 5 est 2). Les expressions suivent l'ordre habituel des opérations. MOD est particulièrement utile pour tester la divisibilité (n MOD 2 = 0 signifie que n est pair) et pour faire boucler les valeurs autour d'une plage.
Évaluer une expression étape par étape
Une expression est évaluée selon l'ordre des opérations : la multiplication et la division se font avant l'addition et la soustraction, de gauche à droite.
3.4
Chaînes (Strings)
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.D : Évaluer des expressions manipulant des chaînes de caractères. [Compétence 4.B]
- AAP-2.D.1 La concaténation de chaînes joint deux chaînes ou plus bout à bout pour former une nouvelle chaîne.
- AAP-2.D.2 Un sous-chaine (substring) est une partie d'une chaîne existante.
Source : Description du cours et de l'examen AP College Board
Une chaîne de caractères 字符串 est une séquence ordonnée de caractères, comme "hello". Les programmes joignent des chaînes (concaténation 拼接) et trouvent leur longueur. Les chaînes représentent du texte — noms, messages, séquences — et constituent une entrée/sortie courante des programmes.
3.5
Expressions booléennes
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.E : Pour les relations entre deux variables, expressions ou valeurs : a. Écrire des expressions utilisant des opérateurs relationnels. [Compétence 2.B] b. Évaluer des expressions utilisant des opérateurs relationnels. [Compétence 4.B]
-
AAP-2.E.1 Une valeur booléenne est soit vraie, soit fausse.
-
AAP-2.E.2 La feuille de référence de l'examen fournit les opérateurs relationnels suivants :
=,≠,>,<,≥et≤.Texte et Bloc :
a = ba ≠ ba > ba < ba ≥ ba ≤ b
Ceux-ci sont utilisés pour tester la relation entre deux variables, expressions ou valeurs. Une comparaison utilisant un opérateur relationnel évalue à une valeur booléenne. Par exemple,
a = bévalue àtruesiaetbsont égaux ; sinon, il évalue àfalse.
Objectif d'apprentissage AAP-2.F : Pour les relations entre des valeurs booléennes : a. Écrire des expressions utilisant des opérateurs logiques. [Compétence 2.B] b. Évaluer des expressions utilisant des opérateurs logiques. [Compétence 4.B]
-
AAP-2.F.1 La feuille de référence de l'examen fournit les opérateurs logiques
NOT,ANDetOR, qui évaluent à une valeur booléenne. -
AAP-2.F.2 La feuille de référence de l'examen fournit
Texte :
NOT conditionBloc :
NOT conditionqui évalue à
truesiconditionestfalse; sinon il évalue àfalse. -
AAP-2.F.3 La feuille de référence de l'examen fournit
Texte :
condition1 AND condition2Bloc :
condition1 AND condition2qui évalue à
truesi tantcondition1quecondition2sonttrue; sinon, elle évalue àfalse. -
AAP-2.F.4 La feuille de référence de l'examen fournit
Texte :
condition1 OR condition2Bloc :
condition1 OR condition2qui évalue à
truesicondition1esttrueou sicondition2esttrueou si tantcondition1quecondition2sonttrue; sinon, elle évalue àfalse. -
AAP-2.F.5 L'opérande d'un opérateur logique est soit une expression booléenne, soit une valeur booléenne unique.
Source : Description du cours et de l'examen AP College Board
Une expression booléenne évalue à true ou false. Elle utilise des opérateurs relationnels (=, ≠, <, >, ≤, ≥) et des opérateurs logiques NOT, AND, OR :

NOTinverse une valeur,ANDest vrai uniquement lorsque les deux côtés sont vrais,ORest vrai quand au moins un côté est vrai.
Ces conditions guident chaque décision et boucle.
Essayer la table de vérité OU
Une expression booléenne est soit vraie (1) soit fausse (0). OU est vrai lorsque au moins une entrée est vraie ; inversez les entrées pour voir tous les cas.
3.6
Conditionnelles
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.G : Exprimer un algorithme utilisant la sélection sans utiliser de langage de programmation. [Compétence 2.A]
- AAP-2.G.1 La sélection détermine quelles parties d'un algorithme sont exécutées selon qu'une condition est
trueoufalse.
Objectif d'apprentissage AAP-2.H : Pour la sélection : a. Écrire des instructions conditionnelles. [Compétence 2.B] b. Déterminer le résultat des instructions conditionnelles. [Compétence 4.B]
-
AAP-2.H.1 Les instructions conditionnelles, ou « instructions if », modifient le flux séquentiel du contrôle en exécutant différentes instructions selon la valeur d'une expression booléenne.
-
AAP-2.H.2 La feuille de référence de l'examen fournit
Texte :
IF(condition){<block of statements>}Bloc :
IF conditionblock of statementsdans lequel le code dans
block of statementsest exécuté si l'expression booléenneconditionévalue àtrue; aucune action n'est prise siconditionévalue àfalse. -
AAP-2.H.3 La feuille de référence de l'examen fournit
Texte :
IF(condition){<first block of statements>}ELSE{<second block of statements>}Bloc :
IF conditionfirst block of statementsELSEsecond block of statementsdans lequel le code dans
first block of statementsest exécuté si l'expression booléenneconditionévalue àtrue; sinon, le code danssecond block of statementsest exécuté.
Source : Description du cours et de l'examen AP College Board
Une conditionnelle (sélection) 条件语句 choisit quel code exécuter. IF exécute un bloc uniquement si sa condition est vraie ; ELSE fournit une alternative :

IF (score ≥ 60)
{
DISPLAY("Pass")
}
ELSE
{
DISPLAY("Fail")
}
Suivre une décision si / sinon
Une conditionnelle exécute une branche ou l'autre selon que sa condition est vraie. Faites glisser la valeur au-delà du seuil et observez quelle branche est prise.
3.7
Conditionnelles imbriquées
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.I : Pour la sélection imbriquée : a. Écrire des instructions conditionnelles imbriquées. [Compétence 2.B] b. Déterminer le résultat des instructions conditionnelles imbriquées. [Compétence 4.B]
- AAP-2.I.1 Les instructions conditionnelles imbriquées consistent en des instructions conditionnelles situées à l'intérieur d'autres instructions conditionnelles.
Source : Description du cours et de l'examen AP College Board
Une condition imbriquée place une IF à l'intérieur d'une autre (ou enchaîne ELSE IF) pour choisir parmi plus de deux chemins. Seul le premier branchement correspondant s'exécute :
IF (g ≥ 90) { grade ← "A" }
ELSE IF (g ≥ 80) { grade ← "B" }
ELSE { grade ← "C" }
3.8
Itération
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.J : Exprimer un algorithme utilisant l'itération sans utiliser de langage de programmation. [Compétence 2.A]
- AAP-2.J.1 L'itération est une portion répétitive d'un algorithme. L'itération répète un nombre spécifié de fois ou jusqu'à ce qu'une condition donnée soit remplie.
Objectif d'apprentissage AAP-2.K : Pour l'itération : a. Écrire des instructions d'itération. [Compétence 2.B] b. Déterminer le résultat ou l'effet secondaire des instructions d'itération. [Compétence 4.B]
-
AAP-2.K.1 Les instructions d'itération modifient le flux séquentiel du contrôle en répétant un ensemble d'instructions zéro ou plusieurs fois, jusqu'à ce qu'une condition d'arrêt soit rencontrée.
-
AAP-2.K.2 La feuille de référence de l'examen fournit
Texte :
REPEAT n TIMES{<block of statements>}Bloc :
REPEAT n TIMESblock of statementsdans lequel la
block of statementsest exécutéenfois. -
AAP-2.K.3 La feuille de référence de l'examen fournit
Texte :
REPEAT UNTIL(condition){<block of statements>}Bloc :
REPEAT UNTIL conditionblock of statementsdans lequel le code dans
block of statementsest répété jusqu'à ce que l'expression booléenneconditionévalue àtrue. -
AAP-2.K.4 Dans l'itération
REPEAT UNTIL(condition), une boucle infinie se produit lorsque la condition de fin n'évaluera jamais àtrue. -
AAP-2.K.5 Dans l'itération
REPEAT UNTIL(condition), si la condition évalue initialement àtrue, le corps de la boucle n'est pas exécuté du tout, car la condition est vérifiée avant la boucle.
Source : Description du cours et de l'examen AP College Board
Itération (boucle) 迭代 répète des instructions. La pseudocode AP possède deux formes :

REPEAT 5 TIMES // a fixed count
{
DISPLAY("hi")
}
REPEAT UNTIL (found) // until a condition becomes true
{
...
}
Une boucle qui ne rencontre jamais sa condition d'arrêt est une boucle infinie 无限循环.
Parcourir une boucle un passage à la fois
Une boucle répète un bloc tant que son compteur parcourt une plage. Passez étape par étape pour voir le compteur et le total cumulé se mettre à jour à chaque passage.
3.9
Développement d'algorithmes
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.L : Comparer plusieurs algorithmes pour déterminer s'ils produisent le même effet secondaire ou le même résultat. [Compétence 1.D]
- AAP-2.L.1 Les algorithmes peuvent être écrits de différentes manières tout en accomplissant les mêmes tâches.
- AAP-2.L.2 Des algorithmes qui semblent similaires peuvent produire des effets secondaires ou des résultats différents.
- AAP-2.L.3 Certaines instructions conditionnelles peuvent être écrites sous forme d'expressions booléennes équivalentes.
- AAP-2.L.4 Certaines expressions booléennes peuvent être écrites sous forme d'instructions conditionnelles équivalentes.
- AAP-2.L.5 Différents algorithmes peuvent être développés ou utilisés pour résoudre le même problème.
Objectif d'apprentissage AAP-2.M : Pour les algorithmes : a. Créer des algorithmes. [Compétence 2.A] b. Combiner et modifier des algorithmes existants. [Compétence 2.B]
- AAP-2.M.1 Les algorithmes peuvent être créés à partir d'une idée, en combinant des algorithmes existants, ou en modifiant des algorithmes existants.
- AAP-2.M.2 La connaissance d'algorithmes existants peut aider à en construire de nouveaux. Certains algorithmes existants incluent :
- déterminer la valeur maximale ou minimale de deux nombres ou plus
- calculer la somme ou la moyenne de deux nombres ou plus
- identifier si un entier est ou n'est pas divisible par un autre entier
- déterminer le parcours d'un robot à travers un labyrinthe
- AAP-2.M.3 L'utilisation d'algorithmes existants corrects comme briques de construction pour en créer un autre présente des avantages tels que la réduction du temps de développement, la réduction des tests et la simplification de l'identification des erreurs.
Source : Description du cours et de l'examen AP College Board

Un algorithme n'est pas la même chose qu'un code. Au-delà des langages de programmation visuels et textuels, un algorithme peut s'exprimer de nombreuses façons : en langage naturel (phrases courantes), sous forme de diagramme tel qu'un organigramme, ou en pseudocode. Ces formes sont destinées aux humains — elles permettent de vérifier la logique et de s'y accorder avant tout choix de langage, et le même algorithme peut ensuite être écrit dans n'importe quelle langue.
Lorsque vous l'écrivez en langage de programmation, la clarté et la lisibilité sont des considérations importantes, pas une décoration : des noms de variables significatifs, un retrait cohérent et des commentaires expliquant le pourquoi plutôt que le quoi. Le programme devra être lu et modifié plus tard par quelqu'un — souvent vous-même — et un algorithme que personne ne peut suivre ne peut être maintenu ni débogué.
Un algorithme 算法 est une séquence finie d'étapes qui résout un problème, construite à partir de séquencement, sélection et itération. Différents algorithmes peuvent résoudre le même problème, et vous devriez pouvoir combiner et modifier des algorithmes existants (par exemple, compter les valeurs dans une liste qui répondent à une condition, ou trouver la plus grande). Tracez un algorithme à la main pour vérifier qu'il est correct.

| Anglais | Chinois | Pinyin |
|---|---|---|
| algorithm/ˈælɡərɪθəm/ | 算法 | suàn fǎ |
3.10
Listes
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.N : Pour les opérations sur les listes : a. Écrire des expressions utilisant l'indexation de liste et les procédures de liste. [Compétence 2.B] b. Évaluer des expressions utilisant l'indexation de liste et les procédures de liste. [Compétence 4.B]
- AAP-2.N.1 La feuille de référence de l'examen fournit les opérations de base sur les listes, y compris :
-
accéder à un élément par son index
Texte :
aList[i]Bloc :
aList iaccède à l'élément de
aListà l'indexi. Le premier élément deaListest à l'index1et est accèsé à l'aide de la notationaList[1]. -
attribuer la valeur d'un élément de liste à une variable
Texte :
x ← aList[i]Bloc :
x ← aList iattribue la valeur de
aList[i]à la variablex. -
attribuer une valeur à un élément de liste
Texte :
aList[i] ← xBloc :
aList i ← xattribue la valeur de
xàaList[i].Texte :
aList[i] ← aList[j]Bloc :
aList i ← aList jattribue la valeur de
aList[j]àaList[i]. -
insérer des éléments à un index donné
Texte :
INSERT(aList, i, value)Bloc :
INSERT aList, i, valuedécale vers la droite toutes les valeurs dans
aListaux indices supérieurs ou égaux ài. La longueur de la liste augmente de 1, etvalueest placé à l'indexidansaList. -
ajouter des éléments à la fin de la liste
Texte :
APPEND(aList, value)Bloc :
APPEND aList, valueaugmente la longueur de
aListde 1, etvalueest placé à la fin deaList. -
supprimer des éléments
Texte :
REMOVE(aList, i)Bloc :
REMOVE aList, isupprime l'élément à l'index
idansaListet décale vers la gauche toute valeur aux indices supérieurs ài. La longueur deaListdiminue de 1. -
déterminer la longueur d'une liste
Texte :
LENGTH(aList)Bloc :
LENGTH aListévalue au nombre d'éléments actuellement présents dans
aList.
-
- AAP-2.N.2 Les procédures de liste sont implémentées conformément aux règles de syntaxe du langage de programmation.
Objectif d'apprentissage AAP-2.O : Pour les algorithmes impliquant des éléments d'une liste : a. Écrire des instructions d'itération pour parcourir une liste. [Compétence 2.B] b. Déterminer le résultat d'un algorithme incluant des traversées de liste. [Compétence 4.B]
-
AAP-2.O.1 Parcourir une liste peut être une traversée complète, où tous les éléments de la liste sont accédés, ou une traversée partielle, où seule une portion des éléments est accédée.
- Énoncé d'exclusion (EK AAP-2.O.1) : Parcourir plusieurs listes simultanément en utilisant le même index pour les deux (traversées parallèles) est hors du champ de ce cours et de l'examen AP.
-
AAP-2.O.2 Les instructions d'itération peuvent être utilisées pour parcourir une liste.
-
AAP-2.O.3 La feuille de référence de l'examen fournit
Texte :
FOR EACH item IN aList{<block of statements>}Bloc :
FOR EACH item IN aListblock of statementsLa variable
itemse voit attribuer la valeur de chaque élément deaListséquentiellement, dans l'ordre, du premier élément au dernier. Le code dansblock of statementss'exécute une fois pour chaque attribution deitem. -
AAP-2.O.4 La connaissance d'algorithmes existants utilisant l'itération peut aider à construire de nouveaux algorithmes. Certains exemples d'algorithmes existants souvent utilisés avec les listes incluent :
- déterminer une valeur minimale ou maximale dans une liste
- calculer une somme ou une moyenne d'une liste de nombres
-
AAP-2.O.5 Les algorithmes de recherche linéaire ou séquentielle vérifient chaque élément d'une liste, dans l'ordre, jusqu'à ce que la valeur souhaitée soit trouvée ou que tous les éléments aient été vérifiés.
Source : Description du cours et de l'examen AP College Board
Une liste 列表 est une collection ordonnée de valeurs sous un seul nom, l'abstraction de données clé du cours. La pseudo-code AP utilise des indices commençant à 1 :

scores ← [88, 74, 95]
DISPLAY(scores[1]) // 88
scores[2] ← 80 // replace the 2nd value
APPEND(scores, 60) // add to the end
INSERT(scores, 1, 100) // insert at index 1
REMOVE(scores, 3) // delete the 3rd element
LENGTH(scores) // how many elements
Parcourez une liste avec une boucle pour additionner, compter, chercher ou trouver un maximum :
FOR EACH x IN scores
{
total ← total + x
}
| Anglais | Chinois | Pinyin |
|---|---|---|
| list/lɪst/ | 列表 | liè biǎo |
3.11
Recherche Binaire
Programme
Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.
Objectif d'apprentissage AAP-2.P : Pour les algorithmes de recherche binaire : a. Déterminer le nombre d'itérations nécessaires pour trouver une valeur dans un jeu de données. [Compétence 1.D] b. Expliquer les conditions nécessaires pour effectuer une recherche binaire. [Compétence 1.A]
- AAP-2.P.1 L'algorithme de recherche binaire commence au milieu d'un ensemble de données numérotées trié et élimine la moitié des données ; ce processus se répète jusqu'à ce que la valeur souhaitée soit trouvée ou que tous les éléments aient été éliminés.
- Énoncé d'exclusion (EK AAP-2.P.1) : Des implémentations spécifiques de la recherche binaire sont hors du champ du cours et de l'examen AP.
- AAP-2.P.2 Les données doivent être triées pour utiliser l'algorithme de recherche binaire.
- AAP-2.P.3 La recherche binaire est souvent plus efficace que la recherche séquentielle/linéaire lorsqu'elle est appliquée à des données triées.
Source : Description du cours et de l'examen AP College Board

La recherche binaire trouve une valeur dans une liste triée beaucoup plus vite que vérifier chaque élément. Elle examine l'élément central, puis rejette la moitié qui ne peut pas contenir la cible, répétant jusqu'à ce qu'elle soit trouvée. Chaque étape divise par deux l'espace de recherche, donc une liste de $n$ éléments prend environ $\log_2 n$ étapes. Elle nécessite que les données soient triées au préalable.

Exemple résolu. La recherche d'une valeur dans une liste triée de $8$ éléments, la recherche binaire divise la plage à chaque étape : $8\rightarrow4\rightarrow2\rightarrow1$, au plus $3$ comparaisons ($\log_2 8=3$), alors qu'une recherche linéaire pourrait prendre jusqu'à $8$. L'avantage croît exponentiellement : environ $1{,}000$ éléments n'ont besoin que de $\approx10$ étapes de recherche binaire (mais jusqu'à $1{,}000$ pour une recherche linéaire), et $1{,}000{,}000$ éléments n'ont besoin que de $\approx20$. Diviser par deux est ce qui en fait un algorithme de temps raisonnable.
| Anglais | Chinois | Pinyin |
|---|---|---|
| Binary search/ˈbaɪnəri sɜːtʃ/ | 二分搜索 | èr fēn sōu suǒ |
3.12
Appels de Procédures
Programme
Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.
Objectif d'apprentissage AAP-3.A : Pour les appels de procédures : a. Écrire des instructions pour appeler des procédures. [Compétence 3.B] b. Déterminer le résultat ou l'effet d'un appel de procédure. [Compétence 4.B]
-
AAP-3.A.1 Une procédure est un groupe nommé d'instructions de programmation pouvant avoir des paramètres et des valeurs de retour.
-
AAP-3.A.2 Les procédures sont désignées par différents noms, comme méthode ou fonction, selon le langage de programmation.
-
AAP-3.A.3 Les paramètres sont les variables d'entrée d'une procédure. Les arguments spécifient les valeurs des paramètres lors de l'appel d'une procédure.
-
AAP-3.A.4 Un appel de procédure interrompt l'exécution séquentielle des instructions, amenant le programme à exécuter les instructions contenues dans la procédure avant de continuer. Une fois la dernière instruction de la procédure (ou une instruction de retour) exécutée, le flux de contrôle revient au point immédiatement après celui où la procédure a été appelée.
-
AAP-3.A.5 La feuille de référence de l'examen fournit
procName(arg1, arg2, ...)comme moyen d'appeler
Texte :
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>}Bloc :
PROCEDURE procName parameter1, parameter2,...block of statementsqui prend zéro ou plus d'arguments ;
arg1est attribué àparameter1,arg2est attribué àparameter2, et ainsi de suite. -
AAP-3.A.6 La feuille de référence de l'examen fournit la procédure
Texte :
DISPLAY(expression)Bloc :
DISPLAY expressionpour afficher la valeur de
expression, suivie d'un espace. -
AAP-3.A.7 La feuille de référence de l'examen fournit la
Texte :
RETURN(expression)Bloc :
RETURN expressioninstruction, utilisée pour retourner le flux de contrôle au point où la procédure a été appelée et pour retourner la valeur de
expression. -
AAP-3.A.8 La feuille de référence de l'examen fournit
result ← procName(arg1, arg2, ...)pour attribuer à
resultla "valeur de la procédure" retournée en appelantTexte :
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>RETURN(expression)}Bloc :
PROCEDURE procName parameter1, parameter2,...block of statementsRETURN expression -
AAP-3.A.9 La feuille de référence de l'examen fournit la procédure
Texte :
INPUT()Bloc :
INPUTqui accepte une valeur de l'utilisateur et retourne la valeur saisie.
Source : Description du cours et de l'examen AP College Board
Une procédure (fonction) 过程 est un bloc de code nommé et réutilisable. L'appeler exécute son code avec les arguments que vous fournissez, et elle peut retourner une valeur :
sum ← Add(3, 4) // call, passing 3 and 4
Les procédures vous permettent d'utiliser du code sans connaître son fonctionnement interne – l'abstraction procédurale 过程抽象.
3.13
Développement de Procédures
Programme
Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.
Objectif d'apprentissage AAP-3.B : Expliquer comment l'utilisation de l'abstraction procédurale gère la complexité dans un programme. [Compétence 3.C]
- AAP-3.B.1 Un type courant d'abstraction est l'abstraction procédurale, qui fournit un nom à un processus et permet d'utiliser une procédure sans connaître que ce qu'elle fait, pas comment elle le fait.
- AAP-3.B.2 L'abstraction procédurale permet de baser la solution d'un grand problème sur les solutions de sous-problèmes plus petits. Cela s'accomplit en créant des procédures pour résoudre chacun des sous-problèmes.
- AAP-3.B.3 La subdivision d'un programme informatique en sous-programmes distincts est appelée modularité.
- AAP-3.B.4 Une abstraction procédurale peut extraire des fonctionnalités partagées pour généraliser la fonctionnalité au lieu de dupliquer le code. Cela permet la réutilisation du code du programme, ce qui aide à gérer la complexité.
- AAP-3.B.5 L'utilisation de paramètres permet de généraliser les procédures, rendant les procédures réutilisables avec une gamme de valeurs d'entrée ou d'arguments.
- AAP-3.B.6 L'utilisation de l'abstraction procédurale aide à améliorer la lisibilité du code.
- AAP-3.B.7 L'utilisation de l'abstraction procédurale dans un programme permet aux programmeurs de modifier les détails internes de la procédure (pour la rendre plus rapide, plus efficace, utilisant moins de mémoire, etc.) sans avoir besoin d'avertir les utilisateurs du changement tant que ce que la procédure fait est préservé.
Objectif d'apprentissage AAP-3.C : Développer des abstractions procédurales pour gérer la complexité dans un programme en écrivant des procédures. [Compétence 3.B]
-
AAP-3.C.1 La feuille de référence de l'examen fournit
Texte :
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>}Bloc :
PROCEDURE procName parameter1, parameter2,...block of statementsqui est utilisé pour définir une procédure prenant zéro ou plus d'arguments. La procédure contient
block of statements. -
AAP-3.C.2 La feuille de référence de l'examen fournit
Texte :
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>RETURN(expression)}Bloc :
PROCEDURE procName parameter1, parameter2,...block of statementsRETURN expressionqui est utilisé pour définir une procédure prenant zéro ou plus d'arguments. La procédure contient
block of statementset retourne la valeur deexpression. L'instructionRETURNpeut apparaître à n'importe quel endroit à l'intérieur de la procédure et provoque un retour immédiat de la procédure vers l'instruction qui l'a appelée.
Source : Description du cours et de l'examen AP College Board
Vous définissez une procédure avec un nom, des paramètres (entrées), et un corps, et optionnellement RETURN un résultat :

PROCEDURE Add(a, b)
{
RETURN(a + b)
}
Écrire vos propres procédures réduit la répétition, divise un grand problème en pièces nommées, et rend les programmes lisibles et plus faciles à tester – l'essence de l'abstraction 抽象.
| Anglais | Chinois | Pinyin |
|---|---|---|
| procedure (function)/prəˈsiːdʒə/ | 过程 | guò chéng |
| procedural abstraction/prəˈsiːdʒərəl əbˈstrækʃn/ | 过程抽象 | guò chéng chōu xiàng |
| abstraction/əbˈstrækʃn/ | 抽象 | chōu xiàng |
| library/ˈlaɪbrəri/ | 库 | kù |
3.14
Bibliothèques
Programme
Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.
Objectif d'apprentissage AAP-3.D : Sélectionner des bibliothèques appropriées ou des segments de code existants à utiliser dans la création de nouveaux programmes. [Compétence 2.B]
- AAP-3.D.1 Une bibliothèque logicielle contient des procédures qui peuvent être utilisées dans la création de nouveaux programmes.
- AAP-3.D.2 Les segments de code existants peuvent provenir de sources internes ou externes, telles que des bibliothèques ou du code écrit précédemment.
- AAP-3.D.3 L'utilisation de bibliothèques simplifie la tâche de création de programmes complexes.
- AAP-3.D.4 Les interfaces de programmation d'application (API) sont des spécifications définissant le comportement et l'utilisation des procédures dans une bibliothèque.
- AAP-3.D.5 La documentation d'une API/bibliothèque est nécessaire pour comprendre les comportements qu'elle fournit et la manière de les utiliser.
Source : Description du cours et de l'examen AP College Board
Une bibliothèque 库 est un ensemble de procédures prêtes à l'emploi que d'autres peuvent réutiliser. Une API (Interface de Programmation d'Application) 应用程序接口 documente ce que fait chaque procédure, ses paramètres et son résultat – afin que vous puissiez l'utiliser sans voir son code. Les bibliothèques font gagner du temps et permettent de s'appuyer sur du travail existant et testé.
La documentation fait partie de la bibliothèque. La documentation d'une API ou d'une bibliothèque est nécessaire pour comprendre les comportements qu'elle fournit et comment les utiliser — ce que chaque procédure attend comme paramètres, ce qu'elle retourne et ce qu'elle fait aux limites. Sans elle, vous devriez lire le code source, ce qui contredit l'objectif de l'abstraction ; avec elle, vous pouvez utiliser une procédure correctement sans savoir comment elle fonctionne à l'intérieur.
| Anglais | Chinois | Pinyin |
|---|---|---|
| Interface/ˈɪntəfeɪs/ | 应用程序接口 | yìng yòng chéng xù jiē kǒu |
3.15
Valeurs Aléatoires
Programme
Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.
Objectif d'apprentissage AAP-3.E : Pour la génération de valeurs aléatoires : a. Écrire des expressions pour générer des valeurs possibles. [Compétence 2.B] b. Évaluer des expressions pour déterminer les résultats possibles. [Compétence 4.B]
-
AAP-3.E.1 La feuille de référence de l'examen fournit
Texte :
RANDOM(a, b)Bloc :
RANDOM a, bqui génère et retourne un entier aléatoire compris entre
aetb, inclus. Chaque résultat a une probabilité égale de survenir. Par exemple,RANDOM(1, 3)pourrait retourner1,2ou3. -
AAP-3.E.2 L'utilisation de la génération de nombres aléatoires dans un programme signifie que chaque exécution peut produire un résultat différent.
Source : Description du cours et de l'examen AP College Board
RANDOM(a, b) retourne un entier aléatoire de a à b (inclus), permettant à un programme de produire des résultats imprévisibles – pour les jeux, l'échantillonnage ou les simulations. Chaque appel peut donner une valeur différente, donc un programme utilisant l'aléatoire se comportera différemment à chaque exécution.
3.16
Simulations
Programme
Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.
Objectif d'apprentissage AAP-3.F : Pour les simulations : a. Expliquer comment les ordinateurs peuvent être utilisés pour représenter des phénomènes ou des événements du monde réel. [Compétence 1.A] b. Comparer les simulations avec des contextes du monde réel. [Compétence 1.D]
- AAP-3.F.1 Les simulations sont des abstractions d'objets ou de phénomènes plus complexes à des fins spécifiques.
- AAP-3.F.2 Une simulation est une représentation qui utilise des ensembles de valeurs variables pour refléter l'état changeant d'un phénomène.
- AAP-3.F.3 Les simulations imitent souvent des événements du monde réel afin de tirer des conclusions, permettant d'investiguer un phénomène sans les contraintes du monde réel.
- AAP-3.F.4 Le processus de développement d'une simulation abstraite implique la suppression de détails spécifiques ou la simplification de fonctionnalités.
- AAP-3.F.5 Les simulations peuvent contenir un biais découlant des choix d'éléments du monde réel inclus ou exclus.
- AAP-3.F.6 Les simulations sont les plus utiles lorsque les événements du monde réel sont irréalisables pour des expériences (trop grands, trop petits, trop rapides, trop lents, trop coûteux ou trop dangereux).
- AAP-3.F.7 Les simulations facilitent la formulation et l'affinement d'hypothèses relatives aux objets ou phénomènes considérés.
- AAP-3.F.8 Les générateurs de nombres aléatoires peuvent être utilisés pour simuler la variabilité existant dans le monde réel.
Source : Description du cours et de l'examen AP College Board
Une simulation 模拟 est un programme qui modélise un processus réel pour l'étudier en toute sécurité et à faible coût. Les simulations simplifient la réalité (elles omettent des détails) et utilisent souvent des aléas pour imiter des événements hasardeux. Elles permettent de tester des scénarios qui seraient trop coûteux, longs ou dangereux dans la vie réelle – mais leurs résultats ne valent que tant que leurs hypothèses sont valides.
Une simulation est une façon de faire de la science, pas seulement une image. Parce qu'elle peut être exécutée de nombreuses fois, à bas coût et en changeant une variable à la fois, une simulation facilite la formulation et le raffinement d'hypothèses sur l'objet ou le phénomène considéré : vous proposez une explication, exécutez le modèle, comparez le résultat avec la réalité, et ajustez soit l'hypothèse soit le modèle. C'est pourquoi les simplifications d'une simulation comptent — un résultat ne soutient une hypothèse sur le monde réel que dans la mesure où ce qui a été omis n'a pas d'importance.
| Anglais | Chinois | Pinyin |
|---|---|---|
| simulation/ˌsɪmjʊˈleɪʃn/ | 模拟 | mó nǐ |
| Efficiency/ɪˈfɪʃənsi/ | 效率 | xiào lǜ |
| heuristic/hjuːˈrɪstɪk/ | 启发式 | qǐ fā shì |
| undecidable/ˌʌndɪˈsaɪdəbl/ | 不可判定 | bù kě pàn dìng |
3.17
Efficacité Algorithmique
Programme
Compréhension durable (AAP-4) : Il existe des problèmes que les ordinateurs ne peuvent pas résoudre, et même lorsqu'un ordinateur peut résoudre un problème, il peut ne pas pouvoir le faire en un temps raisonnable.
Objectif d'apprentissage AAP-4.A : Pour déterminer l'efficacité d'un algorithme : a. Expliquer la différence entre les algorithmes s'exécutant en un temps raisonnable et ceux qui ne le font pas. [Compétence 1.D] b. Identifier les situations où une solution heuristique peut être plus appropriée. [Compétence 1.D]
- AAP-4.A.1 Un problème est une description générale d'une tâche qui peut (ou ne peut pas) être résolue algorithmiquement. Une instance d'un problème inclut également une entrée spécifique. Par exemple, le tri est un problème ; trier la liste (2,3,1,7) est une instance du problème.
- AAP-4.A.2 Un problème de décision est un problème ayant une réponse oui/non (par ex., y a-t-il un chemin de A vers B ?). Un problème d'optimisation est un problème dont l'objectif est de trouver la solution "meilleure" parmi plusieurs (par ex., quel est le chemin le plus court de A vers B ?).
- AAP-4.A.3 L'efficacité est une estimation de la quantité de ressources informatiques utilisées par un algorithme. L'efficacité est généralement exprimée sous forme de fonction de la taille de l'entrée.
- Énoncé d'exclusion (EK AAP-4.A.3) : L'analyse formelle des algorithmes (Big-O) et le raisonnement formel utilisant des formules mathématiques sont hors du champ de ce cours et de l'examen AP.
- AAP-4.A.4 L'efficacité d'un algorithme est déterminée par un raisonnement formel ou mathématique.
- AAP-4.A.5 L'efficacité d'un algorithme peut être mesurée informellement en déterminant le nombre de fois qu'une instruction ou un groupe d'instructions s'exécute.
- AAP-4.A.6 Différents algorithmes corrects pour le même problème peuvent avoir des efficacités différentes.
- AAP-4.A.7 Les algorithmes ayant une efficacité polynomiale ou plus lente (constante, linéaire, quadratique, cubique, etc.) sont dits s'exécuter en un temps raisonnable. Les algorithmes ayant des efficacités exponentielles ou factorielles sont des exemples d'algorithmes s'exécutant en un temps irraisonnable.
- AAP-4.A.8 Certains problèmes ne peuvent pas être résolus en un temps raisonnable car il n'existe aucun algorithme efficace pour les résoudre. Dans ces cas, des solutions approximatives sont recherchées.
- AAP-4.A.9 Une heuristique est une approche à un problème qui produit une solution qui n'est pas garantie comme étant optimale, mais qui peut être utilisée lorsque les techniques garantissant toujours de trouver une solution optimale sont irréalisables.
- Énoncé d'exclusion (AAP-4.A.9) : Les solutions heuristiques spécifiques sont hors du champ de ce cours et de l'examen AP.
Source : Description du cours et de l'examen AP College Board
L'efficacité 效率 est la quantité de temps (ou de mémoire) dont un algorithme a besoin lorsque sa taille d'entrée augmente. Un algorithme de temps raisonnable voit son travail augmenter selon un polynôme de la taille d'entrée (ex. : linéaire ou quadratique) ; un algorithme de temps déraisonnable augmente bien plus vite (ex. : double avec chaque élément ajouté), devenant irréaliste pour de grandes entrées. Un algorithme plus rapide peut rendre un problème auparavant insoluble possible. Parfois, une réponse exacte prend trop de temps, donc une heuristique 启发式 – une approche qui trouve une réponse suffisante rapidement – est utilisée à la place.

3.18
Problèmes Indécidables
Programme
Compréhension durable (AAP-4) : Il existe des problèmes que les ordinateurs ne peuvent pas résoudre, et même lorsqu'un ordinateur peut résoudre un problème, il peut ne pas pouvoir le faire en un temps raisonnable.
Objectif d'apprentissage AAP-4.B : Expliquer l'existence de problèmes indécidables en informatique. [Compétence 1.A]
- AAP-4.B.1 Un problème décidable est un problème de décision pour lequel un algorithme peut être écrit pour produire une sortie correcte pour toutes les entrées (par ex., "Le nombre est-il pair ?").
- AAP-4.B.2 Un problème indécidable est un problème pour lequel aucun algorithme ne peut être construit capable de fournir toujours une réponse correcte oui ou non.
- Énoncé d'exclusion (EK AAP-4.B.2) : Déterminer si un problème donné est indécidable est hors du champ de ce cours et de l'examen AP.
- AAP-4.B.3 Un problème indécidable peut avoir certaines instances avec une solution algorithmique, mais il n'existe pas de solution algorithmique pouvant résoudre toutes les instances du problème.
Source : Description du cours et de l'examen AP College Board
Certains problèmes sont indécidables 不可判定 : aucun algorithme ne peut résoudre tous les cas d'entre eux avec une réponse oui/non correcte. C'est une limite fondamentale de l'informatique – non pas une question de disposer d'un ordinateur plus rapide, mais une preuve qu'un tel algorithme ne peut exister.
Compétence d'examen : soyez capable de déterminer le résultat d'un segment de code en le traçant, de comparer l'efficacité de deux algorithmes (temps raisonnable vs déraisonnable), et de reconnaître l'abstraction procédurale et de données dans un programme.
3.18
Conseils d'examen
- Sachez qu'une variable est un espace nommé pour une valeur et tracez comment l'affectation la met à jour étape par étape.
- Lisez attentivement la pseudo-code AP –
a <- expressionaffecte, et les listes sont à indice 1 sur la feuille de référence de l'examen. - Distinguez une variable d'une liste (une collection accessible par index) et utilisez correctement les opérations de liste.
- Évaluez les expressions avec la bonne priorité logique et booléenne (
AND,OR,NOT). - Choisissez des noms de variables clairs et significatifs – les tâches écrites récompensent le code lisible.
Leçons interactives sur ce sujet
Traversez-le étape par étape, avec des exercices à vérification instantanée.
- Variables et Affectations
- Abstraction des Données
- Expressions Mathématiques
- Chaînes de Caractères
- Expressions Booléennes
- Conditionnelles
- Conditionnelles Nivellées
- Itération
- Développement d'algorithmes
- Listes
- Recherche binaire
- Appels de procédures
- Développement de procédures
- Bibliothèques
- Valeurs aléatoires
- Simulations
- Efficacité algorithmique
- Problèmes Indécidables