Cours VB.NET

Image non disponible


précédentsommairesuivant

V-A. Introduction

Image non disponible

Nous allons étudier :

Le langage Visual Basic.Net qui est utilisé dans les procédures.

Comme nous l'avons vu, le langage Visual Basic sert à
  • Agir sur l'interface (Afficher un texte, ouvrir une fenêtre, remplir une liste, un tableau, poser une question).

    Exemple afficher 'Bonjour" dans un label:

     
    Sélectionnez
    
    Label1.Text="Bonjour"
  • Effectuer des calculs, des affectations en utilisant des variables.

    Exemple: Mettre dans la variable B la valeur de A+1

     
    Sélectionnez
    
    B=A+1
  • Faire des tests avec des structures de décision: évaluer des conditions des comparaisons et prendre des décisions.

    Exemple: SI A=1 ..

     
    Sélectionnez
    
    If A=1 Then...End If
  • Travailler en boucle pour effectuer une tache répétitive.

    Exemple faire 100 fois..

     
    Sélectionnez
    
    For I=0 To 100... Next I

Tout le travail du programmeur est là.

Dans VB.Net nous avons à notre disposition 2 sortes de choses:

V-A-1. Les Classes du framework

Le Framework (un framework est un ensemble de classes) en est à sa version 4 en VB 2010.

Les classes du Framework permettront de créer des objets de toutes sortes: objet 'chaîne de caractères', objet 'image', objet 'fichier'.... On travaille sur ses objets en utilisant leurs propriétés, leurs méthodes.

Il existe des milliers de classes: les plus utilisées sont les classes 'String' (permettant de travailler sur des chaînes de caractères), Math (permettant d'utiliser des fonctions mathématiques), Forms (permettant l'usage de formulaires, de fenêtres et donnant accès aux contrôles: boutons, cases à cocher, listes..)

Elles sont communes à tous les langages utilisant le FrameWork (VB, C#, C....)

Ces classes ont de multiples méthodes (rappel de la syntaxe: Classe.Methode).

Exemple d'utilisation de la Class TextBox (contrôle contenant du texte) et de sa méthode Text:

 
Sélectionnez

TextBox1.Text="Hello" 

'Affiche "Hello" dans le Textbox.

Parfois la Classe n'est pas chargée par défaut au démarrage de VB, il faut dans ce cas 'l'importer' en haut du module (au dessus de Public Class..). Si par exemple, je veux utiliser Sin() de la classe Math, il faut écrire en haut du module:

 
Sélectionnez

Imports System.Math
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Je peux utiliser Sin
        Console.WriteLine(Sin(1).ToString)

End Sub
End Class

Si on n'a pas importé Math, on peut quand même utiliser Sin en tapant Math.Sin()

V-A-2. Les instructions de Microsoft.VisualBasic

Vb permet d'utiliser des instructions Visual Basic; seul VB peut les utiliser et de lui seul (pas C#).

Il s'agit d'instructions, de mots clé qui ont une syntaxe similaire au basic mais qui sont du VB.Net.

Exemple:

 
Sélectionnez

A = Mid(MaString, 1, 3)

'Mid retourne une partie de la chaîne de caractères.

Il y a aussi les Classes de compatibilité VB6. Elles ne dépayseront pas ceux qui viennent des versions antérieures de VB car elles reprennent la syntaxe utilisée dans VB6 et émulent les fonctions VB6 qui ont disparu de VB.Net. Ce sont des fonctions VB6 qu'on ajoute à VB.net par souci de compatibilité, mais ce n'est pas du VB.Net. Il faut les oublier!!

L'outil d'import automatique de VB6 vers VB.Net en met beaucoup dans le code. Il faut à mon avis éviter de les utiliser car ce n'est pas vraiment du VB. Ce cours 'pur' VB.Net n'en contient pas.

Pour le moment cela peut paraître un peu compliqué, mais ne vous inquiétez pas, cela va devenir clair.

V-A-3. Saisir, Afficher

Dans l'étude du langage VB, on s'occupe du code, on ne s'occupe pas de l'interface (les fenêtres, les boutons, l'affichage du texte...), mais parfois, on a besoin, pour faire fonctionner des exemples de code, de saisir des valeurs, de les afficher:

  • Saisir une valeur, pour cela on utilise une InputBox, c'est une boite qui s'ouvre, l'utilisateur y tape un texte puis il clique sur 'ok'; on retrouve ce qu'il a tapé dans la variable Réponse.
 
Sélectionnez

Réponse= InputBox()
Image non disponible
  • Afficher des résultats, pour le moment on affichera du texte de la manière suivante:

dans une fenêtre, dans des TextBox:

 
Sélectionnez

TextBox1.Text="TextBox1" 

Image non disponible

ou un label:

 
Sélectionnez

Label1.Text="Résultat"

sur la console:

 
Sélectionnez

Console.WriteLine ("Résultat") 
Image non disponible

ou

dans une Boite de message:

 
Sélectionnez

MsgBox("Bonjour")

'ou
MessageBox.Show ("Bonjour")

Image non disponible

V-B. Les 'Algorithmes'

Ici nous allons étudiez les principes généraux de la programmation, ils sont valables pour tous les langages de programmation. Ici il faut simplement comprendre le principe de ce qui est expliqué.

V-B-1. Pour écrire un programme

Pour écrire un programme, aller du problème à résoudre à un programme exécutable, il faut passer par les phases suivantes:
  • Analyse du cahier des charges.

    Il doit être clair, exhaustif, structuré.

  • Analyse générale du problème.

    Il existe des méthodes pour professionnels (MERISE, JACKSON..), nous utiliserons plutôt l'analyse procédurale: Le problème global est découpé en sous problèmes nommés fonctions. Chaque fonction ne contient plus qu'une partie du problème. Si une fonction est encore trop complexe, on itère le processus par de nouvelles fonctions à un niveau plus bas.

    Cela s'appelle la 'Conception structurée descendante'. La 'Conception ascendante' existe aussi: en assemblant des fonctions préexistantes, on résout le problème: attention, il faut que les fonctions préexistantes soient cohérentes. (Pour le moment on ne fait pas de programmation objet)

  • Analyse détaillée.

    Chaque fonction est mise en forme, la logique de la fonction est écrite dans un pseudo langage (ou pseudo code) détaillant le fonctionnement de la fonction. Ce pseudo code est universel, il comporte des mots du langage courant ainsi que des mots relatifs aux structures de contrôle retrouvées dans tous les langages de programmation.

  • Codage.

    Traduction du pseudo code dans le langage que vous utilisez.

  • Test

    Car il faut que le programme soit valide.

Exemple simpliste:
  • Analyse du cahier des charges.

    Création d'un programme affichant les tables de multiplication, d'addition, de soustraction.

  • Analyse générale du problème.

    Découpons le programme en diverses fonctions:

    Il faut créer une fonction 'Choix de l'opération', une fonction 'Choix de la table', une fonction 'TabledeMultiplication', une fonction 'TabledAddition', une fonction 'Affiche'...

  • Analyse détaillée.

    Détaillons la fonction 'TabledeMultiplication'

    Elle devra traiter successivement (pour la table des 7 par exemple)

    1X7
    2X7
    3X7..

    Voici l'algorithme en pseudo code.

     
    Sélectionnez
    
    Début
    
        Pour i allant de 1 à 10
    
            Ecrire (i*7)
    
        Fin Pour
    
    Fin 
  • Codage.

    Traduction du pseudo code en Visual Basic, en respectant la syntaxe du VB.

     
    Sélectionnez
    
    Sub MultiplicationPar7
    
    Dim i As Integer
    
    For i=1 to 10
    
        Call Affiche(i*7)
    
    next i.
    
    End Sub
  • Test

    Ici il suffit de lancer le programme pour voir s'il marche bien..

Pour des programmes complexes, il existe d'autres méthodes.

V-B-2. Définition de l'algorithme

Un problème est traitable par informatique si :
  • on peut parfaitement définir les données (entrées) et les résultats (sorties),
  • on peut décomposer le passage de ces données vers ces résultats en une suite d'opérations élémentaires exécutables.

L'algorithme décrit le processus de résolution d'un problème permettant de décrire les étapes vers le résultat.
L'algorithme détaille, le fonctionnement de ce passage et en décrit la logique.

L'algorithme est une succession de tests, décisions et actions dans le but de décrire le comportement d'une entité (objet, programme, personne). Définition du Dicodunet.

On écrit bien 'algorithme' et non 'algorythme'.Le mot « algorithme » vient du nom du mathématicien arabe Al Khuwarizmi (latinisé au Moyen Âge en Algoritmi).

Pour représenter l'algorithme et ses opérations, on utilisait les organigrammes ( dessins avec des cases et des flêches qui ne permettaient de visualiser que des problèmes très simples); maintenant on utilise du pseudo-code (composé d'instructions généralistes).

La mise en oeuvre de l'algorithme consiste en l'ècriture de ces opérations dans un langage de programmation (le visual Basic pour nous).
On utilise l'anglicisme implémentation pour désigner cette mise en oeuvre.

Etudions cette logique valable pour tous les langages de programmation (ceux qui sont des langages impératifs):

Pour représenter n'importe quel algorithme, il faut disposer des trois possibilités suivantes:
  • la séquence qui indique que les opérations doivent être exécutées les unes après les autres.
    Image non disponible
  • le choix qui indique quelles instructions doivent être exécutées en fonction de circonstances.
    Image non disponible
  • la répétition qui indique que des instructions doivent être exécutées plusieurs fois.
    Image non disponible
Exemple d'algorithme principalement composé d'une répétition:
Sélectionnez

Pour i allant de 1 à 10
        Ecrire (i*7)
Fin Pour

Voyons cela en détails:

Le langage algorithmique et son pseudo-code ne sont pas vraiment standardisés, chacun écrit le pseudo--code à sa manière, aussi vous verrez des notations différentes dans les divers cours d'algorithme. Cela n'a pas d'importance car un programme en pseudo-code ne sera jamais exécuté sur une machine.

L'intérêt de d'étude des algorithmes est didactique: elle permet de comprendre la logique d'un programme totalement indépendamment du langage: ce qui suit est valable en C++, Delphi, Java, Visual Basic, Assembleur... Comme on est dans un cours de VisualBasic, je donnerais pour chaque notion le pseudo-code mais aussi l'équivalent en Visual Basic.

V-B-3. Structures élémentaires:

Il y a les structures de données (dans quoi sont stockées les données?) dans des:
-Constantes
-Variables
-Tableaux
-Collections
-Listes, Graphe, Arbre..
Il y a les structures de contrôles (Comment fonctionne le code?):
-Sequence
-Condition
-Boucle

V-B-3-a. Séquences

Au sein d'un programme, la structure est généralement séquentielle.

Image non disponible

On fait de la programmation impérative, on travaille sur le modèle de la machine de Turing, avec une mémoire centrale et des instructions qui modifient son état grâce à des assignations successives.

Le code est fait d'une succession de lignes (ou instructions) qui seront lues et traitées les unes après les autres.

Instruction 1

Instruction 2

Instruction 3

..

Quand le programme s'exécute, il le fait de haut en bas, Instruction 1 sera exécuté puis instruction 2 puis instruction 3...

En VB on peut mettre plusieurs instructions sur la même ligne séparées par ":"

Instruction1 : Instruction2

V-B-3-b. Variables, 'Type' de variable

Les 'Variables' contiennent les informations les données nécessaires au déroulement du programme (C'est le même sens qu'en mathématique, à la différence qu'en informatique une variable ne contient qu'une valeur).

Chaque variable a un Nom (identifiant) et un Type. Ce dernier indique la nature de l'information que l'on souhaite mettre dans la variable:

Un type indique:

-La nature de l'information (un chiffre? du texte?)

- Les valeurs que peut prendre la variable (un entier, un réel..).

- Les opérations possibles (addition, concaténation..)

Exemple: le Type 'Entier' (Integer en VB) peut contenir une valeur entière, positive ou négative, les opérations possibles sont l'addition, la soustraction, la multiplication...Ainsi si je crée une variable de type Entier, je sais que je ne pourrais y mettre qu'un entier et que je pourrais faire une addition avec; je ne pourrais pas y mettre de caractères.

Les types disponibles sont:

Type numérique:

'Entier', 'réel'.. (Integer, Single en VB) Exemple d'un entier: 123

Type alphanumérique:

'Caractère' (Char en VB) contient 1 caractère Exemple d'un caractère: 'a' (avec des guillemets)

'Chaîne de caractères',(String en VB), contient plusieurs caractères. Exemple: 'toto' (avec des guillemets)

Booléen (Boolean en VB) ne peut contenir que 'Vrai' ou 'Faux'

Objet. (Object en VB)

Monétaire (Décimal en VB)

Date (Date en VB)

Matrice, nombre imaginaire (depuis VB 2010)

A partir des types précédents on peut créer des types complexes (ou structurés):

-Les Tableaux (Array) qui contiennent plusieurs éléments.

-Les Collections qui contiennent plusieurs éléments aussi.

Exemple: la variable nommée 'Total' contient un réel dans un programme de comptabilité.

on remarque qu'il ne faut pas confondre 1 qui est une valeur numérique( sans guillemets) et "1" qui est le caractère '1' (avec des guillemets).

Utilisation des variables:

Les variables numériques serviront à faire des calculs:

Les variables alphanumériques (String et Char du VB) serviront entre autres à manipuler et afficher du texte:

Comment afficher les résultats de calcul?

On apprendra à transformer des variables numériques en variables alphanumériques.

Pour utiliser une variable, il faut qu'elle existe, il faut donc la créer, on dit il faut la déclarer:

Dans un algorithme: 'Variable A en Numérique' 'crée une variable nommée A et de Type Numérique.

En VB: 'Dim A As Integer' 'crée une variable nommée A et de Type Integer.

On peut aussi initialiser une variable c'est à dire définir sa valeur initiale.

Pour cela on peut utiliser un littéral: c'est une donnée utilisée directement.

X <- 2 veut dire: donner à la variable X la valeur 2 ( 2 est une littéral).

V-B-3-c. Constantes

Comme une variable, une 'Constante' a un Nom (identifiant) et un Type. Elle contient une valeur: un nombre, une chaîne de caractères..

Son contenu ne peut pas être modifié.

Exemple :'Constante A en Numérique =12'

En VB: 'Const A As Integer =12'

On la déclare et on l'initialise en même temps.

Ensuite on ne peut pas modifier sa valeur, on ne peut que la lire. Les constantes sont utilisées dans les programmes pour conserver des valeurs fixes qui n'ont pas à changer. Si j'ai un programme d'astronomie, je créerais une constante contenant la vitesse de la lumière pour faire mes calculs (elle a peu de chance de changer!!).

V-B-3-d. Affectation (ou Assignation)

C'est une instruction consistant à donner une valeur à une variable.

En langage algorithmique on l'indique par '<-'

X <- 2 veut dire: donner à la valeur X la valeur 2 ( 2 est une littéral)

Z <- X veut dire: donner à la variable Z la valeur de la variable X .

Z <- X+1 veut dire: donner à la variable Z la valeur de la variable X à laquelle on ajoute 1 (Z prendra la valeur 2+1 =3).

Cela revient à évaluer l'expression de droite et à en mettre la valeur dans la variable de gauche.

En VB le signe d'affectation est '=' on écrit donc:

 
Sélectionnez

	Z=X+1 

Attention le signe '=' utilisé en VB est ambigue et n'a donc pas le même sens qu'en mathématiques.

Exemple Visual Basic: A=B

Image non disponible

Attention ce n'est pas une égalité mais une affectation.

L'affectation ne marche que si le type de variable est le même:

Variable A en Numérique

Variable B en Numérique

B<-12

A<-B 'fonctionne car B contient 12, on met 12 dans A

Variable A en Numérique

Variable B en Alphanumérique

B<-'toto'

A<-B 'ne fonctionne pas car on tente de mettre le contenu de B qui est alphanumérique dans une variable numérique.

L'affectation sert à effectuer des calculs:

Variable A en Numérique

A<-3+4-2 'L'expression à droite est évaluée et son résultat est affecté à la variable A.

Ici les + - sont des opérateurs; il y en a d'autres: * (multiplier) / (diviser)....

V-B-3-e. Booléens

On a parfois besoin de savoir si une assertion est vraie ou Fausse.(True ou False)

Pour stocker une information de ce type, on utilise une variable de type booléen. Une variable de ce type ne peut contenir que True ou False.

Le terme booléen vient de "l'algèbre de Boole", cet algèbre ne travaille que sur les valeurs 1 ou 0 (True ou False)

Soit B une variable booléenne:

On peut écrire B<-True (B=True en VB)

On peut aussi tester cette variable:

Si B=False alors (If B=False Then.. en VB)

L'expression après 'Si' est évaluée, si elle est vraie 'alors' se produit.

Autre exemple:

Si C=2 alors.. (If C=2 Then ..en VB)

L'expression C=2 est évaluée, si C est effectivement égal à 2, C=2 est évalué et prend la valeur True; dans ce cas le programme se poursuit après Then.

si C est différent de 2, C=2 est évalué et prend la valeur False; dans ce cas le programme ne se poursuit pas après Then.

V-B-3-f. Choix : Si..Alors

Le programme doit pouvoir choisir parmi deux ou plusieurs possibilités en fonction d'une condition :

Image non disponible
 
Sélectionnez

Si Condition Alors

      Action 1

Sinon

      Action 2

Fin Si

Si Condition est vraie Action 1 est effectuée, sinon Action 2 est effectué.

Parfois il n'y a pas de seconde branche :

 
Sélectionnez

Si Condition Alors

      Action 1

Fin Si

ou sur une seule ligne:

 
Sélectionnez

	Si Condition Alors Action 1

Il peut y avoir plusieurs conditions imbriquées :

 
Sélectionnez

Si Condition 1 Alors
    Si Condition 2 Alors

            Action 1

    Sinon

            Action 2

    Fin Si

Sinon

      Action 3

Fin Si

Noter bien le retrait des lignes de la seconde condition afin de bien visualiser la logique du programme :

Action 2 est effectuée si la Condition 1 est remplie et la Condition 2 n'est pas remplie.

En VB cela correspond à l'instruction IF THEN

 
Sélectionnez

If Condition 1 Then

      Action 1

Else

      Action 2

End If

Remarque sur les conditions

Une condition contient 2 valeurs et un opérateur:

Si C>2 Alors est correcte.

Si B=3 Alors est correcte.

Si 2<B<7 Alors est incorrecte car il y a 2 opérateurs, il faut dans ce cas utiliser plusieurs conditions et des opérateurs logiques:

Si B>2 Et B<7 Alors est correct (If B>2 And B<7 Then en Visual Basic)

La condition est évaluée:

Exemple : Soit l'expression Si C>2 Alors , elle sera évaluée; si C contient 3, C>2 est vérifié donc Vrai.

Exemple: Trouver le plus grand nombre entre x et y et le mettre dans max

 
Sélectionnez

Variable x en Numerique

Variable y en Numerique

Variable max en Numerique

Si x>y Alors

    max<-x

Sinon

    Max<-y

Fin Si

En VB

 
Sélectionnez

Dim x As Integer

Dim y As Integer

DIm max As Integer

if x>y Then

    max=x

Else

    max=y

End if

V-B-3-g. Choix: Décider entre

Il est parfois nécessaire d'effectuer un choix parmi plusieurs solutions :

Image non disponible
 
Sélectionnez

Décider Entre
      Quand Condition 1 Alors

            Action 1

      FinQuand
 

      Quand Condition 2 Alors

            Action 2

      FinQuand

      ..

      ..

      Autrement

            Action 4

      FinAutrement

FinDécider

Si la condition 1 est remplie Action 1 est effectuée puis le programme saute après FinDécider.

Si la condition 1 n'est pas remplie, on teste la condition 2..

Si aucune condition n'est remplie on saute à Autrement, on effectue Action 4.

On pourrait aussi parler de sélection :

 
Sélectionnez

Sélectionner.

      Le cas : condition 1

            Action 1

      Le cas : condition 2

            Action 2

      ..

      Les autres cas

FinSélectionner

En VB cela correspond à

 
Sélectionnez

Select Case Valeur

      Case condition 1

            Action 1

      Case condition 2

            Action 2

      ..

      Case Else

            Action 4

End Select

Si Valeur=Condition 1 Action 1 est effectuée,si Valeur=Condition 2 Action 2 est effectuée...

V-B-3-h. Répétitions : Pour...Répéter

Permet de répéter une séquence un nombre de fois déterminé :

Image non disponible

Le cas le plus classique est :

 
Sélectionnez

Pour I variant de 0 à N Répéter

      Action

FinRépéter

I prend la valeur 0, 'Action' est effectuée,

puis I prend la valeur 1, Action est effectuée,

puis I prend la valeur 2..

cela jusqu'à N

La boucle tourne N+1 fois (car ici on commence à 0 )

Cela se nomme une itération.

Intérêts?

Au lieu de faire

Afficher (1*7)

Afficher (2*7)

Afficher (3*7)

Afficher (4*7)

...

on remarque qu'un élément prend successivement la valeur 1, 2, 3, ..

Une boucle peut faire l'itération:

 
Sélectionnez

Pour i allant de 1 à 10 Répéter

    Affiche (i*7)

Fin répéter

La variable dite 'de boucle' prend bien les valeurs 1 puis 2 puis 3.. ; elle est utilisée dans le corps de la boucle.

Une instruction Sortir permet de sortir prématurément de la boucle.

En VB

 
Sélectionnez

For i=0 To N

      ..

Next i

L'instruction Exit For permet de sortir prématurément de la boucle.

On peut aussi boucler en parcourant tous les éléments d'une collection.

(Une collection est une liste d'objets, liste de taille variable en fonction de ce qu'on ajoute ou enlève.)

 
Sélectionnez

Pour Chaque élément de la liste

      Action

Fin Pour

En VB :

 
Sélectionnez

For Each élément In list

 

Next

V-B-3-i. Répétitions : Tant que

Permet de faire une boucle sans connaître le nombre d'itérations à l'avance.

Image non disponible
 
Sélectionnez

Tant Que Condition

      Action

Fin Tant Que

L'action qui est dans la boucle doit modifier la condition afin qu'à un moment 'Tant que' ne soit pas vérifié et que l'on sorte de la boucle. Sinon la boucle tourne sans fin.

Pour plus cadrer avec la réalité :

 
Sélectionnez

Faire tant que condition

      Action

Boucler

En VB :

 
Sélectionnez

Do while Condition

      Action

Loop

Il existe une boucle équivalente :

 
Sélectionnez

Répéter

      Action

Jusqu'à Condition

 

En VB :

Do

      Action

Loop Until Condition

Une instruction Exit Do permet de sortir prématurément de la boucle.

V-B-3-j. Logique : Et, Ou, Non

Une condition contient 2 valeurs et un opérateur:

Si C>2 Alors.. est correcte.

Si B=3 Alors est correcte.

Si 2<B<7 Alors est incorrecte car il y a 2 opérateurs, il faut dans ce cas utiliser plusieurs conditions et des opérateurs logiques:

Si B>2 Et B<7 Alors est correct (If B>2 And B<7 Then en Visual Basic)

La condition est évaluée:

Exemple : Soit l'expression Si C>2 Alors , elle sera évaluée; si C contient 3, C>2 est vérifié donc Vrai.

ET:

On a vu Si B>2 Et B<7 Alors

Il existe aussi:

OU:

Si B>2 Ou B<7 Alors

Et

NON:

Si NON(B>2) Alors est équivalent à Si B<=2 Alors

En VB on utilise les termes AND OR NOT.

V-B-3-k. Les Sauts

Un saut dans le code correspond à 'Aller à'.

Cela permet de 'sauter' vers un label (une étiquette= un endroit du code).

Exemple:

 
Sélectionnez

Variable A en Numérique

Variable B en Numérique

Variable C en Numérique

B<-12

A<-B  

Aller à Poursuivre

C=11

Étiquette Poursuivre

A<-A+1

Le programme saute de 'Aller à Poursuivre' à 'Étiquette Poursuivre', il n'exécute pas C=11.

En VB on utilise GoTo pour faire le saut, pour créer une étiquette, on lui donne un nom et on ajoute ':'..

 
Sélectionnez

MonEtiquette:

GoTo monetiquette

On verra que les sauts ne sont pratiquement plus utilisés.

V-B-3-l. Programmation structurée

Avant on écrivait:

 
Sélectionnez

Variable A en Numérique
Variable B en Numérique
Variable C en Numérique

B<-12
A<-B  

Si A=B Aller à Poursuivre1
  C<-1
Étiquette Poursuivre1

Si A<>B Aller à Poursuivre2

C<-2

Étiquette Poursuivre2

On faisait des sauts dans tous les sens!! Code illisible, non structuré.

Maintenant on structure et on n'utilise pas de 'Aller à'.

 
Sélectionnez

Variable A en Numérique
Variable B en Numérique
Variable C en Numérique

B<-12
A<-B  

Si A=B Alors
    C<-1
Sinon
    C<-2
Fin Si

V-B-3-m. 'Sous-programme' ou 'procédure'

On a déjà vu cette notion.

Quand on appelle une procédure, le logiciel 'saute' à la procédure, il effectue celle-ci puis revient effectuer ce qui suit l'appel.

Dans un algorithme, une procédure commence par le mot Proc et se termine par End Proc.

Image non disponible

Le programme effectuera les instructions 1, 2, 3, 10, 11, 4, 5.

Une opération complexe peut être découpée en plusieurs procédures ou sous-programmes plus petits et plus simples qui seront appelés. Chaque procédure résout un problème.

Et VB les sous-programmes (ou procédures) sont des Sub ou des Function. Pour appeler une procédure on utilise Call NomProcedure() ou NomProcedure()

On peut fournir aux procédures des paramètres, ce sont des variables qui seront transmises à la procédure.

Exemple:

Création d'une Procédure 'MaProcédure' recevant 2 paramètres:

 
Sélectionnez

Sub MaProcédure(paramètre1, paramètre2)

..

End Sub

Exemple d'appel de la procédure 'Maprocédure' en envoyant 2 paramètres:

Call MaProcédure(premierparamètre, secondparamètre)

Exemple : si j'écris Call MaProcédure(2,3)

dans la procédure MaProcédure paramètre1=2 et paramètre2=3.

Il est nécessaire de définir le type des paramètres:

Sub MaProcédure(paramètre1 As Integer, paramètre2 As Integer) indique que la procédure attend 2 entiers.

Il y a 2 manières d'envoyer des paramètres :

- Par valeur : (By Val)c'est la valeur, le contenu de la variable qui est envoyé.

- Par référence :(By Ref) c'est l'adresse (le lieu physique où se trouve la variable) qui est envoyée. Si la Sub modifie la variable, cette modification sera visible dans la procédure appelante après le retour.

Parfois on a besoin que la procédure appelée retourne une valeur dans ce cas il faut créer une fonction:

 
Sélectionnez

Function MaFonction()  As Integer    'MaFonction qui retourne un entier

..

    Return Valeur

End Function

Pour appeler la fonction:

ValeurRetournée=MaFonction()

Donc ValeurRetournée est aussi un entier

Exemple de fonction: créer une fonction qui retourne le plus petit nombre:

 
Sélectionnez

Fonction Minimum (x en Numerique, y en Numérique) en numérique
Si x<y Alors

    Retourner x

Sinon

    Retourner y

Fin Si

Fin Fonction

Pour l'utiliser:

 
Sélectionnez

Variable Min en Numerique

Min<-Minimum (5,7) 'Appelle la fonction en donnant les 2 paramètres 5 et 7.

Min contient maintenant 5

En Vb

 
Sélectionnez

Function Minimum(x As Integer, y As Integer) As Integer

    If x<y Then

        Return x

    Else

        Return y

    End If

End Function

Pour l'utiliser:

 
Sélectionnez

Dim Min As Integer

Min= Minimum (5,7)

La fonction résout un problème et plus précisément à partir de données, calcule et fournit un résultat.

V-B-3-n. Tableaux

Un tableau de variables permet de stocker plusieurs variables de même type sous un même nom de variable, chaque élément étant repéré par un index ou indice.

C'est une suite finie d'éléments.

Soit un tableau A de 4 éléments:

3
12
4
0

Pour accéder à un élément il faut utiliser l'indice de cet élément.

L'élément d'index 0 se nomme A[0] et contient la valeur 3.

On remarque que le premier élément est l'élément d'index 0 (ZERO).

L'élément d'index 1 se nomme A[1] et contient la valeur 12.

Quand on crée un tableau, il a un nombre d'éléments bien défini: 4 dans notre exemple d'index 0 à 3.

Pour donner une valeur à un des éléments, on affecte la valeur à l'élément.

 
Sélectionnez

A[2] <- 4

Pour lire une valeur dans un tableau et l'affecter à une variable x:

 
Sélectionnez

x <- A[2]

Traduction en VB

 
Sélectionnez

Dim  A(4) As Integer 'on déclare le tableau
A(2)=4

x = A(2)

Pour parcourir tous les éléments d'un tableau on utilise une boucle:

Exemple: afficher tous les éléments du tableau tab qui contient n éléments.

 
Sélectionnez

début
          Pour i allant de 0 à n-1 Répéter
              écrire(tab[i])
          Fin Répéter
fin

En VB:

 
Sélectionnez

       For i=0 to n-1

            Affiche ( tab(i))    'routine d'affichage

       Next i 

Il existe des tableaux multidimensionnels avec plusieurs index:

Voyons les index de chaque élément:

B(0,0) B(0,1) B(0,2)
B(1,0) B(1,1) B(1,2)
B(2,0) B(2,1) B(2,2)

B[1,0] désigne l'élément de la seconde ligne, première colonne.

Voyons par exemple, le contenu de chaque élément:

3 12 0
18 4 5
12 2 8

Ici B[1,0] =18

En VB on utilise des parenthèses: B(1,0) =18

V-B-3-o. Collection

Une collection permet de stocker plusieurs variables ou objets, chaque élément étant repéré par un index ou indice. Mais la collection n'a pas de nombre d'éléments précis au départ, elle ne contient que les éléments qu'on y ajoute.

Soit la collection Col, au départ elle est vide.

J'ajoute des éléments (ou items) à cette collection.

Col.Ajouter ("Toto")

Voici la collection:

Toto

La collection a maintenant 1 élément.

 
Sélectionnez

Col.Ajouter("Lulu")

Col.Ajouter("Titi")
Toto
Lulu
Titi

La collection a 3 éléments maintenant.

Col.Retirer(2) enlève l'élément numéro 2.

Toto
Titi

La collection n'a plus que 2 éléments maintenant.

On voit que le nombre d'éléments n'est pas connu à l'avance, il varie en fonction des éléments ajoutés (ou retirés).

Un élément est repéré par un indice.

En VB

 
Sélectionnez

Col.Add    'Ajoute un élément

Col.Remove 'Enlève une élément

Il existe des collections avec des clés permettant de retrouver la valeur d'un élément rapidement.

V-B-3-p. Pile et Queue

Une Pile (ou stack) est une collection de type LIFO (Last In, First Out). Dernier entré, premier sortie.

Ce type de stack (pile) est très utilisé en interne par les programmes informatiques: on stocke dans une stack les adresses de retour des procédures appelées, au retour on récupère l'adresse du dessus.

Push insère un objet en haut de la pile.

Pop enlève et retourne un objet en haut de la pile.

Image non disponible

On peut utiliser une pile dans un programme pour gérer le déplacement de l'utilisateur dans un arbre, les éléments en cours sont stockés par Push, pour remonter en chemin inverse, on Pop.

Une 'Queue' est une collection de type FIFO (First In, First Out). Premier arrivé premier servi.

C'est la queue devant un cinéma, le premier arrivé, prend son billet le premier.

Les éléments stockés dans Queue sont insérés à une extrémité; les éléments extrait le sont à l'autre extremité.

Image non disponible

Le nombre d'élément de la queue est géré automatiquement.

Généralement on a les possibilités suivantes:

DeQueue supprime et retourne l'objet de début de liste

EnQueue ajoute un objet en fin de liste

Peek retourne l'objet de début sans le supprimer

V-B-3-q. Liste Chaînée

Une liste chaînée est une liste d'éléments non classée. Dans chaque enregistrement il y a, outre le contenu de l'enregistrement, la localisation, l'adresse, l'index de l'enregistrement précédent et de l'enregistrement suivant.

Image non disponible

Ainsi on peut parcourir la liste en allant d'enregistrement en enregistrement. il existe des algorithmes pour ajouter ou supprimer un enregistrement. La liste peut être ouverte ou fermée (le dernier enregistrement bouclant sur le premier).

V-B-3-r. Notion de Clé

Quand on classe une série importante de données, on peut utiliser la notion de clé/Valeur (Key/Value).

Ici on utilise comme clé le numéro du département et comme valeur, le nom du département.

Image non disponible

Si on a la clé, on peut retrouver la valeur correspondante.

Autre exemple: La clé peut être le nom, prénom.

V-B-3-s. Notion de Hachage

Une fonction de hachage est une fonction qui fait subir une succession de traitements à une donnée fournie en entrée pour en produire une empreinte servant à identifier la donnée initiale.

Donnée d'entrée=> Fonction de hachage => Empreinte.

Le résultat d'une fonction de hachage peut être appelé selon le contexte empreinte, somme de contrôle (dans le cas de la CRC), résumé, condensé, condensat ou encore empreinte cryptographique (dans le cadre de la cryptographique). On l'appelait aussi autrefois aussi signature.

Les fonctions de hachage sont utiles en cryptographie où elles sont utilisées pour chiffrer une donnée initiale.

Mot de passe: "GftUi6h77"=> Fonction de hachage => Empreinte: "4587213399545684246847"

C'est l'empreinte qui va être enregistrée. Quant l'utilisateur rentre le mot de passe, on le 'hache" et on compare l'empreinte du mot de passe tapé par l'utilisateur avec l'empreinte enregistrée pour voir si le mot tapé est bon. Ainsi a aucun moment le mot de passe est en clair.

Ces fonctions de hachage sont aussi très utilisées pour accéder rapidement à une donnée contenue dans un grand nombre de données.

Ceci grâce aux tables de hachage (ou hash tables en anglais).

Un exemple classique et simpliste de fonction de hachage est la fonction modulo n : Si on dispose d'un grand nombre de données, à mettre dans un tableau de n cases, on pourra ranger l'élément numéro i dans la case i modulo n. Ainsi, pour aller chercher notre donnée, nous n'avons plus besoin de parcourir tous les éléments jusqu'à trouver l'élément i : Il suffit de parcourir les éléments contenus dans la case i modulo n. Si les données initiales étaient réparties uniformément, le temps de recherche en moyenne est divisé par n. En pratique, on utilise des fonctions de hachage bien plus complexes.

Le hachage est un nombre qui permet la localisation des éléments dans une table.

Exemple:

Nous avons une série de noms et adresses, nous voulons rapidement trouver l'adresse correspondant à un nom sans avoir à faire une boucle qui compare le nom cherché avec chaque élément du tableau pour le trouver.

Pour chaque nom la fonction de hachage, va créer un numéro (empreinte).

Image non disponible

On crée des enregistrements indexés par le dit numéro (empreinte), chaque enregistrement contenant l'adresse.

Image non disponible

Si maintenant on cherche un nom, on calcul son empreinte, ce qui nous donne l'index de l'enregistrement que l'on trouve rapidement.

Image non disponible

Si la fonction de hachage est uniforme, cela veut dire que pour des entrées différentes, il n'y a jamais la même empreinte. Ce qui est la plupart du temps impossible.

Deux noms peuvent donc donner la même empreinte parfois (on parle de collision). Dans ce cas, on range les enregistrements ayant la même empreinte les uns à la suite des autres (sous forme de liste chaînée). Si le premier enregistrement n'est pas le bon, on regarde le suivant.

Image non disponible

V-B-3-t. Arbre

Structure de données. Désigne une forme de diagramme qui modélise une hiérarchie.

Image non disponible

Un arbre est constitué d'un ensemble de noeuds et de branches reliant les noeuds. On peut parler de feuilles pour les éléments, les objets qui sont en bout de branches.
Le premier noeud d'un arbre (celui sans branche entrante) se nomme la racine.
Un arbre est unidirectionnel et sans boucle.

Un exemple de données en 'arbre': sur un disque dur, les répertoires, sous-répertoires et fichiers ont une structure en arbre.

V-B-3-u. Erreur d'exécution : Notion de 'Sécurisation' du code

Erreur d'exécution:

Si le code exécute Z=X/Y avec Y=0 (pour des entiers) , comme la division par zéro est impossible, le logiciel s'arrète.

Il s'agit d'une 'Erreur d'exécution' (dépassement de capacité).

En VB on dit qu' une exception est levée.

Il appartient au programmeur, une fois l'algorithme écrit, de le sécuriser: Des instructions doivent protéger certaines parties du code afin d'éviter d'effectuer des opérations incohérentes.

 
Sélectionnez

Si Y <> 0 Alors
    Z= X/Y
Fin Si

Si vous testez cela en VB, bien utiliser des Integers; avec des singles le comportement est différent.

V-B-3-v. Récursivité

Une procédure est récursive si elle peut s'appeler elle même.

 
Sélectionnez


Sub Calcul()

'..

    Calcul()

'..

End Sub

Pourquoi utiliser la récursivité?
Une procédure récursive découpe le problème en morceaux plus petits et s'appelle elle-même pour résoudre chacun des plus petits morceaux, elle résout une petite partie du problème elle même.

V-B-3-w. Flag et variables d'état

Un Flag (ou drapeau) est une variable utilisée pour enregistrer un état, la valeur de cet état servant à déclencher ou non des actions. C'est une manière de retenir qu'un évènement s'est produit.

Si le drapeau est abaissé, les voitures roulent..

Exemple: Utiliser un Flag pour sortir d'une boucle:

On utilise flagSortir.

 
Sélectionnez

flagSortir=Faux 

Tant que  flagSortir =Faux

      Si on doit sortir de la boucle, on met la valeur de flagSortir à Vrai

Boucler

En VB:

 
Sélectionnez

flagSortir=Faux 

Do while flagSortir =Vrai

     ' Si on doit sortir de la boucle, on met la valeur de flagSortir à Vrai

Loop

Tant que flagSortir =Faux la boucle tourne.

On peut généraliser cette notion en parlant de variable d'état.

Une variable d'état sert à décrire l'état du programme.

Exemple:

fileIsOpen est une variable indiquant si un fichier est ouvert ou fermé.

V-B-3-x. Compilation, interprétation

Ici on n'est pas à proprement parlé dans l'algorithmie.

Le texte que vous écrivez pour construire une programme est le code source.

Tout langage doit obligatoirement être traduit en langage machine (le langage du processeur) pour que ce programme soit exécutable.

Il existe deux stratégies de traduction:.

-le programme traduit les instructions au fur et à mesure qu'elles se présentent (à la volée)au cours de l'exécution. Cela s'appelle l'interprétation.

-le programme commence par traduire l'ensemble du programme (programme source) en langage machine, constituant ainsi un deuxième programme (un deuxième fichier) distinct physiquement et logiquement du premier, c'est le fichier exécutable. Cela s'appelle la compilation. Ensuite, pour exécuter le programme, on exécute l'exécutable, ce second programme.

Les premiers langages Basic étaient interprétés. Un langage interprété était plus maniable: on exécutait directement son code au fur et à mesure qu'on le tapait, sans passer à chaque fois par l'étape supplémentaire de la compilation. Un programme compilé s'exécute beaucoup plus rapidement qu'un programme interprété : le gain est couramment d'un facteur 10, voire 20 ou plus

Le VB.Net est un langage compilé.

Le code source est dans des fichiers '.vb' et l'exécutable est un '.exe'. On verra que dans l'environnement de développement vb présente les avantages d'un langage interprété (exécution pas à pas, modification du source en cours de débogage...) On peut aussi créer une exécutable autonome.

Les choses sont plus complexes car en vb , entre le source et l'exécutable il y a un code 'intermédiaire'.

V-B-4. Grandes stratégies.

Pour trouver des réponses à un problème, on va choisir une grande statégie et utiliser des structures élémentaires pour l'exécuter.

Algorithme direct ou explicite:
Ici l'agorithme utilise la seule voie possible, évidente mathématiquement:
Exemple: pour calculer les racines d'une equation du second degré, l'algorithme calcule le déterminant puis en fonction de sa valeur (plusieurs cas), il calcule les racines.
Il est possible de découper un problème complexe en plusieurs problèmes plus simples.

Algorithme glouton:
Un algorithme glouton suit le principe de faire, étape par étape, un choix optimum local, dans l'espoir d'obtenir un résultat optimum global.
Par exemple, dans le problème du rendu de monnaie (rendre une somme avec le moins possible de pièces), l'algorithme consiste à répéter le choix de la pièce de plus grande valeur qui ne dépasse pas la somme restante; c'est un algorithme glouton.
Nous faisons beaucoup d'algorithme glouton!!

Diviser pour régner:
Diviser pour régner est une technique algorithmique consistant à diviser un problème de grande taille en plusieurs sous-problèmes analogues.
Les algorithmes Diviser pour régner appliquent deux stratégies principales. La première est la récursivité sur les données: on sépare les données en deux parties, puis on résout les sous-problèmes (par la même fonction), pour enfin combiner les résultats. La seconde stratégie, la récursivité sur le résultat, consiste elle à effectuer un pré-traitement pour bien découper les données, puis à résoudre les sous-problèmes, pour que les sous-résultats se combinent d'eux-mêmes à la fin.
Exemple: les algorithmes de tri (trier une tableau par exemple).

Recherche exhaustive:
Cette méthode utilisant l'énorme puissance de calcul des ordinateurs consiste à regarder tous les cas possibles.
Exemple: Rechercher une clé pour pénétrer dans un site (c'est mal!!): on teste à l'aide d'une boucle toutes les clés possibles; on parle de 'force brute'.

Algorithme aléatoire, approche successives:
Certains algorithmes utilisent des recherches aléatoires, ou par approches successives donnant de meilleurs résultats que des recherche directes ou explicites. Exemple : ceux dits de Monte-Carlo et de Las Vegas.

Les heuristiques.
Pour certains problèmes, les algorithmes ont une complexité beaucoup trop grande pour obtenir un résultat en temps raisonnable. On recherche donc une solution la plus proche possible d'une solution optimale en procédant par essais successifs. Certains choix stratégiques doivent être faits. Ces choix, généralement très dépendants du problème traité, constituent ce qu'on appelle une heuristique. Les programmes de jeu d'échecs, de jeu de go fonctionnent ainsi.

V-B-5. Quelques algorithmes

Les algorithmes les plus étudiés sont:
-Algorithmes simples:
...Inversion de variables
...Recherche d'une valeur dans un tableau
...Tri
...Problème du voyageur de commerce
-Algorithmes utilisant la récursivité
-Algorithmes mathématiques
-Algorithmes informatiques complexes:
...Compression
...Cryptage
...Graphisme
....

V-B-5-a. Recherche dans un tableau

Soit un tableau A() de 4 éléments:

3
12
4
0

Je veux parcourir le tableau pour savoir s'il contient le chiffre '4'.

Il faut faire une itération afin de balayer le tableau: la variable dite de boucle ( I ) va prendre successivement les valeurs: 0 ,1 ,2 ,3. (Attention: dans un tableau de 4 éléments, l'index des éléments est 0,1,2,3)

 
Sélectionnez

Pour I variant de 0 à 3 Répéter

      ..

FinRépéter

Dans la boucle il faut tester si la valeur de l'élément du tableau est bien la valeur cherchée.

 
Sélectionnez

Pour I variant de 0 à 3 Répéter

      Si A(I)= 4 Alors..

FinRépéter

Si on a trouvé la bonne valeur, on met un flag (drapeau) à Vrai.

 
Sélectionnez

flagTrouvé<-Faux

Pour I variant de 0 à 3 Répéter

      Si A(I)= 4 Alors flagTrouvé<-Vrai

FinRépéter

Ainsi si après la boucle flagTrouvé= Vrai, cela veut dire que le chiffre 4 est dans le tableau.

En VB

 
Sélectionnez

flagTrouve=False

For I=0 To 4

    If A(I)=4 Then flagTrouve=True

Next I

V-B-5-b. Tri de tableau

Pour trier un tableau de chaînes de caractères (des prénoms par exemple), il faut comparer 2 chaînes contiguës, si la première est supérieure (c'est à dire après l'autre sur le plan alphabétique: "Bruno" est supérieur à "Alice"))on inverse les 2 chaînes, sinon on n'inverse pas. Puis on recommence sur 2 autres chaînes en balayant le tableau jusqu'à ce qu'il soit trié.

Tableau non trié:

Bruno
Alice
Agathe

On compare les lignes 1 et 2, on inverse

Alice
Bruno
Agathe

On compare les lignes 2 et 3, on inverse

Alice
Agathe
Bruno

Le tableau n'étant pas encore trié, on recommence:

On compare les lignes 1 et 2, on inverse

Alice
Agathe
Bruno

On compare les lignes 2 et 3, on n'inverse pas.

Le tableau est trié.

Tout l'art des routines de tri est de faire le moins de comparaisons possibles pour trier le plus vite possible.

On a utilisé ici le Bubble Sort (ou tri à bulle); on le nomme ainsi car l'élément plus grand remonte progressivement au fur et à mesure jusqu'au début du tableau comme une bulle. ("Agathe" est passé de la troisième à la seconde puis à la première position).

Une boucle externe allant de 1 à la fin du tableau balaye le tableau N fois ( La boucle varie de 0 à N-1), une seconde boucle interne balaye aussi le tableau et compare 2 éléments contigus (les éléments d'index j et j+1)et les inverse si nécessaire. La boucle interne fait remonter 1 élément vers le début du tableau, la boucle externe le fait N fois pour remonter tous les éléments.

 
Sélectionnez

Pour i allant de 0 à N-1

    Pour j allant de 0 à N-1

        Si T(j)>T(j+1) Alors 

            Temp<-T(j) 

            T(j)<-T(j+1)

            T(j+1)<-Temp

        Fin Si

    Fin Pour

 Fin Pour

En Visual Basic:

 
Sélectionnez

Dim i, j , N  As Integer    'Variable de boucle i, j ; N= nombre d'éléments-1

Dim Temp  As String

N=4  'tableau de 5 éléments.

Dim T(N) As String  'élément de 0 à 4

For i=0 To N-1

    For j=0 To N-1

        If T(j)>T(j+1) then 

            Temp=T(j): T(j)=T(j+1):T(j+1)=Temp

        End if

    Next j

 Next i

Remarque: pour inverser le contenu de 2 variables, on doit écrire

Temp=T(j): T(j)=T(j+1): T(j+1)=Temp (L'instruction qui faisait cela en VB6 et qui se nommait Swap n'existe plus)

Cet algorithme de tri peut être optimisé, on verra cela plus loin.

Les algorithmes s'occupent aussi de décrire la manière de rechercher des données dans des tableaux, de compresser des données... Nous verrons cela au fur et à mesure.

V-B-6. Lexique anglais=>Français

If = Si.

Then= Alors

Step=Pas

Do (To)= faire

While= tant que

Until= Jusqu'à ce que.

Loop= boucle

V-C. L'affectation

Image non disponible

C'est l'instruction la plus utilisée en programmation.

On peut aussi utiliser le terme 'Assignation' à la place de l'affectation.

'Variable = Expression' est une affectation, c'est le signe '=' qui indique l'affectation.

L'affectation transfère le résultat de l'expression située à droite du signe 'égal' dans la variable (ou la propriété) à gauche du signe égal.

Exemple:

A=B est une affectation (ou assignation).

A=B affecte la valeur de la variable B à la variable A, la valeur de B est mise dans A.

Image non disponible

Si

A=0

B=12

A=B entraîne que A=12 (B n'est pas modifié).

Si nécessaire l'expression à droite du signe = est évaluée, calculée avant d'être affectée à la variable de gauche.

Si

A=0

B=12

A=B+2 entraîne que A=14

L'affectation permet donc de faire des calculs :

Si nombrdHeure=100 et tauxHoraire=8

paye= nombredHeure * tauxhoraire

paye prend la valeur 800 (notez que '*' , l'étoile veut dire : multiplication.)

Attention dans le cas de l'affectation "=" ne veut donc pas dire 'égal'.

A=A+1 est possible

Si A=1

A=A+1 entraîne que A=2

On verra qu'il existe des variables numériques ('Integer' 'Single') et alphanumériques (chaîne de caractères ou 'String'), l'affectation peut être utilisée sur tous les types de variables.

Le second membre de l'affectation peut contenir des constantes, des variables, des calculs dans le cas de variables numériques.

A=B+2+C+D

On ne peut pas affecter une variable d'un type à une variable d'un autre type:

si A est numérique et B est alphanumérique (chaîne de caractères) A=B n'est pas accepté.

Ecriture compacte:

A=A+1 peut s'écrire de manière plus compacte : A += 1

A=A*2 peut s'écrire de manière plus compacte : A *= 2

A=A&"Lulu" pour une variable chaîne de caractère peut s'écrire de manière plus compacte : A &= "Lulu"

L'affection marche pour les objets, leurs propriétés..

Bouton1.BackColor= Bouton2.BackColor

Signifie que l'on donne au Bouton1 la même couleur de fond que celle du bouton2: on affecte la valeur BackColor du Bouton2 au Bouton1.

Attention le signe '=' signifie par contre 'égal' quand il s'agit d'évaluer une condition, par exemple dans une instruction If Then (Si Alors):

If A=B then 'signifie: Si A égal B alors...

Permutation de variables:

C'est un petit exercice:

J'ai 2 variables A et B contenant chacune une valeur.

Je voudrais mettre dans A ce qui est dans B et dans B ce qui est dans A.

Si je fais

A=B

B=A

Les 2 variables prennent la valeur de B!!

Comment faire pour permuter?

Et bien il faut utiliser une variable intermédiaire C qui servira temporairement à conserver le contenu de la variable A:

C=A

A=B

B=C

  A B C
Départ 1 2 0
C=A 1 2 1
A=B 2 2 1
B=C 2 1 1

Voila, on a bien permuté.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © . Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.