Section courante

A propos

Section administrative du site

Les décisions

Tous les programmes que nous avons vus jusqu'à présent étaient assez prévisibles - ils suivaient directement les instructions, puis revenaient au début. Ce n'est pas très utile. En pratique, on s'attendrait à ce que l'ordinateur prenne des décisions et agisse en conséquence. L'instruction utilisée a la forme SI (IF) quelque chose est vrai, ou pas vrai ALORS (THEN) faites autre chose.

Par exemple, utilisez NEW pour effacer le programme précédent de l'ordinateur et tapez et exécutez ce programme. (Ceci est clairement destiné à jouer à deux !)

  1. 10 REM Devinez le nombre
  2. 20 INPUT a: CLS
  3. 30 INPUT "Devinez le nombre", b
  4. 40 IF b=a THEN PRINT "C'est correcte":STOP
  5. 50 IF b<a THEN PRINT "C'est trop petit, reessayez"
  6. 60 IF b>a THEN PRINT "C'est trop gros, reessayez"
  7. 70 GO TO 30

vous pouvez voir qu'une instruction IF prend la syntaxe suivante :

IF condition THEN

où le '...' représente une séquence de commandes, séparées par des deux-points de la manière habituelle. La condition est quelque chose allant être définie comme vraie ou fausse : si elle est vraie, les instructions du reste de la ligne après THEN sont exécutées, mais sinon elles sont ignorées et le programme exécute l'instruction suivante.

Les conditions les plus simples comparent deux nombres ou deux chaînes de caractères : elles peuvent tester si deux nombres sont égaux ou si l'un est plus grand que l'autre ; et ils peuvent tester si deux chaînes de caractères sont égales, ou (en gros) l'une vient avant l'autre dans l'ordre alphabétique. Ils utilisent les relations =, <, >, <=, >= et <>.

= signifie «égal». Bien qu'il s'agisse du même symbole que le = dans une commande LET, il est utilisé dans un sens assez différent.

< (SYMBOL SHIFT avec R) signifie «est inférieur à» de sorte que :

sont tous vrais, mais :

sont faux.

La ligne 40 compare a et b. S'ils sont égaux, le programme est arrêté par la commande STOP. Le rapport au bas de l'écran 9 STOP, instruction, 30:3 indique que la troisième instruction, ou commande, de la ligne 30 a provoqué l'arrêt du programme, c'est-à-dire STOP.

La ligne 50 détermine si b est inférieur à a, et la ligne 60 si b est supérieur à a. Si l'une de ces conditions est vraie, le commentaire approprié est affiché et le programme se dirige vers la ligne 70 qui indique à l'ordinateur de revenir à la ligne 30 et de tout recommencer.

La commande CLS, abréviation de l'anglicisme CLear Screen, à la ligne 20 était d'empêcher l'autre personne de voir ce que vous mettez.

Donc > (SYMBOL SHIFT avec T) signifie "est supérieur à", et est comme < mais dans l'autre sens. Vous pouvez vous rappeler lequel est lequel, car l'extrémité fine pointe vers le nombre étant censé être le plus petit.

<= (SYMBOL SHIFT avec Q - ne le tapez pas comme < suivi de =) signifie 'est inférieur ou égal à', donc c'est comme < sauf que c'est vrai même si les deux nombres sont égaux : donc 2<=2 est vrai, mais 2<2 est faux.

>= (SYMBOL SHIFT avec E) signifie "est supérieur ou égal à" et est similaire à >.

<> (SYMBOL SHIFT avec W) signifie 'n'est pas égal à', le sens opposé à =.

Les mathématiciens écrivent généralement <=, >= et <> comme ≤, ≥ et ≠. Ils écrivent également des choses comme '2<3<4' pour signifier '2<3 et 3<4', mais ce n'est pas possible en BASIC.

Remarque : dans certaines versions de BASIC - mais pas sur le ZX Spectrum - l'instruction IF peut avoir la forme suivante :

IF condition THEN linenumber

Cela signifie la même chose que :

IF condition THEN GO TO linenumber


Dernière mise à jour : Mercredi, le 19 avril 2023