Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Programmation  Extension  Emulateur  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les remarques
Les opérateurs
Les instructions conditionnelles
Les instructions de boucle
Référence d'instructions et de fonctions
Les premiers pas
Les variables
Écrire des programmes BASIC simples
Les boucles
Une boucle dans une boucle (Minuterie)
Décisions, décisions,...
L'écran
Les couleurs
Chance aléatoire
Lecture de données
Aide à l'arithmétique
Aide avec les mots
Enregistrement de programmes
Éditer des programmes
Les questionnaires
Musique
Bonjour
Spécial
Temps
Trigonométrie
Sortie ROM
Année bissextile
ArcCos
ArcSin
Disk Extended Color Basic
VCC
Raccourci clavier (Shortcut Keys)
Emplacements de palette
Codes BASIC 128 à 255 / Écran de texte à basse définition
Codes BASIC 128 à 159 / Écran de texte à haute définition
RAM du Coco 3
Code d'erreur du Coco 3
Préface
Notes légal
Dictionnaire
Recherche

Décisions, décisions,...

Voici une décision facile pour l'ordinateur : si vous tapez ORANGE ... alors rendez l'écran orange ou si vous tapez CHAMOIS alors rendez l'écran chamois. Assez facile ? Ensuite, demandez à l'ordinateur de le faire.

Tapez ce programme :

  1. 10 PRINT"VOULEZ-VOUS L'ECRAN ORANGE OU CHAMOIS ?"
  2. 20 INPUT C$
  3. 30 IF C$="ORANGE"THEN 100
  4. 40 IF C$="CHAMOIS"THEN 200
  5. 100 CLS 8
  6. 110 END
  7. 200 CLS 5

Exécutez le programme plusieurs fois. Essayez à la fois ORANGE et CHAMOIS comme réponses.

Si vous répondez ORANGE ... alors ...

Par contre... Si vous répondez CHAMOIS... alors...

Que se passe-t-il si vous répondez par autre chose que ORANGE ou CHAMOIS ? Exécutez à nouveau le programme. Cette fois, répondez VERT.

Cela rend l'écran orange. Est-ce que vous savez pourquoi ?

Si la condition est fausse, l'ordinateur ignore la partie THEN de la ligne et passe à la ligne de programme suivante.

La commande que vous avez utilisée pour que l'ordinateur prenne une décision est la commande IF/THEN. Voici la syntaxe de IF/THEN, mais ne vous attendez pas à tout comprendre avant d'avoir atteint la fin de cette page :

IF condition THEN commands ELSE commands

Teste la condition. Si c'est vrai, BASIC exécute les commands suivant THEN. Si c'est faux, BASIC exécute les commands suivant ELSE ou, si ELSE est omis, ne fait rien.

Vous avez également utilisé la commande END. Sa syntaxe est :

END

Termine l'exécution du programme.

Ajout d'un autre niveau (l'option ELSE et les commandes imbriquées IF/THEN)

Jetez un autre coup d'oeil au programme ci-dessous :

  1. 10 PRINT"VOULEZ-VOUS L'ECRAN ORANGE OU CHAMOIS ?"
  2. 20 INPUT C$
  3. 30 IF C$="ORANGE"THEN 100
  4. 40 IF C$="CHAMOIS"THEN 200
  5. 100 CLS 8
  6. 110 END
  7. 200 CLS 5

En utilisant ELSE, vous pouvez reformuler la décision de cette manière :

Si vous tapez ORANGE alors rendez l'écran orange ou bien si vous tapez CHAMOIS alors rendez l'écran chamois.

Vous pouvez dire tout cela à l'ordinateur en une seule ligne. Effacez les lignes 30-200 (DEL 30-200) et tapez comme nouvelle ligne 30 :

  1. 30 IF C$="ORANGE"THEN CLS 8 ELSE IF C$="CHAMOIS"THEN CLS 5

Exécutez le programme et il fonctionne exactement comme avant.

Notez que la ligne 30 imbrique une commande IF/THEN dans une autre. Vous pouvez imbriquer autant de commandes IF/THEN que vous le souhaitez, à condition que la ligne de programme ne contienne pas plus de 249 caractères (la longueur de ligne maximale). Vous pouvez également tester si quelque chose n'est pas égal à (<>), supérieur à (>), inférieur à (<), supérieur ou égal à (>=) ou inférieur ou égal à (<=) en utilisant l'un des les symboles entre parenthèses au lieu de = dans un test. Par exemple :

  1. 30 IF A>B THEN 100

irait à 100 si A était supérieur à B.

Et encore plus de niveaux (clauses supplémentaires ELSE)

Supposons qu'en plus de ce que l'ordinateur a fait auparavant, vous vouliez dire à l'ordinateur du moniteur quoi d'autre il doit faire si C$ n'est pas égal à ORANGE.

En d'autres termes, vous voulez ajouter une autre clause ELSE à votre décision : si vous tapez ORANGE alors rendez l'écran orange ou bien (ELSE) si vous tapez CHAMOIS alors rendez l'écran chamois ou bien (ELSE) :

  1. PRINT"VOUS DEVEZ TAPEZ ORANGE OU CHAMOIS"

Pour ajouter cette nouvelle clause ELSE, insérez ELSE, suivi de la commande PRINT, à la fin de la ligne 30 :

  1. 30 IF C$="ORANGE" THEN CLS 8 ELSE IF C$="CHAMOIS"THEN CLS 5 ELSE PRINT"VOUS DEVEZ TAPEZ ORANGE OU CHAMOIS"

Exécutez le programme, mais cette fois, répondez à la question de l'ordinateur avec autre chose que orange ou chamois. Cette réponse provoque l'affichage par l'ordinateur du message «VOUS DEVEZ TAPEZ ORANGE OU CHAMOIS».

Vous pouvez ajouter autant de clauses ELSE que vous le souhaitez, tant que la ligne entière ne contient pas plus de 249 caractères.

Et emballer encore plus dans une décision (les deux-points (:))

Pour ajouter encore plus de puissance à la commande IF/THEN, vous pouvez demander à l'ordinateur d'exécuter n'importe quel nombre de commandes après chaque clause THEN ou ELSE. Par exemple, supposons que vous vouliez que l'ordinateur fasse ceci :

Si vous tapez ORANGE alors rendez l'écran orange et allez à la ligne 10 ou bien si vous tapez CHAMOIS alors faites l'écran chamois et allez à la ligne 10 ou bien affichez un message et allez à la ligne 20.

Vous pouvez dire tout cela sur une seule ligne en utilisant des deux-points pour séparer chaque commande. Remplacez la ligne 30 par la suivante :

  1. 30 IF C$="ORANGE"THEN CLS 8:GOTO 10 ELSE IF C$="BUFF"THEN CLS 5:GOTO 10 ELSE PRINT"VOUS DEVEZ TAPEZ ORANGE OU CHAMOIS":GOTO 20     

Vous pouvez ajouter autant de commandes que vous le souhaitez à une clause THEN ou ELSE, tant que la ligne ne contient pas plus de 249 caractères.

Une décision plus subtile (les conditions AND ou OR)

En utilisant deux mots supplémentaires, AND ou OR, vous pouvez demander à l'ordinateur de prendre une décision plus simple. Par exemple, vous souhaitez écrire un programme testant pour voir si un candidat répond aux exigences de ce poste :

Un diplôme en programmation
ET
Expérience en programmation

Effacez la mémoire (NEW). Puis tapez et exécutez ce programme :

  1. 10 PRINT "AS-TU--"
  2. 20 INPUT "UN DIPLOME EN PROGRAMMATION"; D$
  3. 30 INPUT "EXPERIENCE EN PROGRAMMATION"; E$
  4. 40 IF D$="OUI" AND E$="OUI"THEN PRINT"JE VOUS EMBAUCHE" ELSE PRINT"DESOLE, NOUS NE POUVONS PAS VOUS ENGAGER"
  5. 50 GOTO 10

Si vous répondez aux deux questions avec OUI, l'ordinateur prend cette décision :

JE VOUS EMBAUCHE

Si, au contraire, vous répondez à la première question par OUI, mais répondez à la deuxième question par NON, l'ordinateur est forcé de prendre cette décision :

DESOLE, NOUS NE POUVONS PAS VOUS ENGAGER

Maintenant, supposons que les exigences changent de sorte que AND devienne OR. Le travail nécessite :

Un diplôme en programmation
OU
Expérience en programmation

Changez la ligne 40 pour que AND devienne OR :

  1. 40 IF D$="OUI" OR E$="OUI"THEN PRINT"JE VOUS EMBAUCHE" ELSE PRINT"DESOLE, NOUS NE POUVONS PAS VOUS ENGAGER"

Exécutez le programme. Répondez à la première question par "OUI" et à la deuxième question par "NON" - comme vous l'avez dit auparavant - et voyez la différence qu'un seul mot peut faire :

JE VOUS EMBAUCHE

COMMANDES

IF/THEN/ELSE
END
AND
OR
CONCEPTS

Test de logique


PARTAGER CETTE PAGE SUR
Dernière mise à jour : Samedi, le 11 mars 2023