T.P. N°2 - Le langage C - Exemples, Les fonctions, les paramètres, les bibliothèques.
Mercredi 21 septembre et vendredi 23 septembre 2016
Première partie du T.P. (à faire dans tous les T.P.)
Créer un document dans lequel vous allez rédiger votre T.P.
et copiez un lien dans la page de dépose de votre groupe.
ATTENTION pensez à mettre le document en partage.
Numérotez chaque question en la préfixant par le numéro de partie, par exemple
3.2
Seconde partie du T.P.
Vous allez installer une machine virtuelle Debian sur VirtualBox
Pour cela vous allez suivre les étapes suivantes :
1 - Récupérer la machine virtuelle
deb8Free
2 - Lancer virtualBox.
3 - Charger le vdi dans VirtualBox.
4 - Lancer la machine virtuelle :
Les comptes :
- Login : root -- mot de passe : d27 (sur DebianMoi)
- Login : root -- mot de passe azerty (sur Debian8Free)
- Login etudiant -- mot de passe azerty (sur Debian8Free)
Le fait de voir comme invite
root@debian:# indique que vous êtes administrateur de la machine --> le #.
5 - Vérifier que le réseau de la machine est en mode
PONT.
6 - Utilisez les commandes ifconfig, mii-tool puis dhclient ethx (cf le résultat de la commande mii-tool)
7 - Pour terminer utilisez la commande
ifconfig.
8 - Vérifier que vous avez accès à Internet.
9 - Mettre à jour votre machine
apt-get update puis
apt-get upgrade.
10 - Ajouter ssh sur la machine Debian, saisir la commande :
apt-get install ssh
11 - Mettez en place une connexion à cette machine virtuelle via une connexion ssh (putty).
Troisième partie, la programmation.
Vous devez être sur la fenêtre de connexion
ssh grâce au logiciel
putty.
Pour réaliser cette partie connectez vous avec comme login "etudiant" et mot de passe "azerty"
Nous allons vérifier que le langage C est installé ...
Auparavant créer un répertoire progs dans /home/etudiant/ :
cd /home/etudiant/ puis saisissez mkdir progs
Ensuite il faut entrer dans le répertoire progs :
cd progs
Pour vérifier saisir la commande
pwd :
- etudiant@debianfree:~$ pwd
- /home/etudiant
- etudiant@debianfree:~$
Commençons par saisir un court programme, vous utiliserez l'éditeur de texte
nano (possède les mêmes fonctions que notepad) :
Vous devrez saisir
nano bonjour.c
#include <stdio.h>
int main()
{
printf("Bonjour\n");
}
Pour créer un fichier exécutable saisissez :
gcc bonjour.c
Le fichier généré se nomme :
a.out
Pour l'exécuter vous devrez saisir :
./a.out
1 - Quel résultat obtenez-vous ?
Vous allez maintenant saisir le programme suivant sous le nom
nbcache.c :
/* Jeu du nombre caché
* auteur : Emds
* date : 27/04/2011
*/
//—- bibliothèques nécessaires —-
#include <stdio.h> // pour le printf et scanf
#include <conio.h> // pour le getch
#include <stdlib.h> // pour le system("cls")
//—- programme principal —-
int main () {
// déclarations
int valeur, essai, nbre = 1 ;
// saisie du nombre à chercher
printf("Entrez le nombre \x85 chercher =") ;
scanf("%d",&valeur) ;
system("cls") ;
// boucle sur la saisie des essais
printf("Entrez un essai =") ;
scanf("%d",&essai) ;
while (essai != valeur) {
if (essai > valeur) {
printf("trop grand !") ;
}else{
printf("trop petit !") ;
}
printf("\nEntrez un nouvel essai =") ;
scanf("%d",&essai) ;
nbre++ ;
}
// résultat
printf("Vous avez trouv\x82 en %d essais", nbre) ;
getch() ;
return 0 ;
}
Créez un exécutable (c.f. plus haut)
Le programme généré se nomme toujours par défaut
a.out
2 -
- Exécutez le programme avec la commande ./a.out
- Qu'obtenez-vous ?
- Votre mission est de trouver pourquoi cela ne fonctionne pas et quelles correctifs sont à réaliser.
3 - Présentez ce code de manière plus correct (avec les indentations).
4 - En réalisant une recherche sur Internet, trouvez comment lui donner un autre nom, par exemple
nbcache.
Quatrième partie, les algorithmes du cours.
Codez les algorithmes vues en cours en langage C.
- Échange de deux variables.
- Tri de trois nombres.
- A partir du montant TTC et du taux de T.V.A. calculer le montant H.T. et le montant de la T.V.A.
- Tri de N nombres.
- Calcul d'une racine carré grâce à l'utilisation d'une suite.
Méthode de Héron.
- Écrire une autre version du nombre caché à partir de l'algorithme vu en cours.