CORRECTION EXERCICES ALGORITHME 1



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

Cours d Informatique

Correction TD algorithmique

Algorithmique avec Algobox

Initiation à la programmation en Python

Algorithmes récursifs

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

DOCM Solutions officielles = n 2 10.

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.

Examen Médian - 1 heure 30

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

Programmation Objet - Cours II

Algorithmique avec Algobox

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.

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Activités numériques [13 Points]

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

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

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

4. Les structures de données statiques

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

Rappels sur les suites - Algorithme

L ALGORITHMIQUE. Algorithme

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

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

Corrigé des TD 1 à 5

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

LE PRODUIT SCALAIRE ( En première S )

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

Découverte du tableur CellSheet

Priorités de calcul :

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

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

Programmation avec Xcas ou Python

= constante et cette constante est a.

Algorithmes de recherche

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

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 Recherche en table par balayage

Structures algébriques

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

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

STAGE IREM 0- Premiers pas en Python

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

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Note de cours. Introduction à Excel 2007

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Angles orientés et trigonométrie

LE PROBLEME DU PLUS COURT CHEMIN

Le chiffre est le signe, le nombre est la valeur.

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

Recherche dans un tableau

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

Date : Note /20 : EVALUATION Nom : Prénom : Classe : Traitement sur mots

Programmation Classique en langage C

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

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

Polynômes à plusieurs variables. Résultant

Les différents types de données et leurs opérations de base

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

Nom : Date : Je connais par cœur toutes les opérations jusque 10.

Les chaînes de caractères

CHAPITRE VIII : Les circuits avec résistances ohmiques

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

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

Chapitre 4: Dérivée d'une fonction et règles de calcul

Fonction inverse Fonctions homographiques

Cours d algorithmique pour la classe de 2nde

Chapitre 2 Devine mon nombre!

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

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré FORMAV

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

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

Entraînement au concours ACM-ICPC

Chapitre 2. Matrices

Licence Sciences et Technologies Examen janvier 2010

Espace Numérique Régional de Santé Formation sur la messagerie sécurisée. Version Auteur : Nathalie MEDA

Résolution d équations non linéaires

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

5 ème Chapitre 4 Triangles

Manuel d installation Lecteur XM3

M é ca n ism e Pr o lo g. Ex e m p le

Cryptologie à clé publique

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

Présentation du langage et premières fonctions

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Cours d Algorithmique et de Langage C v 3.0

Algorithme. Table des matières

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours Informatique Master STEP

Le théorème de Thalès et sa réciproque

CN-GP50U. Instructions de fonctionnement. Lecteur d images Téléphone (Main libre) Français. Système de Navigation Portable

I. Introduction aux fonctions : les fonctions standards

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 ) ECRIRE (" équation du premier degré ") SI (b 0 ) ECRIRE ("solution est ", -c/b) ECRIRE (" Pas de solution") SI delta b*b-4*a*c Si (delta > 0) b racine( delta), " et ", 2 a SI b racine( delta) ECRIRE ("les solutions sont ", ) 2 a SI SI delta =0 ECRIRE ( "Solution est", -b/(2a)) ECRIRE ("pas de solutions réelles!!") SI Fonction standard 2 1

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) ECRIRE ("équation du premier degré ") SI (b<>0 ) Ecrire le même algorithme avec des selon-que : ECRIRE ("solution est ", -c/b) ECRIRE (" Pas de solution") SI SI delta b*b-4*a*c SELONQUE delta = 0 : ECRIRE ("la solution unique est:", -b/(2a) b racine( delta) b racine( delta) delta > 0 : ECRIRE (" les deux solutions sont ",, " et ", ) 2 a 2 a ECRIRE (" pas de solution réelle ") SELON 3 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) 4 2

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 ) hd h2-h1 md m2-m1 ECRIRE (" la durée de vol est : ", hd, ' : ', md) hd h2-h1-1 md m2+60-m1 ECRIRE (" la durée de vol est : ", hd, ' : ', md) SI 5 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) 6 3

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*) 7 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 ) SI (m2 > m1 ) hd h2-h1 md m2-m1 ECRIRE (hd, md) SI SI hd h2-h1-1 md m2+60-m1 ECRIRE (hd, md) SI (m2 > m1 ) hd h2-h1+24 md m2-m1 ECRIRE (hd, md) hd h2-h1+24-1 md m2+60-m1 ECRIRE (hd, md) SI 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 8 4

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) ici A < B reste à vérifier B? C echange (A,B) SI B > C ici B < C ET A < C (reste A? B) echange (B,C) SI A > B echange (A,B) SI Finalement A < B < C SI SI B > C Ici B <C ET A<C ((reste A? B) echange (B,C) SI A >B echange (A,B) SI Ici A <B ET B<C A<B<C SI SI ECRIRE ("Les valeurs A, B et C sont (dans Finalement l ordre):", A < A B, B < C,C) 9 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 ") LIRE (a) ECRIRE (" saisissez l opération ") LIRE (op) ECRIRE (" saisissez le deuxième entier") 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) ECRIRE (" division impossible ") ECRIRE ("la division de ",a, "par ",b, "est égale", a/b) SI Op = - : ECRIRE ("la soustraction de ",a, "et de ",b, "est égale", a-b) : ECRIRE((" Opération invalide ") SELONQUE 10 5

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 val : ENTIER Equivalent ECRIRE (" Entrer un nombre entier:") POUR LIRE (val) POUR i DE 1 A val S S+i POUR ECRIRE (" La somme des nombres de 1 à ", val,"est ", S) Algorithme Somme_Nombres Var i, S : ENTIER Val :ENTIER ECRIRE (" Entrer un nombre entier:") LIRE(val) i 1 TANTQUE i val S S+i i i+1 TANTQUE ECRIRE (" La somme des nombres de 1 à ", val,"est ", S) 11 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 Val : ENTIER Moyenne :REEL Equivalent POUR LIRE (val) POUR i DE 1 A val BOUCLE POUR S S+i POUR Moyenne S / val ECRIRE (" La moyenne des nombres de 1 à ", val,"est ", Moyenne) BOUCLE TANT QUE ALGORITHME Moyenne_Nombres Var i, S : ENTIER Val :ENTIER Moyenne : REEL i 1 Lire(val) TANTQUE i val S S+i i i+1 TANTQUE Moyenne S / val Ecrire (" La moyenne des nombres de 1 à ", val,"est ", Moyenne) 12 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 BOUCLE ALGORITHME Somme_Prix VAR p, S : ENTIER ECRIRE("Entrer le prix du 1 article:") LIRE (p) TANTQUE (p 0) S S+p ECRIRE("Entrer le prix de l'article suivant( 0 si Fin):") TANTQUE ECRIRE (" La somme des prix des articles est ", S) ALGORITHME Somme_Prix VAR p, S : ENTIER ECRIRE("Entrer le prix du 1 article:") S S+p ECRIRE("Entrer le prix de l'article suivant( 0 si Fin):") JUSQU'A (p =0) ECRIRE (" La somme des prix des articles est ", S) 13 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 ) : On peut changer l'algorithme : ALGORITHME Somme_Prix VAR p, S : ENTIER ECRIRE("Entrer le prix de l'article ( 0 si Fin):") S S+p JUSQU'A p =0 ECRIRE (" La somme des prix des articles est ", S) ALGORITHME Somme_Prix VAR p, S : ENTIER ECRIRE("Entrer le prix du 1 article:") S S+p ECRIRE("Entrer le prix de l'article suivant( 0 si Fin):") JUSQU'A p =0 ECRIRE (" La somme des prix des articles est ", S) 14 7

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 15 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) ECRIRE("Entrez le nombre numéro : ", indice) LIRE (Val) SI (val > PLUSGRAND) SI 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 16 8

Ecrire un programme 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 ) SI n>a ECRIRE (" nombre cherché plus petit que : ",n ) ECRIRE (" nombre cherché plus grand que ",n) SI t t+1 ECRIRE("entrez un autre nombre (tentative N ",t,")") LIRE (n) TANTQUE ECRIRE (" c'est gagné : le nombre de tentatives est",t) 17 Ecrire un programme 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 ECRIRE(" Entrez le nombre à deviner") LIRE (a) t 1 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) 18 9

É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 19 É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 SELONQUE a>b : a a-b a<b : b b-a SELON JUSQU' A a=b retourner(a) 20 10

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