| Les candidats doivent être capables de : | Notes et orientations |
|---|---|
| 1 Comprendre le cycle de développement de programme, limité à : analyse, conception, codage et test | • Y compris l'identification de chaque étape et l'exécution de ces tâches pour chaque étape : – analyse : abstraction, décomposition du problème, identification du problème et des exigences – conception : décomposition, diagrammes de structure, organigrammes, pseudocode – codage : écriture de code de programme et tests itératifs – test : test du code de programme à l'aide de données de test |
| 2 (a) Comprendre que chaque système informatique est composé de sous-systèmes, qui sont constitués de sous-systèmes supplémentaires (b) Comprendre comment un problème peut être décomposé en ses parties constitutives | • Y compris : – entrées – traitements – sorties – stockage |
| (c) Utiliser différentes méthodes pour concevoir et construire une solution à un problème | • Y compris : – diagrammes de structure – organigrammes – pseudocode |
| 3 Expliquer le but d'un algorithme donné | • Y compris : – énoncer le but d'un algorithme – décrire les processus impliqués dans un algorithme |
| 4 Comprendre les méthodes standards de solution | • Limité à : – recherche linéaire – tri bulle – addition – comptage – recherche des valeurs maximales, minimales et moyennes |
| 5 (a) Comprendre la nécessité d'effectuer des vérifications de validation sur les données d'entrée et les différents types de vérification de validation | • Y compris : – contrôle de plage – contrôle de longueur – contrôle de type – contrôle de présence – contrôle de format – chiffre de contrôle |
| (b) Comprendre la nécessité d'effectuer des contrôles de vérification sur les données d'entrée et les différents types de contrôle de vérification | • Y compris : – contrôle visuel – contrôle par double saisie |
| 6 Suggérer et appliquer des données de test appropriées | • Limité à : – normal – anormal – extrême – aux limites • Les données extrêmes sont la valeur acceptable la plus grande/la plus petite • Les données aux limites sont la valeur acceptable la plus grande/la plus petite et la valeur rejetée correspondante la plus petite/la plus grande |
| 7 Remplir une table de traçage pour documenter un exécutable à sec d'un algorithme | • Y compris, à chaque étape d'un algorithme : – variables – sorties – invites utilisateur |
| 8 Identifier les erreurs dans des algorithmes donnés et suggérer des moyens de corriger ces erreurs | |
| 9 Rédiger et modifier des algorithmes pour des problèmes ou des scénarios donnés, en utilisant : du pseudocode, du code programme et des organigrammes | • La précision est requise lors de la rédaction des algorithmes, ex. x > y est acceptable mais x is greater than y ne l'est pas • Voir la section 4 pour les symboles d'organigramme • Voir la section 4 pour le pseudocode |
Conception d'algorithmes et résolution de problèmes
Informatique IGCSE · Sujet 7
9:17
Le Cycle de vie du développement de logiciel
Chaque application sur votre téléphone a été écrite par quelqu'un comme ceci. Mais ils n'ont pas commencé en tapant du code. Avant la première ligne, le problème a été étudié, la solution…
Narration en anglais · Sous-titres anglais + 中文 incrustés
Programme
Source : Programme Cambridge International
7.1
Cycle de développement logiciel
Le cycle de développement logiciel 程序开发生命周期 is the set of stages used to make a program. There are four stages.

| Étape | Ce que vous faites |
|---|---|
| analyse 分析 | étudier le problème et déterminer ce qui est nécessaire |
| conception 设计 | planifier comment fonctionnera le programme |
| codage 编码 | écrire le code du programme et le tester au fur et à mesure |
| test 测试 | exécuter le programme terminé avec des données de test pour trouver des erreurs |


Analyse
En analyse, vous comprenez le problème. Deux compétences clés aident :
- abstraction 抽象 — conserver uniquement les détails importants et ignorer le reste ;
- décomposition 分解 — diviser un grand problème en petites parties plus faciles à gérer.
Conception
En conception, vous planifiez la solution, souvent en utilisant la décomposition. Vous pouvez représenter les parties sous forme de sous-systèmes 子系统 dans un diagramme structurel 结构图 (un diagramme qui divise un système en petites boîtes).
Codage et test
En codage, vous écrivez le code du programme. Vous utilisez un test itératif 迭代测试 — testez de petites parties encore et encore au fur et à mesure de leur construction. En test, vous exécutez l'ensemble du programme avec des données de test 测试数据 pour vérifier qu'il fonctionne correctement.
| Anglais | Chinois | Pinyin |
|---|---|---|
| program development life cycle/ˈprəʊɡræm dɪˈveləpmənt laɪf ˈsaɪkl/ | 程序开发生命周期 | chéng xù kāi fā shēng mìng zhōu qī |
| analysis/əˈnæləsɪs/ | 分析 | fēn xī |
| design/dɪˈzaɪn/ | 设计 | shè jì |
| coding/ˈkəʊdɪŋ/ | 编码 | biān mǎ |
| testing/ˈtestɪŋ/ | 测试 | cè shì |
| abstraction/əbˈstrækʃn/ | 抽象 | chōu xiàng |
| decomposition/ˌdiːkɒmpəˈzɪʃn/ | 分解 | fēn jiě |
| sub-systems/sʌb ˈsɪstəmz/ | 子系统 | zi xì tǒng |
| structure diagram/ˈstrʌktʃə ˈdaɪəɡræm/ | 结构图 | jié gòu tú |
| iterative testing/ˈɪtərətɪv ˈtestɪŋ/ | 迭代测试 | dié dài cè shì |
| flowchart/ˈfləʊtʃɑːt/ | 流程图 | liú chéng tú |
7.2
Outils de conception
Vous pouvez planifier une solution de trois manières principales.
- non diagramme structurel — montre les parties d'un système et comment elles s'emboîtent ;
- non organigramme 流程图 — un diagramme utilisant des boîtes et des flèches pour montrer les étapes dans l'ordre ;
- pseudo-code 伪代码 — étapes écrites en anglais simple, semblable à du code (pas un vrai langage).

7.3
Algorithmes
Un algorithme 算法 is a set of steps, in the right order, that solves a problem. Every algorithm can be split into three parts :
- entrée 输入 — les données qui entrent ;
- traitement 处理 — le travail effectué sur les données ;
- sortie 输出 — le résultat qui sort.
Cela s'appelle la décomposition en entrées, traitements et sorties. Par exemple, pour « trouver la moyenne de trois notes » : les entrées sont les trois notes ; le traitement consiste à les additionner et à diviser par 3 ; la sortie est la moyenne.

| Anglais | Chinois | Pinyin |
|---|---|---|
| algorithm/ˈælɡərɪθəm/ | 算法 | suàn fǎ |
7.4
Validation et vérification
Lorsqu'une donnée est saisie, vous la vérifiez pour réduire les erreurs.
La validation vérifie que les données sont sensées et respectent les règles. Elle ne peut pas vérifier que les données sont vraies, seulement qu'elles sont autorisées.
| Contrôle de validation | Ce qu'il vérifie |
|---|---|
| contrôle de plage 范围检查 | la valeur est comprise entre une valeur minimale et maximale autorisée |
| contrôle de longueur 长度检查 | le nombre de caractères est autorisé (ex. mot de passe ≥ 8) |
| contrôle de type 类型检查 | les données sont du bon type (ex. un nombre, pas des lettres) |
| contrôle de présence 存在性检查 | quelque chose a effectivement été saisi (non laissé vide) |
| format check 格式检查 | les données suivent le bon format (ex. une date au format jj/mm/aaaa) |
| check digit 校验码 | un chiffre supplémentaire confirme qu'un numéro a été saisi correctement |
Verification 核实 vérifie que les données ont été copiées ou saisies correctement (aucune erreur de frappe). Deux méthodes :
- visual check 目视检查 — une personne compare les données saisies avec l'original ;
- double entry 双重输入 — les données sont saisies deux fois et les deux copies sont comparées.
| Anglais | Chinois | Pinyin |
|---|---|---|
| validation/ˌvælɪˈdeɪʃn/ | 验证 | yàn zhèng |
| range check/reɪndʒ tʃek/ | 范围检查 | fàn wéi jiǎn chá |
| length check/leŋθ tʃek/ | 长度检查 | cháng dù jiǎn chá |
| type check/taɪp tʃek/ | 类型检查 | lèi xíng jiǎn chá |
| presence check/ˈprezəns tʃek/ | 存在性检查 | cún zài xìng jiǎn chá |
| format check/ˈfɔːmæt tʃek/ | 格式检查 | gé shì jiǎn chá |
| check digit/tʃek ˈdɪdʒɪt/ | 校验码 | jiào yàn mǎ |
| verification/ˌverɪfɪˈkeɪʃn/ | 核实 | hé shí |
| visual check/ˈvɪʒuːəl tʃek/ | 目视检查 | mù shì jiǎn chá |
| double entry/ˈdʌbl ˈentri/ | 双重输入 | shuāng chóng shū rù |
7.5
Trace tables
Une trace table 追踪表 enregistre la valeur de chaque variable à mesure qu'un algorithme s'exécute, étape par étape. Elle vous aide à :

- vérifier qu'un algorithme fonctionne correctement ;
- déterminer ce que fait un algorithme en le suivant avec des données données.
Exemple : tracez cet algorithme avec l'entrée 5.
INPUT N
Total ← 0
FOR I ← 1 TO N
Total ← Total + I
NEXT I
OUTPUT Total
| i | total | OUTPUT |
|---|---|---|
| 1 | 1 | |
| 2 | 3 | |
| 3 | 6 | |
| 4 | 10 | |
| 5 | 15 | 15 |
Le tableau de traçage montre que l'algorithme additionne 1 à n. Avec l'entrée 5, la sortie est 15.
Worked example. Tracez cet algorithme et donnez la sortie.
X ← 20
Count ← 0
WHILE X > 1
X ← DIV(X, 2)
Count ← Count + 1
ENDWHILE
OUTPUT Count
DIV ne donne que la partie entière d'une division. Prenez une ligne par passage : x devient 10 (count 1), puis 5 (count 2), puis 2 (count 3), puis 1 (count 4). Maintenant x > 1 est faux, donc la boucle s'arrête et la sortie est 4. Deux habitudes protègent ces points : testez la condition avant chaque passage plutôt qu'après, et écrivez une nouvelle ligne pour chaque passage — essayer de garder les valeurs en tête est ce qui fait échouer les traces.
Une table de traçage
Parcourez la boucle et remplissez la table de traçage, une ligne par passage.
| Anglais | Chinois | Pinyin |
|---|---|---|
| pseudocode/ˈsuːdəʊkəʊd/ | 伪代码 | wěi dài mǎ |
| input/ˈɪnpʊt/ | 输入 | shū rù |
| processing/ˈprəʊsesɪŋ/ | 处理 | chǔ lǐ |
| output/ˈaʊtpʊt/ | 输出 | shū chū |
| trace table/treɪs ˈteɪbl/ | 追踪表 | zhuī zōng biǎo |
7.6
Test data
Test data est les données que vous utilisez pour tester un programme. Il existe quatre types que vous devez connaître.
| Type | Sens | Example (age 0–120 allowed) |
|---|---|---|
| normale 正常数据 | données cohérentes qui devraient être acceptées | 25 |
| abnormal 异常数据 | mauvaises données qui devraient être rejetées | -4 or "cat" |
| extreme 极端数据 | les valeurs les plus grandes et les plus petites encore autorisées | 0 and 120 |
| boundary 边界数据 | les valeurs de part et d'autre d'une limite (une autorisée, une non) | 120 and 121 |
| Anglais | Chinois | Pinyin |
|---|---|---|
| test data/test ˈdeɪtə/ | 测试数据 | cè shì shù jù |
| normal/ˈnɔːml/ | 正常数据 | zhèng cháng shù jù |
| abnormal/əbˈnɔːml/ | 异常数据 | yì cháng shù jù |
| extreme/ekˈstriːm/ | 极端数据 | jí duān shù jù |
| boundary/ˈbaʊndəri/ | 边界数据 | biān jiè shù jù |
7.7
Standard methods of solution
Vous devez connaître ces algorithmes courants.
Recherche linéaire
Une recherche linéaire 线性查找 vérifie chaque élément d'une liste, un par un, jusqu'à ce qu'il trouve la valeur souhaitée ou atteigne la fin.
Found ← FALSE
FOR I ← 0 TO 9
IF List[I] = SearchValue
THEN
Found ← TRUE
ENDIF
NEXT I
OUTPUT Found

Tri à bulles
Un bubble sort 冒泡排序 met une liste en ordre. Il compare chaque paire d'éléments côte à côte et les échange s'ils sont dans le mauvais ordre. Il répète cela jusqu'à ce qu'aucun échange ne soit nécessaire.
FOR I ← 0 TO 8
IF List[I] > List[I + 1]
THEN
Temp ← List[I]
List[I] ← List[I + 1]
List[I + 1] ← Temp
ENDIF
NEXT I

Totaliser et compter
- totalling 求和 — continuer à ajouter des valeurs à un total cumulatif (
Total ← Total + Value). - counting 计数 — ajouter 1 à un compteur à chaque fois qu'un événement se produit (
Count ← Count + 1).
Maximum, minimum and average
- pour trouver le maximum 最大值 : conserver la plus grande valeur vue jusqu'à présent.
- pour trouver le minimum 最小值 : conserver la plus petite valeur vue jusqu'à présent.
- pour trouver la moyenne 平均值 : diviser le total par le nombre de valeurs.
Total ← 0
FOR I ← 0 TO 9
Total ← Total + List[I]
NEXT I
Average ← Total / 10
OUTPUT Average
| Anglais | Chinois | Pinyin |
|---|---|---|
| linear search/ˈlɪnɪə sɜːtʃ/ | 线性查找 | xiàn xìng chá zhǎo |
| bubble sort/ˈbʌbl sɔːt/ | 冒泡排序 | mào pào pái xù |
| totalling/ˈtəʊtəlɪŋ/ | 求和 | qiú hé |
| counting/ˈkaʊntɪŋ/ | 计数 | jì shù |
| maximum/ˈmæksɪməm/ | 最大值 | zuì dà zhí |
| minimum/ˈmɪnɪməm/ | 最小值 | zuì xiǎo zhí |
| average/ˈævrɪdʒ/ | 平均值 | píng jūn zhí |
7.8
Conseils d'examen
- Apprenez les quatre étapes du cycle de vie : analyse → conception → codage → test. Abstraction conserve uniquement les détails importants ; décomposition divise un problème en parties plus petites.
- Validation vérifie que les données sont cohérentes (vérifications de plage, longueur, type, présence, format) ; verification vérifie qu'elles ont été correctement copiées (visual check ou double entry).
- Apprenez les quatre types de données de test : normale (accepté), abnormal (rejeté), extreme (la plus grande/la plus petite encore autorisée), boundary (les valeurs de part et d'autre d'une limite).
- Pour comprendre ce qu'un algorithme fait, remplissez une trace table — notez la valeur de chaque variable à chaque étape.
- Connaissez les algorithmes standards : recherche linéaire (vérifier chaque élément tour à tour) et bubble sort (échanger les paires côte à côte jusqu'à ce qu'aucun échange ne soit nécessaire).
Leçons interactives sur ce sujet
Traversez-le étape par étape, avec des exercices à vérification instantanée.