cours 1ere partie

Rédigé par spheris Aucun commentaire
Classé dans : apprentisssage, gambas 1, gambas 2, gambas 3, Tutoriel, poo Mots clés : aucun

COURS 1 : PREMIÈRE APPROCHE DE LA PROGRAMMATION




A) INTRODUCTION


Dans ce cours nous allons voir la différence entre la programmation structuré et la programmation orientée objet. Ce cours a été improvisé  par un amateur alors soyez indulgent quant à la rédaction et au tournures de phrases.

B) LA PROGRAMMATION STRUCTURÉE

Pour expliquer  rapidement ce qu'est la programmation structuré, prenons un petit exemple de la vie courante.

Posons un problème simple:

je vais de la gare à chez moi, plusieurs chemin s 'offrent a moi, pourtant un seul but, c 'est un raisonnement structuré.


Je pourrais écrire un simple programme qui dirait:

-Va tout droit
-Tourne a gauche deux fois
-Si rue barrée fais demi tour.
-Va deux fois a gauche et voila tu es arrivé !


cette méthode là était valable à l’époque. on partait d 'un point a un autre en suivant bêtement la structure du programme.

Aujourd'hui avec l 'apparition des interfaces et de la programmation orientée objet (poo) le langage a évolué.

Un programme ne va plus d 'un point a un autre mais réagit a des évènements. Reprenons notre exemple en poo cette fois ci, nous pourrions écrire:


-je marche, je marche
Quelqu'un m 'interpelle et me dit à gauche
je vais a gauche et... je marche, je marche
un avion passe, je m'arrête et le regarde..
je marche..je marche
quelqu'un me pousse et... je suis arrivé !


Cette philosophie de programmation est géniale ! pourquoi ? car elle permet une souplesse de programmation exceptionnelle. Autrefois le programme était une fonction figée du début a la fin. Aujourd'hui le programme est constitué d 'une multitude de fonctions(petits bouts de codes).
Dans notre exemple :

je marche, je marche peut être comparé à la fonction principale
on la nomme MAIN (qui veut dire 'principale' en Anglais)

Quelqu'un m 'interpelle et me dit 'à gauche' est la fonction vaagauche
a la fin de vaagauche il y a  je marche, je marche curieux c 'est la fonction MAIN

et oui ! on a sauté d 'une fonction a l 'autre
Nous pouvons donc décomposer un programme en une multitude de petites fonctions appelé :OBJETS !!!!!


Petit rappel historique à titre d 'information :

Un microprocesseur, partie centrale de notre matériel,  traite des informations qui rentrent et qui sortent
par exemple, je rentre 000001010111011 j 'effectue une addition et je sors 11101110
a l 'époque des informaticiens ont inventé le langage assembleur , langage assez difficile a maîtriser qui traduit ces 000111 en code du style :
MOV 3H,CS
CALL INT3
ce qui est un peu plus compréhensible par l 'homme mais qui reste difficile à assimiler pour le commun des mortels.
le langage assembleur étant trop compliqué et les ordinateurs devenant de plus en plus performant il a fallut  changer de langage
Notre bon vieux bilou gatsou nous a sorti son BASIC (qu’il a pompé je ne sais où bien entendu)
qui est en fait une surcouche de l 'assembleur.
c 'est a dire, par exemple,


PRINT ‘’bonjour’’

 équivaudra en assembleur a :

MOV 32,CH DS 23 , CALL INT45

le basic interprétait les écritures de code compréhensibles par tous les programmeurs contenues dans un fichier .BAS.
Seulement , le code était exécuté du début jusqu'à la fin , on dit qu'il est STRUCTURE.
Avec la puissante de calcul toujours grandissante de nos machine, et la gestion multitâches, Il a fallut améliorer cela.
La notion de POO arrivait a grand pas avec le langage C.

LA PROGRAMMATION ORIENTEE OBJET OU POO
Nous ne pouvons pas parler de poo sans parler du langage précurseur, à savoir le langage C, de ce nouveau mode de programmation.

En C on utilise ce principe de bout de fonction(appelé objet) qui sont stocké dans des bibliothèques
ainsi pour prendre un exemple, je veux écrire bonjour a l 'écran avec le basic:

PRINT « bonjour »


En C , j 'importe la bibliothèque stdio.c (entree sortie affichage ecran)
puis j 'ai maintenant accès à l 'affichage écran et un printf bonjour et ca marche
Pourquoi faire plein de petites bibliotheques pour le c me direz-vous?
tu n’inclus à ton programme que ce que tu as besoin.


mais ATTENTION !
la différence fondamentale entre le c et le basic est énorme.
avec le c tu inclus tes librairies (petits bouts de code) puis tu COMPILES !
La compilation est le fait de transformer ton code pour créer un fichier exécutable autonome.
C 'est a dire qu'il marche sous toute plateforme du même type.
en basic c 'est different !
 c 'est du code Interprété !
c 'est a dire que ta machine lit ton prog au debut et raisonne comme ceci

Je lis PRINT alors je dois ecrire une chose a l ecran. ensuite bonjour donc positionne le curseur pour ecrire bonjour, ensuite...
pas de compilation en basic alors ?
non pas de compilation !

mais gambas alors ? Que fait-il exactement?
c 'est plutôt l 'interprétation de ton code a travers un petit exécutable codé en c++ !

(Sans rentrer dans le détail, ce n’est plus trop vrai avec la compilation à la volée, mais nous resterons simple pour ce tuto)
pour vérifier mes dires ouvrez cette page et lisez le début ..http://gambasbasic.fr
Gambas est un environnement de développem....
C 'est pour cette raison qu'un logiciel en gambas ne pourra tourner que sur une machine qui possède ce fameux petit executable appeléé RUNTIMES !
 y a t 'il un runtime independant de l 'ide de gambas?
Oui pas obliger d 'installer gambas mais les runtimes uniquement !A ne pas confondre les runtimes de win$ qui sont tout autre chose.

La difference entre runtime win$ / gambas ?


les runtimes windaube sont plutot des librairies graphiques en plus . Pourquoi ne peut pas inclure ces Runtimes dans les éxécutables des prog en Gambas ? parce que... ce n 'est pas un exécutable tout simplement. c 'est un langage interprété qui demande a être lu par l 'exécutable gambas nommé gbr3 que vous trouverez dans usrbin/gbr3



Concept de creation de programme
gambas est composé d 'une IDE (elle même codée en gambas) qui permet de définir l 'interface graphique.
Pour programmer il faut DEFINIR le besoin..


Prenons un exemple : la gestion d 'entretien d 'une voiture,
il faut clairement expliquer le projet
et décomposer en plein de petits bouts  notre problème
sous forme d 'arborescence

exemple :
tout en haut la voiture
ensuite en dessous les pneus
dessous les pneu, changement tous les
a coté passage en pneus neige le...
ensuite on remonte
huile
en dessous vidange le
a coté contrôle le...
J 'oubliais la vidange le
en dessous
je rentre dans la FONCTION vidange et commence a décrire la FONCTION :
ouvrir bouchon
vider huile
remettre bouchon
remplir huile

Remarque : mais dans la fonction VIDANGE cela ressemble a de la programmation structurée
et oui !
on part du début et on va a la fin de la fonction en suivant une structure
la METHODOLOGIE pour definir  notre besoin
en général j 'écris les grandes lignes sur un papier en réfléchissant un peu au contenu des fonctions
ce qui fait que mon prog pourra etre repris jour après jour en ajoutant une fonction
et puis une autre
etc...
en résumé, on DEFINI le besoin
on recense les fonctions dans une arborescence

2 eme partie l 'interface graphique
Là on s 'amuse
exemple ma fonction vidange dans l 'exemple :
une textbox pour saisir la quantite d 'huile
un bouton pour faire la vidange
un timer pour décompter les gouttes d 'huiles
etc...
l 'inspiration quoi !



3eme partie : LE CODE
l 'ide gambas est tres bien faite
et il m 'est impossible de me rappeler toutes les instructions du gambas basic
alors je bosse en multi écran
a gauche l 'ide
et a droite l 'aide gambas
voila je débute le programme par la fonction que j 'ai envie
je commence par la fonction vidange
elle me plaît celle là.
par définition et si vous lisez comment écrire le code gambas dans la doc il est dit
une fonction commence par

PUBLIC SUB nomdelafonction_evenement()
et fini par
 END

donc j 'ai tous les outils pour réaliser ma fonction :

PUBLIC SUB vidange()
END

une autre fonction allez !

la fonction attentionmanquedhuile

PUBLIC SUB attentionmanquedhuile()
END

voila pour le concept POO.
Merci de votre attention.
A bientôt