IFT-20403-A-cours-3-Algo-PDF
9 pages
Français

IFT-20403-A-cours-3-Algo-PDF

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
9 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Rappels d’algorithmiqueIntroduction à l’algorithmique : • Nous avons vu : – Définition : Un algorithme est une suite finiestructures de contrôled’instructions qui, étant donné des paramètres typés, calcule une solution d’un problème donnéNom– Variables, tableaux de valeurs Conditionnelles et itérations– Constantes Valeur– Opérateurs, fonctionsPhilippe Pasquier – Expressions– Une instruction : l’affectation– Une méthode de programmation utilisant tous ça : la programmation évènementiellePhilippe Pasquier, Septembre 20032IFT-20403-A Basic et Visual BasicStructure conditionnelle Structure conditionnelle• Exemple :• Les instructions à exécuter peuvent dépendre If sngMoyenne >= 10 Then strDécisiond'une condition (orienter le déroulement du = "Admis" Else strDécision =programme vers des blocs d'instructions "Refusé"déterminés). • Pour une meilleure lisibilité du code, • Syntaxe, sur une seule ligne :présentation sous forme de bloc :• If condition Then instruction1 [ElseIf condition Theninstruction2][instructions]• Condition est une expression dont la valeur est Else Indentation booléenne (True ou False).pour la lisibilité • Si cette expression est une valeur numérique, la valeur du codeEnd If0 (zéro) correspond àFalse et toute autre valeur correspond àTrue.Philippe Pasquier, Septembre 2003 Philippe Pasquier, Septembre 20033 4IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual BasicStructure conditionnelle Insuffisance de cette ...

Sujets

Informations

Publié par
Nombre de lectures 43
Langue Français

Extrait

Introduction à l’algorithmique : structures de contrôle
Conditionnelles et itérations
Philippe Pasquier
Structure conditionnelle
Les instructions à exécuter peuvent dépendre d'une condition (orienter le déroulement du programme vers des blocs d'instructions déterminés). Syntaxe, sur une seule ligne : If condition Then instruction1 [Else instruction2] est une expression dont la valeur est Condition booléenne (True ou False). Si cette expression est une valeur numérique, la valeur 0 (zéro) correspond à et toute autre valeur False correspond à . True
IFT20403A Basic et Visual Basic
3
Philippe Pasquier, Septembre 2003
Rappels d’algorithmique
Nous avons vu : Définition : Un algorithme est une suite finie d’instructions qui, étant donné des paramètres typés, calcule une solution d’un problème donné Nom Variables, tableaux de valeurs ConstantesValeur Opérateurs, fonctions Expressions Une instruction : l’affectation Une méthode de programmation utilisant tous ça : la programmation évènementielle
IFT20403A Basic et Visual Basic
2
Structure conditionnelle
Philippe Pasquier, Septembre 2003
Exemple : If sngMoyenne >= 10 Then strDécision = "Admis" Else strDécision = "Refusé" Pour une meilleure lisibilité du code, présentation sous forme de bloc : If condition Then [instructions] Indentation Else pour la lisibilité [instructions] du code End If
IFT20403A Basic et Visual Basic
4
Philippe Pasquier, Septembre 2003
Structure conditionnelle
Or, Xor, … Exemple : If (sngMoyenne>=10) And Présent Then intAdmis = intAdmis + 1 MsgBox("Candidat admis") Else intAjournés = intAjournés + 1 MsgBox("Candidat ajourné") End If
IFT20403A Basic et Visual Basic
5
Philippe Pasquier, Septembre 2003
Insuffisance de cette structure
Exemple : If NombreProposé > (2*NombreATrouver) Then MsgBox("Votre nombre est bien trop grand !") End if If NombreProposé > NombreATrouver Then MsgBox("Votre nombre est trop grand !") Else If NombreProposé < NombreATrouver Then MsgBox("Votre nombre est trop petit !") Else If OptResult.Value=True Then MsgBox("Gagné !") End If End If End If
IFT20403A Basic et Visual Basic
7
Philippe Pasquier, Septembre 2003
Insuffisance de cette structure
n'estLa structure If, Then, Else vraiment valable que pour les alternatives (2 possibilités). Pour traiter 3 possibilités il faudra imbriquer un autre après l'instruction If . Else Audelà de 3 possibilités on a besoin d'une autre structure qui peut gérer plusieurs cas.
IFT20403A Basic et Visual Basic
6
Structure Select … Case …
Philippe Pasquier, Septembre 2003
C’est une extension du If … Then … Else … Elle permet une programmation plus claire en évitant une trop grande imbrication de If successifs. Syntaxe : Select Case Expression Case ListeValeurs1 [Instructions] Case ListeValeurs2 [Instructions] Case Else [Instructions] End Select
IFT20403A Basic et Visual Basic
8
Philippe Pasquier, Septembre 2003
Structure Select … Case …
peut être : ListeValeurs  une suite de valeurs : 1, 3, 5, 7, 9  une fourchette : 0 To 9  une plage : Is >= 10 Une seule Expression (ou une simple variable) est testée au début puis est comparée avec les listes de valeurs. A la première concordance les instructions correspondantes sont exécutées puis le programme sort de la structure. Si aucune concordance n’est trouvée les instructions placées après le sont Else exécutées. Philippe Pasquier, Septembre 2003 IFT20403A Basic et Visual Basic 9
Structure Iif : expression conditionnelle
C'est exactement la fonction IF d'EXCEL. Syntaxe : IIf (Condition,ValeurSiVrai, ValeurSiFaux) Exemple : Dim sngNote As Single Dim strRéponse As String sngNote = InputBox (" Tapez votre note ") strRéponse = IIf (intNote >= 50, " Admis ", " Ajourné ") MsgBox (strRéponse) Il existe d’autres outils décisionnels ( Switch, ...) qui sont moins fréquent. With, Choose
IFT20403A Basic et Visual Basic
11
Philippe Pasquier, Septembre 2003
Structure Select … Case …
Exemple : Select Case intAge Case 68, 72, 73 MsgBox(« année de cotisation ») Case 66 To 90 MsgBox(« carte gratuite ») Case Else MsgBox(« vous ne pouvez bénéficier de ce service ») End Select
IFT20403A Basic et Visual Basic
Instruction d’itération
10
Philippe Pasquier, Septembre 2003
On a souvent besoin de répéter un bloc d’instructions Exemples : Sommation Demande à l’usagé jusqu’à ce que la réponse soit acceptable Les structures d’itération sont les outils informatiques pour ce faire : Un bloc d’instruction se répète de manière conditionnelle La boucle doit se terminer
IFT20403A Basic et Visual Basic
12
Philippe Pasquier, Septembre 2003
Boucles en nombre défini
Ce type de boucle est utilisée si l’on connaît à l’avance le nombre de répétitions nécessaires Syntaxe : ForCompteur=DébutToFin[Step Incrément] [Instructions] Next [Compteur]
IFT20403A Basic et Visual Basic
13
Boucles en nombre défini
Philippe Pasquier, Septembre 2003
Exemple:factorielle de 50 For i = 1 To 50 lngRésultat = lngRésultat * i Next i
Exemple 2 : factorielle de n
IFT20403A Basic et Visual Basic
15
Philippe Pasquier, Septembre 2003
Boucles en nombre défini
Le test est effectué au début de la boucle. La variable numérique Compteur est incrémentée à chaque fin de boucle du nombre indiqué par l’ . Si incrément l’incrément n’est pas spécifié, il est fixé à 1. Si la valeur de est inférieure à la valeur de Fin l’incrément doit être négatif. Début La valeur de peut être utilisée (par Compteur exemple pour numéroter le passage dans la boucle) mais ne doit pas être modifiée dans le corps de la boucle.
IFT20403A Basic et Visual Basic
Boucle : factorielle de n
14
Philippe Pasquier, Septembre 2003
'déclaration des variables Dim i,intN As Integer Dim lngRésultat As Double lngRésultat = 1 ' initialisation du résultat 'acquisition/initialisation de n intN = InputBox("Vous voulez la factorielle de :") 'calcul de la factorielle For i = 1 To intN lngRésultat = lngRésultat * i Next i 'affichage du résultat MsgBox (« Le résultat est : » & Str(lngRésultat))
IFT20403A Basic et Visual Basic
16
Philippe Pasquier, Septembre 2003
Autres types d’itérations
Si le nombre de passages dans la boucle est inconnu au départ, mais dépend d'une condition dont la réalisation est imprévisible cette structure n'est pas adaptée. Exemple 1 : Demander le mot de passe tant que la réponse n'est pas le bon mot de passe. Demander le mot de passe jusqu'à ce que la réponse soit le bon mot de passe. Exemple 2 : Demander la saisie d'une note tant que la réponse n'est pas un nombre entre 0 et 20. Demander la saisie d'une note jusqu'à ce que la réponse soit un nombre entre 0 et 20.
IFT20403A Basic et Visual Basic
Boucle tant que
17
Philippe Pasquier, Septembre 2003
Exemple : Do While MotProposé <> MotDePasse MotProposé = InputBox("Donnez votre mot de passe") Loop Cela présuppose initialisé par MotProposé une valeur autre que celle de MotDePasse (par exemple la valeur « »).
IFT20403A Basic et Visual Basic
19
Philippe Pasquier, Septembre 2003
Boucle tant que
Première syntaxe : Do While Condition Instructions Loop testée au début c'est à dire àLa est condition l’entrée de la boucle. que) la boucle est répétéeAvec (tant While tant que la condition est vraie. Si la condition n’est pas vraie au départ les instructions de la boucle ne sont pas exécutées et on passe à la suite du programme.
IFT20403A Basic et Visual Basic
Boucle tant que
18
Philippe Pasquier, Septembre 2003
Seconde syntaxe : Do Instructions Loop WhileCondition La condition est alors testée à la fin de la boucle. Avec (tant que) la boucle est While répétée tant que la condition est vraie. Les instructions de la boucle sont donc exécutées au moins une fois.
IFT20403A Basic et Visual Basic
20
Philippe Pasquier, Septembre 2003
Boucle tant que
Exemple : Do MotProposé = InputBox("Donnez votre mot de passe") Loop While MotProposé <> MotDePasse Cet exemple ne présuppose aucune initialisation de . MotProposé
IFT20403A Basic et Visual Basic
Boucle jusqu'à ce que
21
Philippe Pasquier, Septembre 2003
Exemple : Do Until MotProposé = MotDePasse MotProposé = InputBox("Donnez votre mot de passe :") Loop initialisé parCela présuppose MotProposé une valeur autre que (par exemple MotDePasse la valeur par défaut "")
IFT20403A Basic et Visual Basic
23
Philippe Pasquier, Septembre 2003
Boucle jusqu'à ce que
Syntaxe première version : Do UntilCondition Instructions Loop La condition est ici testée au début c'est à dire à l’entrée de la boucle. Avec (jusqu'à) la boucle est répétée Until jusqu'à ce que la condition soit vraie. Si la condition est vraie au départ les instructions de la boucle ne sont pas exécutées.
IFT20403A Basic et Visual Basic
Boucle jusqu'à ce que
22
Philippe Pasquier, Septembre 2003
Syntaxe deuxième version : Do Instructions [... Exit Do] [Instructions] Loop UntilCondition La condition est alors testée à la fin de la boucle. Les instructions de la boucle sont donc exécutées au moins une fois. Avec Until (jusqu'à) la boucle est répétée jusqu'à ce que la condition soit vraie.
IFT20403A Basic et Visual Basic
24
Philippe Pasquier, Septembre 2003
Boucle jusqu'à ce que
Exemple : Do MotProposé = InputBox("Donnez votre mot de passe") Loop Until MotProposé = MotDePasse Cet exemple ne présuppose aucune initialisation de . MotProposé
IFT20403A Basic et Visual Basic
Trouver le problème
25
Philippe Pasquier, Septembre 2003
Exemple1: Dim MotProposé, Réponse As String Réponse = "Titanic" Do MotProposé = InputBox("Donnez votre réponse") Loop While MotProposé = Réponse Exemple2: Dim Note As Single Do Until Note >= 0 And Note <= 100 Note = InputBox("Taper une note entre 0 et 100") Loop 27 Philippe Pasquier, Septembre 2003 IFT20403A Basic et Visual Basic
Conclusion
Selon le problème à traiter vous aurez le choix entre ces différentes structures de contrôle. Il s'agira de choisir sinon la plus élégante du moins celle qui ne provoquera pas de disfonctionnement de votre programme.
IFT20403A Basic et Visual Basic
Exemple de problème
26
Philippe Pasquier, Septembre 2003
Écrire un programme capable de résoudre « ax+b = 0 » où a et b sont deux réels entrés par l’utilisateur.
IFT20403A Basic et Visual Basic
28
Philippe Pasquier, Septembre 2003
Exemple de réponse
Dim a,b,x As single ‘déclaration des variables ‘initialisation des variables a = inputbox (« entrer a : ») b = inputbox (« entrer b : ») ‘calcul et affichage du résultat If b=0 then ‘cas où b est nul If a=0 then ‘cas où a est nul Msgbox (« Il y a une infinité de solutions ») Else x=0 ‘calcul et affichage du résultat Msgbox (« La solution est x = » & Str(x)) End if Else ‘cas où b n’est pas nul If a=0 then Msgbox (« Il n’y a pas de solutions ») Else x=(b/a) ‘calcul et affichage du résultat Msgbox (« La solution est x = » & Str(x)) End if End if Philippe Pasquier, Septembre 2003 IFT20403A Basic et Visual Basic 29
Algorithmes sur les tableaux
Parcours d’un tableau à deux dimensions: ‘déclarations Dim i, j As Integer Dim Tablo(1 To 28, 1 To 28) As Integer ‘initialisation : parcours ‘table de multiplication For i = Lbound(Tablo, 1) To Ubound(Tablo, 1) For j = Lbound(Tablo, 2) To Ubound(Tablo, 2) Tablo(i, j) = i * j ‘traitement Next j Next i
IFT20403A Basic et Visual Basic
31
Philippe Pasquier, Septembre 2003
Algorithmes sur les tableaux
Parcours d’un tableau à une dimension: ‘déclarations Dim i As Integer Dim Tablo(1 To 28) As Integer ‘initialisation : parcours ‘vecteur de carrés For i = Lbound(Tablo, 1) To Ubound(Tablo, 1) Tablo(i)=i*i ‘traitement Next i
IFT20403A Basic et Visual Basic
30
Philippe Pasquier, Septembre 2003
Algorithmes sur les tableaux
Algorithmes de tri : il en existe de nombreux Exercice : écrivez en un en VB
IFT20403A Basic et Visual Basic
32
Philippe Pasquier, Septembre 2003
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents