Basic Programmation avec Liberty Basic
Transcription
Basic Programmation avec Liberty Basic
Introduction Le langage Basic a été créé en 1964 aux Etats-Unis. Basic est l’abréviation de Beginners All Purpose Symbolic Instruction Code. Si vous connaissez quelques mots d’anglais, vous avez compris que les concepteurs de ce langage le destinaient avant tout aux programmeurs débutants. Si cela reste vrai encore aujourd’hui, le Basic (et Liberty Basic, en particulier) n’est pas un sous-langage. Tout au long de cet ouvrage, nous allons vous faire découvrir les innombrables possibilités du Liberty Basic. En tant que programmeur débutant, vous apprécierez sa facilité d’accès, ses outils d’interfaçage et de mise au point... Que vous décidiez par la suite de conserver Liberty Basic ou de passer à un langage plus évolué, tel que le Delphi ou le C++, par exemple, cet ouvrage vous aura permis d’acquérir les bases que tout bon programmeur se doit d’avoir... Le langage Liberty Basic Liberty Basic se compose de 102 instructions élémentaires qu’il suffit d’assembler judicieusement pour réaliser un programme de jeu, une analyse financière ou un numéroteur téléphonique ! Dans la première partie de cet ouvrage, vous allez apprendre les bases de la programmation en Liberty Basic. Ne négligez pas cette partie. Je sais que la tentation d’aligner quelques lignes de code doit être très grande. Cependant, si vous tentez d’écrire vos programmes sans un minimum de connaissances et sans faire preuve de rigueur, vous courrez droit à la catastrophe et au découragement. Lisez et relisez la première partie pour comprendre les principes essentiels de Liberty Basic. Vous en sortirez transformé(e) et attaquerez la programmation du bon pied. 2 Introduction Comment écrire un programme Les programmes que vous écrirez peuvent être courts ou longs, simples ou complexes : tout dépend des objectifs à atteindre. Par exemple, pour calculer et afficher le sinus d’un angle, une seule instruction suffit. Par contre, pour simuler le fonctionnement d’une calculatrice de poche, une bonne centaine de lignes de code sont nécessaires. Comment devez-vous programmer pour être efficace ? La plupart des programmeurs débutants sont tentés par la saisie directe de code dans l’éditeur. Cette technique apporte d’assez bons résultats tant que le programme à développer est court et/ou simple. Mais vous courrez à l’échec si votre programme est constitué d’une centaine de lignes ou repose sur des concepts que vous ne maîtrisez pas parfaitement. Mais alors, comment programmer ? Nous allons partir d’une remarque. La plupart des programmes peuvent être modélisés sous la forme d’une boîte noire (voir Figure I.1). Figure I.1 : Modélisation élémentaire d’un programme. Une ou plusieurs données sont fournies au programme. Le résultat a atteindre est obtenu en appliquant un ou plusieurs traitements à ces données. Par exemple, pour calculer les solutions d’une équation de second degré, l’utilisateur doit fournir la valeur des constantes a, b et c : ax2 + bx + c = 0 Introduction Le traitement consiste à appliquer les formules que tout bon étudiant se doit de connaître... delta = b2 – 4ac Si le déterminant est négatif, il n’existe aucune solution. Si le déterminant est positif, les solutions sont (–b – racine(delta))/2a et (–b + racine(delta))/2a. Si le déterminant est nul, il existe une solution unique égale à –b/2a. Le schéma "boîte noire" est donc conforme à la Figure I.2. Figure I.2 : Modélisation de la résolution d’une équation du second degré. La plupart des programmes peuvent dont être divisés en trois parties : • saisie des données ; • calculs ; • affichage des résultats. Chacune de ces parties peut faire l’objet d’un bloc de code indépendant, stocké dans un sous-programme appelé par une instruction GOSUB (voir la section intitulée "Débranchements" dans le Chapitre 2). Ainsi, le programme de résolution d’équations du second degré pourrait être réalisé comme suit (ce programme se trouve dans le dossier CPP du CD-ROM sous le nom SECDEGRE.BAS) : REM --------------------------------------------------REM programme de résolution d’équations du second degré REM --------------------------------------------------GOSUB [saisie] GOSUB [determinant] GOSUB [resultat] END 3 4 Introduction [saisie] PRINT "Résolution d’équations du second degré" PRINT "du type ax_ + bx + c = 0" PRINT INPUT "Entrez la valeur du paramètre a : ";a INPUT "Entrez la valeur du paramètre b : ";b INPUT "Entrez la valeur du paramètre c : ";c RETURN [determinant] delta = b*b - 4*a*c RETURN [resultat] PRINT if (delta<0) THEN PRINT "Aucun résultat." : RETURN if (delta=0) THEN PRINT "Un résultat : ";0-b/2*a : RETURN PRINT "Deux résultats :" PRINT " ";(0-b-delta^0.5)/(2*a) PRINT "et" PRINT " ";(0-b+delta^0.5)/(2*a) RETURN Le programme principal se contente d’appeler les trois sous-programmes saisie, determinant et resultat : GOSUB [saisie] GOSUB [determinant] GOSUB [resultat] END Le sous-programme de saisie demande la valeur des trois paramètres et les stocke dans les variables a, b et c : INPUT "Entrez la valeur du paramètre a : ";a INPUT "Entrez la valeur du paramètre b : ";b INPUT "Entrez la valeur du paramètre c : ";c Enfin, le sous-programme d’affichage du résultat se sert de la valeur delta pour calculer, puis afficher la ou les solutions. if (delta<0) THEN PRINT "Aucun résultat." : RETURN if (delta=0) THEN PRINT "Un résultat : ";0-b/2*a : RETURN PRINT "Deux résultats :" PRINT " ";(0-b-delta^0.5)/(2*a) PRINT "et" PRINT " ";(0-b+delta^0.5)/(2*a) RETURN Introduction Ce sous-programme ne comprend pas une, mais trois instructions de retour (RETURN), qui sont invoquées à la fin de chaque traitement spécifique aux valeurs de delta. Remarque Liberty Basic ne tolère pas une syntaxe du type –b/2*a. C’est la raison pour laquelle nous avons fait précéder chaque signe négatif d’un "0". Cet exemple correspond à un exemple simpliste de programmation. Nous pourrions le représenter par le graphe de la Figure I.3. Figure I.3 : Graphe hiérarchique du programme. Lorsque les blocs de saisie, de traitement et/ou de sortie sont plus complexes, n’hésitez pas à les décomposer en autant de sousprogrammes que nécessaire, pour assurer la clarté du programme et éviter toute zone de flou au niveau de la programmation. Conventions Dans cet ouvrage, nous emploierons le terme programmeur pour parler de la personne qui écrit et qui met au point un programme, et le terme utilisateur pour désigner la personne qui exécute un programme. Bien entendu, le programmeur peut aussi être l’utilisateur. Le code correspond aux instructions Liberty Basic et aux données tapées par le programmeur. Pour augmenter la lisibilité des programmes, toutes les instructions Liberty Basic seront écrites en lettres majuscules et toutes les variables en lettres minuscules. 5