coursc/TP1-2011.tex
Florian Maury 0b4615ed74 initial
2014-02-24 18:38:56 +01:00

88 lines
3.3 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass[11pt]{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\addtolength{\hoffset}{-1in}
\addtolength{\voffset}{-1.5in}
\setlength{\oddsidemargin}{1cm}
\setlength{\textwidth}{19cm}
\setlength{\headheight}{0pt}
\setlength{\topmargin}{1cm}
\setlength{\textheight}{27cm}
\pagestyle{empty}
\title{TP 1}
\author{Florian Maury}
\begin{document}
\maketitle
\section{Démarrer avec Visual Studio 2010}
\begin{enumerate}
\item Démarrer Visual Studio C++ 2010
\item Choisir C++
\item Créer un projet par programme/exercice
\item Fichier -> Nouveau -> Projet -> Projet vide
\item Sur ``fichiers sources'', clic-droit -> ajouter -> fichier -> fichier .cpp
\end{enumerate}
\section{Exercice}
\'Ecrire un programme permettant de calculer le reste de la division d'un premier nombre par un second. \\
Vous devez coder cette fonctionnalité en utilisation ni / ni \%. \\
Tous les cas doivent être envisagés.
\par
Pour saisir les deux nombres, vous pouvez déclarer deux \verb|int|, et utiliser \verb|scanf()| de la façon suivante~:
\begin{verbatim}
int leftOperand, rightOperand, result, reminder;
scanf("%d", &leftOperand);
scanf("%d", &rightOperand);
\end{verbatim}
\par
L'affichage de la réponse peut être fait avec le code suivant~:
\begin{verbatim}
printf("%d divisé par %d donne %d et un reste de %d\n", leftOperand, rightOperand, result, reminder);
\end{verbatim}
Les fonctions \verb|printf()| et \verb|scanf()| nécessitent l'inclusion de la bibliothèque $<$stdio.h$>$.
\section{Exercice~: Jeu de la puce}
Une puce se déplace linéairement et toujours dans le même sens. Elle part de la position zéro. Sur son déplacement, des trous sont placés aux positions multiples de 7 et aux positions multiples de 3. Le joueur doit saisir la longueur du saut qui devra être comprise en 1 et 9 inclus.
La partie sachève lorsque la puce tombe dans un trou (partie perdue) ou lorsquelle a réussi à faire 10 sauts sans tomber (partie gagnée).
Ecrire lalgorithme de ce petit jeu en prenant soin de ne pas afficher la position courante de la puce, mais en inscrivant à chaque itération le nombre de saut. Veillez à ce que lutilisateur ne puisse saisir de valeurs incohérentes.
\section{Exercice}
Le programme suivant comporte une boucle infinie. Mais lors de lexécution celui-ci sarrête.
\begin{verbatim}
#include <stdio.h>
int main() {
int i;
i=1;
do {
i=2*i;
} while (i<2*i);
printf("i=%d\t2*i=%d\n",i,2*i);
}
\end{verbatim}
\begin{enumerate}
\item Taper et exécuter ce programme.
\item Pourquoi lexécution se termine-t-elle ?
\item En déduire un programme pour déterminer la plus grande et la plus petite valeur que lon peut stocker dans le type int.
\item Quels sont ces valeurs ?
\item Quel est le temps dexécution de ce programme ? (utiliser la bibliothèque $<$windows.h$>$)
\item Proposer un second programme basé sur celui que vous venez de réaliser pour augmenter son efficacité.
\end{enumerate}
\section{Exercice~: Les montagnes russes}
Ecrire un programme qui génère laffichage suivant :
\begin{verbatim}
* * *
*** *** ***
***** ***** *****
*********************
\end{verbatim}
Proposer une version qui demande à lutilisateur le caractère à afficher, la hauteur des montagnes et le nombre de sommets.
\end{document}