Changeset 170 for trunk


Ignore:
Timestamp:
08/25/08 04:27:40 (16 years ago)
Author:
nanardon
Message:
  • beautify and clarify
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/perl/variables.tex

    r165 r170  
    88\frametitle{types de variables} 
    99\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-> 
    1221\includegraphics[height=40mm]{Angel_fish} 
    13 \pause 
     22\onslide<3-> 
    1423\includegraphics[height=40mm]{tableau} 
    15 \pause 
     24\onslide<4-> 
    1625\includegraphics[height=40mm]{hache} 
    17 \pause 
     26\onslide<5-> 
    1827\vfill 
    1928Et les autres on s'en moque... 
     
    2433\begin{frame}[fragile] 
    2534\frametitle{scalaire} 
    26 Un \textbf{scalaire} est une simple valeur: 
    27 \pause 
    28 \vfill 
     35\begin{block}{Un \textbf{scalaire} est une simple valeur:} 
    2936\begin{itemize} 
     37\pause 
    3038\item \emph{undef} 
    3139\pause 
     
    3442    \item un chiffre, nombre 
    3543    \item une chaine de caractères 
    36     \item une suite d'octets binaires 
    3744    \item \ldots 
    3845    \end{itemize} 
    3946\end{itemize} 
    40 \pause 
    41 \vfill 
     47\end{block} 
     48\pause 
     49\vfill 
     50\begin{block}{Convertion} 
     51Perl é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} 
    4257\begin{verbatim} 
    4358$rien = undef; 
    44 $chiffre = 42; 
    45 $chaine = "1"; 
     59$chiffre = 42; $chaine = "1"; 
    4660print $chaine + $chiffre; 
    4761print $chaine . $chiffre; 
    4862\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}{} 
     69Valeur \textit{fausses}: \textit{undef}, 0, "0", "" 
     70 
     71Valeur \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";  
     79if ($valeur) # faux, "0" => 0 
     80if ($valeur == 0) # vrai "0" => 0 
     81if ($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} 
    5492\end{frame} 
    5593 
     
    5795 
    5896\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}{} 
     108Ils 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); 
    73117$tableau[3] = 4; 
    74118$tableau[-1]; # dernier élément 
    75119\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}{} 
     132Nombre d'éléments: \verb+scalar(@tableau)+ 
     133 
     134Dernier indice: \verb+$#tableau+ 
     135\end{block} 
     136\pause 
     137\vfill 
     138\begin{block}{Les bouts du tableau} 
    80139\begin{tabular}{rcl} 
    81 shift <=&\verb+0@@@@@n+&<= push\\ 
    82 unshift =>&\verb+0@@@@@n+&=> pop\\ 
     140shift <=&\verb+0$$$$$n+&<= push\\ 
     141unshift =>&\verb+0$$$$$n+&=> pop\\ 
    83142\end{tabular} 
    84 \pause 
    85 \vfill 
    86 Nombre d'éléments: \verb+scalar(@tableau)+ 
    87  
    88 Dernier indice: \verb+$#tableau+ 
     143\end{block} 
    89144\end{frame} 
    90145 
    91146\begin{frame}[fragile] 
    92147\frametitle{hash} 
     148\begin{block}{tables de hashage} 
    93149Ce sont des tableaux indexés \verb+clef => valeur+. 
    94150 
     
    101157\item l'ordre des clefs n'est pas conservé !!! 
    102158\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 ); 
     168print $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} 
     184keys(%hash); 
     185\end{verbatim} 
     186\end{block} 
    120187 
    121188\end{frame} 
     
    125192\begin{frame}[fragile] 
    126193\frametitle{Comprendre les listes} 
    127 \textbf{Perl aplati les listes !} 
     194\begin{alertblock}{Perl aplati les listes !} 
    128195 
    129196Le concept est simple, mais redoutable: 
     197\end{alertblock} 
    130198\pause 
    131199 
     
    155223\begin{frame}[fragile] 
    156224\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}{} 
    160226'\verb+=>+' est un séparateur comme la '\verb+,+', donc c'est une liste: 
    161227\begin{verbatim} 
    162228%hash = (un => 1, deux => 2); 
    163229%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; 
    169231\end{verbatim} 
    170232\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} 
    175237%unhash = (%hash2, %hash3); 
    176238\end{verbatim} 
    177239\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}{} 
     243Les clefs dupliquées sont ecrasées, la dernière gagne ! 
     244\end{alertblock} 
    181245\end{frame} 
    182246 
     
    184248 
    185249\begin{frame}[fragile] 
    186 Elles existent dans tout programme perl.\\ 
    187 \pause 
     250\begin{block}{Elles existent dans tout programme perl.} 
    188251Les principales à connaitre:\\ 
     252\pause 
    189253\vfill 
    190254 
     
    200264\verb+$a+ et \verb+$b+&utilisé par sort\\ 
    201265\end{tabular} 
     266\end{block} 
    202267\pause 
    203268 
Note: See TracChangeset for help on using the changeset viewer.