De Python `a C

publicité
Licence Mathématiques
Université Bordeaux 1
INF163-Programmation Impérative
Feuille 0
De Python à C :
(exercices à préparer pour le TD sur machine de mardi 15/09)
Premier exemple :
Si l’on veut définir en Python la fonction g : x −→ x2 + x + 1 on écrit :
def g(x):
return x*x + x + 1
Si l’on veut définir cette fonction en C, il faut définir le type du paramètre x. Si l’on veut
pouvoir donner en argument à la fonction des nombres réels, on écrira :
float g(float x)
{
return x*x + x + 1;
}
Le premier float spécifie le type du résultat de la fonction, le deuxième spécifie le type du
paramètre. Pour tester la fonction g (avec un argument constant, on verra en TD comment
lui fournir un argument saisi au clavier lors de l’exécution du programme) on édite et ensuite
on compile un fichier contenant le texte suivant 1 :
#include <stdio.h>
#include <stdlib.h>
float g(float x)
{
return x*x + x + 1;
}
int main(void)
{
printf("%f \n" , g(5));
return EXIT_SUCCESS;
}
Supposons d’avoir appelé test_g.c le fichier, la commande de compilation :
gcc -Wall -std=c99 test_g.c -o test_g
1
des amples commentaires sur le contenu de ce fichier seront faits en TD
1
génère un fichier exécutable test_g.
Pour exécuter la programme il faut taper la commande
./test_g
dans une fenêtre terminal.
Deuxième exemple :
La fonction max(x, y) qui renvoie le maximum de deux nombres x et y s’écrit en Python :
def max(x, y):
if x >= y:
return x
else:
return y
Si on la traduit en C par :
float max(float x, float y)
{
if (x>=y)
return x;
else
return y;
}
on pourra l’utiliser avec des arguments réels. Mais si on a besoin d’une fonction qui retourne
le maximum entre deux nombres entiers, on définira plutôt la fonction :
int max(int x, int y)
{
if (x>=y)
return x;
else
return y;
}
Exercice
Écrire une fonction int max3(int x, int y, int z) qui renvoie le maximum de trois nombres
entiers x, y et z. Donner plusieurs versions de cette fonction dont une utilise la fonction max
ci-dessus.
2
Téléchargement