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);
  }