0% ont trouvé ce document utile (0 vote)
19 vues88 pages

Algorigramme : Exercice Corrigé 4ème

Ce document présente un cours sur la programmation et l'algorithmique, visant à initier les étudiants aux bonnes pratiques de programmation et à la création d'algorithmes efficaces. Il aborde les concepts fondamentaux tels que la structure d'un algorithme, les entrées et sorties, ainsi que la gestion des variables et constantes. L'objectif est de fournir une base solide pour résoudre des problèmes informatiques de manière méthodique et compréhensible.

Transféré par

ynlandu
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues88 pages

Algorigramme : Exercice Corrigé 4ème

Ce document présente un cours sur la programmation et l'algorithmique, visant à initier les étudiants aux bonnes pratiques de programmation et à la création d'algorithmes efficaces. Il aborde les concepts fondamentaux tels que la structure d'un algorithme, les entrées et sorties, ainsi que la gestion des variables et constantes. L'objectif est de fournir une base solide pour résoudre des problèmes informatiques de manière méthodique et compréhensible.

Transféré par

ynlandu
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@gmail.

com

La plus grosse maladie du cerveau humain, est la réflexion. C’est pourquoi l’objectif de
ce cours est de vous initier à la bonne pratique de la programmation afin de mieux réfléchir sur
comment résoudre un problème informatique de bas niveau.

P a g e 1 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Algorithme et Méthodes de Programmation


Par Ir Yannick Julias MAMPASI, Développeur Informatique

P a g e 2 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

INTRODUCTION

L‟un des objectifs de la formation d‟un informaticien au premier cycle


est de lui donner une base solide de la programmation. Ce support répond
parfaitement à cette préoccupation car il a été conçu de manière à vous initier
aux bonnes habitudes de la programmation et à la création des algorithmes
efficaces.

Ce support a aussi pour but de de vous apprendre à acquérir un style de


programmation agréable et lisible par tous les programmeurs qui examinerons
votre pseudocode (algorithme). Les intérêts d‟un bon style de programmation
sont multiples : les autres programmeurs peuvent plus facilement comprendre
vos algorithmes et vous aider ou vous donner conseils.

Voilà pourquoi, ce cours présente des concepts communs aux divers


langages de programmation utilisés en calcul scientifique et des conseils
généraux de programmation.

Nous nous plaçons donc à un niveau logique, que nous distinguons de


l‟écriture du code des programmes. L‟idée est de repousser à une étape
ultérieure les problèmes de programmation spécifiques à un langage de
programmation particulier et les problèmes de détail.

Le produit du travail au niveau logique est un « algorithme ». Un


algorithme est une suite finie, séquentielle, de règles que l‟on applique à un
nombre fini de données, pour résoudre des classes de problèmes semblables. Par
exemple : l‟algorithme d‟Euclide permet de trouver le plus grand commun
diviseur de deux nombres entiers.

GENERALITES SUR LE TRAITEMENT DE L’INFORMATION

Le schéma global d‟une application informatique est toujours le même :

Réception Traitement des Sortie d‟informations


d‟informations informations traités
P a g e 3 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Exemple :

Saisie des n Somme de ces Emission de la


valeurs numériques n valeurs somme de n valeurs

P a g e 4 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

I. NOTION D’ALGORITHME

Pour résoudre un problème de manière informatique il y a un


cheminement méthodique à respecter :

Le mot Algorithme tire son nom du mathématicien persan Al-


Khuwarizmi (né vers 780 - mort vers 850) qui a écrit en langue arabe le plus
ancien traité d‟algèbre baptisé « Abrégé de calcul par la complétion et la
simplification » dans lequel il décrivait des procédés de calcul à suivre étape par
étape pour résoudre des problèmes ramenés à des équations. Toutefois, les
algorithmes existent depuis plus longtemps : les Mésopotamiens calculaient déjà
en 1 800 avant J.-C. des valeurs approchées des racines carrées à l‟aide
d‟algorithmes.

Algorithme : séquence finie d‟actions permettant de résoudre un problème


donné. La notion d‟algorithmique est directement dérivée du concept
d‟algorithme :
Algorithmique : ensemble des méthodes permettant de définir et/ou d‟étudier
des algorithmes.

Les premiers algorithmes sont destinés à résoudre certains problèmes


mathématiques simples, par exemple multiplier ou diviser des nombres. Ils
étaient appliqués manuellement, et sont antérieurs de plusieurs siècles (voire
millénaires) à l‟invention des ordinateurs. Ceci permet d‟ores et déjà d‟établir
l‟indépendance entre un algorithme et sa mise en œuvre, c‟est à dire (dans le
cadre informatique) son implémentation.

P a g e 5 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Il existe également des algorithmes qui n‟ont rien à voir avec les
mathématiques, comme par exemple les recettes de cuisine. Une recette est une
séquence d‟instructions à suivre pour réaliser un plat donné, elle est mise en
œuvre manuellement par un cuisinier.

I.1. CARACTERISTIQUES D'UN ALGORITHME

L'algorithme est un moyen pour le programmeur de présenter son


approche du problème à d'autres personnes. En effet, un algorithme est l'énoncé
dans un langage bien défini d'une suite d'opérations permettant de répondre au
problème. Un algorithme doit donc être :

 Lisible : l'algorithme doit être compréhensible même par un non-


informaticien ;
 De haut niveau : l'algorithme doit pouvoir être traduit en n'importe quel
langage de programmation, il ne doit donc pas faire appel à des notions
techniques relatives à un programme particulier ou bien à un système
d'exploitation donné ;
 Précis : chaque élément de l'algorithme ne doit pas porter à confusion, il
est donc important de lever toute ambiguïté ;
 Concis : un algorithme ne doit pas dépasser une page. Si c'est le cas, il
faut décomposer le problème en plusieurs sous-problèmes ;
 Structuré : un algorithme doit être composé de différentes parties
facilement identifiables ;
 Nommé : un algorithme doit présenter l‟idée générale du problème à
traiter par son nom.

I.2. STRUCTURE D'UN ALGORITHME

Un algorithme est structuré de la manière suivante :


 D’un en-tête, c’est la partie qui contient le nom de l’algorithme ;
 D’un bloc d’instructions placé entre les mots clé Début et Fin.
Exemple :

Algorithme Calcul du PGCD « En-tête de l’algorithme portant le nom « Calcul du PGCD »

P a g e 6 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Début

Bloc d’instructions

Fin

Trois phases indissociables structurent un algorithme :

1. La préparation du traitement ;
2. Le traitement de donnée(s) ;
3. La sortie de résultat(s)

I.3. ALGORIGRAMME

En algorithmique, on peut aussi utiliser un algorigramme (ordinogramme


ou organigramme), c‟est-à-dire représenter graphiquement l‟algorithme à l‟aide
de symboles normalisés.

Début ou Traitement Entrée / sortie Test


Fin

Branchement

Exemple : Ordre croissant des deux nombres

Début

Lire x, y

S=x+y

Non Oui
Ecrire x, y x>y Ecrire y, x

Ecrire S

P a g e 7 | 88
Fin
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

ii. LES ENTREES-SORTIES

Un algorithme correspond à un traitement effectué sur des données pour


obtenir un certain résultat.

En algorithmique le mot « Entrée » est couramment utilisé pour désigner


les données de départ (celles que l'on traite) et le mot « Sortie » pour désigner le
résultat du traitement.

En informatique générale, ces mots correspondent à des 'fichiers' au sens


le plus général (entrée= clavier, sortie= display ou imprimante).

Les entrées-sorties sont des échanges entre la mémoire centrale et


l‟extérieur : écran, clavier, mémoire de stockage.

Pour les entrées, la syntaxe du langage de description d’algorithme est :


Entrer (ma_variable) ou lire (ma_variable) ceci signifie que l‟on attend une
valeur de l‟extérieur saisie par l‟utilisateur pour l‟affecter à ma_variable. On
pourra aussi écrire l‟instruction avec plusieurs variables, par exemple :

Entrer (x, y, z) ou lire (x, y, z)

Pour les sorties, la syntaxe du langage de description d’algorithme est :


Ecrire (expression) ce qui signifie : calculer la valeur de l‟expression et l‟écrire.
On pourra aussi écrire plusieurs expressions : écrire (expression1, expression2,
...)

Exemple :

P a g e 8 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Ecrire 3+4 ;
Ecrire “Bonjour tout le monde” ;

La première ligne de code affiche comme résultat après exécution 7, la


deuxième Bonjour tout le monde.

Que s’est-il passé ?

A la première ligne, vous avez demandé à l‟ordinateur d‟effectuer


l‟addition du chiffre 3 et du chiffre 4, comme à une calculatrice.

A la 2ème, vous avez demandé à l‟ordinateur qu‟il vous affiche le texte


passé entre “ ”, et celui-ci affiche Bonjour tout le monde comme vous l‟avez
demandé.

A ce stade de l‟apprentissage, il est bon de préciser que vous pouvez


écrire l‟instruction Ecrire en minuscule ou en majuscule

P a g e 9 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

III. CONSTANTES ET VARIABLES

Les langages de programmation classiquement utilisés en calcul


scientifique sont dits “impératifs”. Dans un tel langage, un programme est une
suite d‟instructions, dans un ordre bien défini, qui modifient “l‟état de la
mémoire”. La mémoire est essentiellement un ensemble de “variables”, qui
contiennent des valeurs, en général des nombres ou du texte.

Une variable est un emplacement que l’on réserve dans la mémoire de


l’ordinateur pour y stocker des données. Mais voilà, la gestion de la mémoire
d‟un ordinateur est relativement complexe.

Une constante, comme une variable, peut représenter un chiffre, un


nombre, un caractère, une chaîne de caractères, un booléen. Toutefois,
contrairement à une variable dont la valeur peut être modifiée au cours de
l‟exécution de l‟algorithme, la valeur d‟une constante ne varie pas.

III.1. CARACTERISTIQUES D’UNE VARIABLE ET D’UNE CONSTANTE

Pour gérer les variables, il suffit de répondre aux caractéristiques


suivantes.

 Avoir un nom unique qui la différencie des autres (identificateur) ;


 Le nom d‟une variable ne doit pas dépasser 40 caractères ;
 Le nom d‟une variable ne doit pas comporter un caractère spécial comme
é, à, ü, etc… ;
 Une variable ne peut avoir un nom réservé. C‟est-à-dire que vous ne
pouvez pas appeler une variable Ecrire, Lire, …
 Une variable peut comporter des chiffres, mais elle doit impérativement
commencer par une lettre.

Voici les noms de variables valides :


i, e, manger, compter2, Anticonstitutionnellement

Et voici des noms de variables invalides :


P a g e 10 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

2ages, Ecrire, Lire, Parlé….

Une variable peut être vue comme une boîte dans laquelle sont rangées
des informations qui peuvent être récupérées en tout temps. À la différence de la
boîte qui redevient vide lorsqu'on en retire son contenu, la variable stocke une «
copie » des données que l'algorithme y range (via l‟affectation).

Ainsi, lorsque l'algorithme récupère les données d'une variable, il


récupère en fait une copie du contenu de la variable. Cette dernière conserve
donc ses données (i.e. son contenu), qui peuvent être récupérées à de multiples
reprises. En fait, une variable conserve ses données jusqu'à ce que d'autres
données y soient stockées, remplaçant les données antérieures, ou jusqu'à ce que
la variable soit détruite par l'algorithme.

III.2. A QUOI SERVENT LES VARIABLES ?

Dans un programme informatique, on va avoir en permanence besoin de


stocker provisoirement des valeurs. Il peut s‟agir de données issues du disque
dur, fournies par l‟utilisateur (frappées au clavier), ou que sais-je encore. Il peut
aussi s‟agir de résultats obtenus par le programme, intermédiaires ou définitifs.
Ces données peuvent être de plusieurs types (on en reparlera) : elles peuvent être
des nombres, du texte, etc. Toujours est-il que dès que l‟on a besoin de stocker
une information au cours d‟un programme, on utilise une variable.

Pour employer une image, une variable est une boîte, que le programme
(l‟ordinateur) va repérer par une étiquette. Pour avoir accès au contenu de la
boîte, il suffit de la désigner par son étiquette.

En réalité, dans la mémoire vive de l‟ordinateur, il n‟y a bien sûr pas une
vraie boîte, et pas davantage de vraie étiquette collée dessus (j‟avais bien
prévenu que la boîte et l‟étiquette, c‟était une image). Dans l‟ordinateur,
physiquement, il y a un emplacement de mémoire, repéré par une adresse
P a g e 11 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

binaire. Si on programmait dans un langage directement compréhensible par la


machine, on devrait se fader de désigner nos données par de superbes 10011001
et autres 01001001 (enchanté !). Mauvaise nouvelle : de tels langages existent !
Ils portent le doux nom d‟assembleur. Bonne nouvelle : ce ne sont pas les seuls
langages disponibles.

Les langages informatiques plus évolués (ce sont ceux que presque tout
le monde emploie) se chargent précisément, entre autres rôles, d‟épargner au
programmeur la gestion fastidieuse des emplacements mémoire et de leurs
adresses. Et, comme vous commencez à le comprendre, il est beaucoup plus
facile d‟employer les étiquettes de son choix, que de devoir manier des adresses
binaires.

III.3. DECLARATION D’UNE VARIABLE ET D’UNE CONSTANTE

La première des choses à faire avant l‟utilisation d‟une variable ou d‟une


constante, est de la créer (c‟est ce qu‟on appelle par déclaration). Il existe deux
(2) façons de créer une variable : implicite et explicite, et une seule façon de
créer une constante : implicite

Déclaration implicite

Elle consiste à créer la variable ou constante tout au début du pseudo-


code (algorithme) avant son utilisation dans le corps de l‟algorithme.

Algorithme : Calcule du périmètre


Variable : longueur, largeur en entier Déclaration implicite
Constante : PI=3.14
Début
Lire (longueur, largeur)
Fin
On utilise ces variables ici

P a g e 12 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Déclaration Explicite

Elle consiste à utiliser une variable, sans pouvoir la créer au préalable


avec le mot clé variable : comme dans l‟exemple précédent.

Algorithme : Calcule du périmètre Déclaration explicite, c.à.d. on


Début utilise les variables directement
L=10, l=5
Fin sans les avoir créés au début.

En pseudocode algorithmique, on est bien sûr libre du nombre de signes


pour un nom de variable, même si pour des raisons purement pratiques, et au
grand désespoir de Stéphane Bern, on évite généralement les noms à rallonge.

Lorsqu‟on déclare une variable, il ne suffit pas de créer une


boîte (réserver un emplacement mémoire) ; encore doit-on préciser ce que l‟on
voudra mettre dedans, car de cela dépendent la taille de la boîte (de
l‟emplacement mémoire) et le type de codage utilisé.

III.4. TYPE DE VARIABLE

Il existe le type de variable selon les données à affecter à celle-ci. C‟est


ainsi nous avons le type de données suivant :

 Type numérique : entier, réel (0,1,2,3…0.5, 1.5, 0.55)


 Type chaine ("Je suis", "Informatique")
 Type caractère ("a", "f")
 Type booléen (vrai, faux)

N.B : remarquez le symbole " de part et d‟autre de chaque valeur du type chaine,
et bien, tout ce qui est expression ou valeur alphanumérique ou chaine, est mise
entre ce symbole " de part et d‟autre.

P a g e 13 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Exemple 1 : un algorithme qui calcule la somme de deux nombres saisis par


l’utilisateur
Algorithme : Somme de deux nombres
Variable : x, y en entier
Début
Ecrire ("Saisir un 1er nombre : ")
Lire(x)
Ecrire ("Saisir un 2ème nombre : ")
Lire(y)
Ecrire (x + y)
Fin

Exercice
1. Ecrire un algorithme qui demande un nombre à l‟utilisateur et affiche le
double de ce nombre.
2. Ecrire un algorithme qui demande un nombre à l‟utilisateur et affiche le reste
de la division par 2 de ce nombre.
3. Ecrire un algorithme qui demande un nom à l‟utilisateur et affiche le
« Bonjour » suivi du nom de l‟utilisateur

P a g e 14 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

iv. OPERANDES ET OPERATEURS

IV.1. DEFINITION

Un opérateur est un outil qui permet d‟agir sur une variable ou


d‟effectuer des calculs, des comparaisons…

Un opérande est une donnée utilisée par un opérateur (une variable


souvent).

Exemple 2 : Dans «7 - x », « - » désigne l‟opérateur ; « 7 » et « x » sont les


opérandes.

IV.2. TYPES D’OPERATEURS

Il existe plusieurs types d‟opérateurs :

iv.2.1. Opérateurs arithmétiques

Les opérateurs arithmétiques sont ceux qui permettent d‟effectuer des


opérations arithmétiques entre opérandes numériques :

 Addition : « + »
 Soustraction : « - »
 Multiplication : « * »
 Division : « / »
 Puissance : « ^ »
 Reste de la division : modulo ou mod
 Division entière : div
 Racine carré : sqrt
iv.2.2. Opérateurs de comparaison

Qui permettent de comparer deux opérandes et produisent une valeur


booléenne, en s‟appuyant sur des relations d‟ordre :

 Ordre naturel pour les entiers et les réels


 Ordre lexicographique ASCII pour les chaînes de caractère

P a g e 15 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Il s‟agit donc de : =, ≠, <, >, ≤, ≥

iv.2.3. Opérateurs logiques

Les opérateurs logiques qui combinent des opérandes booléens pour


former des expressions logiques plus complexes :

 Opérateur unaire : « non » (négation)


 Opérateurs binaires : « et » (conjonction), « ou » (disjonction), « ou
exclusif »
iv.2.4. Opérateurs de concaténation

L‟opérateur de concaténation qui permet de créer une chaîne de


caractères à partir de deux chaînes de caractère en les mettant bout à bout. & ou
+

iv.2.5. Opérateur d’affectation

L‟opérateur d‟affectation, représenté par le symbole «  », qui confère


une valeur à une variable ou à une constante. Ex : a  7

Exemple 3 : Proposons un algorithme qui permet de calculer le prix toutes taxes


comprises d‟un article après l‟application d‟une TVA à 16 % sur le prix hors
taxes.
Algorithme : Calcul du Prix_TTC
Constante
TVA <- 0.16
Variables
qte : entier
pu, ptht, pttc : réel
Début
Ecrire ("Saisir la Qté à acheter : ")
Lire(qte)
Ecrire ("Saisir le Prix Unitaire : ")
Lire(pu)
Ptht <- qte * pu
Pttc <- ptht * (1 + TVA)

Ecrire pttc
Fin

P a g e 16 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

v. STRUCTURE DE CONTROLE

Le traitement de données est parfois conditionné et se réalise de manière


spécifique. On parle alors de STRUCTURES DE CONTRÔLE. Ces structures
algorithmiques peuvent être organisées suivant quatre familles principales :

 les structures linéaires ;


 les structures alternatives ;
 les structures répétitives ;
 les structures de choix.

V.1. STRUCTURE LINEAIRE

Une Structure Linéaire (ou structure séquentielle) se caractérise par une


suite de traitements à exécuter successivement, dans l‟ordre énoncé.

On note très simplement les structures linéaires, comme une suite de


traitements à exécuter dans l‟ordre où ils sont énoncés :

Exemple : Proposons un algorithme qui calcule la moyenne


de 3 notes, toutes au même coefficient.

P a g e 17 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

N.B : tous les algorithmes déjà traités ci-haut sont de la structure linéaire
(séquentielles).

V.2. STRUCTURES ALTERNATIVES

La structure alternative n‟offre que deux issues possibles à la poursuite


de l‟algorithme, qui s‟excluent mutuellement. Selon qu‟une condition est vraie
ou fausse, on effectue un traitement ou un autre. On parle de traitements
conditionnels. Une structure alternative est donc une structure de test.

Une CONDITION est une expression logique booléenne, prenant la


valeur « vrai » ou « faux » (c’est-à-dire « oui » ou « non »).

La résolution de certains problèmes nécessite parfois la mise en place


d‟un test pour effectuer une tâche, c.à.d. vérifier si une condition ou un critère
est rempli pour faire telle tâche. Pour ce faire :

 si le critère est rempli, on effectue un certain traitement ;


 sinon, c‟est-à-dire si le critère n‟est pas rempli, on effectue un autre
traitement.
En algorithmique, on traduit cette structure alternative à l‟aide
d’instructions conditionnelles.

v.2.1. Structure alternative réduite

La structure alternative réduite est utilisée lorsqu‟il n‟y a qu‟un seul


traitement à faire ou qu‟une seule tâche à exécuter mais sous une condition ou
un critère donné. On écrira ainsi la structure alternative « réduite » comme ceci :

Si (condition) Alors
traitement à faire (ou tâche à exécuter)
FinSi (la condition s’achève sans qu’on ait eu à effectuer de traitement 2
lorsque la condition n’a pas été vérifiée ; l’algorithme passe alors à l’instruction
suivante)

P a g e 18 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Exemple 4 : Ecrivons un algorithme qui calcule la racine d‟un nombre, si elle


existe.

Rappel : La fonction racine carrée est définie sur ℝ +


Lorsque le nombre saisi est supérieur ou égal à 0 :

Lorsque le nombre saisi est strictement négatif

v.2.2. Structure alternative complète

Contrairement à la structure alternative réduite, la structure alternative


complète est utilisée lorsqu‟il y un deuxième traitement à faire ou une deuxième
tâche à exécuter après que la condition n‟ait pas été vérifiée. Voici comment est
la syntaxe pour la structure alternative réduite :

P a g e 19 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Si (condition) Alors
traitement 1 ; (tâche à exécuter si la condition est vérifiée)
Sinon
traitement 2 ; (autre tâche à exécuter si la condition n‟est pas vérifiée)
FinSi

condition

traitement 2 traitement 2
Algorigramme

Exemple 5 (numérique) : Proposons un algorithme qui compare deux nombres.

Dans cet algorithme, l‟utilisateur est invité à


saisir deux entiers (variables a et b). Si la
valeur de la variable a est plus petite que la
valeur de la variable b, alors on affecte à la
variable m la valeur de la variable b. Sinon,
c‟est-à-dire si la valeur de la variable a est
plus grande que la valeur de la variable b,
alors m prend la valeur de la variable a.

Le résultat retourné est la valeur de la variable m, qui correspond au plus


grand des deux nombres choisis initialement par l‟utilisateur.

Remarque : Il existe des conditions simples et des conditions complexes :

P a g e 20 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

o une condition simple peut correspondre à un test d‟égalité (par exemple :


A=B) ou d‟inégalité (par exemple : A ≤ B)
o une condition complexe est une combinaison logique de conditions
simples (par exemple : A = B et B < C)
v.2.3. Structures alternatives imbriquées

Plusieurs structures alternatives peuvent être imbriquées, si bien que


dans un traitement peut (peuvent) figurer une ou plusieurs structure(s)
alternative(s). Pour une meilleure lisibilité de l‟algorithme, on utilise
l’INDENTATION, qui consiste à écrire les instructions sur des lignes différentes
en procédant à des décalages.

Exemple 5 : Ecrivons un algorithme qui affiche le message « Tu es adulte, Tu es


adolescent ou encore tu es enfant » selon l‟âge de l‟utilisateur !

Remarque : Il s‟avère parfois nécessaire d‟exécuter plusieurs fois de


suite le même traitement, c‟est-à-dire la même série d‟instructions. Dans ce cas,
il convient de faire appel aux structures répétitives.

P a g e 21 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

vi. LES STRUCTURES REPETITIVES

Une STRUCTURE REPETITIVE (ou STRUCTURE ITERATIVE)


répète l‟exécution d‟un traitement, dans un ordre précis, un nombre déterminé
ou indéterminé de fois. Une structure itérative est aussi appelée boucle.

Toutes les structures itératives répètent l‟exécution de traitement(s).


Deux cas sont cependant à envisager, selon que :

 le nombre de répétitions est connu à l‟avance : c‟est le cas des


boucles itératives
 le nombre de répétitions n‟est pas connu ou est variable : c‟est le
cas des boucles conditionnelles

VI.1. LA STRUCTURE POUR … DE … A …, FAIRE

Cette structure est une BOUCLE ITERATIVE ; elle consiste à répéter un


certain traitement un nombre de fois fixé à l‟avance.

En algorithmique, on traduit cette structure itérative à l‟aide des


instructions :
Pour i de 1 jusqu’à N Faire
traitement 1 (instruction à effectuer)
FinPour (on répète un nombre connu de fois le même traitement ; ici, de 1 à N,
donc N fois)

 La variable i est un compteur, dont la valeur augmente automatiquement


de 1 à chaque tour. Cette variable permet en définitive de contrôler le
nombre entier de tours. Cette variable est en d‟autres termes une variable
de contrôle d‟itération, caractérisée par sa valeur initiale, sa valeur finale
et son pas de variation.
P a g e 22 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

 La sortie de la boucle s‟effectue lorsque le nombre souhaité d‟itérations


est atteint, c‟est-à-dire lorsque i prend la valeur N.
Exemple 1 : Proposons un algorithme qui calcule le cube de tous les entiers
compris entre 1 et 20.

Affichage après lancement de l‟algorithme

Remarque : A chaque tour de boucle, on affiche la locution « Le nombre »


suivie de la valeur du nombre nb, suivie de la locution « a pour cube », suivie de
la valeur du calcul du cube (nb ^ 3) nb puissance 3.

Exemple 2 (numérique) : Ecrivons un algorithme permettant de calculer la


somme des entiers de 1 à N, le nombre N étant renseigné par l‟utilisateur.

Affichage après lancement de l‟algorithme

Remarque : A chaque tour de boucle, la


somme est affectée de la somme et du
nombre.

P a g e 23 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

VI.2. LA STRUCTURE TANT QUE …, FAIRE

Parfois, pour réaliser une tâche, on doit effectuer plusieurs fois les
mêmes instructions, sans que le nombre de fois soit déterminé à l‟avance. On
utilise
Tant quealors une BOUCLE
condition Faire (onCONDITIONNELLE.
répète un nombre inconnuDans cette
de fois structure,
le même le même
traitement, autant
detraitement est effectué
fois que la condition tant qu‟une condition reste valide ; la boucle s‟arrête
est vérifiée)
celle-ci n‟est
quandtraitement plus remplie.
(instruction Cette structure répétitive est ainsi formulée :
à exécuter)
FinTantque

Remarque :

 Le nombre de répétitions dépendra de la condition.


 Si la condition n‟est pas vérifiée au début, alors le traitement 1 ne sera pas
exécuté du tout.
 Si la condition est vérifiée au début et si la condition n‟est pas susceptible
d‟être modifiée lors du traitement 1, alors le traitement 1 sera
indéfiniment exécuté et l‟utilisateur sera contraint d‟arrêter le programme.
Dans ce cas, il s‟agit d‟une erreur majeure car un programme ne doit pas
boucler indéfiniment mais au contraire s‟arrêter automatiquement une fois
que la condition cesse d‟être vérifiée.
Exemple 1 : Proposons un algorithme avec LARP qui permet d‟afficher tous les
nombres entiers naturels dont le cube est inférieur à 5000.

P a g e 24 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Remarques :

 On commence par initialiser nb.


 Au début du premier passage dans la boucle, nb vaut donc 0. A la fin du
premier passage et au début du second, nb vaut nb+1, c‟est-à-dire 1. Dès que
nb3>5000, la boucle s‟arrête. Il ne faut pas oublier l‟instruction « nb prend la
valeur nb+1 », faute de quoi la boucle est infinie.

Exemple 2 : Ecrivons un algorithme avec LARP permettant de calculer le


quotient de deux entiers positifs dans une division euclidienne.

Remarques :
 A deux entiers naturels et , avec diviseur non nul, la
division euclidienne associe un et un , tous deux entiers
naturels vérifiant :

P a g e 25 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

 Cet algorithme n‟exclut pas la saisie de valeurs négatives, qui invalideraient


le résultat final. Un message informant l‟utilisateur serait à prévoir pour qu‟il
ne saisisse que des valeurs entières positives.

Exemple 3 (numérique) : Ecrivons un algorithme avec LARP permettant de


déterminer le PGCD de deux nombres entiers.

Rappel : En arithmétique, le plus grand commun diviseur (PGCD) de deux


nombres entiers naturels est le plus grand entier naturel qui divise
simultanément ces deux entiers.

VI.3. LA STRUCTURE REPETER … JUSQU’A …

Une variante de structure répétitive avec BOUCLE


CONDITIONNELLE consiste à répéter un traitement jusqu‟à ce qu‟une certaine
condition soit vérifiée. On la traduit par l‟instruction :

Répéter (on répète un nombre inconnu de fois le même traitement, autant de fois que
la condition est vérifiée)
traitement (instruction à exécuter)
Jusqu’à condition

Remarque : Dans ce type d‟instruction, le test est effectué à la fin de la


boucle, si bien que le traitement est exécuté au moins une fois, que la condition
soit ou non vérifiée au début.
P a g e 26 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Exemple 1 : Proposons un algorithme avec LARP qui permet d‟afficher


tous les nombres entiers naturels dont le cube est inférieur à 5000.

P a g e 27 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

vii. LES TABLEAUX

« Si on ment à un compilateur, il prendra sa revanche. » - Henry


Spencer.

Bonne nouvelle ! Je vous avais annoncé qu‟il y avait en tout et pour tout
quatre structures logiques dans la programmation. Eh bien, ça y est, on les a
toutes passées en revue.

Mauvaise nouvelle, il vous reste tout de même quelques petites choses à


apprendre…

Un tableau est une variable permettant de stocker plusieurs données de


même type.

VII.1. UTILITE DES TABLEAUX

Imaginons que dans un programme, nous ayons besoin simultanément de


12 valeurs (par exemple, des notes pour calculer une moyenne). Evidemment, la
seule solution dont nous disposons à l‟heure actuelle consiste à déclarer douze
variables, appelées par exemple Note_a, Note_b, Note_c, etc. Bien sûr, on peut
opter pour une notation un peu simplifiée, par exemple N1, N2, N3, etc. Mais
cela ne change pas fondamentalement notre problème, car arrivé au calcul, et
après une succession de douze instructions « Lire » distinctes, cela donnera
obligatoirement une atrocité du genre :

Moyenne ← (N1+N2+N3+N4+N5+N6+N7+N8+N9+N10+N11+N12) /12

Ouf ! C‟est tout de même bigrement laborieux. Et pour un peu que nous
soyons dans un programme de gestion avec quelques centaines ou quelques
milliers de valeurs à traiter, alors là c‟est le suicide direct.

P a g e 28 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Cerise sur le gâteau, si en plus on est dans une situation on l‟on ne peut
pas savoir d‟avance combien il y aura de valeurs à traiter, là on est carrément
cuits.

C‟est pourquoi la programmation nous permet de rassembler toutes ces


variables en une seule, au sein de laquelle chaque valeur sera désignée par un
numéro. En bon français, cela donnerait donc quelque chose du genre « la note
numéro 1 », « la note numéro 2 », « la note numéro 8 ». C‟est largement plus
pratique, vous vous en doutez.

Un ensemble de valeurs portant le même nom de variable et repérées par


un nombre, s‟appelle un tableau, ou encore une variable indicée. Le nombre qui,
au sein d‟un tableau, sert à repérer chaque valeur s‟appelle – ô surprise –
l‟indice.

Chaque fois que l‟on doit désigner un élément du tableau, on fait figurer
le nom du tableau, suivi de l‟indice de l‟élément, entre parenthèses.

VII.2. NOTATION ET UTILISATION ALGORITHMIQUE

Dans notre exemple, nous créerons donc un tableau appelé Note. Chaque
note individuelle (chaque élément du tableau Note) sera donc désignée Note[0],
Note[1], etc. Eh oui, attention, les indices des tableaux commencent
généralement à 0, et non à 1.

Un tableau doit être déclaré comme tel, en précisant le nombre et le type


de valeurs qu‟il contiendra (la déclaration des tableaux est susceptible de varier
d'un langage à l'autre. Certains langages réclament le nombre d'éléments, d'autre
le plus grand indice... C'est donc une affaire de conventions).

P a g e 29 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

En nous calquant sur les choix les plus fréquents dans les langages de
programmations, nous déciderons ici arbitrairement et une bonne fois pour
toutes que :

 les "cases" sont numérotées à partir de zéro, autrement dit que le plus petit
indice est zéro.
 lors de la déclaration d'un tableau, on précise la plus grande valeur de
l'indice (différente, donc, du nombre de cases du tableau, puisque si on veut
12 emplacements, le plus grand indice sera 11). Au début, ça déroute, mais
vous verrez, avec le temps, on se fait à tout, même au pire.
Tableau Note[11] : Entier

On peut créer des tableaux contenant des variables de tous types :


tableaux de numériques, bien sûr, mais aussi tableaux de caractères, tableaux de
booléens, tableaux de tout ce qui existe dans un langage donné comme type de
variables. Par contre, hormis dans quelques rares langages, on ne peut pas faire
un mixage de types différents de valeurs au sein d‟un même tableau.

L‟énorme avantage des tableaux, c‟est qu‟on va pouvoir les traiter en


faisant des boucles. Par exemple, pour effectuer notre calcul de moyenne, cela
donnera par exemple :

Tableau Note[11] en Numérique


Variables Moyenne, Somme en Numérique
Début
Pour i de 0 à 10 Faire
Ecrire "Entrez la note n°", i
Lire Note[i]
FinPour
Somme ← 0
Pour i de 0 à 10 Faire
Somme ← Somme + Note[i]
FinPour
Moyenne ← Somme / 12
Fin

P a g e 30 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

NB : On a fait deux boucles successives pour plus de lisibilité, mais on


aurait tout aussi bien pu n‟en écrire qu‟une seule dans laquelle on aurait tout fait
d‟un seul coup.

Remarque générale : l‟indice qui sert à désigner les éléments d‟un


tableau peut être exprimé directement comme un nombre en clair, mais il peut
être aussi une variable, ou une expression calculée.

Dans un tableau, la valeur d‟un indice doit toujours :

 être égale au moins à 0 (dans quelques rares langages, le premier élément


d‟un tableau porte l‟indice 1). Mais comme je l'ai déjà écrit plus haut,
nous avons choisi ici de commencer la numérotation des indices à zéro,
comme c‟est le cas en langage C et en Visual Basic. Donc attention,
Truc[6] est le septième élément du tableau Truc !
 être un nombre entier Quel que soit le langage, l‟élément Truc[3,1416]
n‟existe jamais.
 être inférieure ou égale au nombre d‟éléments du tableau (moins 1, si l‟on
commence la numérotation à zéro). Si le tableau Bidule a été déclaré
comme ayant 25 éléments, la présence dans une ligne, sous une forme ou
sous une autre, de Bidule [32] déclenchera automatiquement une erreur.
Je le re-re-répète, si l‟on est dans un langage où les indices commencent
à zéro, il faut en tenir compte à la déclaration :

Tableau Note[13] en Numérique

...créera un tableau de 14 éléments, le plus petit indice étant 0 et le plus


grand 13.

P a g e 31 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

EXERCICES PRATIQUES

Exercice 1

Ecrire un algorithme qui déclare et remplisse un tableau de 7 valeurs numériques


en les mettant toutes à zéro.

Exercice 2

Ecrire un algorithme qui déclare et remplisse un tableau contenant les six


voyelles de l‟alphabet latin.

Exercice 3

Ecrire un algorithme qui déclare un tableau de 9 notes, dont on fait ensuite saisir
les valeurs par l‟utilisateur.

Exercice 4

Que produit l‟algorithme suivant ?

Tableau Nb [5] Entier


Variable i en Entier
Début
Pour i de 0 à 5 Faire
Nb[i]← i * i
FinPour

Pour i de 0 à 5 Faire
Ecrire Nb[i]
FinPour
Fin
Peut-on simplifier cet algorithme avec le même résultat ?

P a g e 32 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Exercice 5

Que produit l‟algorithme suivant ?

Tableau N[6] en Entier


Variables i, k en Entier
Début
N[0]← 1
Pour k de 1 à 6 Faire
N(k) ← N(k-1) + 2
FinPour

Pour i de 0 à 6 Faire
Ecrire N[i]
FinPour
Fin

Peut-on simplifier cet algorithme avec le même résultat ?


Exercice 6

Que produit l‟algorithme suivant ?

Tableau Suite[7] en Entier


Variable i en Entier
Début
Suite[5]← 1
Suite[1]← 1
Pour i de 2 à 7 Faire
Suite[i]←Suite [i-1] + Suite [i-2]
FinPour

Pour i de 0 à 7 Faire
Ecrire Suite(i)
FinPour
Fin
Exercice 7

Ecrivez la fin de l‟algorithme 6.3 afin que le calcul de la moyenne des notes soit
effectué et affiché à l‟écran.

P a g e 33 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Exercice 8

Ecrivez un algorithme permettant à l‟utilisateur de saisir un nombre quelconque


de valeurs, qui devront être stockées dans un tableau. L‟utilisateur doit donc
commencer par entrer le nombre de valeurs qu‟il compte saisir. Il effectuera
ensuite cette saisie. Enfin, une fois la saisie terminée, le programme affichera le
nombre de valeurs négatives et le nombre de valeurs positives.

Exercice 9

Ecrivez un algorithme calculant la somme des valeurs d‟un tableau (on suppose
que le tableau a été préalablement saisi).

Exercice 10

Ecrivez un algorithme constituant un tableau, à partir de deux tableaux de même


longueur préalablement saisis. Le nouveau tableau sera la somme des éléments
des deux tableaux de départ.

Tableau 1 :

4 8 7 9 1 5 4 6

Tableau 2 :

7 6 5 2 1 3 7 4

Exercice 11

Toujours à partir de deux tableaux précédemment saisis, écrivez un algorithme


qui calcule le schtroumpf des deux tableaux. Pour calculer le schtroumpf, il faut
multiplier chaque élément du tableau 1 par chaque élément du tableau 2, et
additionner le tout. Par exemple si l'on a :

Tableau 1 :

4 8 7 12

P a g e 34 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Tableau 2 :

3 6

Le Schtroumpf sera :

3 * 4 + 3 * 8 + 3 * 7 + 3 * 12 + 6 * 4 + 6 * 8 + 6 * 7 + 6 * 12 = 279

Exercice 12

Ecrivez un algorithme qui permette la saisie d‟un nombre quelconque de


valeurs, sur le principe de l‟ex 6.8. Toutes les valeurs doivent être ensuite
augmentées de 1, et le nouveau tableau sera affiché à l‟écran.

Exercice 13

Ecrivez un algorithme permettant, toujours sur le même principe, à l‟utilisateur


de saisir un nombre déterminé de valeurs. Le programme, une fois la saisie
terminée, renvoie la plus grande valeur en précisant quelle position elle occupe
dans le tableau. On prendra soin d‟effectuer la saisie dans un premier temps, et
la recherche de la plus grande valeur du tableau dans un second temps.

Exercice 14

Toujours et encore sur le même principe, écrivez un algorithme permettant, à


l‟utilisateur de saisir les notes d'une classe. Le programme, une fois la saisie
terminée, renvoie le nombre de ces notes supérieures à la moyenne de la classe.

Exercice 15

Ecrire un algorithme qui demande à l‟utilisateur de saisir le montant en Franc


congolais, de saisir le taux de change et qui converti le montant en saisi en Franc
congolais, en dollars

P a g e 35 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

viii. NOTION DE PROGRAMMATION

Tout traitement demandé à la machine, par l‟utilisateur, est effectué par


l‟exécution séquencée d‟opérations appelées instructions. Une suite
d‟instructions est appelée un programme.

On peut considérer un programme comme la traduction d‟un algorithme


dans un langage de programmation, i.e. un langage formel compréhensible par
un ordinateur. On dit alors que ce programme est l‟implémentation de cet
algorithme.

Programme : séquence d‟instructions destinées à être exécutées par un


ordinateur. Instruction : action que l‟ordinateur connait et peut réaliser.

Un langage de programmation (y compris le C) est caractérisé par son


jeu d‟instructions :

Jeu d’instructions : ensemble des instructions autorisées dans un langage de


programmation.

Un programme est stocké dans un fichier (un ensemble de données


stockées sur un support persistant). On distingue deux types de fichiers,
correspondant à deux versions différentes d‟un programme : fichier source et
fichier exécutable. Le premier contient ce que l‟on appelle le code source, il
s‟agit d‟un fichier texte, alors que le second contient le code binaire, aussi
appelé code machine ou code objet.

Code source : programme exprimé dans un langage de programmation


compréhensible par un être humain, et ne pouvant pas être exécuté directement
par l‟ordinateur.

Code binaire : programme exprimé en langage machine, pouvant être


directement exécuté par l‟ordinateur.
P a g e 36 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Remarque : on utilise souvent le seul terme programme pour désigner le code


source ou le code binaire. Son interprétation dépend alors du contexte.

Le code binaire est obtenu à partir du code source, en réalisant un


traitement appelé compilation. Ce traitement est réalisé par un programme
spécial appelé le compilateur.

Compilation : action de transformer un code source en code binaire, de manière


à obtenir un fichier exécutable à partir d‟un fichier source. Le code binaire est
spécifique au processeur qui va exécuter le programme. Par contre, le code
source en est généralement indépendant. Cela signifie qu‟un même code source
sera compilé différemment en fonction du processeur (et/ou du système
d‟exploitation) que l‟on veut utiliser pour exécuter le programme.

Remarque : il est important de bien comprendre qu‟un code source et


l‟algorithme qu‟il implémente sont deux choses bien distinctes. En effet, le
même algorithme peut être implémenté différemment, en fonction de :

 La personne qui écrit le programme ;


 Le langage de programmation employé ;
 La machine et/ou le système d‟exploitation utilisés ;
 Le niveau de précision de l‟algorithme ;

P a g e 37 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

ix. INTRODUCTION AU LANGAGE QBASIC

L‟un des objectifs de la formation d‟un informaticien en première graduat


en informatique de gestion est de lui donner une base solide de la programmation.
Ce support répond parfaitement à cette préoccupation car il a été conçu de manière
à vous initier aux bonnes habitudes de la programmation et à la création des
programmes efficaces.

Ce support a aussi pour but de vous apprendre à acquérir un style de


programmation agréable et lisible par tous les programmeurs qui examineront votre
code source. Les intérêts d'un bon style de programmation sont multiples : les
autres programmeurs peuvent plus facilement comprendre vos codes et vous aider
ou vous donner des conseils, et acquérir un style lisible de codage vous permettra
vous-même, si quelques mois ou même quelques semaines après la création d'un
programme vous souhaitez le mettre à jour ou lui implémenter des fonctions
supplémentaires, de comprendre bien plus rapidement et aisément votre propre
création, que vous auriez peut être eu du mal à analyser sans cela.

Malheureusement, bien trop de programmeurs ne portent pas assez


attention à leur façon de coder, et cela a fini par donner de mauvaises réputations à
des langages qui pourraient pourtant être très clair si les programmeurs y mettaient
un peu de bonne volonté (c‟est notamment le cas du C et du C++).

J'ajoute que ce support, même si les exemples qui sont fournis avec sont en
QBASIC, est valable dans n'importe lequel des langages de programmation, même
les plus simple.

Certains exemples peuvent sembler difficiles. Dans pareil cas, il faudra au


lecteur une relecture de la théorie, voire un recours à une personne plus initiée. A
tous nous souhaitons, bonne lecture.

P a g e 38 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

XI.1. BREF HISTORIQUE

Le langage de programmation Basic est un langage qui a été inventé par


deux professeurs américains (John George KEMENY et Thomas Eugene
KURTZ) en 1963 qui voulaient faciliter la vie des étudiants en informatique et
de ceux qui devaient avoir accès à la puissance de l‟ordinateur sans être des
informaticiens confirmés.

L‟acronyme B.A.S.I.C. signifie d‟ailleurs Beginner's All-purpose


Symbolic Instruction Code, ce qui peut se traduire en français par "Code
d'instructions symboliques pour tous usages et pour débutants".

QBASIC est un bon langage pour débuter dans la programmation.


On peut par contre regretter l'absence de compilateur qui permettrait de créer des
fichiers EXE. En effet, on dit que QBASIC est un langage 'interprété'. Mais c‟est
ce qui fait du Basic un langage très facile d'utilisation. De plus, il existe
désormais sur la toile des utilitaires créés par des programmeurs de génie
permettant de compiler vos programmes en EXE. Ou alors, vous pouvez passer
à QuickBasic qui s'articule sur la même conception de la programmation, mais
qui est beaucoup plus puissant.

N.B. le QuickBASIC est le grand frère de QBASIC. Le quick basic


utilise certaines instructions que le QBASIC ne comprend pas. Mais le deux sont
des langages à structures de blocs (programmation structurée).

Une instruction informatique désigne une étape dans un programme


informatique. Une instruction dicte à l‟ordinateur l‟action nécessaire qu‟il doit
effectuer avant de passer à l‟instruction suivante. Un programme informatique
est constitué d‟une suite d‟instructions.

P a g e 39 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

XI.2. LANGAGES INTERPRETES OU COMPILES

Le langage de programmation ressemble à notre langage parlé. Le code


écrit dans ce langage est appelé code source. Il doit être traduit en langage
machine pour pouvoir être exécuté par l‟ordinateur. Il y a deux manières de
réaliser cette traduction : la compilation et l‟interprétation.

Le QBASIC est un langage interprété. Le QuickBasic et le Visual Basic


peuvent à la fois être interprété et compilés.

Compilation : Le code source est entièrement traduit pour donner un


code binaire, appelé code « objet » Il se présente alors sous la forme d‟un fichier
dont l‟extension est souvent « .obj » Différents fichiers objets obtenus à partir de
diverses compilations de fichiers sources (qui n‟ont pas nécessairement été écrits
dans le même langage) sont alors rassemblés pour former un code exécutable
(extension « .exe »)

Interprétation : Chaque ligne du code source est interprétée puis


exécutée immédiatement avant de passer à l‟interprétation de la suivante. Cette
méthode est plus lente mais elle est aussi plus facile pour le débutant puisque le
programme s‟exécute instantanément sans devoir passer par les étapes de la
compilation.

XI.3. LANCEMENT DE QBASIC

Naturellement, pour travailler avec les programmes, ces derniers doivent


être installés sur disque dur. Pour pouvoir vous lancer dans QBASIC, il vous
suffit d'une machine tout ce qu'il y a d'ordinaire. Il vous suffit de MS-Dos et de
l'application Microsoft QBASIC. Si vous utilisez Windows, QBASIC est présent
sur le CD-ROM. La fenêtre d‟accueil Q-basic doit se présenter ainsi :

Après lancement, il est affiché l‟écran ci-après une fenêtre avec les menus.
P a g e 40 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

 En haut de la fenêtre, la barre de menu.


 A l'arrière-plan, deux fenêtres (nous y reviendrons).
 Tout en bas, une barre avec les raccourcis des commandes les plus
utilisées ainsi que les coordonnées du curseur.
 Enfin, une fenêtre au centre de l'écran vous souhaite la bienvenue.
L'option guide vous amène dans l'aide en ligne de QBasic.
XI.4. L’ENVIRONNEMENT DE PROGRAMMATION QBASIC

L‟environnement de programmation QBasic sert à la fois d‟éditeur de


programme, d‟interpréteur et de débugger (programme de mise au point).

Appuyez sur Echap. Vous remarquez qu'il y a deux fenêtres : une


grande et une petite.

 La fenêtre Immédiate (la petite), ne permet d'exécuter qu'une instruction


à la fois. Les fenêtres peuvent être redimensionnées en faisant glisser la
barre de séparation à l‟aide de la souris ou en pressant les touches Alt +
ou Alt – pour les agrandir ou les réduire.
 La fenêtre Programme (la grande), est celle qui permet d'écrire de vrais
programmes.

P a g e 41 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

 Il y a aussi la fenêtre d’aide dont le fond est noir se referme en pressant


la touche ESC.

Dans les premiers temps, nous nous servirons seulement de la fenêtre


immédiate. Si vous avez déjà utilisé des versions antérieures de Basic (ATARI
& Co.), vous devez savoir qu'en QBasic :

 La numérotation des lignes (10, 20, 30, etc.) n'est plus nécessaire, bien
que cette opération soit encore supportée.
 La fenêtre immédiate correspond à l'ancien mode immédiat, c'est à dire
qu'une commande tapée dans cette fenêtre est immédiatement exécutée
après avoir appuyé sur Entrée.
 La fenêtre programme représente le mode programme et permet de
rédiger un programme et de le lancer ultérieurement.

XI.5. COMMENT ECRIRE SUR L’ECRAN

xi.5.1. Code

Qbasic est fait d‟instructions et fonctions suivies d‟attributs ou


arguments qui déterminent ce que doit faire le programme. En principe on met
une instruction par ligne. Si on veut en mettre plusieurs, il faut les séparer par `:`
P a g e 42 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

(PRINT "4 + 6 ="; : PRINT 5+ 9) toutes les instructions sont lues par QBasic dans

l‟ordre où elles sont écrites. Si on veut sauter des instructions ou revenir sur des
instructions déjà écrites, on doit employer des ` branchements `ou des `boucles`.

Le code peut s‟écrire en majuscules ou minuscules, cela n‟a pas


d‟importance. De même pour les espaces, ils sont insérés automatiquement par
QBasic. Une ligne de code ne doit pas contenir plus de 255 caractères.

Les phrases précédées d‟apostrophe ou REM ne sont pas prises en


compte. On s‟en sert pour faire des commentaires ou masquer des lignes
pendant les essais de code.

Testez souvent votre code avec `exécution/démarrer ` : Avancez par


petites étapes : trouver des erreurs sur une petite partie de code.

xi.5.2. Instruction en programmation

Nous allons étudier en détails les instructions dans le prochain chapitre

PRINT est une instruction qui nous permet d‟afficher un texte, des
messages, des valeurs de diverses variables, de calculs, …

Pour afficher un texte : la syntaxe est PRINT "texte "

Le texte à afficher doit être entre deux guillemets, et ne doit pas avoir
plus de 256 caractères.

Exemple :

PRINT "Bonjour Monsieur "

F5 → Bonjour Monsieur

QB reproduit textuellement ce qui est entre guillemets

Pour calculer un nombre

P a g e 43 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Exemples :

Print 7+8
F5 → 15.

L‟ordinateur effectuera le calcul de 7+8 qui donne 15

Print "7+8 "


F5 → 7+8

L'ordinateur n'affiche plus 15 comme il était prévu, mais 7+8 !


L'instruction PRINT ne sert pas seulement qu‟à réaliser de l'arithmétique
basique, mais aussi à afficher n'importe quel texte, pour peu que celui-ci soit
placé entre apostrophes " ".

Pour afficher la valeur d‟une variable on aura :

Exemples :
A=25
Print A
F5 → 25
Mais pour print "A"
F5 → A
Ici A est un texte et non une variable.
Nom ="Thérèse"
PRINT nom
F5 → Thérèse

xi.5.3. La ponctuation (syntaxe)

La ponctuation ou la syntaxe (le deuxième terme est quand même plus


approprié) est la règle à respecter en matière de programmation. Disons que le
terme de syntaxe est plus général, et que ce que nous appelons ponctuation ne
concerne que ce qui suit :

 ; point-virgule
 , virgule
 : double point
P a g e 44 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Nous allons étudier tout ceci en détail. Mais avant, nous allons apprendre
une autre instruction élémentaire et bien utile.

CLS

CLS est une abréviation de CLean Screen. Comme son nom le laisse
deviner cette instruction efface l'écran. Essayez donc (toujours dans la fenêtre
immédiate). La syntaxe est la suivante :

CLS

A partir de maintenant, nous allons presque toujours utiliser la fenêtre


programme. Vous devez donc vous placer dans cette dernière pour écrire les
lignes de code. Dans cette fenêtre, le programme n'est pas exécuté tant que vous
ne l'avez pas demandé, c'est à dire que contrairement à la fenêtre immédiate,
lorsque vous appuyez sur Entrée, il ne se passe rien ou plutôt, le programme
n'est pas lancé. Pour l'exécuter, il vous faut presser la touche F5 ou aller dans le
menu Exécution.

Le point-virgule (;)

Le point-virgule interdit le retour de chariot et le passage à la ligne


suivante. Les données sortent à la suite l‟une après l‟autre, exactement comme
elles sont écrites sans espace intercalaire. Ceci permet d‟afficher un texte
directement à la suite de la valeur d‟une variable.

Exemple :

CLS

PRINT "7 + 9 ="; 7 + 9

Le résultat sera le même, c'est à dire : 7 + 9 = 16

La virgule (,)
P a g e 45 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Et si à la place d'un point-virgule, on avait utilisé une virgule ?


Le résultat aurait été tout autre. Ecrivez :

Exemple :
CLS
PRINT "7 + 9 =", 7 + 9
Résultat : 7 + 9 = 16

Un espace d'une tabulation s'est créé entre 7 + 9 = et 16. La valeur d'une


tabulation par défaut est de 8 caractères.

PRINT qui représente quand même 5 caractères, vous pouvez le


remplacer par un point d‟interrogation (?)

Exemple :
? "QBasic est un langage surprenant.", PRINT s'affichera comme par
magie.

Lorsque vous écrivez une suite de termes après print, vous n'êtes pas
obligé d'écrire les points virgules.

Exemple :

PRINT "QBasic " "est un " "langage " "surprenant." ! Les points virgules se
mettront comme par magie.

Le double point (:)

Les doubles points servent à écrire plusieurs instructions sur la même ligne.
Ainsi notre programme de tout à l'heure :
CLS
PRINT "7 + 9 =";
PRINT 7 + 9
Pourra s'écrire : CLS : PRINT "7 + 9 ="; PRINT 7 + 9

Le résultat, vous l'aurez deviné, sera identique : 7 + 9 = 16

P a g e 46 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

P a g e 47 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

x. LES VARIABLES, LES CONSTANTES ET LES


OPERATEURS EN QBASIC

X.1. LES VARIABLES

x.1.1. Définition

Une variable est un emplacement que l'on réserve dans la mémoire


de l'ordinateur pour y stocker des données. Une variable est désignée par un nom
appelé Identificateur et un type.

Le nom (identificateur) d‟une variable permet de retrouver son


emplacement en mémoire. Il équivaut à son adresse.

Un nom d‟une variable doit répondre aux critères suivants :

 Elle doit commencer par une lettre


 Elle ne doit contenir les espaces et les autres caractères spéciaux
 Elle ne doit pas utiliser les mots réservés Basic
 Les noms sont composés en utilisant le caractère de soulignement (_
underscore).

Ex : Nom_ Etudiant

x.1.2. Type de variables

Le type de la variable détermine l‟espace à lui réserver en mémoire et


les traitements qui lui sont appropriés.

 Un type (chaine de caractère, Numérique…)


 Taille : longueur maximale des données
 La portée : la limite d‟utilisation ou d‟accès des valeurs de la variable
Dans la plupart des langages informatiques, on distingue au moins deux
types de variables : Les variables chaînes de caractères et les variables
numériques
P a g e 48 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

a. Les variables chaînes de caractères

Elles sont appelées aussi variables alphanumérique, représentent les


données dont le contenu est constitué des lettres, chiffres et des caractères
spéciaux.

La taille maximale d‟une variable chaine est de 255 caractères.

Notation

Une variable de type chaine de caractère se termine toujours par le caractère $

Exemple :
CLS
Prenom$ = "Mon prénom est PAMELA"
PRINT Prenom$
Le résultat sera : Mon prénom est PAMELA

Les règles de ponctuation s'appliquent également aux variables. Mais


une chose sensationnelle que l'on peut réaliser avec les chaînes de caractères
s'appelle la concaténation de chaines.

CLS
Phrase1$ = "MON "
Phrase2$ = "MBAKI"
PhraseComplete$ = Phrase1$ + Phrase2$
PRINT Phrase$

Le résultat sera : MON MBAKI

On a fait de deux chaînes de caractères ('Phrase1$' et 'Phrase2$'), une


seule chaîne : 'Phrasecomplte$'. Et l'on peut ajouter autant de chaînes que l'on
veut. Le nom de variable de type chaine de caractère est string

Les variables numériques

P a g e 49 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Une variable numérique contient un nombre. Ce nombre peut être


décimal, entier.

Pour donner la valeur '5' à la variable 'Chiffre', il faut procéder ainsi :

Chiffre = 5

On a affecté la valeur '5' à 'Chiffre'. Vous pouvez d'ailleurs le vérifier par ce


simple programme :

CLS
Chiffre = 5
PRINT Chiffre
Le résultat sera : 5

On peut bien entendu faire des calculs avec des variables. Ainsi rajoutez
ces lignes :

CLS
Chiffre = 5
PRINT Chiffre * NoVariable
Le résultat sera : 0

Pourquoi 0 ? Parce que l'on a fait intervenir une nouvelle variable,


nommée 'NoVariable' qui n'a pas été initialisée. Sa valeur est donc NULLE et
jusqu'à preuve du contraire, 5 * 0 = 0. Mais QBASIC va encore plus loin. On
peut affecter le résultat de calculs à des variables. Ainsi :

CLS
Chiffre = 5
NoVariable = 8
Résultat = Chiffre*NoVariable + 1
PRINT Resultat
Ce qui donnera : 41

On a tout d'abord affecté 5 à 'Chiffre', puis 8 à 'NoVariable' et enfin, on a


multiplié 'Chiffre' par 'NoVariable', ajouté 1 et affecté le résultat à la variable
'Resultat'.
P a g e 50 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

On a ensuite affiché le contenu de la variable 'Resultat' grâce à l'instruction


PRINT.

Les noms de type numérique

x.1.3. Déclaration de variable

Déclarer une variable, c‟est lui réserver un emplacement en mémoire


auquel on donne un nom et en indiquant son type (autrement dit sa taille et la
façon de la traiter).

La déclaration des variables est facultative en QB mais il est pourtant


parfois nécessaire de faire la distinction entre les variables de type numérique et
celles qui contiennent des chaînes de caractères.

Nous pouvons déclarer les variables de deux manières

La déclaration IMPLICITE des variables : C'est à dire que pour


utiliser une variable, il suffit d'écrire son nom lorsque le moment de l'utiliser est
arrivé.

P a g e 51 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Pour spécifier son type, on va rajouter à la fin de son nom le suffixe


correspondant au symbole (voir tableau ci-dessus), à la manière du $ pour une
chaine de caractères.

Exemple : chiffre#=12,67498

La déclaration EXPLICITE des variables : C'est la méthode que je


recommanderai à partir des exercices du chapitre 4. Pourquoi ? He bien parce
que dans (presque) tous les autres langages, la déclaration explicite est
OBLIGATOIRE. Donc, autant prendre de bonnes habitudes et s'y mettre.

Pour déclarer une variable suivant cette méthode, il faut utiliser


l'instruction DIM, suivi du nom de la variable, puis du mot-clef AS, et enfin, du
type de la variable (tableau ci-haut).

Dim Nomdelavariable As Type de variable

Exemples :

Dim var1 As integer „je déclare la variable var1 comme un entier


Dim prenom As String „je déclare la variable prenom comme une
chaine de caractère

P a g e 52 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Ce qui est bien avec cette déclaration explicite des chaines de caractères,
c'est qu'on peut limiter le nombre de caractères que pourra contenir la variable.

DIM strNom AS STRING * 8 ' strNom est une variable de 8 caractères


maxi

NB : La déclaration d'une variable doit toujours se faire avant sa


première référence

x.1.4. Variables globales et locales (le retour)

Nous ne l‟avons pas dit au chapitre précédent, c'est qu'on peut aussi
rendre globale une variable simplement avec DIM.

On emploie pour cela le mot-clef SHARED à la suite de DIM :

DIM SHARED MaVariable ' Cette variable est globale


DIM AutreVariable ' Celle-ci ne l'est pas

2.1.4. Substitution de la valeur de 2 variables

Pour substituer facilement les valeurs de deux variables différentes, au


lieu de passer et repasser par de multiples variables temporaires, on peut utiliser
l'instruction SWAP. Pour une variable Var1 et une variable Var2, on écrira :

SWAP Var1, Var2 ' La variable Var1 à la valeur de Var2, et la


variable Var2 à la valeur de Var1

2.1.5. Les commentaires

Plus on avance en programmation, plus les programmes deviennent


longs, plus ils deviennent complexes et moins on s'y retrouve. C'est pourquoi il
existe les commentaires. Dans un commentaire, on peut écrire ce que l'on veut.

Il existe 2 façons d'écrire des commentaires :

REM
REM est l'abréviation de REMARK. On l'utilise comme ceci :
P a g e 53 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

REM Ceci est un commentaire, et je peux écrire ce que je veux

REM est présent depuis les premières versions de BASIC et a été


conservé mais n'est pratiquement plus utilisé. On lui préfère l'apostrophe.

L'apostrophe (')
L'apostrophe fonctionne comme REM. Mais il a deux petits avantages :

 La loi du moindre effort : une touche à presser pour l'apostrophe, contre


trois pour REM.
 Avec l'apostrophe, on peut écrire des commentaires en fin de ligne :
CLS ' Cette instruction efface l'écran
PRINT "12+5= " ; ' Celle-ci affiche 12 + 5=
PRINT 12 + 5 „ Quant à celle-là, elle effectue l'opération 12 + 5 et
affiche le résultat.

X.2. LES CONSTANTES

x.2.1. Définition

Une constante, comme son nom l‟indique et l‟analogue d‟une variable


mais dont la valeur ne varie pas, une fois qu‟elle a été initialisée. Une constante
ne varie pas.

Exemple : "Liste des agents"


"550"
1000
3.14159265458 (nombre PI)

Au lieu d'écrire à chaque fois 3.14159265458, on peut définir une


constante 'PI' qui ne variera pas et que l'on pourra substituer. Pour cela, on écrit :

CONST PI = 3.14159265458 ' PI est une constante dont la valeur est


3.14159265458

La constante d‟Euler = 2,718… Pour cela on écrit

Const Euler=2,718
P a g e 54 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

CLS

PRINT "La surface d'un cercle d'un rayon de 5 est " ; PI * 5 ^ 2 '

Remarquez l'utilisation du point-virgule et de l'accent circonflexe pour le


carré

Le résultat sera : La surface d'un cercle d'un rayon de 5 est 78.5398163645

Pour les nombres décimaux, la virgule est représentée par un point (.).
Un mot peut être déclare comme une constante à partir de l‟instruction const.

Exemple : Const Tot as single

X.3. OPERATEURS

x.3.1. Opérateurs mathématiques

x.3.2. Opérateurs relationnels

Ce sont des signes de comparaisons utilisées dans des opérations


conditionnelles.

Opérateurs Description Exemples

P a g e 55 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

< Inférieure 2<5


<= Inférieure ou Egale 3<= 3,4
> Supérieure 7>4
>= Supérieure ou Egale 8>=8
= Egalité 23=23
<> Différent 5<>15

x.3.3. Opérateur de concaténation

C‟est un opérateur qui est appliqué aux chaines de caractères ; son


symbole est « + ». Cet opérateur met une chaine 1 à la suite d‟une chaine 2.

Exemple :

A$= "Mon "


B$= "Dieu"
C$= A$+ "seul"+ B$
PRINT C$
Résultat : "Mon seul Dieu"
Observation

A$, B$ sont de variables de type chaine

"C$ "est une constante de type chaine

Les variables ou constantes autres que chaine doivent être converties en


alphanumérique. Ainsi donc la fonction STR$ () convertie une variable ou
constante numérique en alphanumérique.

x.3.4. Opérateurs logiques

La logique Booléenne

P a g e 56 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

De Georges Boole, mathématicien britannique (Lincoln 1815 – Ballin


temple, près de Cork, 1864), créateur de la logique mathématique moderne.

On désigne par Algèbre de Boole ou algèbre de la logique la structure


algébrique appliquée à l'étude des relations logiques, et dans laquelle les
opérations de réunion, d'intersection et de complémentation expriment
respectivement la disjonction, la conjonction, la négation logiques.

La logique Booléenne n'est pas des mieux implémentée en QBasic, mais


elle existe : Ainsi, en QBASIC, on distingue le VRAI (TRUE) et le FAUX
(FALSE).

 TRUE = -1
 FALSE = 0
Les opérateurs logiques sont les suivants :

NOT : C'est le complément logique. TRUE et le complément de FALSE


et FALSE et le complément de TRUE. Il faut que l'entrée soit FALSE pour que
la sortie soit TRUE.

Entrée Sortie Exemple de code Résultat

FALSE TRUE PRINT NOT 0 -1

TRUE FALSE PRINT NOT -1 0

AND : C'est la conjonction. Il faut que les deux Entrées soit TRUE pour
que la sortie soit TRUE.

Entrée1 Entrée2 Sortie Exemple de code Résultat


FALSE FALSE FALSE PRINT 0 AND 0 0
FALSE TRUE FALSE PRINT 0 AND -1 0
TRUE FALSE FALSE PRINT -1 AND 0 0

P a g e 57 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

TRUE TRUE TRUE PRINT -1 AND -1 -1

OR : C'est la Disjonction (ou inclusif). Il faut qu'une des deux entrées


soit à TRUE pour que la sortie soit TRUE.

Entrée1 Entrée2 Sortie Exemple de code Résultat


FALSE FALSE FALSE PRINT 0 OR 0 0
FALSE TRUE TRUE PRINT 0 OR -1 -1
TRUE FALSE TRUE PRINT -1 OR 0 -1
TRUE TRUE TRUE PRINT -1 OR -1 -1

XOR : C'est le ou exclusif. Il faut qu'une seule des deux entrées soit à
TRUE pour que la sortie soit TRUE.

Entrée1 Entrée2 Sortie Exemple de code Résultat


FALSE FALSE FALSE PRINT 0 XOR 0 0
FALSE TRUE TRUE PRINT 0 XOR -1 -1
TRUE FALSE TRUE PRINT -1 XOR 0 -1
TRUE TRUE FALSE PRINT -1 XOR -1 0

EQV : C'est l'équivalence. Il faut que les deux entrées soit FALSE ou
que les deux entrées soient TRUE pour que la sortie soit à TRUE.

Entrée1 Entrée2 Sortie Exemple de code Résultat


FALSE FALSE TRUE PRINT 0 EQV 0 -1
FALSE TRUE FALSE PRINT 0 EQV -1 0
TRUE FALSE FALSE PRINT -1 EQV 0 0

P a g e 58 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

TRUE TRUE TRUE PRINT -1 EQV -1 -1

IMP : C'est l'implication. Cet opérateur réalise une comparaison Bit par
bit et renvoi le bit correspondant.

Entrée1 Entrée2 Sortie Exemple de code Résultat


FALSE FALSE TRUE PRINT 0 IMP 0 -1
FALSE TRUE TRUE PRINT 0 IMP -1 -1
TRUE FALSE FALSE PRINT -1 IMP 0 0
TRUE TRUE TRUE PRINT -1 IMP -1 -1

Les opérateurs relationnels étudiés servent aussi en logique booléennes.


On ignore souvent la valeur de leur résultat lorsqu'on les utilise, mais il se trouve
qu'ils en ont une.

x.3.5. L’opération d’affectation

Le symbole de l‟opération d‟affectation est = ; il s‟agit de l‟opération qui


consiste au stockage des données dans des variables.

Exemples :

1) Nom$= "Luvualu " „Stocke "Luvualu "dans la variable alphanumérique nom$


A=5
2) B= A+15 „Affecte l‟expression A+15 à B
3) A=12 „écrase la valeur 5 dans la variable A et le remplace par la valeur 12

X.4. EXERCICES

a) Ecrire un algorithme qui demande un nombre à l‟utilisateur, puis


calcule et affiche le carré de ce nombre.

P a g e 59 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

b) Déterminez les valeurs de A, B et C après exécution des instructions


suivantes :

A=2
B=3
C=A+B
A=C+2*B
B = (C + B) ^ 2
C=C\3

c) Ecrivez et testez un petit programme qui vous demande votre nom


puis votre prénom. Il vous salue.

P a g e 60 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

d) Après vous avoir demandé votre nom, le programme vous demande


votre âge. Il conclut en vous indiquant le nombre d‟années qu‟il vous reste avant
de profiter de votre retraite. La retraite est prévu à 65 ans.

P a g e 61 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

xi. LES INSTRUCTIONS D’ENTREE ET SORTIE

XI.1. CE QU’EST UNE INSTRUCTION D’ENTREE/ SORTIE

Une instruction d‟entrée /sortie est une instruction qui permet des
échanges entre l‟utilisateur et le programme. Le programme sollicite des
données, l‟utilisateur fait entrer les données et le programme fait sortir des
résultats.

Les instructions d‟entrée – sortie sont regroupées en deux catégories : les


instructions de lecture et les instructions d’écriture.

Les instructions de lecture permettent au programme de lire les données


entrées par l‟utilisateur à partir du clavier, tandis que les instructions d‟écriture
servent à l‟ordinateur de sortir des résultats à l‟écran (par affichage), à
l‟imprimante (par l‟impression), sur le disque (par enregistrement ou
sauvegarde), etc…

XI.2. LES INSTRUCTIONS DE SORTIE

xi.2.1. Liste des instructions de sortie

Ce sont les instructions suivantes

 PRINT
 TAB
 STRING$
 SPACE$
 LOCATE
xi.2.2. L’instruction PRINT et LPRINT

Cette instruction permet d‟afficher des textes, des messages, des valeurs
de diverses variables, de calculs, …. Vous pouvez également réaliser avec cette
instruction, des dessins simples à l‟aide des caractères graphiques de
l‟ordinateur et LPRINT est utilisé pour imprimer sur papier.
P a g e 62 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Pour afficher un texte, la syntaxe est PRINT "texte"

Le texte à afficher doit être entre deux guillemets, et ne doit pas avoir
plus de 256 caractères.

Exemple : 1) Print "Salut Nicole"

Résultat : Salut Nicole

xi.2.3. PRINT Tab () et LPRINT Tab ()

Tab () : elle est utilisée avec l‟instruction Print et Lprint, permet


d‟indiquer la position à partir de laquelle la donnée sera affichée ou imprimée.
L‟écran dispose de 80 colonnes, compter de 0 à 79. La colonne 80 n‟existe pas.

Syntaxe : PRINT TAB (N) où N est le numéro de la colonne où se


positionnera le curseur !

Exemples :

PRINT TAB (15) : "KIN"

Résultat : KIN (à partir de la 15ème colonne de la ligne en cours)

Noter que TAB doit obligatoirement être utilisé avec PRINT

Exemple : Ecrire un programme Basic qui permet de calculer et


imprimer le capital, le taux, le temps et l‟intérêt.

Résolution 1

Capital = 10000
Taux = 0,10
Temps = 2 ‟ en mois
Interet = capital * taux * temps /12
Print tab (15) ; "Calcul de l‟intérêt "
Print
Print tab (5) ; "capital" ; tab (15) ;"taux" ; tab (25) ;"temps" ;
tab(35)"interet"
P a g e 63 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Print
Print tab (5) ; capital ; tab (15) ; taux ; tab (25) ; temps ; tab (35) ; interet

Résultat :

Calcul de l‟intérêt

5 15 25 35 → colonnes

↓ ↓ ↓ ↓

Capital taux temps intérêt

10000 0.10 2 166.66667

Résolution 2

Capital = 10000
Taux = 0,10
Temps = 2 ‟ en mois
Interet = capital * taux * temps /12
LPrint tab (15) ; "Calcul de l‟intérêt "
LPrint
LPrint tab (5) ; "capital" ; tab (15) ;"taux" ; tab (25) ;"temps" ; tab(35) ;"interet"
LPrint
LPrint tab(5) ; capital ; tab (15) ; taux ; tab (25) ; temps ; tab (35) ; interet

Le résultat sera à l‟imprimante avec la même disposition qu‟à l‟écran


xi.2.4. PRINT SPC () [ou PRINT SPACE$ ()]

SPC dans l‟instruction Print détermine l‟espace entre deux données.

Syntaxe : PRINT SPC (N)

Où, N indique d‟espace à laisser

Exemple :

1) Print "Salut" ; SPACE$(6) ; "Nicole"

Résultat : Salut Nicole (un espacement de 6 caractères entre Salut et Nicole)

P a g e 64 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

2) Print spc (5) ; "capital" ; spc (5) ; "taux"; spc (5); "temps" ; spc (5) ; "intérêt" ou
Lprint spc(5) ; "capital" ; spc(5) ; "taux" ; spc (5) ;"temps" ;spc(5) ;"intérêt"

Dans ces instructions il sera réservé 5 espaces partout.

Capital ↔ taux ↔ temps ↔ intérêt

5 5 5
xi.2.5. L’instruction PRINT USING

Rôle : elle permet d‟afficher des nombres suivant un format spécifie.


Cette mise en forme consiste à :

 Cadrer les chiffres à droite sinon les chiffres sont cadrés à gauche
 Prévoir les séparateurs des milliers (1, 000,000 ou 1000)
 Donner l‟image d‟une ligne de sortie

PRINT USING est utilisé avec certains caractères spéciaux, tels que :

Formatage d’une expression numérique

 # pour indiquer la position de chiffre à sortir ;


 . pour indiquer la position du point décimal ;
 , pour être placée à gauche du point décimal. Il affiche une virgule tous les
trois chiffres
 + pour indiquer du signe d‟un nombre ;
 ** pour remplacer les espaces de tête par des * ;
 $$ pour afficher le signe $ à la gauche du nombre ;
 **$ pour combiner les ** et les $$.

Formatage d’une expression chaine de caractères

 & pour afficher toute la chaine


 \ \ pour afficher les n+ 2 premiers caractères de la chaine, oü n est le nombre
d‟espaces entre les deux barres.
 - pour afficher le caractère suivant

Exemple 1

Concrètement, qu'est-ce que ça donne ? Observez l'exemple suivant :


P a g e 65 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

a = 3.14159265458#
a$ = "Merci, Seigneur "
CLS
PRINT USING "#. ##" ; a
PRINT USING "############^^^^" ; a
PRINT USING "+##. ##" ; a
PRINT USING "&" ; a$
PRINT USING "!" ; a$
PRINT USING "\\" ; a$
PRINT USING "\ \" ; a$

Exemple 2

A = 12345. 67

PRINT USING “# # # # #. # # " ; A

Résultat : 12345.67

xi.2.6. L’instruction STRING$ (N, C)

Où, „C‟ est le code ASCII du caractère à afficher, et N le nombre de fois


que le caractère doit être affiché.

Exemple :

Print string$ (12,42)

F5→************ (12 fois le caractère * dont le code ASCII est 42).

Autre syntaxe : PRINT STRING$ (N, « caractères »

Exemple :

Print string$ (10, « * »)

Cette syntaxe n‟est employée dans le cas où vous n‟avez pas le code
ASCII du caractère, et que le caractère en question est disponible sur le clavier.

xi.2.7. L’instruction LOCATE

Rôle : elle permet d‟afficher des données à partir d‟une ligne et une
colonne déterminée. Rappelons que l‟écran possède 25 lignes et 80 colonnes
pour afficher des textes et des calculs.
P a g e 66 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Syntaxe : LOCATE ligne, colonne

Où ligne indique le nombre de ligne, et colonne, le numéro de colonne


désirée.

Exemple

LOCATE 12,40

Print « Merci, seigneur »

F5→Merci, Seigneur à partir de la 12ème ligne et la 40ème colonne.

Remarque : LOCATE n‟influence que le PRINT qui vient directement après, les
autres qui viennent avant ou après ne sont pas pris en compte.

xi.2.8. View Print

View print permet de redimensionner la fenêtre texte. On indique la


première ligne puis la deuxième, avec TO entre les deux :

CLS

View Print 5 to 15

Print "ce texte est écrit sur la première ligne de la fenêtre texte "
xi.2.9. L’instruction WIDTH

Elle permet de définir la taille de la limite d‟impression relative au


format du papier. Par défaut de définition le système reconnait le format de
papier à 80 colonnes).

Pour ce fait, pour pouvoir imprimer sur un papier de plus de 80


caractères, il faut définir le format de l‟impression. Cette définition de format se
fait à l‟aide de l‟instruction Width.

P a g e 67 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

XI.3. LES INSTRUCTIONS D’ENTREE

Pour qu‟un programme tourne normalement, il a besoin des ressources


qui sont des données. Ces données proviennent de plusieurs sources ;
notamment :

 Du clavier
 Du programme lui-même (sont des données internes)
 Et des fichiers externes

xi.3.1. Les données provenant du clavier

Ces instructions sont :

 INPUT
 INPUT$
 INKEY$

Chacune de ces instructions provoque l‟arrêt momentané du programme


afin de permettre à l‟utilisateur d‟entrer des données.

INPUT

Nous avons vu dans le chapitre précédent comment calculer la surface


d'un cercle avec l'ordinateur. Mais comment faire pour calculer la surface de
plusieurs cercles sans avoir à modifier le programme ? C'est très simple. Nous
allons faire appel à l'instruction INPUT. L'instruction INPUT va, en quelque
sorte, poser une question à l'utilisateur du programme et ce dernier pourra
donner sa réponse qui sera stockée sous la forme d'une variable, numérique ou
chaîne de caractères suivant le cas. La syntaxe de l'instruction INPUT est la
suivante :

INPUT MaVariable

Avec des nombres

P a g e 68 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Nous allons reprendre le programme précédent en le modifiant quelque


peu. Ecrivez :

CONST PI = 3.14159265458 ' Définition de la constante PI


CLS ' Effacement de l'écran
PRINT "Entrez le rayon du cercle"
INPUT Rayon ' On stocke la valeur du rayon dans la variable 'Rayon'
PRINT "La surface d'un cercle d'un rayon de " ; Rayon ; " est " ; PI * Rayon ^ 2 '
On effectue le calcul et on affiche le résultat

Le résultat doit ressembler à :

Entrez le rayon du cercle


?_

Un point d'interrogation est affiché. L'ordinateur attend votre réponse.


Entrez n'importe quel chiffre, par exemple 5. Le chiffre 5 est alors stocké dans la
variable Rayon. Vous connaissez la suite, on effectue le calcul et on affiche le
résultat.

Avec des chaînes de caractères

On peut très bien affecter des chaînes de caractères à une variable grâce
à l'instruction INPUT. Voici un autre exemple :

CLS
PRINT "Entrez votre nom"
INPUT Nom$ ' Ne pas oublier le $
PRINT "Bonjour " ; Nom$
Le programme va vous demander votre nom puis l'afficher. Les règles de
ponctuation s'appliquent avec l'instruction INPUT. Placez donc un point-virgule
à la fin de la seconde ligne :

CLS
PRINT "Entrez votre nom" ; ' On a placé un point-virgule
INPUT Nom$ ' Ne pas oublier le $
P a g e 69 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

PRINT "Bonjour " ; Nom$

Vous l'avez deviné, le point d'interrogation se trouve maintenant sur la


même ligne. Avec une virgule ça aurait été pareil, sauf qu'il y aurait eu une
tabulation.

Remplacement de PRINT par INPUT

Afin de simplifier l'ensemble, on peut maintenant afficher un texte avec


l'instruction INPUT, ce qui était impossible dans les versions antérieures de
BASIC. En appliquant ces règles, voici la nouvelle forme du programme :

CLS
INPUT "Entrez votre nom" ; Nom$ ' On supprime l'instruction PRINT
PRINT "Bonjour " ; Nom$

Ici, le rôle du point-virgule est différent. Avec un point-virgule, voici


l'affichage :

Entrez votre nom ? _


Avec une virgule, on aurait eu :

Entrez votre nom_

Et oui, le point d'interrogation ne s'affiche plus avec la virgule, ce qui


dans des cas améliore l'esthétique.

P a g e 70 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

xii. STRUCTURE D’UN PROGRAMME QBASIC

XII.1. LES TROIS STRUCTURES DE BASE

 La séquence : un simple enchainement d‟instructions


 L‟alternative : choix entre deux séquences
 Les boucles : répétitions d‟une même séquence.

Voici comment ces structures de programme sont représentées


schématiquement dans un organigramme.

Séquence Alternative itérative ou répétitive (Boucle)

xii.1.1. La structure séquentielle

La séquence est constituée d‟une suite finie d‟instruction qui


s‟exécute linéairement et inconditionnellement. Les traitements sont effectués
les uns à la suite des autres.

Exemple : écrire un programme qui calcule la somme de deux nombres

CLS
Input "saisir a” ; a
Input "saisir b” ; b
s= a+b
Print "la somme est " ; s
End

P a g e 71 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

xii.1.2. Structure Alternative (conditionnelle)

IF … THEN … ENDIF (SI … ALORS … FINSI)

Le QBASIC comme la plupart des langages de programmation possède


une instruction If pour changer le cours de l‟exécution d‟un programme en
fonction du résultat d‟un test de comparaison. La syntaxe varie d‟un langage à
l‟autre.

Voici comment il conviendrait d‟écrire ces structures de décision en


QBASIC

Syntaxe Exemples
IF condition THEN IF n=0 THEN
Séquences d’instructions PRINT "valeur nulle"
ENDIF ENDIF
IF condition THEN IF Age >= 18 THEN
Séquence d’instructions A PRINT "Majeur"
ELSE ELSE
Séquence d’instructions B PRINT "Mineur"
ENDIF ENDIF
IF condition THEN IF Age < 25 THEN
Séquencé d’instructions A PRINT "jeunes"
ELSEIF condition THEN ELSEIF Age >=60
Séquencé d’instructions B PRINT "seniors "
ELSE ELSE
Séquencé d’instructions C PRINT "plein"
ENDIF ENDIF

P a g e 72 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Les conditions sont exprimées au moyen d‟opérateurs relationnels. Les


opérateurs logiques tels qu‟AND, OR, et XOR rendent possibles les
combinaisons de plusieurs conditions

If (sexe = „M ‟) AND (Age >= 18) then …

SELECT CASE…

L‟instruction SELECT CASE convient mieux dès qu‟il y a plus de trois


conditions à tester

SELECT CASE expression


CASE liste de valeurs 1
Séquence d’instruction 1
CASE liste de valeur 1
Séquence d’instruction2
----
CASE ELSE
Séquencé d’instruction
END CASE

xii.1.3. Structure itérative ou répétitive (boucle)

Une boucle est un ensemble d‟instructions ordonnées et finies placées à un


même endroit du programme et exécutées de manières répétitives.
Nous avons les boucles conditionnelles et inconditionnelles

a. Les boucles conditionnelles

Une boucle conditionnelle est une boucle qui ne s'exécute que sous
certaines conditions. Il en existe plusieurs que nous allons étudier.

La boucle FOR.…NEXT (POUR…FINPOUR)

P a g e 73 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Une boucle FOR.…NEXT permet de répéter un groupe d‟instructions


un nombre de fois déterminé.

FOR UneVariable = 1 TO 10000

Voici ce que l'on a écrit dans l'ordre. D'abord, le mot-clef FOR. Ensuite,
le nom d'une variable numérique. Ici, on l'a appelée 'UneVariable', mais on
aurait très bien pu l'appeler 'Cheval' ou 'Peter'.

Vient ensuite le signe égal '=' pour affecter à la variable spécifiée une
valeur. La première valeur sera 1 car c'est celle qu'on a spécifié. Mais si on avait
écrit FOR UneVariable = 5 TO 10000, la première valeur aurait été 5.

Ensuite intervient le 'TO'. Le second chiffre, '10000', est la limite


supérieure à laquelle la boucle s'arrêtera. C'est à dire que quand la variable
'UneVariable' sera égale à '10000', la boucle s'arrêtera.

Après cette ligne, on écrit les instructions à exécuter. Dans notre cas, il
n'y en a qu'une seule :

PRINT "Il va t'arriver malheur !"

Pour finir, on place le NEXT, suivi du nom de la variable :

NEXT UneVariable

Le programme complet doit donner :

FOR UneVariable = 1 TO 10000 ' La boucle va se ‟répéter 10000 fois


PRINT "Il va t'arriver malheur !"
NEXT UneVariable ' On retourne au FOR

Cette fois-ci, le nombre de fois sera respecté. Vous pouvez quand même
quitter avec CONTROL + PAUSE. Avec FOR...NEXT, on peut également

P a g e 74 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

effectuer un décompte. Observez le programme suivant qui réalise un compte à


rebours de 10000 à 0 :

FOR i = 10000 TO 0 STEP -1 ' Compte à rebours de 10000 à 0 de 1 en 1


PRINT i
NEXT i

Vous remarquez que l'on a fait appel à un nouveau mot-clef : STEP. En


Anglais, « STEP » signifie « PAS ». En effet, dans une boucle FOR.…NEXT, le
PAS par défaut est de 1. Pour effectuer un compte à rebours, il nous faut aller de
-1 en -1.

La boucle FOR.…NEXT peut s'avérer très utile en cas de structure


répétitive. Elle peut aussi servir à réaliser des temporisations, bien qu'il existe
des possibilités plus efficaces.

Attention ! On pourrait penser qu'une boucle FOR.…NEXT s'exécute,


quoiqu'il arrive, le nombre de fois spécifiées. Essayez donc ce petit exemple :

CLS
FOR i = 1 TO 10000
i = 10000
PRINT "Hello !"
NEXT i

On pourrait penser que le programme va écrire 10000 fois 'Hello !'. Et


bien non. La boucle ne s'arrête non pas au bout de 10000 fois, mais lorsque la
variable i est égale à 10000. Comme on a affecté la valeur 10000 à i avant
d'entrer dans la boucle, la boucle ne s'exécute qu'une fois !

La boucle DO...LOOP

La boucle DO...LOOP est d'un tout autre ordre. Ici, il n'y a pas de
compteur comme dans une boucle FOR.…NEXT.

P a g e 75 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Avant toute chose, essayez ce programme :

DO ' Tête de la boucle


INPUT "Quel âge avez-vous ?", Age ' Instruction(s)
LOOP ' Queue de la boucle

Vous observez que le programme vous demande continuellement votre


âge. Vous pouvez arrêter avec CONTROL + PAUSE. Une autre façon de la
stopper serait de compléter la boucle par une CONDITION.
Pour imposer une condition à une boucle DO...LOOP, il y a deux mots-clefs à
connaître :

 UNTIL : en Anglais, signifie jusqu'à. On aurait pu écrire :

DO
INPUT "Quel âge avez-vous ?", Age
LOOP UNTIL Age > 18 ' Faire une boucle JUSQU'À ce que Age 'soit SUPERIEUR
à 18
PRINT "Vous êtes majeur"

Cette boucle se répète jusqu'à ce que l'utilisateur attribue à la variable


'Age', une valeur supérieure à 18 par l'intermédiaire de l'instruction 'INPUT'. À
la sortie de la boucle, l'ordinateur nous confirme notre Etat Civil.

 WHILE : en Anglais, signifie tant que. On aurait pu écrire :

DO
INPUT "Quel âge avez-vous ?", Age
LOOP WHILE Age < 18' Faire une boucle TANT QUE Age est 'INFERIEUR à 18
PRINT "Vous êtes majeur"

Là aussi, la boucle se répète tant que l'utilisateur attribue à la variable


'Age' une valeur inférieure à 18 par l'intermédiaire de l'instruction 'INPUT'. Ici
aussi l'ordinateur nous confirme notre Etat Civil.

Ces deux exemples sont équivalents. C'est à vous d'utiliser UNTIL ou


WHILE selon la situation. Ici, on aurait plutôt utilisé UNTIL.
P a g e 76 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

La condition imposée peut se positionner soit derrière DO, soit derrière


LOOP. Cela influence du tout au tout le comportement du programme. Observez
: Age = 35 ' On initialise préalablement la variable Age à 35

DO
INPUT "Quel âge avez-vous ?", Age
LOOP UNTIL Age > 18
PRINT "Vous êtes majeur"

De toute évidence la boucle fonctionne normalement, la variable étant


testée à la fin de la boucle.

Mais si on avait placé la condition après DO :

Age = 35 ' On initialise préalablement la variable Age à 35


DO UNTIL Age > 18
INPUT "Quel âge avez-vous ?", Age
LOOP
PRINT "Vous êtes majeur"

Ici, la variable est testée en début de boucle. Age étant supérieur à 18, la
boucle est stoppée dès le début, et les instructions ne sont pas exécutées.
L'ordinateur passe directement aux instructions situées après la boucle.

 La boucle WHILE...WEND

La boucle WHILE...WEND a un comportement identique à la boucle


DO...LOOP. Mais elle est très peu utilisée et la boucle DO...LOOP lui est
préférée.

Les raisons de son manque de popularité sont les suivantes :

 Seule la condition tant qu’est utilisable.


 La condition n'est positionnable qu'en tête de boucle
 Cette boucle ne supporte pas l'instruction EXIT (voir ci-dessous)

P a g e 77 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Notre exemple précédent aurait pu s'écrire :

WHILE Age < 18' Tant que Age est inférieur à 18, la boucle ‟s'exécute
INPUT "Quel âge avez-vous ?", Age
WEND
PRINT "Vous êtes majeur"

Il semble que cette structure de boucle ait été conservée dans QBASIC
pour assurer la compatibilité de programme écrit dans des versions de BASIC
antérieures.

 L'instruction EXIT

L'instruction EXIT permet de sortir d'une boucle FOR.…NEXT ou


DO...LOOP. Pour une boucle DO...LOOP, on utilisera EXIT DO et EXIT FOR
pour une boucle FOR.…NEXT. EXIT doit forcément être utilisé à l'intérieur
d'une boucle :

DO
PRINT "Nous allons utiliser l'instruction EXIT"
EXIT DO „ On sort de la boucle
PRINT "Ces lignes ne seront pas exécutées car on sort de la boucle"
LOOP

Ou avec FOR.…NEXT :

FOR i = 1 to 10000
PRINT "Nous utilisons l'instruction EXIT FOR"
EXIT FOR „ On sort de la boucle
PRINT "Ces lignes ne seront pas exécutées car on sort de la boucle"
NEXT i

 Imbrication de boucles

Plusieurs boucles peuvent être imbriquées l'une dans l'autre. Il faut


respecter une certaine logique.

FOR i = 1 TO 10
FOR j = 1 TO 10
P a g e 78 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

PRINT j ; " fois " ; i ;" égal " ; j * i


NEXT i
NEXT j

Ainsi l'exemple ci-dessus qui calcule les tables de multiplication de 1 à


10 ne fonctionnera pas car on a permuté NEXT i et NEXT j. Si on exécute,
l'erreur 'NEXT sans FOR' se produira. Après correction, cela donne :

FOR i = 1 TO 10
FOR j = 1 TO 10
PRINT j ; "fois" ; i ;" égal " ; j * i
NEXT j
NEXT i
De même, avec DO...LOOP :

FOR i = 1 TO 10
DO
PRINT "Personne N°" ; i
INPUT "Quel âge avez-vous ?" ; Age
NEXT i
LOOP UNTIL Age > 18
Ce programme est complétement faux. Là aussi, l'erreur 'NEXT sans
FOR' se produit. Il faudrait écrire :

FOR i = 1 TO 10
DO
PRINT "Personne N°" ; i
INPUT "Quel âge avez-vous ?" ; Age
LOOP UNTIL Age > 18
NEXT i

 Un dernier point

Vous aurez remarqué qu'à chaque fois, lorsque l'on a utilisé une boucle,
on a observé un retrait de 2 caractères par rapport aux autres instructions. Ce
n'est nullement obligatoire mais bien utile pour distinguer chaque bloc du
programme.

P a g e 79 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

b. Les boucles inconditionnelles

Imaginez que vous soyez fort en colère contre quelqu'un. Après avoir
consulté un Marabou Africain, vous avez appris que pour lui jeter un sort il
faudra écrire 10000 fois 'Il va t'arriver malheur !'. Malin comme vous l'êtes, vous
vous êtes dit, je vais demander à mon ordinateur de le faire à ma place.

Mais écrire 10000 fois PRINT "Il va t'arriver malheur !" n'est guère plus
rapide. Nous allons donc utiliser une boucle.

 Avec RUN

C'est une méthode qu'un bon programmeur n'aime pas tellement utiliser.
Il n'empêche qu'elle marche correctement. RUN signifie 'courir' en Anglais. Ici
il n'est nulle question de faire courir l'ordinateur. Dans ce contexte, RUN donne
l'ordre d'exécuter le programme depuis le tout début. Nous pouvons écrire un
court programme permettant d'écrire une multitude de fois 'Il va t'arriver
malheur !'.

PRINT "Il va t'arriver malheur !"


RUN
Vous pouvez essayer, ça marche très bien. Pour arrêter, appuyez sur
CONTROL + PAUSE.

 Avec GOTO

Une autre méthode serait d'utiliser GOTO. À l'origine, GOTO ne sert


pas à faire des boucles. Mais dans ce contexte, ça suffira bien. Pour utiliser
GOTO, il faut définir une étiquette. Par exemple, pour une étiquette que l'on
appellera Début, on écrira Début, suivi des doubles points : :

Début : ' N'oubliez pas les doubles-points, ils sont ‟indispensables !

P a g e 80 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Lorsque l'ordinateur arrivera à l'instruction GOTO, il ira à l'étiquette


spécifiée :

Début : ' N'oubliez pas les doubles-points, ils sont ‟indispensables !


PRINT "Il va t'arriver malheur !"
GOTO DEBUT ' Lorsque l'ordinateur arrive à cette ligne, 'il remonte à la
première ligne

Là aussi ça marche très bien et là aussi, pour arrêter, appuyez sur


CONTROL + PAUSE.

 ON… GOTO

À proprement parler, ON… GOTO n'est pas tout à fait une structure
inconditionnelle. ON GOTO est toujours associé d'une part à une variable
numérique, et d'autre part à une série de labels (étiquettes). L'ordinateur va alors
tester la valeur de la variable. Si elle vaut 1, l'ordinateur va aller au premier label
spécifié. Si elle vaut 2, il va au deuxième, et ainsi de suite.

INPUT "Entrez un chiffre entre 1 et 3 : ", Rep

ON Rep GOTO LabelUn, LabelDeux, LabelTrois


' on effectue un branchement avec ON GOTO
END

LabelUn:
PRINT "Vous avez écris 1"
END

LabelDeux:
PRINT "Vous avez écris 2"
END

LabelTrois:
PRINT "Vous avez écris 3"
END

P a g e 81 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Si la valeur renvoyée par l'utilisateur n'est pas dans les fourchettes (0 ou


4 par exemple), aucun branchement n'est effectué.

Par contre, si l'utilisateur avait fourni une valeur comprise dans la


fourchette, mais non entière, le branchement aurait été effectué avec l'arrondi.
Par exemple, si on avait donné 1.4, l'arrondi aurait été 1 et on serait allé au label
LabelUn : Si on avait donné 1.6, l'arrondi aurait été 2 et on serait allé au label
LabelDeux :

 END

END signifie la fin d'un programme. Lorsque l'ordinateur le rencontre, le


programme s'arrête. Il peut être placé n'importe où dans le code.

xii.1.4. Les nombres Aléatoires

Les nombres aléatoires sont essentiellement utilisés pour les programmes


de jeu ou d‟éducation.

Instructions RND(X) : fournit un nombre aléatoire compris entre 0 et 1


(1 exclus) ; pour X>0, RND vient de RANDOM qui signifie aléa.

Exemple : CLS
FOR N=1 to 20
PRINT RND(N)
NEXT N
END

Si vous faites fonctionner plusieurs fois de suite le programme ci-


dessous, vous pourrez constater qu‟il s‟agit toujours de la même série de
nombres. C‟est normal.

Pour que l‟instruction RND calcule des séries différentes, il faut


commencer par l‟instruction RANDOMIZE TIMER, qui est l‟horloge interne du
microprocesseur.

P a g e 82 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Exemple :

CLS
RANDOMIZE TIMER
FOR N=1 TO 20
PRINT RND(N)
NEXT N
END

Pour obtenir des nombres entiers entre 0 et 9 par exemple, il faut


multiplier le nombre obtenu par 10 : ensuite prendre la parie entière du résultat
avec la fonction INT(X).

Exemple : soit N un entier naturel non nul. Le programme Hasard ci-


dessous va permettre de tirer au sort 10 entiers compris entre 0 et N (0 et N
pourront sortir).

CLS

RANDOMIZE TIMER

INPUT "Choisissez l‟entier N :" ;n


FOR i =1 to 10
x=INT ((n+1)*RND(n))
PRINT N
NEXT i
END

P a g e 83 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

XII.2. EXERCICES

1. Calcul de la somme des N premiers nombres entiers.


2. Recherche du minimum et du maximum dans un ensemble de N nombres.
3. Calcul du quotient et reste de la division de deux entiers A et B sans
utiliser l‟opération de division.
4. Le calcul du produit de deux entiers en utilisant uniquement l'opération
d'addition'+‟.
5. Détermination si A est divisible par B. Avec A et B des entiers positifs.
6. Déterminer tous les diviseurs d‟un entier X donné.
7. Déterminer si un nombre entier X est premier ou non.
8. Calcule la somme des chiffres qui composent un entier naturel N.
9. Elaborer une facture de n produit, afficher le produit et calculer le prix
total de chaque produit.

P a g e 84 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

Introduction ............................................................................................... 1

Généralités sur le traitement de l’information ...................................... 3

I. Notion d‟algorithme ............................................................................... 5

i.1. Caractéristiques d'un algorithme .................................................... 6

i.2. Structure d'un algorithme ................................................................ 6

i.3. Algorigramme ................................................................................. 7

ii. Les entrées-sorties................................................................................. 8

iii. Constantes et Variables...................................................................... 10

iii.1. Caractéristiques d’une variable et d’une constante ..................... 10

iii.2. A quoi servent les variables ? ..................................................... 11

iii.3. Déclaration d’une variable et d’une constante ............................ 12

iii.4. Type de variable.......................................................................... 13

iv. Opérandes et Opérateurs .................................................................... 15

iv.1. définition ..................................................................................... 15

iv.2. Types d’opérateurs ...................................................................... 15

iv.2.1. Opérateurs arithmétiques ..................................................... 15

iv.2.2. Opérateurs de comparaison .................................................. 15

iv.2.3. Opérateurs logiques ............................................................. 16

iv.2.4. Opérateurs de concaténation ................................................ 16

iv.2.5. Opérateur d‟affectation ........................................................ 16

v. Structure de contrôle ........................................................................... 17

v.1. Structure linéaire .......................................................................... 17

v.2. Structures alternatives .................................................................. 18

v.2.1. Structure alternative réduite .................................................. 18


P a g e 85 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

v.2.2. Structure alternative complète .............................................. 19

v.2.3. Structures alternatives imbriquées ........................................ 21

vi. Les structures répétitives ................................................................... 22

vi.1. La structure POUR … DE … A …, FAIRE ................................. 22

vi.2. La structure TANT QUE …, FAIRE .......................................... 24

vi.3. La structure REPETER … JUSQU’A … ..................................... 26

vii. Les Tableaux ..................................................................................... 28

vii.1. Utilité des tableaux .................................................................... 28

vii.2. Notation et utilisation algorithmique ......................................... 29

Exercices Pratiques ................................................................................. 32

viii. Notion de programmation ................................................................ 36

ix. Introduction au langage QBASIC ...................................................... 38

xi.1. Bref historique............................................................................. 39

xi.2. Langages interprétés ou compilés .............................................. 40

xi.3. Lancement de QBasic ................................................................. 40

xi.4. L’environnement de programmation QBASIC ........................... 41

xi.5. Comment écrire sur l’écran......................................................... 42

xi.5.1. Code ..................................................................................... 42

xi.5.2. Instruction en programmation .............................................. 43

xi.5.3. La ponctuation (syntaxe) ..................................................... 44

x. Les variables, les constantes et les opérateurs EN QBASIC .............. 48

x.1. Les variables................................................................................. 48

x.1.1. Définition .............................................................................. 48

x.1.2. Type de variables .................................................................. 48


P a g e 86 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

x.1.3. Déclaration de variable ......................................................... 51

x.1.4. Variables globales et locales (le retour) ................................ 53

2.1.4. Substitution de la valeur de 2 variables ................................ 53

2.1.5. Les commentaires ................................................................. 53

x.2. Les Constantes ............................................................................ 54

x.2.1. Définition .............................................................................. 54

x.3. Opérateurs .................................................................................... 55

x.3.1. Opérateurs mathématiques .................................................... 55

x.3.2. Opérateurs relationnels ......................................................... 55

x.3.3. Opérateur de concaténation ................................................... 56

x.3.4. Opérateurs logiques............................................................... 56

x.3.5. L‟opération d‟affectation ...................................................... 59

x.4. Exercices ...................................................................................... 59

xi. Les instructions d‟entrée et sortie ...................................................... 62

xi.1. Ce qu‟est une instruction d‟entrée/ sortie ................................... 62

xi.2. Les instructions de sortie ............................................................ 62

xi.2.1. Liste des instructions de sortie ............................................. 62

xi.2.2. L‟instruction PRINT et LPRINT ......................................... 62

xi.2.3. PRINT Tab () et LPRINT Tab () ......................................... 63

xi.2.4. PRINT SPC () [ou PRINT SPACE$ ()] ............................... 64

xi.2.5. L‟instruction PRINT USING ............................................... 65

xi.2.6. L‟instruction STRING$ (N, C) ............................................ 66

xi.2.7. L‟instruction LOCATE ........................................................ 66

xi.2.8. View Print ............................................................................ 67

P a g e 87 | 88
+243 89 17 07 162 Yannick Julias MAMPAS ; e-mail : mampasij@[Link]

xi.2.9. L‟instruction WIDTH .......................................................... 67

xi.3. Les instructions d‟entrée ............................................................. 68

xi.3.1. Les données provenant du clavier ........................................ 68

xii. Structure d’un programme Qbasic .................................................... 71

xii.1. Les trois structures de base ........................................................ 71

xii.1.1. La structure séquentielle ..................................................... 71

xii.1.2. Structure Alternative (conditionnelle) ................................ 72

xii.1.3. Structure itérative ou répétitive (boucle) ............................ 73

xii.1.4. Les nombres Aléatoires ...................................................... 82

xii.2. EXERCICES .............................................................................. 84

P a g e 88 | 88

Vous aimerez peut-être aussi