Vous trouverez les énoncés des TD sur le moodle du cours ici.
TD 2 : premiers pas en C
Identificateurs
Un identificateur
en C sert à identifier une variable (mais pas que ... on verra plus tard qu'il peut aussi à identifier autre chose qu'une variable), ou plus simplement la nommer. Il renseigne au programme à quel endroit de la mémoire récupérer la valeur de la variable qu'il identifie. Il est donc important de bien nommer nos variables. Pour cela il existe quelques règles à respecter :
-
Un identificateur doit être une suite de lettres (sans caractère accentué) et/ou de chiffres, l'unique autre caractère autorisé est l'underscore :
_
. - Un identificateur doit obligatoirement commencer par une lettre, mais peut également commencer par un underscore.
- Un identificateur ne peut être un mot-clé du langage (par exemple: int ou main ne sont pas valides)
Donc ici rendez_vous
est valide tandis que 1par1
ne l’est pas car commence par un chiffre et else
non plus puisque c’est un mot-clé du langage.
Déclaration et affectation de variables impératives
-
Une
affectation
de variable signifie donner/assigner une valeur à une variable. -
Le signe de l'affectation en C est le signe
=
. La partie à gauche du signe d'affectation doit désigner une variable tandis que celle à droite est une expression dont la valeur sera évaluée et affectée dans la variable de gauche.
Du coup pour la question 1, j’ai mis en commentaire ce que fait le programme.
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdlib.h>
#include <stdio.h>
int main() {
int x; // déclaration d'un variable de type entière x
x = 3; // affectation de la valeur 3 dans x
x = x + 1; // affectation de la dernière valeur de x plus 1 dans x
printf("x = %d\n", x); // affiche à l'écran x = 4
return EXIT_SUCCESS;
}
Trace d'un programme
Il s'agit de faire une simulation d'execution du programme dans un tableau : c'est-à-dire regarder ligne par ligne quels sont les valeurs successives que prennent nos variables. On peut également afficher ce qui sort à l'écran.
Ecriture d'un programme
- On va procéder à peu près de cette manière pour tout le cours. Pour chaque problème donné en TD: proposer un algorithme, écrire en C le programme correspondant, puis en faire la trace.
- Écrire un algorithme revient à écrire des phrases en français qui décrit les étapes à suivre pour résoudre le problème.
- Un algorithme peut prendre quelque chose en entrée et renvoyer quelque chose en sortie. Par exemple un algorithme de tri peut prendre un tableau en entrée et renvoyer un tableau trié. Mais il peut également ne rien prendre en entrée ni rien renvoyer en sortie. Par exemple un algorithme qui permet d'afficher 100 fois le mot "bonjour". Il faut faire la différence entre Renvoyer et Afficher.
Dans notre exercice, l'algorithme ne prend rien en entrée car la valeur dont on va calculer le carré et le cube sera directement initialisée dans notre algo. Il ne renvoie rien en sortie, on affichera juste un résultat.
Ensuite, pour écrire le code correspondant, il faudra transcrire ligne par ligne notre algorithme en langage C.
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
#include<stdlib.h>
int main() {
int x, carre, cube;
x = 2;
carre = x * x;
cube = carre * x;
printf("x^2 = %d et x^3 = %d\n", carre, cube)
return EXIT_SUCCESS;
}
Trace du programme
Je vous laisse le soin de faire la trace du programme :).