Changeset 170
- Timestamp:
- 08/25/08 04:27:40 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/perl/variables.tex
r165 r170 8 8 \frametitle{types de variables} 9 9 \textbf{15} types de variables: 10 \vfill 11 \pause 10 \pause 11 \begin{itemize} 12 \item scalaires (scalar) 13 \pause 14 \item tableaux (array) 15 \pause 16 \item hash (hash) 17 \pause 18 \end{itemize} 19 \vfill 20 \onslide<2-> 12 21 \includegraphics[height=40mm]{Angel_fish} 13 \ pause22 \onslide<3-> 14 23 \includegraphics[height=40mm]{tableau} 15 \ pause24 \onslide<4-> 16 25 \includegraphics[height=40mm]{hache} 17 \ pause26 \onslide<5-> 18 27 \vfill 19 28 Et les autres on s'en moque... … … 24 33 \begin{frame}[fragile] 25 34 \frametitle{scalaire} 26 Un \textbf{scalaire} est une simple valeur: 27 \pause 28 \vfill 35 \begin{block}{Un \textbf{scalaire} est une simple valeur:} 29 36 \begin{itemize} 37 \pause 30 38 \item \emph{undef} 31 39 \pause … … 34 42 \item un chiffre, nombre 35 43 \item une chaine de caractères 36 \item une suite d'octets binaires37 44 \item \ldots 38 45 \end{itemize} 39 46 \end{itemize} 40 \pause 41 \vfill 47 \end{block} 48 \pause 49 \vfill 50 \begin{block}{Convertion} 51 Perl évalue et converti les valeurs numériques au vol! 52 \end{block} 53 \pause 54 \vfill 55 56 \begin{exampleblock}{Exemple de valeur de scalaire} 42 57 \begin{verbatim} 43 58 $rien = undef; 44 $chiffre = 42; 45 $chaine = "1"; 59 $chiffre = 42; $chaine = "1"; 46 60 print $chaine + $chiffre; 47 61 print $chaine . $chiffre; 48 62 \end{verbatim} 49 \pause 50 \vfill 51 Valeur \textit{fausses}: \textit{undef}, 0, "" 52 53 Valeur \textit{vraies}: le reste: 1, "0", "un chien ?" 63 \end{exampleblock} 64 \end{frame} 65 66 \begin{frame}[fragile] 67 \frametitle{Scalair: Vrai ou Faux ?} 68 \begin{block}{} 69 Valeur \textit{fausses}: \textit{undef}, 0, "0", "" 70 71 Valeur \textit{vraies}: le reste: 1, "1", "un chien ?" 72 \end{block} 73 \pause 74 \vfill 75 76 \begin{exampleblock}{Exemple de test} 77 \begin{verbatim} 78 $valeur = "0"; 79 if ($valeur) # faux, "0" => 0 80 if ($valeur == 0) # vrai "0" => 0 81 if ($valeur eq "") # faux, chaine non vide 82 \end{verbatim} 83 \end{exampleblock} 84 \pause 85 \vfill 86 87 \begin{exampleblock}{0 but True} 88 \begin{verbatim} 89 $valeur = "0E0"; 90 \end{verbatim} 91 \end{exampleblock} 54 92 \end{frame} 55 93 … … 57 95 58 96 \begin{frame}[fragile] 59 \frametitle{tableau (array)} 60 Les tableaux sont des piles de \textit{scalaires}. 61 \pause 62 63 Ils sont dynamiques, et a une seule dimension (mais ce n'est pas un problème en fait). 64 \pause 65 \vfill 66 Déclarer le tableau: 67 68 \verb+@tableau = ("un", 2);+ 69 \vfill 70 Accéder aux/Déclarer les valeurs d'un tableau (attention au \$): 71 72 \begin{verbatim} 97 \frametitle{Tableau (array)} 98 \begin{block}{Les tableaux sont des piles de scalaires} 99 \begin{verbatim} 100 $valeur = 3; 101 @tableau = ($valeur, "chaines"); 102 \end{verbatim} 103 \end{block} 104 \pause 105 106 \vfill 107 \begin{block}{} 108 Ils sont dynamiques, et a une seule dimension 109 \end{block} 110 \end{frame} 111 112 \begin{frame}[fragile] 113 \frametitle{Tableau: Exemples} 114 \begin{exampleblock}{Utilisation:} 115 \begin{verbatim} 116 @tableau = (1, 2, 3); 73 117 $tableau[3] = 4; 74 118 $tableau[-1]; # dernier élément 75 119 \end{verbatim} 76 77 \pause 78 \vfill 79 Mais en fait:\hfill 120 \end{exampleblock} 121 \pause 122 \vfill 123 \begin{alertblock}{Attention au \$} 124 \begin{verbatim} 125 @tableau; 126 $tableau[1]; 127 \end{verbatim} 128 \end{alertblock} 129 \pause 130 \vfill 131 \begin{block}{} 132 Nombre d'éléments: \verb+scalar(@tableau)+ 133 134 Dernier indice: \verb+$#tableau+ 135 \end{block} 136 \pause 137 \vfill 138 \begin{block}{Les bouts du tableau} 80 139 \begin{tabular}{rcl} 81 shift <=&\verb+0 @@@@@n+&<= push\\82 unshift =>&\verb+0 @@@@@n+&=> pop\\140 shift <=&\verb+0$$$$$n+&<= push\\ 141 unshift =>&\verb+0$$$$$n+&=> pop\\ 83 142 \end{tabular} 84 \pause 85 \vfill 86 Nombre d'éléments: \verb+scalar(@tableau)+ 87 88 Dernier indice: \verb+$#tableau+ 143 \end{block} 89 144 \end{frame} 90 145 91 146 \begin{frame}[fragile] 92 147 \frametitle{hash} 148 \begin{block}{tables de hashage} 93 149 Ce sont des tableaux indexés \verb+clef => valeur+. 94 150 … … 101 157 \item l'ordre des clefs n'est pas conservé !!! 102 158 \end{itemize} 103 104 \pause 105 Déclarer un tableau de hashage: 106 \begin{verbatim} 107 %hash = ( 108 foo => "un" 109 bar => 2 110 ); 111 \end{verbatim} 112 113 \pause 114 Accéder aux/Déclarer les valeurs d'un hash (attention au \$): 115 \begin{verbatim} 116 $hash{baz} = 'trois'; 117 $clef = 'clef'; 118 $hash{$clef}; 119 \end{verbatim} 159 \end{block} 160 161 \end{frame} 162 \begin{frame}[fragile] 163 \frametitle{hash: exemple} 164 \begin{exampleblock}{Utiliser tableau de hashage:} 165 \begin{verbatim} 166 %hash = ( foo => "un" 167 bar => 2 ); 168 print $hash{'bar'}; 169 $clef = 'clef'; $hash{$clef}; 170 \end{verbatim} 171 \end{exampleblock} 172 \pause 173 \vfill 174 \begin{alertblock}{Attention au \$} 175 \begin{verbatim} 176 %hash; 177 $hash{baz}; 178 \end{verbatim} 179 \end{alertblock} 180 \vfill 181 \pause 182 \begin{block}{keys: renvois les clefs} 183 \begin{verbatim} 184 keys(%hash); 185 \end{verbatim} 186 \end{block} 120 187 121 188 \end{frame} … … 125 192 \begin{frame}[fragile] 126 193 \frametitle{Comprendre les listes} 127 \ textbf{Perl aplati les listes !}194 \begin{alertblock}{Perl aplati les listes !} 128 195 129 196 Le concept est simple, mais redoutable: 197 \end{alertblock} 130 198 \pause 131 199 … … 155 223 \begin{frame}[fragile] 156 224 \frametitle{Comprendre les listes: les hash} 157 Mais le pire, c'est que ce concept s'applique aussi \textbf{hash} 158 \pause 159 225 \begin{block}{} 160 226 '\verb+=>+' est un séparateur comme la '\verb+,+', donc c'est une liste: 161 227 \begin{verbatim} 162 228 %hash = (un => 1, deux => 2); 163 229 %hash = (un, 1, deux, 2); 164 \end{verbatim} 165 \pause 166 Si un hash revois une liste et prends une liste\ldots 167 \begin{verbatim} 168 @tab = %hash; 230 @tab = %hash; %hash = @tableau; 169 231 \end{verbatim} 170 232 \verb+@tab+ contient "un", 1\ldots 171 172 \ begin{verbatim}173 @tab = (1, 2, 3, 4); 174 %hash = @tab; 233 \end{block} 234 \pause 235 \begin{block}{hash vers hash} 236 \begin{verbatim} 175 237 %unhash = (%hash2, %hash3); 176 238 \end{verbatim} 177 239 \verb+%hash+ contient 1 \verb+=>+ 2, 3 \verb+=>+ 4\ldots 178 179 Les clef dupliquées sont ecrasées, la dernière gagne ! 180 240 \end{block} 241 \pause 242 \begin{alertblock}{} 243 Les clefs dupliquées sont ecrasées, la dernière gagne ! 244 \end{alertblock} 181 245 \end{frame} 182 246 … … 184 248 185 249 \begin{frame}[fragile] 186 Elles existent dans tout programme perl.\\ 187 \pause 250 \begin{block}{Elles existent dans tout programme perl.} 188 251 Les principales à connaitre:\\ 252 \pause 189 253 \vfill 190 254 … … 200 264 \verb+$a+ et \verb+$b+&utilisé par sort\\ 201 265 \end{tabular} 266 \end{block} 202 267 \pause 203 268
Note: See TracChangeset
for help on using the changeset viewer.