Programming basics · Principes de base de la programmation
| English | Français |
|---|---|
| variable/ˈveərɪəbl/ | variable |
| data type/ˈdeɪtə taɪp/ | type de donnée |
| constant/ˈkɒnstənt/ | constante |
| flowchart/ˈfləʊtʃɑːt/ | diagramme de flux |
| structured English/ˈstrʌktʃəd ˈɪŋɡlɪʃ/ | anglais structuré |
| pseudocode/ˈsuːdəʊkəʊd/ | pseudocode |
| assignment/əˈsaɪnmənt/ | affectation |
| identifier/aɪˈdentɪfaɪə/ | identifiant |
| operators/ˈɒpəreɪtəz/ | opérateurs |
| precedence/ˈpresɪdəns/ | prévalence |
| concatenation/kənˌkætəˈneɪʃn/ | concaténation |
| library routines/ˈlaɪbrəri ruːˈtiːnz/ | routines de bibliothèque |
| program library/ˈprəʊɡræm ˈlaɪbrəri/ | bibliothèque de programmes |
| insert/ˈɪnsɜːt/ | insérer |
The number that did not fit
- On 4 June 1996 the first Ariane 5 rocket veered off course and destroyed itself 37 seconds after launch, with four satellites on board.
- The cause was one conversion: a 64-bit decimal value describing the rocket's sideways speed was copied into a 16-bit integer. Ariane 5 was faster than Ariane 4, the number was too big for the box, and the guidance computer shut down.
- Every variable has a data type 数据类型, and the type decides what fits. Choosing it is the first job in turning a design into code.
- This lesson is the basics: constants, variables, types, expressions, input and output, and the ready-made routines you may call.
Le nombre qui ne tenait pas
- Le 4 juin 1996, le premier lanceur Ariane 5 a dévié de course et s'est autodétruit 37 secondes après le lancement, avec quatre satellites à bord.
- La cause était une conversion : une valeur décimale 64-bit décrivant la vitesse latérale du lanceur a été copiée dans un entier 16-bit. Ariane 5 était plus rapide qu'Ariane 4, le nombre était trop grand pour la boîte, et l'ordinateur de guidage s'est éteint.
- Chaque variable a un type de données 数据类型, et le type décide de ce qui tient. Le choisir est la première tâche en transformant une conception en code.
- Ce cours est les bases : constantes, variables, types, expressions, entrée et sortie, et les routines prêtes que vous pouvez appeler.
From design to code
- A design arrives as a flowchart 流程图 or as structured English 结构化英语. You turn it into pseudocode 伪代码, and later into a real language.
- Find the variables 变量 and their types. Input and output boxes become
INPUTandOUTPUT; decision diamonds becomeIF … ELSE … ENDIForCASE; loop arrows becomeWHILE,REPEAT … UNTILorFOR; process boxes become assignments. - Check by tracing a small input through your pseudocode before you call it finished.
Each flowchart symbol becomes one kind of pseudocode statement
De la conception au code
- Une conception arrive sous forme de flowchart 流程图 ou de structured English 结构化英语. Vous la transformez en pseudocode 伪代码, et plus tard en un vrai langage.
- Trouver les variables 变量 et leurs types. Boîtes d'entrée/sortie deviennent
INPUTetOUTPUT; losanges de décision deviennentIF … ELSE … ENDIFouCASE; flèches de boucle deviennentWHILE,REPEAT … UNTILouFOR; boîtes de processus deviennent des affectations. - Vérifiez en traçant une petite entrée dans votre pseudocode avant de considérer l'algorithme comme terminé.

Chaque symbole de diagramme de flux devient un type de instruction de pseudocode
Constants and variables
- A constant 常量 holds a value that never changes while the program runs:
CONSTANT Pi = 3.14159. A variable holds one that may change, and is declared with a type:DECLARE Radius : REAL. - Use a constant for a fixed value that appears in several places, such as a tax rate or a maximum score.
- The benefits the mark scheme lists: it is set once and cannot be changed accidentally; a change is made in one place and reaches every statement that uses it; the identifier 标识符 gives the value a meaningful name.
A variable can be reassigned; a constant cannot
Constantes et variables
- Une constant 常量 (constante) conserve une valeur qui ne change jamais pendant l'exécution du programme :
CONSTANT Pi = 3.14159. Une variable conserve une valeur qui peut changer et est déclarée avec un type :DECLARE Radius : REAL. - Utilisez une constante pour une valeur fixe qui apparaît à plusieurs endroits, comme un taux de taxe ou un score maximum.
- Les avantages que la grille de correction mentionne : elle est définie une seule fois et ne peut pas être modifiée accidentellement ; un changement est fait en un seul endroit et touche toutes les instructions qui l'utilisent ; l'identifier 标识符 (identifiant) donne un nom significatif à la valeur.

Une variable peut être réaffectée ; une constante ne peut pas l'être
A variable is a labelled box · Une variable est une boîte étiquetée
Each assignment stores one value in a named box; reassigning the same name overwrites it. Step through the program and watch each box take its current value. · Chaque affectation stocke une seule valeur dans une boîte nommée ; réaffecter le même nom l'écrase. Suivez le programme et observez chaque boîte prendre sa valeur actuelle.
A constant holds a fixed value that never changes while the program runs, whereas a variable can be reassigned. · Une constante retient une valeur fixe qui ne change jamais pendant l'exécution du programme, alors qu'une variable peut être réaffectée.
Constants (like Pi or a maximum score) make code clearer and let you change a recurring value in one place. · Les constantes (comme Pi ou un score maximum) rendent le code plus clair et permettent de modifier une valeur récurrente en un seul endroit.
Which are benefits of using a constant for a value such as a tax rate? Select all · tout that apply. · Quels sont les avantages d'utiliser une constante pour une valeur telle qu'un taux de taxe ? Sélectionnez tous ceux qui s'appliquent.
The three mark-scheme benefits are safety, a single point of change, and readability. Speed is not one of them. · Les trois avantages du barème sont la sécurité, un point unique de changement et la lisibilité. La vitesse n'en est pas un.
The six data types
INTEGERfor whole numbers (a count, an index, a loop counter).REALfor numbers with a fractional part (a price, an average).CHARfor one character in single quotes,'A'.STRINGfor text in double quotes,"Hello".BOOLEANforTRUEorFALSE(a flag such asFound).DATEfor a calendar date.- Read the type off how the variable is used: a decimal point means
REAL,TRUEmeansBOOLEAN, single quotes meanCHAR, an array index orDIVandMODmeanINTEGER. Write the type in capitals as the guide spells it.
Les six types de données
INTEGERpour les nombres entiers (un décompte, un index, un compteur de boucle).REALpour les nombres comportant une partie fractionnaire (un prix, une moyenne).CHARpour un seul caractère entre guillemets simples,'A'.STRINGpour du texte entre guillemets doubles,"Hello".BOOLEANpourTRUEouFALSE(un indicateur tel queFound).DATEpour une date calendrier.- Lisez le type à partir de la façon dont la variable est utilisée : une virgule décimale signifie
REAL,TRUEsignifieBOOLEAN, des guillemets simples signifientCHAR, un index de tableau ouDIVetMODsignifientINTEGER. Écrivez le type en majuscules tel que le guide l'écrit.
Worked example: state the appropriate data type
Found ← FALSEisBOOLEAN: it holds a truth value.Initial ← 'K'isCHAR: one character in single quotes.Name ← "Li Wei"isSTRING: text in double quotes.Price ← 12.99isREAL: it has a fractional part.Count ← Count + 1isINTEGER: a counter that goes up in whole steps.- One mark per correct type, so answer every row even when unsure; a blank cannot score.
Exemple résolu : énoncer le type de données approprié
Found ← FALSEestBOOLEAN: il conserve une valeur de vérité.Initial ← 'K'estCHAR: un seul caractère entre guillemets simples.Name ← "Li Wei"estSTRING: du texte entre guillemets doubles.Price ← 12.99estREAL: il a une partie fractionnaire.Count ← Count + 1estINTEGER: un compteur qui augmente par incréments entiers.- Une marque par bon type, donc répondez à chaque ligne même si vous n'êtes pas sûr ; une case vide ne rapporte aucune marque.
Match each value to the data type its variable should be declared with. · Associez chaque valeur au type de donnée avec lequel sa variable devrait être déclarée.
A decimal point, single quotes, double quotes and a truth value each point to one type. · Une virgule décimale, des guillemets simples, des guillemets doubles et une valeur de vérité renvoient chacun à un type.
Assignment and expressions
- Assignment 赋值 uses the arrow:
Total ← Total + 1,Average ← Sum / Count. - Arithmetic operators 运算符 are
+ - * /, plusDIVfor whole-number division andMODfor the remainder:7 DIV 2 = 3and7 MOD 2 = 1. - Comparisons are
=,<>,<,>,<=,>=; logic isAND,OR,NOT. - Precedence 优先级, highest first:
NOT, then* / DIV MOD, then+ -, then comparisons, thenAND, thenOR. Use brackets when unsure.
Affectation et expressions
- Assignment 赋值 (affectation) utilise la flèche :
Total ← Total + 1,Average ← Sum / Count. - Les opérateurs arithmétiques operators 运算符 sont
+ - * /, plusDIVpour la division entière etMODpour le reste :7 DIV 2 = 3et7 MOD 2 = 1. - Les comparaisons sont
=,<>,<,>,<=,>=; la logique estAND,OR,NOT. - Precedence 优先级 (priorité), de la plus haute à la plus basse :
NOT, puis* / DIV MOD, puis+ -, puis les comparaisons, puisAND, puisOR. Utilisez des parenthèses si vous n'êtes pas sûr.
What is the value of 7 DIV 2? · Quelle est la valeur de 7 DIV 2 ?
DIV is integer division: 7 ÷ 2 = 3 remainder 1, so DIV gives 3. · DIV est une division entière : 7 ÷ 2 = 3 reste 1, donc DIV donne 3.
What is the value of 7 MOD 2? · Quelle est la valeur de 7 MOD 2 ?
MOD gives the remainder: 7 ÷ 2 leaves remainder 1. · MOD donne le reste : 7 ÷ 2 laisse un reste de 1.
Which symbol assigns a value to a variable in this pseudocode? · Quel symbole attribue une valeur à une variable dans cette pseudocode ?
Assignment uses ←; = is comparison. · L'affectation utilise ← ; = est une comparaison.
Match each pseudocode operator to what it does. · Associez chaque opérateur de pseudocode à ce qu'il fait.
← stores, = compares; DIV gives the quotient and MOD the remainder (7 DIV 2 = 3, 7 MOD 2 = 1). · ← stocke, = compare ; DIV donne le quotient et MOD le reste (7 DIV 2 = 3, 7 MOD 2 = 1).
Input and output
OUTPUT "Enter your name:"prompts;INPUT Namereads the keyboard into the variable;OUTPUT "Hello, ", Nameprints several items separated by commas.- Strings are joined with
&, called concatenation 拼接:"A" & "BC"is"ABC". - Keep the quotes straight:
"7"is a string,7is a number, and'7'is a single character.
Entrées et sorties
OUTPUT "Enter your name:"affiche un message ;INPUT Namelit le clavier vers la variable ;OUTPUT "Hello, ", Nameimprime plusieurs éléments séparés par des virgules.- Les chaînes de caractères sont jointes avec
&, appelé concaténation 拼接 :"A" & "BC"est"ABC". - Gardez les guillemets droits :
"7"est une chaîne,7est un nombre, et'7'est un seul caractère.
Built-in functions and library routines
- A program library 程序库 holds routines that are already written, compiled and tested; calling one is faster and safer than writing your own. The Paper 2 insert 附页 lists the library routines 库例程 you may use, with their exact names.
- Strings:
LENGTH(s),LEFT(s, n),RIGHT(s, n),MID(s, start, n)with positions counted from 1,TO_UPPER(s),TO_LOWER(s). Conversion:NUM_TO_STR(x),STR_TO_NUM(s),IS_NUM(s),ASC(c),CHR(n). - Numbers and dates:
INT(x)cuts to the whole part;RAND(n)gives a real from 0 up to but not including n, soINT(RAND(6)) + 1is a dice roll;DAY,MONTH,YEAR,DAYINDEX,SETDATE,TODAY;EOF(f)for files.
The common string routines on s = "COMPUTER", positions 1 to 8
Fonctions intégrées et routines de bibliothèque
- Une program library 程序库 (bibliothèque de programmes) contient des routines déjà écrites, compilées et testées ; en appeler une est plus rapide et plus sûr que de l'écrire soi-même. Le insert 附页 (insert) Paper 2 liste les library routines 库例程 (routines de bibliothèque) que vous pouvez utiliser, avec leurs noms exacts.
- Chaînes :
LENGTH(s),LEFT(s, n),RIGHT(s, n),MID(s, start, n)avec des positions comptées à partir de 1,TO_UPPER(s),TO_LOWER(s). Conversion :NUM_TO_STR(x),STR_TO_NUM(s),IS_NUM(s),ASC(c),CHR(n). - Nombres et dates :
INT(x)coupe à la partie entière ;RAND(n)donne un réel de 0 jusqu'à mais sans inclure n, doncINT(RAND(6)) + 1est un lancer de dé ;DAY,MONTH,YEAR,DAYINDEX,SETDATE,TODAY;EOF(f)pour les fichiers.

Les routines de chaîne courantes sur s = "COMPUTER", positions 1 à 8
Which routine converts a string to capitals in 9618 pseudocode? · Quelle routine convertit une chaîne en majuscules dans la pseudocode 9618 ?
UCASE is the IGCSE name and is not accepted here. Use the exact names printed in the Paper 2 insert. · UCASE est le nom IGCSE et n'est pas accepté ici. Utilisez les noms exacts imprimés dans l'insert Paper 2.
Worked example: evaluate each expression
- Given
Word ← "Program",Code ← 'Q'andN ← 7. Work from the inside out. LENGTH(Word)is7.MID(Word, 4, 2)is"gr": two characters from position 4.LEFT(Word, 3) & "!"is"Pro!".TO_UPPER(RIGHT(Word, 2))is"AM": the inner function runs first.ASC(Code) - ASC('A')is16, because'Q'is 81 and'A'is 65.N DIV 2 + N MOD 2is3 + 1 = 4.NUM_TO_STR(N) & "th"is"7th".INT(N / 2)is3, the whole part of 3.5.
Exemple résolu : évaluer chaque expression
- Étant donné
Word ← "Program",Code ← 'Q'etN ← 7. Travaillez de l'intérieur vers l'extérieur. LENGTH(Word)est7.MID(Word, 4, 2)est"gr": deux caractères à partir de la position 4.LEFT(Word, 3) & "!"est"Pro!".TO_UPPER(RIGHT(Word, 2))est"AM": la fonction intérieure s'exécute en premier.ASC(Code) - ASC('A')est16, car'Q'vaut 81 et'A'vaut 65.N DIV 2 + N MOD 2est3 + 1 = 4.NUM_TO_STR(N) & "th"est"7th".INT(N / 2)est3, la partie entière de 3.5.
With Word ← "Program", the value of MID(Word, 4, 2) is "". · Avec Word ← "Program", la valeur de MID(Word, 4, 2) est "".
Positions count from 1: P-r-o-g-r-a-m, so position 4 is g and two characters from there are gr. · Les positions comptent à partir de 1 : P-r-o-g-r-a-m, donc la position 4 est g et deux caractères à partir de là sont gr.
Worked example: find the error
- Each statement may misuse a function or an operator. Describe the error, or write NO ERROR.
Result ← 2 & 4:&joins strings, but 2 and 4 are integers, so+is needed.SubString ← MID("pseudocode", 4, 1): NO ERROR, one character from position 4,"u".Answer ← LENGTH(42):LENGTHtakes a string, not an integer.Flag ← "TRUE": a Boolean isTRUEwithout quotes; with quotes it is a string.
Exemple résolu : trouver l'erreur
- Chaque instruction peut mal utiliser une fonction ou un opérateur. Décrivez l'erreur, ou écrivez NO ERROR (AUCUNE ERREUR).
Result ← 2 & 4:&joint des chaînes, mais 2 et 4 sont des entiers, donc+est nécessaire.SubString ← MID("pseudocode", 4, 1): NO ERROR, un caractère à partir de la position 4,"u".Answer ← LENGTH(42):LENGTHprend une chaîne, pas un entier.Flag ← "TRUE": un booléen estTRUEsans guillemets ; avec des guillemets, c'est une chaîne.
Result ← 2 & 4 correctly stores 6 in Result. · Result ← 2 & 4 stocke correctement 6 dans Result.
& joins strings. For two integers the operator is +; this is the error the exam asks you to describe. · & joint des chaînes. Pour deux entiers, l'opérateur est + ; c'est cette erreur que l'examen vous demande de décrire.
Marks that slip away
- The IGCSE names
UCASE,LCASE,VALandSTRare not accepted at A Level. UseTO_UPPER,TO_LOWER,STR_TO_NUM,NUM_TO_STR. - Single quotes make a
CHAR, double quotes make aSTRING.'A'and"A"are different types. - String positions start at 1, not 0.
MID(s, 1, 1)is the first character. RAND(n)never returns n itself, andINTcuts off the fraction rather than rounding.
Pièges qui font perdre des points
- Les noms IGCSE
UCASE,LCASE,VALetSTRne sont pas acceptés au niveau A. UtilisezTO_UPPER,TO_LOWER,STR_TO_NUM,NUM_TO_STR. - Des guillemets simples créent un
CHAR, des guillemets doubles créent unSTRING.'A'et"A"sont des types différents. - Les positions de chaîne commencent à 1, pas à 0.
MID(s, 1, 1)est le premier caractère. RAND(n)ne retourne jamais n lui-même, etINTcoupe la fraction plutôt qu'arrondir.
You've got it
- design → pseudocode: find the variables and types, then map each flowchart symbol to a statement and trace a small input
- constant set once, changed in one place, named; variable declared with one of six types read off how it is used
←assigns;DIVwhole-number division,MODremainder; precedenceNOT→* / DIV MOD→+ -→ comparisons →AND→OR- use the insert's library routines with their exact 9618 names:
LENGTH,MID,TO_UPPER,NUM_TO_STR,INT,RAND
Vous avez compris
- design → pseudocode : trouvez les variables et les types, puis mappez chaque symbole de diagramme de flux à une instruction et tracez une petite entrée
- constante définie une fois, modifiée à un seul endroit, nommée ; variable déclarée avec l'un des six types déterminés par son utilisation
←affecte ;DIVdivision entière,MODreste ; prioritéNOT→* / DIV MOD→+ -→ comparaisons →AND→OR- utilisez les library routines 库例程 de l'insert avec leurs noms exacts 9618 :
LENGTH,MID,TO_UPPER,NUM_TO_STR,INT,RAND