CORRECTION EXERCICES ALGORITHME 1. Mr KHATORY (GIM 1 A)

Documents pareils
CORRECTION EXERCICES ALGORITHME 1

Cours d Informatique

Correction TD algorithmique

Feuille TD n 1 Exercices d algorithmique éléments de correction

Algorithmes récursifs

Examen Médian - 1 heure 30

Initiation à la programmation en Python

4. Les structures de données statiques

Algorithmique avec Algobox

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Programmation Objet - Cours II

L ALGORITHMIQUE. Algorithme

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Algorithmique avec Algobox

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Algorithmes de recherche

Activités numériques [13 Points]

1 I ) Une première approche de l algorithme en seconde, saison 2010 _ Antoine ROMBALDI

DOCM Solutions officielles = n 2 10.

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

UNITÉS ET MESURES UNITÉS DE MESURE DES LONGUEURS. Dossier n 1 Juin 2005

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

3 ème 2 DÉVELOPPEMENT FACTORISATIONS ET IDENTITÉS REMARQUABLES 1/5 1 - Développements

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

= constante et cette constante est a.

Structures algébriques

Algorithmique et structures de données I

5 ème Chapitre 4 Triangles

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation avec Xcas ou Python

alg - Classes, instances, objets [oo] Exercices résolus

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Programmation C++ (débutant)/instructions for, while et do...while

LE PRODUIT SCALAIRE ( En première S )

Propagation sur réseau statique et dynamique

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

1 Recherche en table par balayage

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Polynômes à plusieurs variables. Résultant

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Corrigé des TD 1 à 5

1.6- Génération de nombres aléatoires

Représentation géométrique d un nombre complexe

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

C f tracée ci- contre est la représentation graphique d une

Recherche dans un tableau

Algorithmique et Programmation Fonctionnelle

Par combien de zéros se termine N!?

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

Angles orientés et trigonométrie

Algorithmique et programmation : les bases (VBA) Corrigé

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Résolution d équations non linéaires

INFORMATIONS DIVERSES

Cours Informatique Master STEP

Présentation du cours de mathématiques de D.A.E.U. B, remise à niveau

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Rappels sur les suites - Algorithme

Premiers pas sur le site ecommerce.cléde13.fr. Sommaire

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

CH.6 Propriétés des langages non contextuels

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Correction TD Algorithmique 5.3 Pile Liste 5.3 Pile

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Bases de programmation. Cours 5. Structurer les données

Cours d algorithmique pour la classe de 2nde

Les chaînes de caractères

CHAPITRE VIII : Les circuits avec résistances ohmiques

1S Modèles de rédaction Enoncés

Développer, factoriser pour résoudre

Rappels d architecture

Pour l épreuve d algèbre, les calculatrices sont interdites.

Priorités de calcul :

Note de cours. Introduction à Excel 2007

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Cours d Analyse. Fonctions de plusieurs variables

L exclusion mutuelle distribuée

Du Premier au Second Degré

C++ - Classes, instances, objets [oo] Exercices résolus

Résolution de systèmes linéaires par des méthodes directes

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

STAGE IREM 0- Premiers pas en Python

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... LES MESURES

GE Security. KILSEN série KSA700 Centrale de détection et d alarme Incendie analogique adressable. Manuel d utilisation

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

Simulation : application au système bonus-malus en responsabilité civile automobile

I. Introduction aux fonctions : les fonctions standards

EXAMEN : CAP ADAL SESSION 2011 N du sujet : SPECIALITE : CEB - GEPER SUJET SECTEUR : FOLIO : 1/6 EPREUVE : EG2 (MATH-SCIENCES)

315 et 495 sont dans la table de 5. 5 est un diviseur commun. Leur PGCD n est pas 1. Il ne sont pas premiers entre eux

Probabilités sur un univers fini

Solutions du chapitre 4

Partie 1. Fonctions plus complexes dans Excel. Fonctions Si(), Et(), Ou() et fonctions imbriquées. Opérateurs logiques. I.1.

Transcription:

CORRECTION 1 Mr KHATORY (GIM 1 A) 1

Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution : x 2a Solution: ALGORITHME seconddegré VAR a, b, c, delta : REEL ECRIRE (" saisissez les valeurs a, b et c de l équation ax²+bx+c=0 : ") LIRE (a, b, c) SI (a=0 ) ALORS ECRIRE (" équation du premier degré ") SI (b 0 ) ALORS ECRIRE ("solution est ", -c/b) SINON ECRIRE (" Pas de solution") SINON delta b*b-4*a*c Si (delta > 0) ALORS b racine( delta) b racine( delta) ECRIRE ("les solutions sont ",, " et ", 2 a ) 2 a SINON SI delta =0 ALORS ECRIRE ( "Solution est", -b/(2a)) SINON ECRIRE ("pas de solutions réelles!!") Fonction standard 2

ALGORITHME seconddegré VAR a, b, c, delta: REEL ECRIRE ("saisissez les valeurs de a, b et c de l équation ax²+bx+c ") LIRE (a, b, c) Si (a=0) ALORS ECRIRE ("équation du premier degré ") SI (b<>0 ) SINON Ecrire le même algorithme avec des selon-que : ALORS ECRIRE ("solution est ", -c/b) SINON ECRIRE (" Pas de solution") delta b*b-4*a*c SELONQUE delta = 0 : ECRIRE ("la solution unique est:", -b/(2a) b racine( delta) 2 a b racine( delta) 2 a delta > 0 : ECRIRE (" les deux solutions sont ",, " et ", ) SINON ECRIRE (" pas de solution réelle ") SELON 3

Ecrire un algorithme calculatrice permettant la saisie du premier entier (a) de l'opération ( + ou ou * ou / : sont des caractères) et du deuxième entier (b) et qui affiche le résultat ALGORITHME calculatrice VAR a, b : ENTIER op : CARACTERE ECRIRE (" saisissez le premier entier (a) ") LIRE (a) ECRIRE (" saisissez l opération ") LIRE (op) ECRIRE (" saisissez le deuxième entier (b)") LIRE (b) SELONQUE : Op = + : ECRIRE ("la somme de ", a, "et de ",b, "est égale", a+b) Op = * : ECRIRE ("le produit de ",a, "et de ",b, "est égale«, a*b) Op = / : SI (b= 0) ALORS ECRIRE (" division impossible ") SINON ECRIRE ("la division de ",a, "par ",b, "est égale", a/b) Op = - : ECRIRE ("la soustraction de ",a, "et de ",b, "est égale", a-b) SINON: ECRIRE(" Opération invalide ") SELONQUE 4

1.Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu'à ce nombre. Par exemple si l'on tape 4, l algorithme doit calculer: 1 + 2 + 3+ 4 = 10 BOUCLE POUR BOUCLE TANT QUE ALGORITHME Somme_Nombres VAR i, S : ENTIER N: ENTIER Equivalent ECRIRE (" Entrer un nombre entier:") POUR LIRE (N) S 0 POUR i DE 1 A N FAIRE S S+i POUR ECRIRE (" La somme des nombres de 1 à ", N,"est ", S) Algorithme Somme_Nombres Var i, S : ENTIER N:ENTIER ECRIRE (" Entrer un nombre entier:") LIRE(N) S 0 i 1 TANTQUE i N FAIRE S S+i i i+1 TANTQUE ECRIRE (" La somme des nombres de 1 à ", N,"est ", S) 5

1.Ecrire un algorithme qui demande un nombre de départ, et qui calcule la moyenne des entiers jusqu'à ce nombre. Par exemple si l'on tape 4, l algorithme doit calculer: 1 + 2 + 3+ 4 = 10/4 =2.5 ALGORITHME Moyenne_Nombres Var i, S : ENTIER N : ENTIER Moyenne :REEL Equivalent POUR S 0 LIRE (N) POUR i DE 1 A N FAIRE BOUCLE POUR S S+i POUR Moyenne S / N ECRIRE (" La moyenne des nombres de 1 à ", N,"est ", Moyenne) ALGORITHME Moyenne_Nombres Var i, S : ENTIER N :ENTIER Moyenne : REEL BOUCLE TANT QUE S 0 i 1 LIRE(N) TANTQUE i N FAIRE S S+i i i+1 TANTQUE Moyenne S / N Ecrire (" La moyenne des nombres de 1 à ", N,"est ", Moyenne) 6

Ecrire l algorithme qui affiche la somme des prix d'une suite d'articles en DH (entiers) saisies par l'utilisateur et se terminant par zéro. BOUCLE TANTQUE ALGORITHME Somme_Prix VAR p, S : ENTIER S 0 ECRIRE("Entrer le prix du 1 article:") LIRE (p) TANTQUE (p 0) FAIRE S S+p ECRIRE("Entrer le prix de l'article suivant( 0 si Fin):") LIRE(p) TANTQUE ECRIRE (" La somme des prix des articles est ", S) BOUCLE REPETER ALGORITHME Somme_Prix VAR p, S : ENTIER S 0 ECRIRE("Entrer le prix du 1 article:") LIRE(p) REPETER S S+p ECRIRE("Entrer le prix de l'article suivant( 0 si Fin):") LIRE(p) JUSQU'A (p =0) ECRIRE (" La somme des prix des articles est ", S) 7

Ecrire l algorithme qui affiche la somme des prix d'une suite d'articles en DH (entiers) saisies par l'utilisateur et se terminant par zéro. Cas d'entrée à la boucle: Si au départ p= 0 choisir la boucle TANTQUE Cas particulier (p=0) (Boucle REPETER) : On peut changer l'algorithme : ALGORITHME Somme_Prix VAR p, S : ENTIER S 0 REPETER ECRIRE("Entrer le prix de l'article ( 0 si Fin):") LIRE(p) S S+p JUSQU'A p =0 ECRIRE (" La somme des prix des articles est ", S) ALGORITHME Somme_Prix VAR p, S : ENTIER S 0 ECRIRE("Entrer le prix du 1 article:") LIRE(p) REPETER S S+p ECRIRE("Entrer le prix de l'article suivant( 0 si Fin):") LIRE(p) JUSQU'A p =0 ECRIRE (" La somme des prix des articles est ", S) 8

Ecrire un algorithme qui donne la durée de vol en heure minute connaissant l'heure de départ et l'heure d'arrivée. On considère que le départ et l'arrivé ont lieu le même jour! Données: h1,m1,h2 et m2 On suppose que h2 > h1!! Cas possibles pour m1 et m2 2 cas ( m1<m2 ou m1 >m2) 9

Ecrire un algorithme qui donne la durée de vol en heure minute connaissant l'heure de départ et l'heure d'arrivée. On considère que le départ et l'arrivé ont lieu le même jour Solution: ALGORITHME DuréeVol VAR h1, h2, m1, m2: ENTIER hd, md : ENTIER ECRIRE (" entrer horaire de départ: h min") LIRE (h1, m1) ECRIRE (" entrer horaire d arrivée: h min") LIRE (h2, m2) SI (m2 > m1 ) ALORS hd h2-h1 md m2-m1 SINON hd h2-h1-1 md m2+60-m1 ECRIRE (" la durée de vol est : ", hd, ' : ', md) 10

Ecrire un algorithme qui donne la durée de vol en heure minute connaissant l'heure de départ et l'heure d'arrivée. On considère que le départ et l'arrivé ont lieu le même jour Solution n 2: ALGORITHME DureeVol1 VAR h1, h2, m1, m2: ENTIER hd, md : ENTIER : ECRIRE (" entrer horaire de départ: h min") LIRE (h1, m1) ECRIRE (" entrer horaire d arrivée: h min") LIRE (h2, m2) md [h2*60+m2] [h1*60+m1] hd md div 60 (* division entière ( / )*) md md mod 60 (*reste de la division entière (%)*) ECRIRE (" la durée de vol est : ", hd, ' : ', md) 11

On suppose que la durée de vol est inférieure à 24 heures mais peut avoir lieu le lendemain. Etudier les différents cas! Données: h1,m1,h2 et m2 Exemple1: Départ :8h23 min Arrivée: 13h 30 min Exemple2: Départ :8h23 min Arrivée: 13h 15 min (*m1 <m2*) h1 < h2 (*m1 >m2*) Comparer h1 et h2! (2 cas) Pour chaque cas: comparer m1 et m2! (2 cas) 4 cas en tout!! Exemple3: Départ :17h30 min Arrivée: 2h 40 min Exemple4: Départ :17h30 min Arrivée: 2 h 25 min (*m1 <m2*) h1 > h2 (*m1 > m2*) 12

On suppose que la durée de vol est inférieure à 24 heures mais peut avoir lieu le lendemain. ALGORITHME DureeVol2 VAR h1, h2, m1, m2 :ENTIER hd, md : ENTIER ECRIRE (" entrer horaire de départ et d arrivée: h1 m1 h2 m2") LIRE (h1, m1, h2, m2) SI (h2 > h1 ) ALORS SI (m2 > m1 ) ALORS hd h2-h1 md m2-m1 ECRIRE (hd, md) SINON SINON SI (m2 > m1 ) ALORS SINON hd h2-h1-1 md m2+60-m1 ECRIRE (hd, md) hd h2-h1+24 md m2-m1 ECRIRE (hd, md) hd h2-h1+24-1 md m2+60-m1 ECRIRE (hd, md) Exemple: Départ :8h23 min Arrivée: 13h 30 min Exemple: Départ :8h23min Arrivée: 13h 15 min Exemple: Départ :17h30min Arrivée: 2h 40min Exemple: Départ :17h30min Arrivée: 2h 25 min 13

On suppose que la durée de vol est inférieure à 24 heures mais peut avoir lieu le lendemain. ALGORITHME DureeVol2 VAR h1, h2, m1, m2 :ENTIER hd, md : ENTIER ECRIRE (" Entrer horaire de départ et d arrivée: h1 m1 h2 m2 ") LIRE (h1, m1, h2, m2) SI (h2 > h1 ) ALORS SI (m2 > m1 ) ALORS hd h2-h1 md m2-m1 SINON hd h2-h1-1 md m2+60-m1 SINON SI (m2 > m1 ) ALORS hd h2-h1+24 md m2-m1 SINON hd h2-h1+24-1 md m2+60-m1 ECRIRE ("La durée de vol est ", hd, "Heures et ", md," minutes") 14

Ecrire un algorithme qui lit trois valeurs entières ( A, B et C) et qui permet de les trier par échanges successifs Et enfin les afficher dans l'ordre ALGORITHME TriSuccessif VAR A, B, C : ENTIER ECRIRE (" entrer Les valeurs A, B et C ") LIRE(A,B,C) SI (A > B) ALORS ici A < B reste à vérifier B? C echange (A,B) SI B > C ALORS ici B < C ET A < C (reste A? B) echange (B,C) SI A > B ALORS echange (A,B) Finalement A < B < C SINON SI B > C ALORS Ici B <C ET A<C ((reste A? B) echange (B,C) SI A >B ALORS echange (A,B) Ici A <B ET B<C A<B<C Finalement A < B < C ECRIRE ("Les valeurs A, B et C sont (dans l ordre):", A, B,C) Solution 1: 15

Ecrire un algorithme qui lit trois valeurs entières ( A, B et C) et qui permet de les trier par échanges successifs Et enfin les afficher dans l'ordre Solution 2: ALGORITHME TriSuccessif VAR A, B, C : ENTIER ECRIRE (" entrer Les valeurs A, B et C ") LIRE(A,B,C) SI (A > B) ALORS Après A < B reste à vérifier B? C echange (A,B) SI B > C ALORS echange (B,C) SI A > B ALORS echange (A,B) ECRIRE ("Les valeurs A, B et C sont (dans l ordre):", A, B,C) ici B < C ET A < C (reste A? B) 16

Ecrire un algorithme qui demande successivement 10 nombres à l'utilisateur, et qui affiche à la fin le plus grand de ces 10 nombres Et aussi son rang Exemple : Entrez le nombre numéro 1 : 13 Entrez le nombre numéro 2 : 17.. Entrez le nombre numéro 10 : 5 Le plus grand de ces nombres est : 17 C était le 2 ème nombre saisi 17

ALGORITHME Somme_10Nombres CONST NBRE=10 VAR indice, val : ENTIER Indice_grand, PLUSGRAND :ENTIER ECRIRE("Entrez le 1 er nombre : ") LIRE (val) PLUSGRAND val Indice_grand 1 indice 2 TANTQUE (indice NBRE) FAIRE ECRIRE("Entrez le nombre numéro : ", indice) LIRE (Val) SI (val > PLUSGRAND) ALORS indice_grand indice PLUSGRAND val indice indice+1 TANTQUE ECRIRE("le plus grand de ces nombres est:", PLUSGRAND) ECRIRE(" c'était le ",indice_grand, " ème nombre saisi") POUR indice DE 2 A NBRE Ecrire("Entrez le nombre numéro", indice) Lire (val) Si val > PLUSGRAND alors Indice_grand indice PLUSGRAND val Finsi POUR 18

Ecrire un algorithme mettant en œuvre le jeu suivant : Le premier utilisateur saisi un entier que le second doit deviner. Pour cela, il a le droit à autant de tentatives qu il souhaite. A chaque échec, le programme lui indique si l entier cherché est plus grand ou plus petit que sa proposition. Un score indiquant le nombre de coups joués est mis à jour et affiché lorsque l entier est trouvé. ALGORITHME devinette VAR a, n, t : ENTIER ECRIRE(" Entrez le nombre à deviner") LIRE (a) ECRIRE("entrez le nombre ( premier essai") LIRE (n) t 1 TANTQUE ( a n ) FAIRE SI n>a ALORS ECRIRE (" nombre cherché plus petit que : ",n ) SINON ECRIRE (" nombre cherché plus grand que ",n) t t+1 ECRIRE("entrez un autre nombre (tentative N ",t,")") LIRE (n) TANTQUE ECRIRE (" c'est gagné : le nombre de tentatives est",t) 19

Ecrire un algorithme mettant en œuvre le jeu suivant : Le premier utilisateur saisi un entier que le second doit deviner. Pour cela, il a le droit à autant de tentatives qu il souhaite. A chaque échec, le programme lui indique si l entier cherché est plus grand ou plus petit que sa proposition. Un score indiquant le nombre de coups joués est mis à jour et affiché lorsque l entier est trouvé. ALGORITHME devinette VAR a, n, t : ENTIER BOUCLE REPETER ECRIRE(" Entrez le nombre à deviner") LIRE (a) t 1 REPETER ECRIRE("Entrez un nombre (tentative N : ",t,")") LIRE (n) SELONQUE n>a: ECRIRE (" nombre cherché plus petit que : ",n ) n <a : ECRIRE (" nombre cherché plus grand que ",n) n=a : ECRIRE (" c'est gagné : le nombre de tentatives est",t) SELONQUE t t+1 JUSQU'A (a=n) 20

Écrire une fonction F_PGCD qui retourne le PGCD de deux nombres en utilisant l'astuce suivante: soustrait le plus petit des deux entiers du plus grand jusqu'à ce qu'ils soient égaux. Exemple: a=24 b=36 Le PGCD?? Boucle : 1. a <b (24 < 36 ) b =36-24=12 2. b<a (12 < 24) a=24-12=12 a=b=12 on s'arrête donc le PGCD est 12 21

Écrire une fonction F_PGCD qui retourne le PGCD de deux nombres en utilisant l'astuce suivante: soustrait le plus petit des deux entiers du plus grand jusqu'à ce qu'ils soient égaux. FONCTION F_PGCD(a,b :ENTIER) :ENTIER REPETER SELONQUE a>b : a a-b a<b : b b-a SELON JUSQU' A a=b retourner(a) 22

Ecrire la même fonction en utilisant l'algorithme d'euclide: Utiliser les structures TANTQUE puis REPETER JUSQU'A Boucle TANT QUE : Boucle REPETER JUSQU'A : FONCTION F_PGCD(a,b :ENTIER) :ENTIER VAR r :ENTIER r a%b /* reste de la division entière*/ TANTQUE r 0 FAIRE a b b r r a%b TANTQUE retourner(b) FONCTION F_PGCD(a,b :ENTIER) :ENTIER VAR r :ENTIER REPETER r a%b a b b r JUSQU'A r=0 retourner(b) 23

Merci & 24