TD structures de controle, chaines et tableaux

Exercice :

écrire un programme qui permet de saisir une chaine au clavier et qui l'affiche


Exercice :

écrire une fonction mylen(char s[])qui calcule la longueur d’une chaine s.


Exercice :

écrire un programme qui lit deux chaines de caractères et les compare :

  • retourne 0 si les deux chaines sont égales
  • retourne -1 si la première chaîne est plus petite suivant l’ordre lexicographique
  • retourne1 sinon


Exercice :

écrire une fonction qui retourne vrai lorsque la chaine passée en paramètre est un palindrome.


Dans la suite de ce TD nous allons définir une bibliothèque permettant de manipuler des grands nombres.

Afin de simplifier le problème nous considérons qu'un grand nombre est représenté par un nombre de chiffres qui sera fixé (à 100 par exemple).


Exercice

écrire une fonction void chaineVersTableau(int a[], char chaine[]) qui convertit la chaine de caractères en un tableau d'entiers (chaque case du tableau correspond à un chiffre compris entre 0 et 9)


écrire une fonction void afficher(int a[]) qui affiche à l'écran le grand nombre


exemple de code :

char sa[] = "1234";
int a[N];
chaineVersTableau(a,sa);
afficher(a);

Exercice

écrire une fonction init qui permet d'initialiser un grand nombre à partir d'un entier codé par un int


exemple de code :

int a[N];

init(a,1);

afficher(a);


Exercice

écrire une fonction addition(int a[], int b[]) qui permet d'additionner deux grands nombres (a = a + b)


Exercice

écrire une fonction multiplication(int a[], int b[]) qui permet de multiplier deux grands nombres (a = a * b)

vous pouvez introduire des fonctions intermédiaires permettant de simplifier l'écriture de la fonction multiplication


Exercice

écrire une fonction fact(int a[], int n) permettant de calculer n!

calculer 10!, puis 20!


pour les plus rapides


Exercice

implanter l'algorithme de multiplication de Karastuba

Comments