Consignes à respecter sous peine d'avoir 0

  • Créer un répertoire à la racine de votre compte appelé tpnoteC1. La commande "mkdir ~/tpnoteC1" devrait faire l'affaire.
  • Placez vous dans ce répertoire ("cd ~/tpnoteC1"). A aucun moment vous ne devez vous trouver dans un autre répertoire, avec quelque logiciel que ce soit. Si vous êtes surpris à consulter un autre répertoire, même accidentellement, c'est 0.
  • Créer un fichier .c avec la commande :
    touch "$USER".c
    cela devrait créer un fichier nommé à partir de votre login esiee avec l'extention .c Si vous utilisez votre machine personnelle, remplacez $USER par votre login esiee. Vous devrez dans la suite éditer uniquement ce fichier, avec le logiciel de votre choix.
  • Compilez toujours avec gcc -ansi -Wall -pedantic "$USER".c
    Les exercices qui ne compilent pas ne sont pas corrigés, ceux qui ont des warnings seront corrigés mais il y aura des pénalités.
  • Toutes les fonctions demandées doivent être dans un même fichier, et une fonction main permettant de toutes les tester doit être fournie (vous pouvez commenter au fur et à mesure des parties du main si elles vous gênent).
  • Une fonction fx() peut appeler une fonction fy() si y<x
  • Vous pouvez écrire des fonctions intermédiaires non demandées si elles vous facilitent l'écriture d'une fonction demandée

Minimum syndical

  1. Écrire en C une fonction f1() qui affiche "je suis une procedure"
  2. Écrire une fonction f2() qui calcule la différence entre 2 réels passés en paramètre
  3. Écrire une fonction f3() qui affiche la somme de 4 entiers passés en paramètre

Structures conditionnelles, Récursivité

  1. Écrire une fonction RÉCURSIVE f4() qui affiche les entiers associés aux caractères de l'alphabet sur votre machine, un caractère suivi de son code par ligne. Dans les tables de caractères, les entrées correspondant aux lettre de l'alphabet se suivent dans l'ordre lexicographique (alphabetique). En revanche, vous ne savez pas a priori quel numéro est associé à la lettre a. Exemple de sortie attendue :
    a	97
    b	98
    c	99
    d	100
    e	101
    f	102
    g	103
    h	104
    i	105
    j	106
    k	107
    l	108
    m	109
    n	110
    o	111
    p	112
    q	113
    r	114
    s	115
    t	116
    u	117
    v	118
    w	119
    x	120
    y	121
    z	122
    
  2. Écrire une fonction récursive f5() qui renvoie la taille d'une chaîne de caractère. Un seul paramètre : la chaîne (Rappel : une chaine de caractère est stockée dans un tableau de char et désigne l'ensemble des caractères situés avant de rencontrer le premier caractère '\0').
  3. Écrire une fonction récursive f6() qui renvoie la somme des entiers associés aux lettres composant la chaine dans la table de caractère du système. Un seul paramètre : la chaîne. Exemple, en supposant que la table est la même que celle affichée dans l'énoncé de f4, la fonction renvoie 326 (104+101+121) pour le mot hey

Instructions conditionnelles, boucles, tableaux

À partir d'ici vous n'avez plus le droit d'écrire de fonctions récursives.
  1. Écrire une fonction f7() à qui l'on donne deux entiers a et b et qui test si a est divisible par b. La fonction :
    #include <stdio.h>
    void affiche_f7(int a, int b)
    {
    	if(f7(a,b))
    	{ 
    		printf("%d divise %d\n",b,a);
    	}
    	else
    	{ 
    		printf("%d ne divise pas %d\n",b,a);
    	}
    }
     
    doit fonctionner correctement.
  2. Écrire une fonction f8() qui affiche un tableau d'entiers en sautant une case sur deux.
  3. Écrire une fonction f9() qui fait la même chose que f4() mais programmée avec une boucle

Rendre le tp

Vérifiez que votre fonction main() permet de tester toutes les fonctions : elle doit contenir au moins un appel a chaque fonction fx(), ou un appel à une fonction intermédiaire (par exemple affiche_f7() pour f7()). Le main représente la moitié des points du contrôle (pour chaque fonction, la moitié des points pour la fonction, la moitié pour le code qui appel la fonction).

Vérifiez que votre code compile sans warnings ni erreurs.

Rendez vous sur le webmail de l'école et envoyer un mail à damien.masson@esiee.fr avec pour objet "[TPNOTE_C1_GROUPE1_2016]". Mettez en pièce jointe le fichier .c, et mettez vous en copie du mail. Vérifiez ensuite que vous avez bien reçu le mail et que vous arrivez à ouvrir la pièce jointe. Vous pouvez maintenant attendre en silence la fin du temps impartis et mon autorisation pour quitter la salle en silence.