Académique Documents
Professionnel Documents
Culture Documents
Au menu aujourdhui...
guillaume.wisniewski@lip6.fr
Ladministratif...
Au sujet des TP
corriges :
www-connex.lip6.fr/wisniewski/corrige li276
` pensez a changer lextension des chiers ! ! ! ! ! nom des chiers : lecalvez exo2.txt
Elements de correction
Disclamer
cest du style lisibilite toutes mes remarques sont discutables
Console .Write (" Entrez votre nom." + vbNewLine ) Dim name As String Dim temp As String Dim firstchar As Char name = Console . ReadLine () If Char. IsLower (name , 0) Then temp = name. Substring (1) firstchar = name. Substring (0, 1) firstchar = Char. ToUpper ( firstchar ) name = firstchar & temp End If Console . WriteLine (" Bonjour {0}!", name) Console . ReadLine ()
Les collections
Remarque generale
` ` pour acceder au i eme caractere dune chane a.Chars(i)
pour appeler une procedure : maProcedure est possible ; toujours utiliser maProcedure() toujours justier lutilisation de constantes
p.ex. : taille des tableaux
De linteret de labstraction
Exceptions
cf. Exemple exo 2 du TP1
Les exceptions
Interet/principe
moyen moderne de gerer les erreurs interruption du ow (deroulement) normal du ` programme a cause dune erreur ` remonte la pile dappel jusqua ce que quelquun decide de gerer lerreur
Syntaxe
Try bloque de code qui peut creer une erreur Catch x As Type gestion de l erreur Finally toujours execute End Try
Les collections
Idee fondamentale
distinguer :
celui qui produit lerreur = la personne qui fournit la fonction / la librairie ` celui qui gere lerreur = la personne qui utilise la fonction
Type = type derreur que lon veut gerer propagation des exceptions si elles ne sont pas attrappees le bloque Finally est toujours execute
Exemple
Exemple (2)
Imports System
Imports System Module Module1 Sub Main () Dim x As Integer = 0 Dim div As Integer = 100 / x Console . WriteLine (div) End Sub End Module
Module Module1 Sub Main () Dim x As Integer = 0 Dim div As Integer = 0 Try div = 100 / x Console . WriteLine ("This line is not executed ") Catch de As DivideByZeroException Console . WriteLine (" Exception occured ") End Try Console . WriteLine (" Result is {0}", div) End Sub End Class
Exemple
Exception SystemException IOException DirectoryNotFoundException EndOfStreamException
...
Principe
Its better to ask for forgiveness than to ask for permission ` tres utilise dans les langages modernes
Les collections
Exemple
on veut lire un chier
est-ce quil existe ? est-ce bien un chier regulier ? ` as-t-on les droits dacces ? ...
Les collections
plus simple dessayer de lire... ... et de gerer les erreurs qui surviennent.
Presentations
Denition
groupe delements dynamique : on peut ajouter et enlever des elements ` sans probleme repere par leur indice ou une cle
Les ArrayList
Principe
` collection dobjets heterogenes ` ` on accede aux objets grace a un index (comme dans un tableau) necessite un Imports System.Collections
Les collections
Attention ! !
heterogeneite cest au programmeur de gerer les types ` obliger de caster quand on recupere un objet : res = CInt(L(0))
Exemple
creation Dim L As NewArrayList = ArrayList . Repeat ("A", 5) ajoute un element (a la fin) L.Add(" Bonjour ") supprime le 1er element L. RemoveAt (0) nombre d element L. Count trie la liste L.Sort () reinitialise une liste L. Clear () teste la presence L. Contains ("A") Rechercher un element L. IndexOf ("A") si L est triee L. BinarySearch ("A")
Utilisation
necessite Imports System.Collections.Generic declaration : Dim lst As New List (Of Decimal) ` acces : Dim a As Decimal = lst(3)
Les HashTable
Principe
table de hachage, dictionnaire, ... les cles sont toujours uniques 1 2 3 Premier Deuxieme Troisieme
Utilisation
Dim ht As HashTable ht.Add (1, " premier ") ht.Add (2, " deuxieme ") Console . WriteLn (ht (3)) ht. ContainsKey (1) ht. ContainsValue (" quatrieme ")
Dictionnaires types
Autres types/collections
Utilisation
Dim dict as New Dictionnary(Of String, String)
les piles (Stack) les listes chanees (LinkedList) les ensembles (HashSet)