#include <stdio.h>
/*
This program print ``Hello world’’
*/
int main(int argc, char *argv[])
{
printf("Hello world\n");
return 0;
}
example-01.c
en un exécutable example-01
:
cc -std=c99 -Wall -o example-01 example-01.c
(vous pouvez aussi remplacer -Wall
par -Werror
)example-01
: ./example-01
a
puis aller à la ligne : printf("%d\n", a);
ex-0.c
)cc
Seules le
if
et lewhile
doivent êtres utilisées dans cette feuille de td.
Fichier
pgcd.c
On souhaite écrire une fonction qui calcule le PGCD (plus grand commun diviseur) de deux nombres entiers. Pour cela on rappelle l’algorithme d’Euclide: \(pgcd(a,0) = a\) et pour \(b \not= 0 \Rightarrow pgcd(a,b) = pgcd(b, a~mod~b)\)
pgcd_rec
qui implémente l’algorithme d’Euclide de façon récursive.main
. Pensez à tester plusieurs cas.pgcd_iter
qui implémente l’algorithme d’Euclide sans récursion.Le but de ces exercices est de se familiariser avec le C et les tableaux.
Fichier
array.c
main()
qui affiche un tableau de littéraux (i.e., constantes écrites en dur dans le code).n
premiers nombres pairs. Comment est-il possible de communiquer le résultat à la fonction appelante ?main
.Écrivez une fonction
main()
permettant de tester les fonctions au fur et à mesure que vous les écrivez. Vous vous servirez des fonctions écrites précédemment pour saisir et afficher les tableaux d’entiers. Cette remarque est valable pour tous les exercices à venir !
Le triangle de Pascal est constitué des coefficients binomiaux :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
...
Une façon aisée de calculer ce triangle est de constater qu’une ligne se déduit de la précédente avec la formule suivante :
\[C^{k}_{n+1} = C^{k-1}_{n} + C^{k}_{n}\]void pascal_ligne(int n, int valeurs[]);
, où valeurs
contient déjà les valeurs de la ligne précédente.affiche_pascal
qui affiche les \(n\) premières lignes du triangle de pascal.main
pour que \(n\) soit passé en paramètre sur la ligne de commande. Attention aux erreurs d’utilisations.
fibo_rec
qui calcule récursivement le \(i\)ème terme de la suite de fibonnaci en fonction des termes \(i - 1\) et \(i - 2\)main
. Pensez à tester plusieurs cas.fibo_iter
qui calcule itérativement le \(i\)ème terme de la suite et le stocke dans un tableau (mémoïsation).valeur resultat
(mettez une tabulation \t
à la place d’un espace, c’est plus joli)../monprogramme > resultat.dat
plot 'resultat.dat' with lines
rand()
) et dessiner avec gnuplot la courbe pour sort
et les deux recherches