À chaque étape de programmation, vous devez vérifier si le programme :
gcc -Wall exo.c -o nomExecutable
./nomExecutable
#include <stdio.h>
#include <stdlib.h>
/* exo 1 : le sapin */
int main(){
return 0;
}
/* Auteur : ... */
/* Date : ... */
/* Résumé : procédure qui prend en paramètre un nombre puis affiche un sapin de noël en utilisant uniquement les caractères ASCII */
/* Entrée(s) : La taille du sapin */
/* Sortie(s) : aucunes */
void sapin (int nbBranches);
*
***
*****
*******
*********
@ @
/* Auteur : ... */
/* Date : ... */
/* Résumé : procédure qui prend en paramètre un nombre puis affiche un sapin de noël en utilisant uniquement les caractères ASCII. Cette procédure rajoute des boules de noël toutes les 2 lignes et une étoile en haut du sapin*/
/* Entrée(s) : La taille du sapin */
/* Sortie(s) : aucunes */
void pimpMySapin (int nbBranches);
#include <stdio.h>
#include <stdlib.h>
/* exo 2 : Le nombre d’Armstrong */
int main(){
return 0;
}
Exemple: 153 : 13 + 53 + 33 = 1 + 125 + 27 = 153
Quelques nombres d’Armstrong : 1, 153, 370, 371, 407.
/* Auteur : ... */
/* Date : ... */
/* Résumé : prédicat qui permet d'identifier si un nombre, passé en paramètre est un nombre d’Armstrong */
/* Entrée(s) : Le nombre à tester (strictement positif */
/* Sortie(s) : aucunes */
int estArmstrong (int nb);
#include <stdio.h>
#include <stdlib.h>
/* exo 3 : Les nombres binaires */
int main(){
return 0;
}
/* Auteur : ... */
/* Date : ... */
/* Résumé : procédure qui prend en paramètre un entier naturel n et affiche son écriture binaire (en base 2) */
/* Entrée(s) : un entier */
/* Sortie(s) : aucunes */
void nombreBinaire (int nb);
nombreBinaire
#include <stdio.h>
#include <stdlib.h>
/* exo 4 : Rang de factorielle */
int main(){
return 0;
}
/* Auteur : ... */
/* Date : ... */
/* Résumé : fonction qui calcule pour un entier k donné, le plus grand entier n tel que n ! ≤ k . Attention, Ne pas faire trop de multiplications */
/* Entrée(s) : un entier */
/* Sortie(s) : un entier */
int rangFactorielle (int k);
#include <stdio.h>
#include <stdlib.h>
/* exo 5 : Cryptographie 101 */
int main(){
return 0;
}
Un des plus anciens systèmes de cryptographie (aisément déchiffrable) consiste à décaler les lettres d’un message pour le rendre illisible. Ainsi,les A deviennent des B, les B des C, etc.
/* Auteur : ... */
/* Date : ... */
/* Résumé : une procédure qui prend une chaine de caractères et qui la code selon ce principe, puis affiche le résultat à l’écran */
/* Entrée(s) : une chaine de caractères */
/* Sortie(s) : aucunes */
void crypto101 (char maPhrase[100],char maPhraseCryptee[100]);
/* Auteur : ... */
/* Date : ... */
/* Résumé : une procédure qui prend une chaine de caractères cryptee et qui la decode selon ce principe, puis affiche le résultat à l’écran */
/* Entrée(s) : une chaine de caractères */
/* Sortie(s) : aucunes */
void decrypto101 (char maPhraseCryptee[100],char maPhrase[100]);
Afin de saisir une chaîne complexe, le fichier exCh.c illustre l’utilisation des fonctions fgets et getline. L’utilisation de ces fonctions utilisent néanmoins la notion de pointeurs, qui sera abordée plus tard. Attention à la taille de vos variables. Étudiez le comportement de ce code si vous saisissez des chaînes inférieures à la taille prédéfinie, puis supérieures.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char maPhrase[100];
("Entrez la phrase : \n");
printf("%s", maPhrase);
scanf
("La phrase que vous avez rentrée avec le scanf : %s ", maPhrase);
printf
("Entrez la phrase : \n");
printf(maPhrase,sizeof(char)*100,stdin);
fgets
("La phrase que vous avez rentrée avec le fgets : %s ", maPhrase);
printf
return 0;
}
Pour connaître la taille d’une chaîne de caractères, vous pouvez utiliser la fonction strlen. Attention : pour pouvoir l’utiliser, il faut importer la bibliothéque string.h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int taille;
char maPhrase[100];
("Entrez la phrase : \n");
printf(maPhrase,sizeof(char)*100,stdin);
fgets=strlen(maPhrase)-1;
taille("La taille de maPhrase est %ld \n",taille);
printfreturn 0;
}
Afin de décaler les lettres on peut utiliser les notations de l’alphabet de lettre à chiffre. Par exemple, la lettre a si on l’affiche en format Entier ça devient 98.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int taille;
("Entrez la phrase : \n");
printf(maPhrase,sizeof(char)*100,stdin);
fgets=strlen(maPhrase)-1;
taille
for (int i=0; i<taille; i++){
("%c => %d ", maPhrase[i],maPhrase[i]);
printf}
("\n");
printfreturn 0;
}
#include <stdio.h>
#include <stdlib.h>
/* exo 6 : Le chiffre de César */
int main(){
return 0;
}
Une amélioration du principe précédent consiste à opérer avec un décalage arbitraire. Au lieu de décaler de 1 les lettres, c’est l’utilisateur qui choisira le décalage.
Par exemple, si on choisit un décalage de 12, les A deviennent des M, les B des M …
Écrire une procédure qui prend une chaine de caractères, le décalage et qui la code selon ce principe.
Écrire une procédure qui réalise l’opération inverse.
Écrire le programme principal.