M1102-TD1 Exercice2

Ecrire un algorithme qui :
• affiche l’invite : "saisir une string";
• lit une chaine de caractères au clavier ;
• l’affiche à l’écran.
PS: les deux derniers items de ce petit programme correspondent à la commande “echo” de bash.

M1102-TD1 Exercie2 Corrigé

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

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é

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

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é

//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