dimanche 25 octobre 2015

TD N°1



Solution des exercices de la 1ére série d' Exercice n°1 à Exercice n°13 :



Exercice n°1:

Ecrire un programme qui permute et affiche les valeurs de trois variables A, B, C de type entier qui sont entrées au clavier :
A ==> B , B ==> C , C ==> A

La solution :

#include<stdio.h>
void main()
{
int A, B, C, AIDE;
printf("Introduisez trois nombres (A, B, C) : ");
scanf("%d %d %d", &A, &B, &C);
printf("\nA = %d\tB = %d\tC = %d", A, B, C);
AIDE=A;
A=C;
C=B;
B=AIDE;
printf("\nA = %d\tB = %d\tC = %d", A, B, C);
}
Exercice n°2:

Ecrire un programme qui affiche le quotient et le reste de la division entière de deux nombres entiers entrés au clavier ainsi que le quotient rationnel de ces nombres.

La solution :

#include<stdio.h>
int main()
{
int A, B;
printf("Introduisez deux nombres entiers : ");
scanf("%d %d", &A, &B);
printf("Division entiere : %d\n", A/B);
printf("Reste : %d\n", A%B);
printf("Quotient rationnel : %.3f\n", (float)A/B);
return 0;
}
Exercice n°3:

Quel sera le contenu des variables x, y, z et w après l'exécution des instructions suivantes ?
int x=7, y=0, z, w;
x++;
y+=x*3;
z=++y-2;
w=x-z++;

La solution :
xyzw
70--
80--
824--
82523-
82524-15

Exercice n°4:

Quel sera le contenu des variables a, b et c après l'exécution des instructions suivantes ?
int  x=1, y=1, z=1, a, b, c;
a=y>z || y==1;
b=x==1 && y!=0;
x=2; y=1; z=4;
c=(x>y && x>z) || !(z<y);

La solution :
xyzabc
111---
1111--
11111-
21411-
214111

Exercice n°5:

Traduisez en langage C l'algorithme suivant :
entier nb
réel pht, ttva, pttc
Début
écrire "Entrez le prix hors taxes :"
lire pht
écrire "Entrez le nombre d'articles :"
lire nb
écrire "Entrez le taux de TVA :"
lire ttva
pttc ← nb * pht * (1 + ttva)
écrire "Le prix toutes taxes est : ", pttc
Fin

La solution :

#include<stdio.h>
void main()
{
int nb;
float pht, ttva, pttc;
printf("Entrez le prix hors taxes :");
scanf("%f", &pht);
printf("Entrez le nombre d'articles :");
scanf("%d", &nb);
printf("Entrez le taux de TVA :");
scanf("%f", &ttva);
pttc = nb * pht * (1 + ttva);
printf("Le prix toutes taxes est : %.2f", pttc);
}
Exercice n°6:

 C'est facile !! ☺
Exercice n°7:

Ecrire un programme qui demande à l'utilisateur de taper 4 entiers et qui affiche leur moyenne. Le programme ne devra utiliser que 2 variables.

La solution :
#include <stdio.h>
int main()
{
int a;
float s=0;
printf("Tapez la valeur numero 1 : "); scanf("%d",&a);
s=s+a;
printf("Tapez la valeur numero 2 : "); scanf("%d",&a);
s=s+a;
printf("Tapez la valeur numero 3 : "); scanf("%d",&a);
s=s+a;
printf("Tapez la valeur numero 4 : "); scanf("%d",&a);
s=s+a;
s=s/4;
printf("La moyenne vaut : %.2f", s);
return 0;
}

Exercice n°8:

Ecrivez un programme qui affiche la décomposition en base 10 d'un nombre de quatre chiffres lu au clavier. Par exemple, le nombre 4235 sera affiché sous la forme : 5 + 3*10 + 2*10^2 + 4*10^3.

La solution :


#include <stdio.h>
int main()
{
int nb;
printf("Tapez le nombre de 4 chiffres : ");
scanf("%d",&nb);
printf("%d= %d + %d*10 + %d*10^2 + %d*10^3", nb, nb%10, (nb%100)/10, (nb%1000)/100 ,nb/1000);
return 0;
}


Exercice n°9:
Ecrire un programme qui affiche la résistance équivalente à trois résistances R1, R2, R3 (type double),

- si les résistances sont branchées en série:

Rsér = R1+R2+R3

- si les résistances sont branchées en parallèle:
                     R1.R2.R3
Rpar=  ──────────
              R1.R2+R1.R3+R2.R3

La solution :

#include <stdio.h>
int main()
{
    int choix;
    double R1,R2,R3;
    printf("Saisir les resistances R1,R2 et R3\n");
    scanf("%lf %lf %lf",&R1,&R2,&R3);
    printf("\nChoisis le type de branchement : \n 1.Resistance en serie\n 2.Resistance en parallele\n");
    scanf("%d", &choix);
    if (choix==1)
        printf("la Resistance en serie est %lf" ,R1+R2+R3);
    else
    if (choix==2)
        printf("la Resistance en parallele est %lf" ,(R1*R2*R3)/(R1*R2+R1*R3+R2*R3));
    else
        printf("Error");
    return 0;
}

Exercice n°10:

Ecrire un programme qui calcule et affiche l'aire d'un triangle dont il faut entrer les longueurs des trois côtés. Utilisez la formule :

S² = P(P-A)(P-B)(P-C)

où A, B, C sont les longueurs des trois côtés (type int) et P le demi-périmètre du triangle.

La solution :

#include<stdio.h>
#include<math.h>
int main()
{
/* Pour ne pas perdre de précision lors de la division,
 déclarons P comme rationnel. */
int A, B, C;
float P; /* ou bien: double P; */
printf("Introduisez les valeurs pour A, B et C : ");
scanf("%d %d %d", &A, &B, &C);
/* En forçant la conversion de A, les autres opérandes
 sont converties automatiquement. */
P=((float)A+B+C)/2;
printf("Surface du triangle S = %.2f \n",sqrt(P*(P-A)*(P-B)*(P-C)));
return 0;
}

Exercice n°11:

Ecrire un programme qui calcule la somme de quatre nombres du type int entrés au clavier,

a) en se servant de 5 variables (mémorisation des valeurs entrées)

b) en se servant de 2 variables (perte des valeurs entrées)

La solution :

La partie –a- :

#include <stdio.h>
int main()
{
/* Pour être sûrs de ne pas dépasser le domaine de la
 variable, nous choisissons le type long pour la somme. */
int A, B, C, D;
long SOM;
printf("Entrez le premier nombre : ");
scanf("%d", &A);
printf("Entrez le deuxieme nombre : ");
scanf("%d", &B);
printf("Entrez le troisieme nombre : ");
scanf("%d", &C);
printf("Entrez le quatrieme nombre : ");
scanf("%d", &D);
SOM = (long)A+B+C+D;
printf(" %d + %d + %d + %d = %ld \n", A, B, C, D, SOM);
return 0;
}

La partie -b- :

#include<stdio.h>
int main()
{
/* Pour être sûrs de ne pas dépasser le domaine de la
 variable, nous choisissons le type long pour la somme. */
int A;
long SOM;
SOM = 0;
printf("Entrez le premier nombre : ");
scanf("%d", &A);
SOM+=A;/*cette exp remplace som=som+a;*/
printf("Entrez le deuxieme nombre : ");
scanf("%d", &A);
SOM+=A;
printf("Entrez le troisieme nombre : ");
scanf("%d", &A);
SOM+=A;
printf("Entrez le quatrieme nombre : ");
scanf("%d", &A);
SOM+=A;
printf("La somme des nombres entres est %ld \n", SOM);
return 0;
}

Exercice n°12:

a) Ecrire un programme qui calcule le prix brut (type double) d'un article à partir du prix net (type int) et du pourcentage de TVA (type int) à ajouter. Utilisez la formule suivante en faisant attention aux priorités et aux conversions automatiques de type:

b) Ecrire un programme qui calcule le prix net d'un article (type double) à partir du prix brut (type double) et du pourcentage de TVA (type int) qui a été ajoutée.

La solution :

La partie -a- :


#include <stdio.h>
int main()
{
int TVA;
double PNET, PBRUT;
printf("Entrez le prix net de l'article : ");
scanf("%lf", &PNET);
printf("Entrez le taux de la TVA (en pourcentage) : ");
scanf("%d", &TVA);
PBRUT = PNET + PNET*(double)TVA/100;
printf("Le prix net est %.2lf ", PBRUT);
return 0;
}

La partie -b- :
#include <stdio.h> 
int main()
{
int TVA;
double PNET, PBRUT;
printf("Entrez le prix brut de l'article : ");
scanf("%lf", &PBRUT);
printf("Entrez le taux de la TVA (en pourcentage) : ");
scanf("%d", &TVA);
PNET = PBRUT*100/(100+TVA);
printf("Le prix net est %.2lf ", PNET);
return 0;
}

Exercice n°13:

Ecrire un programme qui calcule et affiche la distance DIST (type double) entre deux points A et B du plan dont les coordonnées (XA, YA) et (XB, YB) sont entrées au clavier comme entiers.



La solution :

#include<stdio.h>
#include<math.h> 
int main()
{
int XA, YA, XB, YB;
double DIST;
printf("Entrez les coordonnées du point A : XA,YA");
scanf("%d %d", &XA, &YA);
printf("Entrez les coordonnées du point B : XB,YB");
scanf("%d %d", &XB, &YB);
DIST=sqrt(pow(XA-XB,2)+pow(YA-YB,2)); /*pow : est la fonction de puissance*/
printf("La distance entre A(%d,% d) et B(%d,%d) est %.2f \n",XA, YA, XB, YB, DIST);
return 0;
}

Afficher Les Commentaires

0 commentaires

Enregistrer un commentaire