M1102-TD1 Exercie2 Corrigé

[algo]
algorithme echo
debut
afficher ("Saisissez une chaine de caractères : ");
ligne_suivante;
declarer Ligne : string;
saisir (Ligne);
afficher (Ligne);
ligne_suivante;
fin
[/algo]

M1102-TD1 Exercice3

Le but de cet exercice est d’évaluer un polynôme de réels du second degré (de la forme aX2 + bX + c). On a donc besoin d’une part de connaitre la valeur des coefficients a, b et c, et d’autre part de la variable X. On lira ces quatre variables au clavier, précédées d’une invite et on affichera le résultat. Ecrire l’algorithme correspondant.
Remarques :

  1. à partir de maintenant, chaque saisie sera précédée d’une invite ;
  2. X2 = X * X.

M1102-TD1 Exercie3 Corrigé

[algo]
algorithme eval_poly_2nd
debut
afficher ("Evaluation d’un polynôme du 2nd degré du type aX2 + bX + C");
ligne_suivante;

declarer a : reel;
afficher ("entrer une valeur pour le coefficient a : ");
saisir (a);

declarer b : reel;
afficher ("entrer une valeur pour le coefficient b : ");
saisir (b);

declarer c : reel;
afficher ("entrer une valeur pour le coefficient c : ");
saisir (c);

declarer X : reel;
afficher ("entrer une valeur pour la variable X : ");
saisir (X);

declarer Res : reel;
Res <- a*X*X + b*X + c;
afficher ("la valeur du polynome est : ", Res);
ligne_suivante;
fin
[/algo]

M1102-TD1 Exercice4

Le but de cet exercice est de calculer les racines d’un polynôme du second degré (de la forme aX^2 + bX + c = 0). Pour cela :

  • saisir les 3 coefficients a, b et c;
  • calculer delta (= b^2 - 4ac);
  • si delta est nul, afficher la racine unique du polynôme (-b)/2a ;
  • si delta est positif, afficher les deux racines (-b-√delta)/2a et (-b+√delta)/2a ;
  • sinon affiche qu’il n’y a aucune solution.
    NB : on suppose que le symbole √ est remplacé par la fonction sqrt () (sqrt signifie square root). Exemple d’utilisation de la fonction sqrt () : l’instruction afficher (sqrt (4)) provoque l’affichage du nombre 2. On peut décomposer l’instruction précédente en le
    programme suivant :

    declarer racine : réel;
    racine <- sqrt (4);
    afficher (racine);
    

M1102-TD1 Exercie4 Corrigé

[algo]
//fonction qui renvoie la valeur absolue
fonction abs (X : in reel) renvoie reel
debut
si (X > 0)
renvoie X;
sinon
renvoie -X;
fsi
fin

//
// fonction qui renvoie la racine carré d’un nombre
// Approximation de √a à l’aide de suites adjacentes : http://fr.wikipedia.org/wiki/Racine_carr%C3%A9e
//
fonction sqrt (X : in reel) renvoie reel
debut

//la précision
declarer eps : reel;
eps <- 0.01;

declarer u : reel;
u <- 1;
declarer v: reel;
v <- X;

//sert à mémoriser l’ancienne valeur de u
declarer tmp : reel;

tant_que (abs(u-v) > eps)
faire
tmp <- u;
u <- 2 / ((1/u) + (1/v));
v <- (tmp + v) / 2;
ffaire
renvoie u;
fin

algorithme racine_poly_2nd
debut
afficher ("Calcul des racines d’un polynôme du 2nd degré du type aX^2 + bX + C = 0");
ligne_suivante;

declarer a : reel;
afficher ("entrer une valeur pour le coefficient a : ");
saisir (a);

declarer b : reel;
afficher ("entrer une valeur pour le coefficient b : ");
saisir (b);

declarer c : reel;
afficher ("entrer une valeur pour le coefficient c : ");
saisir (c);

declarer Delta : reel;
Delta <- b*b – 4*a*c;

// optionnel
// afficher ("Delta = ", Delta);
// ligne_suivante;

// optionnel
// afficher ("racine (Delta) = " , sqrt(Delta));
// ligne_suivante;

// au choix
// declarer KEps : constante reel <- 0.01;
// si (abs (Delta) < KEps)
// ou
si (Delta vaut 0)
declarer racine : reel;
racine <- -b/2*a;
afficher ("le polynome n’a qu’une racine ", racine);
sinon_si (Delta > 0)
declarer racine1 : reel;
racine1 <- (-b – sqrt(Delta)) /2*a ;
declarer racine2 : reel;
racine2 <- (-b + sqrt(Delta)) /2*a ;
afficher ("le polynome a deux racines ", racine1, " et ", racine2);
sinon
afficher ("le polynome n’a pas de racine");
fsi
ligne_suivante;
fin
[/algo]

M1102-TD1 Exercice5

Ecrire un algorithme qui affiche 10 fois la chaine de caractères “Bonjour” en utilisant les 5 types de boucle suivants :

  • pour
  • jusqua
  • tant_que
  • repeter ... jusqua
  • boucle ... fboucle

M1102-TD1 Exercie5 Corrigé

[algo]
algorithme DixfoisBonjour
debut

//avec une boucle pour
pour (i variant_de 1 a 10)
faire
afficher ("bonjour");
ligne_suivante;
ffaire
ligne_suivante;

//avec une boucle jusqua
//i designe le nombre de fois où est est déjà passé dans la boucle
declarer i : entier_naturel;
i <- 0;

jusqua (i vaut 10)
faire
afficher ("bonjour");
ligne_suivante;
i <- i + 1;
ffaire
ligne_suivante;

//avec une boucle tant_que
//i designe le nombre de fois où est est déjà passé dans la boucle
i <- 0;
tant_que (i ne_vaut_pas 10)
faire
afficher ("bonjour");
ligne_suivante;
i <- i + 1;
ffaire
ligne_suivante;

//avec une boucle repeter … jusqua
i <- 0;
repeter
afficher ("bonjour");
ligne_suivante;
i <- i + 1;
jusqua (i vaut 10)
ligne_suivante;

// avec une boucle boucle … fboucle
i <- 0;
boucle
si (i vaut 10) sortie;
afficher ("bonjour");
ligne_suivante;
i <- i + 1;
fboucle

ligne_suivante;

fin
[/algo]