\documentclass[12pt]{article}


\textheight 250mm
\textwidth 160mm
\hoffset -22mm
\voffset -24mm


\begin{document}

\section{Que fais-je ?}
Reliez les noms des logiciels \`a leur famille
\quad\\
\begin{tabular}{|r | c|l|}
\hline
Word  &   \qquad \qquad  &  syst\`eme d'exploitation \\
MS DOS & \qquad \qquad  &   langage de programmation \\
Excel & \qquad \qquad  & traitement de texte \\
Mamias & \qquad \qquad & compacteur \\ 
C & \qquad \qquad & tableur \\
Pascal & \qquad \qquad & calcul formel \\ 
Windows 95 & \qquad \qquad & dessin assist\'e par ordinateur\\
Gzip & \qquad \qquad & navigateur\\
Maple&  \qquad \qquad & d\'eplaceur de fichier\\
GNU Emacs & \qquad \qquad & logiciel de biologie\\
\hline
\end{tabular}

\section{Programmes en C}


Que va afficher le pogramme suivant ?\\
\noindent
\#include $<$stdio.h$>$\\
main()\\
\{int $n$;\\
$n=15$;\\
if $(n<20)$ $n=n+1$; else $n=n-1$;\\
printf(``\%d'',$n$);\\
\}\\

Que va afficher le pogramme suivant ? (On rappelle que $n\%2$ renvoie n modulo 2).\\
\noindent
\#include $<$stdio.h$>$\\
main()\\
\{int $n$;\\
$n=15;$\\
while $(n!=1)$ \{if $(n\%2=1)$ $n=n+1$; else $n=n-1$; \}\\
\}\\
printf(``\%d'',$n$);\\
\}\\


Que va afficher le pogramme suivant ?\\
\noindent
\#include $<$stdio.h$>$\\
main()\\
\{int $n$;\\
$n=15$;\\
while $(n!=1)$ \{if $(n\%2=1)$ $n=3*n+1$; else $n=n/2$; \}\\
\}\\
printf(``\%d'',$n$);\\
\}\\

\section{Test de l'arr\^et}
Il a \'et\'e vu en TP un exemple de programme
dont personne ne savait dire s'il s'arr\^eterait 
un jour ou s'il pouvait tourner ``\`a l'infini''.

Il existe des programmes tr\'es simple qui ``bouclent'', 
par exemple :\\
$n=1$;while  $(n>0)$ \{$n=n+1$\}\\

Il serait donc utile d'avoir un moyen, un ``super-programme'' (que
l'on va appeler {\bf Arret}),
qui permette de ``tester'' 
si un programme $P$ va s'arr\^eter un jour ou pas.\\

Ce ``test de l'arr\^et'' marcherait ainsi,
 on taperait {\bf Arret}$(P)$,  et cela afficherait 
soit ``Le programme $P$  va s'arr\^eter.'' ;\\
soit ``Le programme $P$ ne va jamais s'arr\^eter.''\\
Malheureusement, il n'existe pas de tel ``super-programme''; 
prouvez-le, en faisant une d\'emonstration par l'absurde :
`` Suppossons que le ``super-programme'' {\bf Arret} existe, alors
.........''\\


(Indication: construire un programme $P$ du genre \\
if Arret(...) then  ..... else .....\\
et compl\'eter les points de suspensions pour aboutir \`a une
contradiction avec l'existence de {\bf Arret}).



\section{Le compte est bon [3+4+1 minutes, 5 points]}

Vous devez combiner les valeurs $(19)_{16},  (A)_{16},  (10)_2,
(2)_{35}, (7)_{10}, (10)_7$ 
afin de parvenir \`a 999 avec uniquement les op\'erations (+,-,/,*).\\
R\'eponse~: $(999)_{10}=\dotfill $\\

Sur une plan\`ete perdue dans la galaxie d'Androm\`ede, les
autochtones ont une tour Eiffel sur laquelle un compteur indique  ``an 2000 -
42 jours'', en quelle ann\'ee sont-ils ? 
(aide : les habitants de cette plan\`ete  ont, c'est bien connu, 7
doigts et une seule main et une ann\'ee dure 400 jours chez eux).\\
R\'eponse~: c'est la ............. ann\'ee de leur \`ere.

\section{Software [1+1 minutes, 2 points]}

Software peut se traduire par ..................... en fran\c cais. \\
MS-DOS, Windows, Unix, Linux sont des exemples de \dotfill\\
Que signifie le sigle MS-DOS ? \dotfill \\
Justifiez le nom Windows NT~: \dotfill \\
Donner un exemple de logiciel de traitement de texte : \dotfill \\

Vous \^etes sous MS-DOS, dans le sous-r\'epertoire 
c:$\backslash$private$\backslash$ et vous souhaitez aller sous 
c:$\backslash$private$\backslash$secret$\backslash$~;
quelle commande tapez-vous ? \dotfill \\
Puis quelle commande utilisez-vous 
pour avoir la liste des fichiers qui se trouvent ici ?\\
.\dotfill\\

\end{document}


