diff options
Diffstat (limited to 'tp1.tex')
| -rw-r--r-- | tp1.tex | 60 | 
1 files changed, 60 insertions, 0 deletions
| @@ -133,6 +133,10 @@ renvoie les lignes de \texttt{monfichier} qui commencent par  \texttt{x} (en début de ligne) suivi d'un nombre quelconque de  \texttt{y} et d'un \texttt{z} (en fin de ligne). +% +% +% +  \exercice  Le fichier \texttt{\char"7Emadore/inf105/liste1} contient 25 mots sur @@ -181,6 +185,62 @@ modulo $3$ ?    renvoie $11$.  \end{corrige} +% +% +% + +\exercice + +Le fichier \texttt{\char"7Emadore/inf105/liste2} contient des mots +(tous distincts) sur l'alphabet ASCII ; ces lignes peuvent contenir, +notamment, des espaces et des caractères spéciaux pour \texttt{egrep}. + +(a) Combien de lignes ne contiennent que des lettres de l'alphabet +latin (de A à Z sans diacritiques, majuscules comme minuscules) ?  (On +rappelle pour cela la syntaxe « \texttt{[abc]} » d'\texttt{egrep} qui +permet de désigner un caractère parmi \texttt{a}, \texttt{b} et +\texttt{c} (c'est donc synonyme de \texttt{(a|b|c)} mais uniquement +pour des caractères individuels) et « \texttt{[a-f]} » qui désigne un +caractère entre \texttt{a} et \texttt{f}.)  Combien de lignes +contiennent un caractère autre que les lettres de l'alphabet latin ? +(On rappelle que « \texttt{[\char"5Ea-f]} » permet de désigne un +caractère n'appartenant pas à l'intervalle entre \texttt{a} et +\texttt{f}.) + +(b) Combien de lignes commencent par un \texttt{a} et finissent par un +\texttt{z} ?  (On rappelle pour cela la syntaxe « \texttt{.} » +d'\texttt{egrep} qui permet de désigner un caractère quelconque.) + +(c) Combien de lignes contiennent une astérisque ?  (On rappelle qu'on +peut « échapper » un caractère spécial pour \texttt{egrep} en le +faisant précéder d'un backslash (\texttt{\char"5C}).)  Au moins deux +astérisques ?  Exactement deux astérisques ? + +(d) Combien de lignes contiennent exactement six caractères ?  (On +rappelle les syntaxes « \texttt{$r$\{$n$\}} » et +« \texttt{$r$\{$m$,$n$\}} » et « \texttt{$r$\{$m$,\}} » et +« \texttt{$r$\{,$n$\}} » pour chercher respectivement exactement $n$, +entre $m$ et $n$, au moins $m$, et au plus $n$ occurrences de +l'expression régulière $r$.)  Entre quatre et huit caractères ?  Au +moins trois fois le caractère \texttt{u} ?  Exactement six fois le +caractère \texttt{u} ? + +\begin{corrige} +(a) \verb=egrep -c '^[A-Za-z]*$'= pour uniquement des lettres, et +  \verb='[^A-Za-z]'= pour un caractère qui n'est pas une lettre. + +(b) \verb=egrep -c '^a.*z$= + +(c) \verb=egrep -c '\*'= pour une astérisque, \verb='\*.*\*'= pour au +  moins deux, et \verb='[^*]*\*[^*]*\*[^*]*'= pour exactement deux +  astérisques. + +(d) \verb=egrep -c '^.{6}$'= pour exactement six caractères, +  \verb='^.{4,8}$'= pour entre quatre et huit caractères, +  \verb='(u.*){3,}'= pour au moins trois fois \texttt{u}, et +  \verb='^[^u]*(u[^u]*){6}$'= pour exactement six \texttt{u}. +\end{corrige} +  %  % | 
