Les pointeurs
Durée : 1h30
Objectifs :
- Manipuler les pointeurs
- Allouer de l’espace mémoire
- Utiliser des adresses de variables
- Mettre en pratique ce qui a été vu en TD !!
Attention :
À chaque étape de programmation, vous devez vérifier si le programme :
- Compile sans warning
- Obtient les résultats attendus
- Avant de coder, il faut écrire un algo avec un papier et un stylo !
Rappel si problème mémoire
Exo 0 : Environnement de Travail
- Créer un répertoire “INFO2”
- Dans le répertoire “INFO2”, ajouter le répertoire “TP1”
- Pour chaque exercice, créer un dossier correspondant “exo1”, “exo2” …
Exo 1 : Une équation du second degrés
L’objectif est d’externaliser le calcul la résolution d’une équation du second degré sur une procédure. \[ax^2 + bx + c\]
Rappel :
- Les scanfs :
- double : %lf
- float : %f
- int : %d
- Les racines carrées : sqrt
- Les puissances : pow
1. Créer le fichier main.c
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("C'est le TP1 ! \n");
return 0;
}
Compiler et exécuter !
Ce qui doit apparaître à l’écran !
2. Dans le programme principal, demander à l’utilisateur de saisir 3 réels.
Si vous souhaitez n’afficher que n chiffres après la virgule d’un réel, vous pouvez utiliser l’instruction suivante :
double monReel;
printf("entrez un réel \n");
scanf("%lf",&monReel);
printf("Mon réel avec tous les chiffres après la virgule %lf \n",monReel);
printf("Mon réel avec 2 chiffres après la virgule %.2lf \n",monReel);
printf("Mon réel avec 3 chiffres après la virgule %.3lf \n",monReel);
Compiler et exécuter !
Ce qui doit apparaître à l’écran !
3. Créer la fonction permettant de calculer le delta.
double calculerDelta (double a, double b, double c){
Pour cette partie, vous pourrez utiliser la fonctionnalité pow. Elle permet de calculer une puissance.
Exemple d’utilisation
Pour calculer 2 exposant 4 nous pouvons utiliser les instructions suivantes :
À la compilation, il ne faut pas oublier de rajouter -lm :
gcc -Wall exo1.c -o exo1 -lm
Pour pouvoir utiliser la fonctionnalité pow qui calcul une puissance il faut : 1. inclure la librairie math.h (en haut dans le fichier) 2. ajouter une instruction à la compilation (dans le terminal)
Compiler et exécuter !
Ce qui doit apparaître à l’écran !
4. Créer la procédure permettant de calculer les solutions.
void solutions(int* nbsolution, double* s1, double* s2,double a, double b, double c);
Compiler et exécuter !
Ce qui doit apparaître à l’écran !
Exo 2 : La gestion d’un restaurant
Nous considérons un restaurant de Burger. Un burger peut comporter les aliments suivants :
- Tranche d’emmental
- Steak
- Steak vegan
- Tranche de tomate
- Feuille de salade
- Cornichon
1. Créer le fichier main.c
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("C'est le TP1 !");
return 0;
}
2. Créer la fonction vérifierStock.
Elle permet de vérifier si un aliment est toujours en stock, la fonction retourne le nombre d’élément en stock sinon elle retourne -1
3. Créer la procédure ravitaillerAliment.
Elle permet à un restaurateur d’ajouter un aliment au stock
4. Créer un programme principal.
Il permet :
- de demander à l’utilisateur d’initialiser les stocks au début du programme
- d’utiliser les fonctionnalités précédement codées