% -*- mode: latex; -*- mustache tags:  
\ifx\wholebook\relax\else

	\documentclass[10pt,twoside,english]{root/support/latex/sbabook/sbabook}
  \usepackage{import}
  \subimport{root/support/latex/}{common.tex}

  \hypersetup{pdfinfo = {
    Title = {{Pharo Mooc}},
    Author = {},
    Keywords = {pharo, smalltalk}}}
  \begin{document}
\fi

\chapter{Expressions et Messages}
Ces exercices sont principalement pour vous apprendre \`{a} lire et \`{a} comprendre les expressions Pharo ainsi qu'\`{a} identifier
les diff\'{e}rentes sortes de messages et receveurs. 

Notez que dans les expressions pour lesquels on vous demande de les lire et les ex\'{e}cutez, vous pouvez assumer que l'implantation
des m\'{e}thodes correspond g\'{e}n\'{e}ralement \`{a} ce que le nom du message implique (par exemple, \textcode{2 + 2 = 4}).

De plus, la plupart des expression que nous utilisons sont des expressions que vous pouvez ex\'{e}cuter dans Pharo donc n'h\'{e}sitez pas. 
\subsection{Exercice : Objets Lit\'{e}raux}
A quelles sortes d'objets les expressions lit\'{e}rales font elles r\'{e}f\'{e}rence ? 

\begin{displaycode}{smalltalk}
'Hello, Dave'
\end{displaycode}

\begin{displaycode}{smalltalk}
1.3
\end{displaycode}

\begin{displaycode}{smalltalk}
#node1
\end{displaycode}

\begin{displaycode}{smalltalk}
#(2 33 4)
\end{displaycode}

\begin{displaycode}{smalltalk}
[ :each | each scale: 1.5 ]
\end{displaycode}

\begin{displaycode}{smalltalk}
$A 
\end{displaycode}

\begin{displaycode}{smalltalk}
true
\end{displaycode}

\begin{displaycode}{smalltalk}
1
\end{displaycode}
\section{Exercice : Messages}
Pour chacune des expressions ci-dessous, r\'{e}pondez aux questions suivantes :

\begin{itemize}
\item Quel est l'objet receiveur ?
\item Quel est le selecteur du message ?
\item Quel(s) est (sont) les argument(s) ?
\item Quel est le r\'{e}sultat retourn\'{e} par l'ex\'{e}cution de l'expression ?
\end{itemize}

\begin{displaycode}{smalltalk}
3 + 4
\end{displaycode}

\begin{displaycode}{smalltalk}
Date today
\end{displaycode}

\begin{displaycode}{smalltalk}
anArray at: 1 put: 'hello'
\end{displaycode}

\begin{displaycode}{smalltalk}
anArray at: i 
\end{displaycode}

\begin{displaycode}{smalltalk}
#(2 33 -4 67) collect: [ :each | each abs ]
\end{displaycode}

\begin{displaycode}{smalltalk}
25 @ 50
\end{displaycode}

\begin{displaycode}{smalltalk}
SmallInteger maxVal
\end{displaycode}

\begin{displaycode}{smalltalk}
#(a b c d e f) includesAll: #(f d b)
\end{displaycode}

\begin{displaycode}{smalltalk}
true | false
\end{displaycode}

\begin{displaycode}{smalltalk}
Point selectors
\end{displaycode}
\subsection{Exercice : Nommage}
\begin{itemize}
\item Que peut-on assumer d'une variable nomm\'{e}e \textcode{Transferator} ?
\end{itemize}

\begin{itemize}
\item Que peut-on assumer d'une variable nomm\'{e}e \textcode{rectangle} ?
\end{itemize}


\ifx\wholebook\relax\else
\end{document}
\fi