Passer au contenu

Conception d'algorithmes et résolution de problèmes

Informatique IGCSE · Sujet 7

Entrainer
Leçon vidéo pour ce sujet Ouvrir la page vidéo
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
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

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.

A programmer typing code at a computer
Le logiciel est écrit par des programmeurs, qui suivent le cycle de développement
É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
Quatre étapes alignées — analyse, conception, codage, test — avec une flèche revenant du test à la conception
Les quatre étapes du développement de programmes ; le test renvoie vers la conception pour corriger et affiner
Un organigramme de programme avec des boîtes de processus et des losanges de décision
Un organigramme de programme énonce les étapes et les décisions d'un programme pendant la phase de conception

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.

Vocabulaire Entrainer
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).
Un organigramme pour ajouter les nombres de 1 à n, avec début/fin, entrée/sortie, processus et symboles de décision, plus une clé nommant chaque forme
Un organigramme pour l'algorithme de somme, utilisant les symboles standards (début/fin, entrée/sortie, traitement, décision)
7.3

Algorithmes

Tri à bulles, passe par passe

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.

Trois boîtes — ENTRÉE (les 3 marques), PROCESSUS (les ajouter, diviser par 3), SORTIE (la moyenne) — reliées par des flèches
Tout algorithme se décompose en entrée, traitement et sortie — ici, trouver la moyenne de trois notes
Vocabulaire Entrainer
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.
Vocabulaire Entrainer
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 à :

A trace table with columns count, total, output
Une table de traçage enregistre la valeur de chaque variable alors que le programme s'exécute
  • 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.

Explorer

Une table de traçage

Parcourez la boucle et remplissez la table de traçage, une ligne par passage.

Vocabulaire Entrainer
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
Vocabulaire Entrainer
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
Une liste de huit nombres étant analysée de gauche à droite, recherchant 5 ; les quatre premiers ne correspondent pas et le cinquième est trouvé
La recherche linéaire vérifie chaque élément à tour de rôle depuis le début jusqu'à trouver la valeur

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
Une liste où la première paire 5 et 2 est dans le désordre, montrée en échangeant vers 2 et 5, avec une note de répéter pour chaque paire
Le tri à bulles compare chaque paire côte à côte et les échange si elles sont dans le désordre, en répétant jusqu'à ce qu'elles soient triées

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
Vocabulaire Entrainer
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.

Épreuves Passées

Plus de sujets dans Informatique IGCSE

Se connecter ou créer un compte

IGCSE, A-Level & AP