Programmation 1

I. Qu'est-ce que programmer ?

C'est fournir à l'ordinateur les données et instructions concernant une tâche à exécuter.  Il est utile de programmer lorsqu'un travail comporte des tâches routinières.

Pour communiquer des données et des instructions à un ordinateur, on utilise des langages spécifiques.

II. Les langages de programmation :

1°) Généralités :

Le langage informatique est composé d’une série d’instructions pouvant être traitées, interprétées et exécutées par un ordinateur. Ces instructions, qui sont frappées au clavier, se composent de caractères, de symboles, et de règles permettant de les assembler.

Comme un ordinateur ne comprend qu’un seul langage, le langage machine qui se présente comme une suite de 0 et de 1, tout programme doit être décodé et traduit en langage machine, avant de pouvoir être exécuté. Ce processus de conversion est assuré par un programme intermédiaire appelé soit compilateur soit interpréteur selon le langage utilisé.

Langages compilés

Langages interprétés

Les langages compilés sont des langages où l'ensemble des instructions sont traduites avant d’être exécutées. Cette conversion s’effectue au moyen d’un compilateur.

Les langages interprétés sont des langages décodés et exécutés instruction par instruction à l’aide d’un  interpréteur.

Le plus connu des langages interprétés est le langage BASIC.

On classe les différents types de langages en deux familles : les langages de bas niveau et les langages évolués. On y ajoute parfois une autre catégorie, les langages de quatrième génération.

Langages de bas niveau

Langages évolués

Les langages de bas niveau sont des langages proches de la machine, ou des langages offrant peu d’instructions et de types de données. Le langage machine et le langage assembleur sont considérés comme des langages de bas niveau.

Les langages évolués, dits aussi de haut niveau, sont des langages informatiques offrant un certain niveau d’abstraction par rapport au langage de la machine.

Les langages évolués sont classés en trois grandes familles : les langages procéduraux, les langages orientés-objets et les langages orientés-listes.

Les langages de bas niveau peuvent être préférés à un langage de haut niveau lorsque le programmeur recherche une vitesse d’exécution élevée ou un contrôle étroit de la machine. En effet, les programmes écrits dans ce type de langage tournent plus vite et occupent moins de place que les langages évolués. En outre, ils donnent au programmeur la possibilité d’agir directement sur le matériel (processeur, mémoire, affichage et connexion d’entrées!/!sorties).

langages

procéduraux

où la suite d’instructions constitue l’élément de base

ex :

- le FORTRAN,

- le COBOL,

- le BASIC,

- l’Ada,

- le PASCAL

- le C

langages

orientés-objets

où chaque programme est considéré comme un ensemble d’objets distincts.

ex :

- le C++,

langages

orientés-listes

apparentés aux langages orientés-objets, à la différence près qu’ils manipulent non pas des objets mais des listes.

ex :

- le LISP

- le Prolog

2°) Historique de quelques langages :

Langage BASIC

Acronyme de Beginners’ All-purpose Symbolic Instruction Code, le BASIC est un langage de programmation de haut niveau, développé vers le milieu des années 1960 par John Kemeny et Thomas Kurtz. L’énorme succès de ce langage est dû à deux de ses versions, Tiny BASIC et Microsoft BASIC. Mais il en existe également d’autres versions importantes: comme Integer BASIC et Applesoft BASIC (pour Apple), GW-BASIC (pour l’IBM PC) ou QuickBASIC (Microsoft). Le langage BASIC a ainsi évolué au fil des années, passant d’une forme non structurée et interprétée à des versions structurées et compilées. Il est souvent enseigné aux débutants en raison de sa simplicité, mais également parce qu’il manipule les mêmes concepts que d’autres langages plus complexes, tels que le langage Pascal ou le langage C. Néanmoins, les instructions du langage BASIC demeurent plus limitatives que celles associées au Pascal ou C.

Langage FORTRAN

Premier langage de programmation de haut niveau, le FORTRAN (acronyme de FORmula TRANslation) fut développé entre 1954 et 1958 par Jim Backus. Il est à l’origine de nombreux concepts avancés. Langage compilé et structuré, il fut créé en vue d’être appliqué aux domaines scientifiques et techniques : il est de ce fait encore très utilisé en ingénierie. Il a été révisé et amélioré au cours des trente-cinq dernières années, si bien qu’il s’avère désormais employé dans tous les domaines.

Langage COBOL

Acronyme de COmmon Business-Oriented Language, le COBOL est un langage compilé proche de l’anglais, développé entre 1959 et 1961. Officialisé par le Département américain de la Défense dont il fut un temps le langage obligatoire, il demeure universellement employé, tout particulièrement dans les applications de gestions, de par sa structuration et sa syntaxe proches de l’anglais.

Langage Pascal

Mis au point entre 1967 et 1971 par Niklaus Wirth, le langage Pascal est un langage structuré et compilé, dérivé du langage ALGOL. Destiné à traiter des données informatiques, il simplifie la syntaxe d’ALGOL tout en y ajoutant des  structures supplémentaires. Le langage Pascal connut un grand succès à partir de 1984, date de lancement sur le marché du Turbo Pascal par la société Borland International. En effet, ce compilateur à vitesse élevée et d’un prix modique, adapté aux systèmes d’exploitation MS-DOS, fut vendu à plus d’un million d’exemplaires dans ses différentes versions. Malgré ce succès, le langage Pascal semble aujourd’hui céder le pas au langage C, voire au C++, qui s’impose peu à peu comme le langage de développement standard sur micro-ordinateur.

Langage Ada

Ce langage procédural, dérivé du Pascal, conçu selon les normes édictées par le Département américain de la Défense dans les années 1970, était destiné à devenir le langage de développement principal des applications de cet organisme.

Langage C

Succédant au langage B (d’où son nom), le langage C fut développé en 1972 par Dennis Ritchie dans les laboratoires américains de la société Bell. Bien que le langage C s’apparente à un langage assembleur indépendant de la machine plutôt qu’à un langage de haut niveau, il peut être cependant considéré comme un langage de programmation standard en micro-informatique, en raison de sa grande popularité, de son association avec le système d’exploitation UNIX, le langage C est doté de fonctions indépendantes de la machine. Langage de programmation structuré et compilé, il s’avère relativement portable d’une machine à l’autre.

Langage C++

Le langage C++, version orientée-objet du langage de programmation C, développé au début des années 1980, puis adopté par certains constructeurs tels qu’Apple Computer ou Sun Microsystems. Le langage C++ s’impose aujourd’hui, grâce à ses fonctions très puissantes, comme le langage de référence de développement de programmes.

Langage LISP

Sigle de LISt Processing, LISP est un langage de programmation orienté-liste développé vers 1960 par John McCarthy, et utilisé principalement pour manipuler des listes de données. En rupture complète avec les langages procéduraux de l’époque, LISP est un langage toujours fréquemment utilisé dans les milieux universitaires, même si, depuis quelques années, le langage Prolog commence à revendiquer la même position.

Langage Prolog

Acronyme de PROgramming in Logic, Prolog est un langage né en Europe dans les années 1970, le premier compilateur ayant été développé en 1972 à l’université de Marseille par Philippe Roussel. Conçu à l’origine pour la programmation logique, ce langage s’est depuis largement répandu dans le domaine de l’intelligence artificielle.

III. Initiation au langage basic :

La version utilisée sera le QuickBASIC de Microsoft. Allumer l'ordinateur.

Ccliquer sur QBasic. Une fenêtre bleue s'ouvre, une boite de dialogue propose un guide élémentaire valider avec ¿. Pour quitter l'aide appuyer sur Echap

L'écran bleu se partage en 2 fenêtres :

- "sans nom" domaine où l'on peut écrire un programme. On s'y déplace comme dans un traitement de texte.

- "immédiate" où chaque instruction s'exécute dès qu'on la valide avec ¿.

La ligne en bas correspond aux raccourcis clavier.

Toute ligne d'instructions doit être validée avec ¿.

L'exécution d'une séquence programmée est obtenue en tapant sur la touche F5. On quitte l'exécution en tapant les touches Ctrl et C ensemble.

L'instruction PRINT

Taper les instructions suivantes et noter le résultat après avoir appuyé sur F5.

instruction

Résultat (F5)

instruction

Résultat (F5)

instruction

Résultat (F5)

2+5

 

Print 3*2+5

 

Print 3+5/2

 

Print 2+5

 

Print (3*2)+5

 

Print (3+5)/2

 
   

Print 3*(2+5)

 

Print 3+(5/2)

 

Vérifier que l'ordre des priorités mathématiques est respecté.

Si vous avez écrit une succession de lignes d'instructions, que se passe-t-il à chaque F5 ?

La virgule d'un nombre décimal se tape .        La virgule sert à séparer deux instructions sur la même ligne (de même le ;)

instruction

Résultat (F5)

instruction

Résultat (F5)

instruction

Résultat (F5)

Print 3+2.3

 

Print 3+2,3

 

Print 3+2;3

 

Quelles est la différence entre la séparation d'instructions par une virgule et un point virgule ?

instruction

Résultat (F5)

instruction

Résultat (F5)

instruction

Résultat (F5)

Print bonjour

 

Print "bonjour"

 

Print "bonjour";"coco"

 

Dans le premier cas, l'ordinateur considère le mot bonjour comme une variable. Cette variable n'ayant pas été définie, il lui affecte la valeur...............

Pour faire écrire du texte, il faut utiliser des ........................

Dans le dernière cas, l'ordinateur ne laisse pas d'espace entre les textes, il faut le prévoir dans la chaîne de caractères. Retaper la dernière instruction en prévoyant un espace.

L'instruction CLS (CLear Screen)

L'ordinateur garde affichés les résultats des opérations précédentes. Pour effacer l'écran, taper cls.

L'instruction LOCATE

L'écran comporte 24 lignes horizontales (numérotées de 1 à 24) et 80 colonnes verticales  (numérotées de 1 à 80).

instructions

résultat

commentaire

CLS

Locate 10,15

Print "salut"

   

Faire afficher Salut aux 4 coins de l'écran. Appeler le professeur.

Instructions

L'instruction COLOR

La couleur actuelle du fond de l'écran d'exécution est ........................ La couleur actuelle du texte est .........................

taper

Color 4¿. Le fond est .................... Le texte est......................

Insérer l'instruction color dans le programme précédent pour que "Salut" soit en couleur.

Compléter le tableau suivant :

numéro

0

1

2

3

4

5

6

7

8

9

10

11

couleur

                       

numéro

12

13

14

15

17

18

           

couleur

                       

taper

Color 0,3 ¿. Le fond est .................... Le texte est......................

Cas général color x,y          x: couleur de .................       y : couleur de ............................. ( y < 8 )

A vous de jouer !

Affecter une valeur à une variable

instruction

résultat

commentaire

Print a

 

la variable a n'a pas été définie ; l'ordinateur lui affecte la valeur...........

a = 5

   

print a

 

L'ordinateur affecte la valeur .......... à la variable ..............

a = 10

 

L'ordinateur change la valeur de a

a = a+2

   

print a

 

L'ordinateur ajoute 2 à la valeur de a qu'il a en mémoire

L'instruction INPUT

Elle permet de rentrer des données par le clavier.

Taper

commenter

input A¿ F5.

Il s'affiche un ....... L'ordinateur.....................................................

Input A¿

Print A*2¿ F5

 

Input A,B,C¿

Print B¿ F5

(ne vous énervez pas, cherchez à comprendre !)

Input "quel est ton âge"; age¿

Print age; "ans"¿ F5

 

Ecrire une séquence qui demande la masse en grammes et la masse molaire en grammes par mole d'un corps pur puis qui calcule la quantité de matière exprimée en mole et affiche le résultat.


Programmation 2

Les instructions de dessin :

Le passage en mode graphique s'effectue en tapant l'instruction : SCREEN 12.

L'écran comporte 640 pixels horizontalement et 480 verticalement.

CIRCLE (200,200),100 trace un cercle de centre (200,200), et de rayon 100 pixels

LINE (200,200)-(400,400) trace une ligne du point (200,200) au point (400,400)

PSET (350,200) trace un point de coordonnées (350,200)

A ces trois instructions de dessin, on peut ajouter une valeur (codée de 0 à 15) correspondant à la couleur du tracé..

(0,0)                                           (639,0)

(0,479)                                    (639,479)

L'instruction PAINT (x,y), c,c permet de colorier avec la couleur c l'écran à partir du point (x,y) jusqu'à rencontrer la couleur c

Voir tableau obtenu la fois précédente

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

noir

bleu

vert

cyan

rouge

violet

marron

blanc

gris

bleu cl

vert cl

cyan cl

rouge cl

violet cl

jaune

brillant

 

Notion de variable :

Une variable est un paramètre qui peut changer. Tous les paramètres permettant de définir les figures dessinées peuvent être des variables.  Exemple : CIRCLE (a,b),c permet de tracer un cercle de centre (a,b) et de rayon c; a, b et c sont des variables dont on peut modifier les valeurs.

Une variable peut être numérique, on la représente par une ou plusieurs lettres ou chiffres : A1 = 50

Elle peut être alphanumérique (chaîne de caractères), sa dénomination se termine par $ : reponse$ = "oui"

 

Notion de boucle :

Il est parfois nécessaire de faire répéter le même groupe d'instructions plusieurs fois.

1°) La boucle FOR ... NEXT... exécute la boucle pour chaque valeurs de la variable

Que fait le programme suivant ?

Programme

CLS

SCREEN 12

FOR I= 1 TO 10

CIRCLE (200,200),10*I

NEXT I

Commentaires

Modifier ce programme pour qu'à chaque boucle la couleur du tracé soit différente.

2°) La boucle WHILE ... WEND exécute la boucle tant que la condition est vraie

Que fait le programme suivant ?

Programme

CLS

SCREEN 12

reponse$="o"

WHILE (reponse$="o")

RANDOMIZE TIMER

X1=INT(RND*640)

Y1= INT(RND*480)

X2= INT(RND*640)

Y2= INT(RND*480)

C=INT(RND*16)

LINE(X1,Y1)-(X2,Y2),C

LOCATE 1,1

INPUT "encore une ligne(o/n)"; reponse$

WEND

Commentaires

prend des nombres au hasard

RND choisit au hasard un réel entre 0 et 1 ; INT prend la partie entière

retourne à l'instruction WHILE

3°) La boucle DO ... LOOP UNTIL exécute la boucle jusqu'à ce que la condition soit vraie

Tester le programme suivant ?

Programme

CLS

SCREEN 12

PRINT "taper sur z pour arrêter"

DO

RANDOMIZE TIMER

X1=INT(RND*640)

Y1= INT(RND*480)

X2= INT(RND*640)

Y2= INT(RND*480)

C=INT(RND*16)

LINE(X1,Y1)-(X2,Y2),C

LOCATE 1,1

reponse$=INKEY$

LOOP UNTIL(reponse$="z")

Commentaires

INKEY$ = caractère tapé au clavier

recommence sauf si reponse$ contient z

CONCOURS :

1er temps Concevoir un programme qui dessine une voiture par exemple (en couleur si possible)

2ème temps Modifier ce programme pour que la voiture avance.

Les artistes pourront faire dessiner tout autre objet pouvant se mouvoir.


Programmation 3

Un programme est utile pour accomplir des tâches répétitives. Le meilleur mode opératoire consiste à recenser les données (entrées) , identifier le ou les résultats à atteindre (sorties) et trouver de quelle manière le ou les résultats peuvent être obtenus à partir des données (traitement ou algorithme).

Un bon programme doit s'acquitter de la tâche assignée de façon rapide, en utilisant le moins de mémoire possible. Il doit facilement s'adapter à de nouvelles exigences.

Voici quelques exemples d'exercices qui peuvent donner lieu à un programme :

1- Calculer la moyenne d'une série de mesures en physique (lors d'un TP par exemple)

2- Tracer un graphe d'après un tableau de mesures

3- Trouver la valeur de la résistance d'un conducteur ohmique à l'aide du code des couleurs

4 - Equilibrer l'équation chimique de combustion complète de n'importe quel hydrocarbure

5- Convertir n'importe quel nombre décimal en binaire et l'inverse

6- Jouer contre la machine à "devine le nombre auquel je pense"

I. Structure d'un programme - réalisation d'un organigramme:

Quel que soit le problème, l'écriture d'un programme nécessite la connaissance précise d'une méthode de résolution.

Cette méthode peut être schématisée par un "organigramme" qui représente toutes les étapes de la résolution.

Le déroulement d'un programme peut être représenté à l'aide de 3 structures de base :

¨    la séquence : une action succède à une autre

¨    le choix : on peut choisir différentes actions

¨    la boucle : action répétée pendant un certain temps

Séquence

choix

boucle

Ecrire un organigramme relatif au 1er exemple.

II. Rappel de quelques instructions utiles :

PRINT : affiche à l'écran

CLS : efface l'écran

INPUT nom de variable

- variable numérique : ex N, RAYON...

- variable alphanumérique (chaîne de caractères) : ex : N$ ou MOT$ ; la chaîne de caractères doit être rentrée entre guillemets

: saisit la valeur de la variable entrée au clavier et la range en mémoire sous le nom qui suit l'instruction input

DATA valeur1, valeur2, valeur3 ... :permet d'entrer un grand nombre de valeurs

READ variable1, variable2, variable3 :permet d'attribuer aux variables après Read les valeurs après data  dans l'ordre

INKEY$ : caractère tapé au clavier

SCREEN 12 : passe en mode graphique

CIRCLE(x,y),r,couleur : dessine un cercle de centre (x,y), de rayon r et de couleur paramétrable.

LINE(xD,yD)-(xA,yA), couleur :trace  une droite passant par (xD,yD) et (xA,yA),   de couleur paramétrable.

LOCATE x,y : positionne le curseur en x,y

PSET(x,y) : trace  un point en x,y

SOUND x,y : génère un son de fréquence x et de durée y (37<x<32 767 ; y = 18,2 correspond à 1 seconde)

Randomize timer :permet d'initialiser le générateur de  nombres aléatoires

RND : choisit un  nombre aléatoirecompris entre 0 et 1

FIX ( ) : prend la partie entière du nombre entre parenthèses

INT ( ) : donne le plus grand entier inférieur au nombre entre parenthèses

CINT ( ) : arrondit à l' entier le plus proche du nombre entre parenthèses

III. Quelques commandes de branchements, de tests et de boucles :

1°) La boucle FOR I = ... TO.. STEP S... NEXT I exécute la boucle pour chaque valeurs de la variable I par pas de la valeur de S

2°) L'instruction GOTO suivi d'un numéro de ligne renvoie à la ligne numérotée

3°) L'instruction IF (condition : égal, inférieur, supérieur, différent) THEN (instruction suivante) exécute l'instruction suivante si la condition est remplie et la saute sinon.

4°) La boucle WHILE ... WEND exécute la boucle tant que la condition est vraie

5°) La boucle DO ... LOOP UNTIL exécute la boucle jusqu'à ce que la condition soit vraie

IV. Créer - enregistrer - utiliser un programme en basic :

Avec QBasic, pour créer un nouveau programme, cliquer sur le menu Fichier/ Nouveau, pour ouvrir un programme déjà écrit cliquer sur Fichier/ Ouvrir, pour enregistrer son programme : Fichier/ Enregistrer, chercher le répertoire A pour enregistrer sur disquette.

V. Programmation :

Choisir un exemple parmi ceux proposés plus haut.

Ecrire l'organigramme.

Concevoir le programme.

A la fin des séances rendre l'organigramme sur feuille et le programme sur disquette. Ne pas oublier de préciser le nom de votre fichier .bas