Saisir l’âge de l’utilisateur et lui dire s’il est majeur.
Saisir une valeur, afficher sa valeur absolue.
Saisir une note, afficher "ajourné" si la note est inférieure à 8, "rattrapage" entre 8 et 10, "admis" dessus de 10.
Une compagnie d’assurance effectue des remboursements sur lesquels est ponctionnée une franchise correspondant à 10 % du montant à rembourser. Cependant, cette franchise ne doit pas excéder 4000 euros. Demander à l’utilisateur de saisir le montant des dommages, afficher ensuite le montant qui sera remboursé ainsi que la franchise.
Afficher sur deux valeurs saisies le nombre de valeurs disctinctes.
Afficher sur trois valeurs saisies la plus petite.
Ecrire un algorithme qui demande à l’utilisateur de saisir trois valeurs et qui lui dit s’il s’y trouve un doublon.
Afficher sur trois valeurs saisies le nombre de valeurs disctinctes.
Saisir les coefficients a et b et afficher la solution de l’équation ax + b = 0.
Saisir les coefficients a, b et c, afficher la solution de l’équation ax2 + bx + c = 0.
Dans le problème suivant, vous serez confronté au problème dit de
saisie bufferisée (ce néologisme est très
vilain). Explication : lorsque vous saisissez des valeurs au clavier,
elles sont placées dans le tampon de saisie (buffer). Une fois que
vous avez saisi <entrée>, (le caractère
'$\setminus$n'
), les
données sont lues directement dans le buffer par
scanf
. Mais
cette fonction ne lira que le caractère qui a été saisi, et
le
'$\setminus$n'
qui a validé la saisie restera dans le buffer
jusqu’à la prochaine saisie d’un
caractère. L’instruction
getchar();
lit un octet dans le
buffer. Donc, à chaque fois que vous avez placé
un
'$\setminus$n'
dans le buffer, pensez à le vider avec
un
getchar();
.
Ecrire un programme demandant à l’utilisateur de saisir
Puis affichez le résultat de l’opération a op b.
On indice les cases d’un échiquer avec deux indices i et j variant tous deux de 1 à 8. La case (i, j) est sur la ligne i et la colonne j. Par convention, la case (1, 1) est noire.
Ecrire un programme demandant à l’utilisateur de saisir les deux coordonnées i et j d’une case, et lui disant s’il s’agit d’une case blanche ou noire.
Ecrire un programme demandant à l’utilisateur de saisir les coordonnées (i, j) d’une première case et les coordonnées (i′, j′) d’une deuxième case. Dites-lui ensuite s’il est possible de déplacer un cavalier de (i, j) à (i′, j′).
Même exercice avec la tour, le fou, la dame et le roi. Utilisez un switch et présentez le programme de la sorte :
Quelle piece souhaitez-vous deplacer ? 0 = Cavalier 1 = Tour 2 = Fou 3 = Dame 4 = Roi 3 Saisissez les coordonnees de la case de depart : A = 2 A = 1 Saisissez les coordonnees de la case d'arrivee : A = 6 A = 5 Le mouvement (2, 1) -> (6, 5) est valide.
Ecrire un programme qui demande à l’utilisateur de saisir une heure de début (heures + minutes) et une heure de fin (heures + minutes aussi). Ce programme doit ensuite calculer en heures + minutes le temps écoulé entre l’heure de début et l’heure de fin. Si l’utilisateur saisit 10h30 et 12h15, le programme doit lui afficher que le temps écoulé entre l’heure de début et celle de fin est 1h45. On suppose que les deux heures se trouvent dans la même journée, si celle de début se trouve après celle de fin, un message d’erreur doit s’afficher. Lors la saisie des heures, séparez les heures des minutes en demandant à l’utilisateur de saisir :
Ecrire un programme permettant de saisir une date (jour, mois, année), et affichant la date du lendemain. Saisissez les trois données séparément (comme dans l’exercice précédent). Prenez garde aux nombre de jours que comporte chaque mois, et au fait que le mois de février comporte 29 jours les années bissextiles. Allez sur http://fr.wikipedia.org/wiki/Ann\%C3\%A9e_bissextile pour connaître les règles exactes, je vous avais dit que les années étaient bissextiles si et seulement si elles étaient divisible par 4, après vérification, j’ai constaté que c’était légèrement plus complexe. Je vous laisse vous documenter et retranscrire ces règles de la façon la plus simple possible.
Demandez à l’utilisateur de saisir les deux bornes a et b d’un intervalle [a, b]. Contrôler les valeurs saisies.
Demandez-lui ensuite de saisir une valeur x, dites-lui si x ∈ [a, b]
Demandez-lui ensuite de saisir les bornes d’un autre intervalle [a′, b′]. Contrôlez la saisie. Dites-lui ensuite si
Nous représenterons un rectangle R aux cotés parallèles aux axes des abscisses et ordonnées à l’aide des coordonnées de deux points diamétralement opposés, le point en haut à gauche, de coordonnées (xHautGauche, yHautGauche), et le point en bas à droite, de coordonnées (xBasDroite, yBasDroite). Demander à l’utilisateur de saisir ces 4 valeurs, contrôlez la saisie.
Demandez à l’utilisateur de saisir les 2 coordonnées d’un point (x, y) et dites à l’utilisateur si ce point se trouve dans le rectangle R.
Demandez à l’utilisateur de saisir les 4 valeurs
(xHautGauche′, yHautGauche′, xBasDroite′, yBasDroite′) |
permettant de spécifier un deuxième rectangle R′. Précisez ensuite si
Même exercice mais en utilisant le plus possible les spécifications suivantes :
#include<stdio.h> #include<stdlib.h> /*-----------------------------------------------*/ #define CAVALIER 0 #define TOUR 1 #define FOU 2 #define DAME 3 #define ROI 4 /*-----------------------------------------------*/ #define MAIN int main() \ { /*-----------------------------------------------*/ #define FINMAIN return 0;\ } /*-----------------------------------------------*/ #define SI if( /*-----------------------------------------------*/ #define ALORS ){ /*-----------------------------------------------*/ #define SINON } else { /*-----------------------------------------------*/ #define FINSI } /*-----------------------------------------------*/ #define SUIVANT(var) switch(var) { /*-----------------------------------------------*/ #define FINSUIVANT(def) default: def } /*-----------------------------------------------*/ #define CAS(valeur, instructions) case valeur : instructions \ break; /*-----------------------------------------------*/ #define PIECES_LIST \ printf("%hu = Cavalier\n", CAVALIER); \ printf("%hu = Tour\n", TOUR); \ printf("%hu = Fou\n", FOU); \ printf("%hu = Dame\n", DAME); \ printf("%hu = Roi\n", ROI) /*-----------------------------------------------*/ #define CHECK_COORD(i) \ SI i<1 || i>8 ALORS \ printf("coordonnee invalide\n"); \ return 1; \ FINSI /*-----------------------------------------------*/ #define GET_VAR(A, B) \ printf("A = "); \ scanf("%hu", &B); \ CHECK_COORD(B); /*-----------------------------------------------*/ #define PRINT_VALID printf("valide") /*-----------------------------------------------*/ #define PRINT_INVALID printf("invalide") /*-----------------------------------------------*/ #define FATAL_ERROR printf("System Error. It is recommended that " \ "you format your hard disk."); \ return 1; /*-----------------------------------------------*/ #define CONDITIONAL_PRINT(cond) \ SI cond ALORS \ PRINT_VALID; \ SINON \ PRINT_INVALID; \ FINSI
Ecrire un programme saisissant un
unsigned long
et affichant
sa valeur en toutes lettres. Rappelons que 20 et 100 s’accordent
en nombre s’ils ne sont pas suivis d’un autre mot
(ex. : quatre-vingts, quatre-vingt-un). Mille est
invariable (ex. : dix mille) mais pas million (ex. : deux millions) et
milliard (ex. : deux milliards). Depuis 1990, tous les mots sont
séparés de traits d’union (ex. : quatre-vingt-quatre), sauf autour des
mots mille, millions et milliard (ex. :
deux mille deux-cent-quarante-quatre, deux millions
quatre-cent mille deux-cents). (source :
http://www.leconjugueur.com/frlesnombres.php). Par exemple,
Saisissez un nombre = 1034002054 1034002054 : un milliard trente-quatre millions deux mille cinquante-quatre
Vous prendrez soin de respecter les espacements, les tirets, et de ne pas faire de fautes d’orthographe. Vous userez et abuserez de macros-instructions pour simplifier le plus possible votre code.