IUT R&T - 1ère année - Informatique
Programmation et algorithmique 1
TD n°1 – Opérations de bases
Exercice 1 (opérations de bases)
On donne les deux algorithmes suivants :
Algorithme CONVERTIR
Donnée : un réel Far=68,5.
Résultat : affichage d'un réel Cel.
Cel ← (Far−32)*5/9;
Afficher Cel.
Algorithme CHANGER
Donnée : Un réel Cel, saisi au clavier.
Résultat : un réel Far.
Lire Cel;
Far ← 32+Cel*9/5.
1.1. Que fait l'algorithme CONVERTIR ?
1.2. Modifier cet algorithme pour qu'il précise ce qu'il fait et qu'il demande la saisie au clavier de la valeur de Far.
1.3. Traduire votre modification en langage C et tester sur quelques exemples bien choisis.
Rappel : Ecrire le programme dans un fichier texte et l'enregistrer sous le nom "convertir.c" ; dans un terminal, lancer la compilation avec "gcc convertir.c" ; dans ce même terminal lancer l'exécutable avec "./a.out".
N.B. la commande "gcc convertir.c −o convertir" donne le nom "convertir" à l"exécutable au lieu de "a.out".
1.4. Que fait l'algorithme CHANGER ?
1.5. Modifier cet algorithme pour qu'il précise ce qu'il fait et qu'il demande l'affichage de la valeur de Far.
1.6. Traduire votre modification en langage C et tester sur quelques exemples bien choisis.
Exercice 2 (calcul)
2.1. Donner un algorithme permettant de calculer l'aire d'un cercle de rayon R (la valeur du rayon sera saisie par l'utilisateur).
2.2. Traduire cet algorithme en langage C et le tester.
Exercice 3 (lecture et écriture formatées)
Pour chacun des programmes suivants le tester et expliquer, selon les formats utilisés, les affichages obtenus.
// Programme 3.1.
#include <stdio.h>
int i=254, im=−254;
int main(void)
{
printf("i=%d,%o,%X,%#x\n",i,i,i,i);
printf("%7d:%-10d:\n",i,i);
printf("...%+2d/%08d...\n",i,i);
printf("...%2d/%+08d...\n",im,im);
printf("\n");
}
// Programme 3.2.
#include <stdio.h>
int main(void)
{
char car='a';
printf("car:%c\n",car);
printf("car:%d %o %x\n",car,car,car);
}
// Programme 3.3.
#include <stdio.h>
float r=45784.25, re=45.1;
float fl=1E8;
double dl=0.0456987296;
double dll=3.458254E-5;
int main(void)
{
printf("r:%f , re:%f\n",r,re);
printf("r:%4.2f , re:%4.2f\n",r,re);
printf("r:%10.2f , re:%10.2f\n",r,re);
printf("dl=%.8f ~%f ~%5.2f\n",dl,dl,dl);
printf("dl=%.5e et fl=%.2E\n",dl,fl);
printf("dl=%.5G et dl=%.2g\n",dl,dl);
printf("dll=%.5G et dll=%.2g\n",dll,dll);
printf("\n");
}
// Programme 3.4.
#include <stdio.h>
int j, k, l;
int main(void)
{
printf("Entrez 1 7 15 au clavier:");
scanf("%d %o %x",&j,&k,&l);
printf("j=%d, k=%o, l=%x\n",j,k,l);
printf("Entrez 8 8 16 au clavier:");
scanf("%d %o %x",&j,&k,&l);
printf("j=%d, k=%o, l=%x\n",j,k,l);
scanf("%d %d",&k,&l);
printf("k=%d, l=%d\n",k,l);
}
// Programme 3.5.
#include <stdio.h>
char chaine[20];
char chaine2[20];
int main(void)
{
printf("Entrez la chaine - j'habite a clermont: ");
scanf("%s",chaine);
gets(chaine2);
printf("chaine:%s\n",chaine);
printf("chaine2:%s\n",chaine2);
printf("Entrez la chaine - en auvergne:");
scanf("%6c",chaine);
printf("chaine:%s\n",chaine);
}
// Programme 3.6.
Dans le programme précédent, remplacer
gets(chaine2) par scanf("%s",chaine2)
// Programme 3.7.
#include <stdio.h>
int main(void)
{
char c='A';
printf("caractere: %c\n",c);
c=65;
printf("caractere: %c\n",c);
c=c+32;
printf("caractere: %c\n",c);
c=c+256;
printf("caractere: %c\n",c);
}