Fiche d'exercices n°2 : l'alternative Exercice 1 : expressions logiques On considère 6 variables : a,b,c,d qui contiendront des entiers, et X et Y des booléens. Evaluer les expressions logiques suivantes avec les valeurs contenues dans les variables suivantes : (a,b,c,d) = (2,3,5,10) ET (X,Y) =(Vrai,Faux) Pour ce faire, avant de donner la réponse vous modifierez chaque expression contenant des NON par une expression « positive » (exemple : NON(a==0) (a0)), et vous remplacerez les variables par leur valeur, puis les sous-expressions par leur valeur. Exemple : NON(ad) OU (cb) (ad) OU (cb) (210) OU (5<3) Vrai OU Faux : l'expression retourne la valeur Vrai. 1. (a < b) ET (a < c) 2. NON ((a < b) ET (a < c)) 3. NON (a < b) ET (a < c) 4. (a < c) ET (c == d / 2) 5. (d / a == c) == Y 6. (d / c == b) == Y 7. (d / c == b) == X 8. (a < b) ET (d < c) 9. (a < b) ET (d < c) == X Exercice 2 : Dites ce qu'affiche chacun des arbres programmatiques, pour les différentes valeurs de a : -15 ; -3 ; 9 ; 12. Vous remarquerez que les conditions sont les mêmes, mais ne sont pas toutes au même niveau de séquence. Quel temps (1)? a : entier saisir(a) si si (a < 0) ET (a > -12) a > -5 afficher(« quel froid ») afficher(« bientôt le dégel ») si a < 10 afficher(« bientôt le printemps ») Quel temps (2) ? a : entier saisir(a) si si (a < 0) ET (a > -12) afficher(« bientôt le dégel ») a > -5 afficher(« quel froid ») si a < 10 afficher(« bientôt le printemps ») Quel temps (3) ? a : entier si saisir(a) (a < 0) ET (a > -12) afficher(« quel froid ») a > -5 si afficher(« bientôt le dégel ») a < 10 si afficher(« bientôt le printemps ») Vous donnerez pour chaque arbre programmatique l'expression qui amène à la réalisation de chaque branche. Exercice 3 1. Ecrire l'arbre programmatique qui permet de saisir 2 nombres et qui affiche le plus grand des 2. 2. Compléter cet arbre en prenant en compte le cas de l'égalité (afficher un autre message s'ils sont égaux). 3. Traduire l'arbre programmatique obtenu à la question 2. en un programme python sur machine directement. Exercice 4 : état de l'eau Ecrire l'arbre programmatique permettant de lire la valeur de la température de l’eau et d’afficher son état : • GLACE si la température est inférieure à 0, • EAU si la température est strictement supérieure à 0 et inférieure à 100, • VAPEUR si la température est supérieure à 100. Vous traduirez ensuite cet arbre programmatique en un programme python sur machine directement. Exercice 5 1. Ecrire un arbre programmatique qui demande un nombre puis qui affiche “pair” si ce nombre est pair et “impair” dans le cas contraire. 2. Ecrire un arbre programmatique qui permet de simuler un jeu. Les règles de ce jeu sont très simples : deux joueurs A et B se cachent la main droite derrière le dos. Chacun choisit de tendre un certain nombre de doigts (de 0 à 5), toujours derrière le dos. Les deux joueurs se montrent la main droite en même temps. Si la somme des nombres de doigts montrés est paire, le joueur A a gagné, sinon c’est B. Après avoir saisi le nombre de doigts choisi pour chaque joueur, écrire l'arbre programmatique permettant de réaliser le scénario suivant et de donner le vainqueur. 3. Vous traduirez l'arbre programmatique de la question 2. en un programme python. Exercice 6 1. Ecrire un arbre programmatique qui permet de dire si une année est bissextile ou pas. Rappel: Une année est bissextile si elle est multiple de 4 sans être multiple de 100 à moins qu’elle soit multiple de 400. L'arbre programmatique permettra de saisir une année et d'afficher si elle est bissextile ou non. 2. Ecrire un arbre programmatique qui permet de dire si une date (jour, mois, année) est valide. Si elle ne l'est pas dire pourquoi (29 février d'une année non bissextile ou 31 d'un mois en 30 jour, …). Pour réaliser ceci il faudra énoncer tous les cas d'une date valide, tous les autres cas correspondront alors à une date non valide. Le jour, le mois seront des entiers et l'année sera donnée également en entier (on saisira 2002 en non 02). 3. Traduire ensuite l'arbre programmatique 2. en un programme python. Exercice 7 Sachant que pour obtenir le module d'algorithmique, il faut obtenir plus de 10, proposez un arbre program matique qui détermine si un étudiant est reçu ou pas à partir de (= saisie des valeurs) : • la note de contrôle continu, • la note d'examen, • le nombre d'absences. La note finale est composée de : • 1/3 de la note du contrôle continu qui devient nulle si l'étudiant a 6 absences (ou plus) , • 2/3 de la note d'examen. Vous pourrez traduire cet arbre programmatique en langage python. Exercice 8 Ecrire l'arbre programmatique qui permet d'aider une compagnie d'assurance à prendre une décision concernant les demandes d'affiliation en se basant sur les critères suivants : Critère Age Bonne santé Accident Contrat A >30 Oui Non Contrat B <=30 Oui Non >30 Oui Oui Contrat C <=30 Oui Oui Contrat refusé - Non Oui Expertise demandée - Non Non Décision Vous traduirez ensuite en un programme python l'arbre programmatique obtenu précédemment. Exercice 9 : programme mystère Champignon rep : booléen → afficher(''il a une forme en parapluie ?'') saisir(rep) si → rep == vrai → afficher(''il a des lamelles ?'') saisir(rep ) si afficher(''il a une forme en buisson ?'') si saisir(rep ) afficher (''c’est un clavaire'') rep == vrai rep == faux afficher (''c’est une Chanterelle ?'') afficher(''il a des plis ?'') saisir(rep) rep == vrai afficher(''il a un pied ?'') → afficher('' il a une forme de toupie ?'') afficher (''c’est un agaric'') saisir(rep) rep == vrai → si saisir(rep ) rep == vrai si → afficher (''c’est un pezize'') afficher (''c’est une vesse de loup'') si afficher (''c’est un bolet'') afficher (''c’est un polypore'') Quels sont les champignons correspondant à la suite de réponses suivantes (à chaque ''saisir(rep)'', on donne une réponse ''vrai'' ou ''faux'' ce qui permet de choisir quelle nouvelle branche choisir) : 1. vrai, vrai, vrai 2. vrai, vrai, faux, faux 3. faux, faux, vrai 4. faux, faux, faux Exercice 10 Ecrire un arbre programmatique qui permet de saisir 2 entiers, puis d'afficher si leur produit est négatif, positif ou nul. Vous pourrez traduire cet arbre programmatique en un programme python.