Licence Math´ematiques
Universit´e Bordeaux 1
INF163-Programmation Imp´erative
Feuille 0
De Python `a C :
(exercices `a pr´eparer pour le TD sur machine de mardi 15/09)
Premier exemple :
Si l’on veut d´efinir en Python la fonction g:xx2+x+ 1 on ´ecrit :
def g(x):
return x*x + x + 1
Si l’on veut d´efinir cette fonction en C, il faut d´efinir le type du param`etre x. Si l’on veut
pouvoir donner en argument `a la fonction des nombres r´eels, on ´ecrira :
float g(float x)
{
return x*x + x + 1;
}
Le premier float sp´ecifie le type du r´esultat de la fonction, le deuxi`eme sp´ecifie le type du
param`etre. 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´ecution du programme) on ´edite 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´e test_g.c le fichier, la commande de compilation :
gcc -Wall -std=c99 test_g.c -o test_g
1des amples commentaires sur le contenu de ce fichier seront faits en TD
1
g´en`ere un fichier ex´ecutable test_g.
Pour ex´ecuter la programme il faut taper la commande
./test_g
dans une fenˆetre terminal.
Deuxi`eme exemple :
La fonction max(x, y) qui renvoie le maximum de deux nombres xet ys’´ecrit 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´eels. Mais si on a besoin d’une fonction qui retourne
le maximum entre deux nombres entiers, on d´efinira plutˆot la fonction :
int max(int x, int y)
{
if (x>=y)
return x;
else
return y;
}
Exercice
´
Ecrire 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
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !