Exercice langage C: Programmes plus complexes

Travail à Faire:

  • Ecrire un programme qui affiche sur écran la table des codes ASCII des caractères compris entre 1 et 128.
  • Ecrire le programme de résolution  de l’équation AX² +BX + C = 0 dans R en étudiant tous les cas possibles. 

Le plus grand commun diviseur (PGCD) de deux entiers A et B est le plus grand entier qui divise à la fois A et B

  • Ecrire un programme qui calcule le PGCD de deux entiers :
  1. en utilisant la méthode PGCD(A,B) = PGCD(B,A-B) si A > B et PGCD(A,B) = PGCD(A,B-A) si A
  2. en utilisant le célèbre algorithme d’EUCLIDE : PGCD(A,B) = PGCD(B,A mod B) si A>=B PGCD(A,B) = PGCD(A,B mod A) si A

1)
/* Affichage de la table ASCII */
#include
int main()
{
int car;
for (car=0; car{
printf("%3d - \'%c\'", car+32, car+32);
printf("%3d - \'%c\'", car+64, car+64);
printf("%3d - \'%c\'\n", car+96, car+96);
}
return 0;
}
2)
/* Resolution d'une equation du second degre */
#include
#include
int main()
{
double a, b, c, d;
printf(" a: "); scanf("%lf", &a);
printf(" b: "); scanf("%lf", &b);
printf(" c: "); scanf("%lf", &c);
if (a==0.0)
{
if (b==0.0)
{
if (c==0.0)
{
printf("Infinite de solutions\n");
}
else
{
printf("Pas de solutions\n");
}
}
else
{
printf("Racine unique : %f\n", -c/b);
}
}
else
{
d = b*b - 4*a*c;
if (d==0.0)
{
printf("Racine unique : %f\n", -b/2*a);
}
else if (d>0.0)
{
printf("Deux racines reelles :\n");
printf("x1 = %f\n", (-b + sqrt(d))/2*a);
printf("x2 = %f\n", (-b - sqrt(d))/2*a);
}
else /* d
{
printf("Deux racines complexes :\n");
printf("x1 = %f + i x %f\n", -b/2*a, sqrt(-d)/2*a);
printf("x2 = %f - i x %f\n", -b/2*a, -sqrt(-d)/2*a);
}
}
return 0;
}

/* Calcul du PGCD de deux entiers
* Methode des soustractions successives
* Par convention, pgcd(x,0) = x */
#include
int main()
{
int a, b;
printf(" a: "); scanf("%d", &a);
printf(" b: "); scanf("%d", &b);
printf("pgcd(%d,%d) = ", a, b);
if (a == 0)
{
printf("%d\n", b);
}
else if (b == 0)
{
printf("%d\n", a);
}
else
{
while (a != b)
{
if (a > b)
{
a = a - b;
}
else
{
b = b - a;
}
}
printf("%d\n", a);
}
return 0;
}
3) b
/* Calcul du PGCD de deux entiers
* Methode des modulos successifs
* Par convention, pgcd(x,0) = x */
#include
int main()
{
int a, b;
printf(" a: "); scanf("%d", &a);
printf(" b: "); scanf("%d", &b);
printf("pgcd(%d,%d) = ", a, b);
if (a == 0)
{
printf("%d\n", b);
}
else if (b == 0)
{
printf("%d\n", a);
}
else
{
while (a != 0 && b != 0)
{
if (a >= b)
{
a = a % b;
}
else
{
b = b % a;
}
}
if (b == 0)
{
printf("%d\n", a);
}
else
{
printf("%d\n", b);
}
}
return 0;
}

Article publié le 23 Février 2012 Mise à jour le Lundi, 07 Novembre 2022 16:19 par BENKIRANE Fatima Ezzahra