Changeset 152


Ignore:
Timestamp:
07/27/08 04:25:25 (16 years ago)
Author:
nanardon
Message:
  • variables section
Location:
trunk/perl
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/perl/Makefile

    r150 r152  
    1212IMAGESPNG= 
    1313 
    14 IMAGESJPG= 
     14IMAGESJPG= \ 
     15        Angel_fish.jpg \ 
     16        tableau.jpg \ 
     17        hache.jpg 
    1518 
    1619EXAMPLES =  
  • trunk/perl/presentation.tex

    r151 r152  
    125125\end{frame} 
    126126 
     127\section{Variables} 
     128 
     129\begin{frame} 
     130\frametitle{types de variables} 
     131\textbf{15} types de variables: 
     132\vfill 
     133\pause 
     134\includegraphics[height=40mm]{Angel_fish} 
     135\pause 
     136\includegraphics[height=40mm]{tableau} 
     137\pause 
     138\includegraphics[height=40mm]{hache} 
     139\pause 
     140\vfill 
     141Et les autres on s'en moque... 
     142\end{frame} 
     143 
     144\begin{frame}[fragile] 
     145\frametitle{scalaire} 
     146Un \textbf{scalaire} est une simple valeur: 
     147\pause 
     148\vfill 
     149\begin{itemize} 
     150\item \emph{undef} 
     151\pause 
     152\item définie: 
     153    \begin{itemize} 
     154    \item un chiffre, nombre 
     155    \item une chaine de caractères 
     156    \item une suite d'octets binaires 
     157    \item \ldots 
     158    \end{itemize} 
     159\end{itemize} 
     160\pause 
     161\vfill 
     162\begin{verbatim} 
     163$rien = undef; 
     164$chiffre = 42; 
     165$chaine = "1"; 
     166print $chaine + $chiffre; 
     167print $chaine . $chiffre; 
     168\end{verbatim} 
     169\pause 
     170\vfill 
     171Valeur \textit{fausses}: \textit{undef}, 0, "" 
     172 
     173Valeur \textit{vraies}: le reste: 1, "0", "un chien ?" 
     174\end{frame} 
     175 
     176\begin{frame}[fragile] 
     177\frametitle{tableau (array)} 
     178Les tableaux sont des piles de \textit{scalaires}. 
     179\pause 
     180 
     181Ils sont dynamiques, et a une seule dimension (mais ce n'est pas un problème en fait). 
     182\pause 
     183\vfill 
     184Déclarer le tableau: 
     185 
     186\verb+@tableau = ("un", 2);+ 
     187\vfill 
     188Accéder aux/Déclarer les valeurs d'un tableau (attention au \$): 
     189 
     190\begin{verbatim} 
     191$tableau[3] = 4; 
     192$tableau[-1]; # dernier élément 
     193\end{verbatim} 
     194 
     195\pause 
     196\vfill 
     197Mais en fait:\hfill 
     198\begin{tabular}{rcl} 
     199shift <=&\verb+0@@@@@n+&<= push\\ 
     200unshift =>&\verb+0@@@@@n+&=> pop\\ 
     201\end{tabular} 
     202\pause 
     203\vfill 
     204Nombre d'éléments: \verb+scalar(@tableau)+ 
     205 
     206Dernier indice: \verb+$#tableau+ 
     207\end{frame} 
     208 
     209\begin{frame}[fragile] 
     210\frametitle{hash} 
     211Ce sont des tableaux indexés \verb+clef => valeur+. 
     212 
     213Ils sont dynamiques. 
     214 
     215\pause 
     216\begin{itemize} 
     217\item la clef est une valeur textuelle simple 
     218\item la valeur est un \textbf{scalaire} 
     219\item l'ordre des clefs n'est pas conservé !!! 
     220\end{itemize} 
     221 
     222\pause 
     223Déclarer un tableau de hashage: 
     224\begin{verbatim} 
     225%hash = ( 
     226    foo => "un" 
     227    bar => 2 
     228); 
     229\end{verbatim} 
     230 
     231\pause 
     232Accéder aux/Déclarer les valeurs d'un hash (attention au \$): 
     233\begin{verbatim} 
     234$hash{baz} = 'trois'; 
     235$clef = 'clef'; 
     236$hash{$clef}; 
     237\end{verbatim} 
     238 
     239\end{frame} 
     240 
     241\begin{frame}[fragile] 
     242\frametitle{Comprendre les listes} 
     243\textbf{Perl aplati les listes !} 
     244 
     245Le concept est simple, mais redoutable: 
     246\pause 
     247 
     248Prenons deux tableaux de trois entrées: 
     249\begin{verbatim} 
     250@tab1 = (1, 2, 3); 
     251@tab2 = (4, 5, 6); 
     252\end{verbatim} 
     253\pause 
     254 
     255Récupérer la première entrée, et le reste de \verb+@tab1+ 
     256\begin{verbatim} 
     257($un, @reste) = @tab1; 
     258\end{verbatim} 
     259\pause 
     260Récupérer la première entrée, et le reste de \verb+@tab1+ et \verb+@tab2+ 
     261\begin{verbatim} 
     262($un, @reste) = (@tab1, @tab2); 
     263\end{verbatim} 
     264\pause 
     265Récupérer la deuxième entrée, et le reste de \verb+@tab1+ et \verb+@tab2+ 
     266\begin{verbatim} 
     267(undef, $deux, @reste) = (@tab1, @tab2); 
     268\end{verbatim} 
     269\end{frame} 
     270 
     271\begin{frame}[fragile] 
     272\frametitle{Comprendre les listes: les hash} 
     273Mais le pire, c'est que ce concept s'applique aussi \textbf{hash} 
     274\pause 
     275 
     276'\verb+=>+' est un séparateur comme la '\verb+,+', donc c'est une liste: 
     277\begin{verbatim} 
     278%hash = (un => 1, deux => 2); 
     279%hash = (un, 1, deux, 2); 
     280\end{verbatim} 
     281\pause 
     282Si un hash revois une liste et prends une liste\ldots 
     283\begin{verbatim} 
     284@tab = %hash; 
     285\end{verbatim} 
     286\verb+@tab+ contient "un", 1\ldots 
     287 
     288\begin{verbatim} 
     289@tab = (1, 2, 3, 4); 
     290%hash = @tab; 
     291\end{verbatim} 
     292\verb+%hash+ contient 1 \verb+=>+ 2, 3 \verb+=>+ 4\ldots 
     293 
     294Les clef dupliquées sont ecrasées, la dernière gagne ! 
     295\end{frame} 
     296 
    127297\section*{Fin} 
    128298 
Note: See TracChangeset for help on using the changeset viewer.