Misfu, le site des cours Informatique/Bureautique/Mathematiques


 

L'alternative avec le tableur

Tu dois devenir capable de

Savoir

  1. Citer et commenter, dans le cadre du calcul conditionnel, les trois sortes d’informations que peut traiter un ordinateur ;
  2. expliquer le principe de construction d’un arbre binaire de décision.

Savoir faire

  1. écrire un arbre binaire de dcision pour une alternative simple ;
  2. écrire un arbre binaire de décision pour une alternative complexe ;
  3. Formaliser des situations d’alternative dans la forme si <condition> alors <action1> sinon <action2> (phrase conditionnelle) et dans un graphe de Nassi-Schneiderman ;
  4. écrire une fonction alternative complexe dans le cadre d’un tableur.

Principe du calcul conditionnel

Introduction au clavier

Démarre l’application OpenOffice.org Calc et demande une nouvelle feuille de calcul. Suis les indications données dans le tableau ci-dessous.

Cellule
Frappe au clavier
Résultat
Explication
A1 Il fait beau Le texte « Il fait beau » s’écrit dans la cellule A1 L’affirmation est peut-être correcte, peut-être fausse ; l’ordinateur n’a aucun moyen de la savoir
A2 =(5+5) La valeur du résultat du calcul, c’est-à-dire 10, apparaît dans la cellule L’ordinateur a évalué l’expression mathématique simple et retourne son résultat
A3 =(4>3) La valeur du résultat de l’évaluation, c’est-à-dire « VRAI » apparaît dans la cellule L’ordinateur a évalué l’expression logique simple et retourne son résultat ; cette expression est vraie : 4 est plus grand que 3
A4 =(255*4)<1000 La valeur du résultat de l’évaluation, c’est-à-dire « FAUX » apparaît dans la cellule L’ordinateur a évalué l’expression logique simple et retourne son résultat: cette expression est fausse: 255*4 = 1020 qui n’est pas plus petit que 1000

Enregistre la feuille de calculs sous le nom ' intro.sxc '. Nous l'utiliserons plus loin dans la leçon.


Quand tu as terminé l'expérimentation et compris les résultats obtenus, passe à l'étape suivante.

Expressions logiques non mathématiques

Expérimentations

Dans une feuille de calcul vierge, introduis les informations suivantes:

Cellule
Frappe au clavier
Résultat
Explication
C1 ='Jacques'='André'
FAUX
le texte « Jacques » n’est pas équivalent, caractère par caractère, au texte « André »
C2 ='Jacques'>'André'
VRAI
le texte « Jacques » doit être classé plus loin que le texte « André » si l’on se réfère uniquement à l’ordre alphabétique
C3 ='anatole'='Anatole'
Faux
le logiciel OpenOffice.org Calc fait la distinction entre les majuscules et les minuscules dans cette comparaison
C4 ='Mac Donald'>'Quick'
?
Justifie sans utiliser d’argument gastronomique !

- A propos de cette dernière expression, moi, j'ai bien ma petite idée. Il suffit de voir comment j'ai été malade en sortant du ........., la semaine passée!
Mais, que je sache, on n'a jamais pu forcer un ordinateur à manger un hamburger. Où est donc l'astuce?

- Pour cette comparaison, l'ordinateur n'utilise que l'ordre alphabétique. Aucun autre critère n'intervient. Il n'a aucun accès au sens des informations.

En fonction du logiciel utilisé, il se peut que la convention d’ordre alphabétique diffère. Généralement, les caractères majuscules et minuscules ne sont pas considérés comme équivalents.

En réalité, les caractères ne sont pas représentés en tant que tels dans l’ordinateur. Il n’est capable que de mémoriser des nombres ; chaque caractère s’est donc vu, par convention, attribuer un code numérique.

La convention ASCII (American Standard Code for Information Interchange), par exemple est illustrée ci-dessous.

32

 

51

3

70

F

89

Y

108

l

33

!

52

4

71

G

90

Z

109

m

34

'

53

5

72

H

91

[

110

n

35

#

54

6

73

I

92

\

111

o

36

$

55

7

74

J

93

]

112

p

37

%

56

8

75

K

94

^

113

q

38

&

57

9

76

L

95

_

114

r

39

'

58

:

77

M

96

`

115

s

40

(

59

;

78

N

97

a

116

t

41

)

60

<

79

O

98

b

117

u

42

*

61

=

80

P

99

c

118

v

43

+

62

>

81

Q

100

d

119

w

44

,

63

?

82

R

101

e

120

x

45

-

64

@

83

S

102

f

121

y

46

.

65

A

84

T

103

g

122

z

47

/

66

B

85

U

104

h

123

{

48

0

67

C

86

V

105

i

124

|

49

1

68

D

87

W

106

j

125

}

50

2

69

E

88

X

107

k

126

~

Les caractères de code inférieur à 32 (code du caractère « espace ») ont des rôles particuliers (retour à la marge, passage à la ligne, ...). Les codes supérieurs à 127 ne sont pas attribués dans le code ASCII original. En fonction de la langue utilisée, les caractères spéciaux peuvent recevoir un code entre 128 et 255. On parle alors de code ASCII étendu.

Les caractères majuscules ont un code plus petit que le code des caractères minuscules. Certains logiciels se basent uniquement sur cette convention pour comparer des chaînes dans l’ordre alphabétique. Dès lors, la comparaison 'anatole'='Anatole' pourrait avoir la valeur « VRAI » dans certains logiciels (c'est le cas de Microsoft Excel, par exemple)  ; la réponse dépend du mode de comparaison entre les caractères: codage ASCII strict ou non.


Le code ASCII est :
un code secret utilisé par la CIA pour rendre illisibles les messages échangés par ses agents ;
un code compréhensible uniquement par les ordinateurs ;
un système de codage des caractères alphabétiques.

Pour répondre à la question suivante, tu devrais réaliser un test à l'aide du tableur.
Dans l'ordre imposé par le code ASCII :
un caractère accentué a une valeur supérieure au caractère non accentué correspondant ;
un caractère accentué a une valeur identique au caractère non accentués correspondant ;
un caractère accentué a une valeur inférieure au caractère non accentué correspondant.


Pour répondre à la question précédente, un test qui ne laisse aucun doute serait d'entrer l'expression logique suivante dans une cellule :

=('é'='e') dont on constate qu'elle prend la valeur FAUX
=('é'>'e') dont on constate qu'elle prend la valeur VRAI
=('é'<'e') dont on constate qu'elle prend la valeur VRAI

A l'aide de la fonction CAR (fonction Texte), établis un tableau indiquant les caractères dont le code ASCII est compris entre 32 et 255.
Quand tu as répondu aux questions relatives aux expressions logiques portant sur des lettres, des mots ou des phrases, passe à l'étape suivante.

L’alternative

Introduction au clavier

Ouvre le classeur ' intro.sxc ' produit au début de cette leçon. Introduis-y les informations suivantes :

Cellule
Frappe au clavier
(ne pas introduire les passages à la ligne)
Résultat
Explication
E1 =SI(A1='Il fait beau';'Bronzage';'Parapluie') Le texte « Bronzage » apparaît dans la cellule E1 l’expression logique a été évaluée (elle est vraie) et le mot « Bronzage » apparaît.
A1 Il pleut le texte « Parapluie » apparaît dans la cellule E1
l’expression logique a été évaluée (elle est fausse) et le premier mot (Parapluie) apparaît.
E2 =SI(A2>=10;0;1) la valeur 0 apparaît dans la cellule E2
l’expression logique a été évaluée (elle est vraie) et la première valeur apparaît.
A2 5 la valeur 1 apparaît dans la cellule E2 l’expression logique a été évaluée (elle est fausse) et la deuxième valeur apparaît.

Conclusion

La conjonction « SI » marque le début d’une alternative.

Une alternative est une situation dans laquelle deux (et seulement deux) possibilités se présentent.

Le mot « SI » est suivi d’une expression logique, qui est donc vraie ou fausse.

L’ordinateur est capable de reconnaître la situation d’alternative et d’évaluer l’expression logique. Si celle-ci est vraie, la fonction alternative retourne la valeur qui suit l’expression logique. Si l’expression logique est fausse, c’est la deuxième valeur qui est retournée.


Quand tu es capable de définir la notion d'alternative et d'exposer des exemples concrets, passe à l'étape suivante.

Ecritures de l’alternative

Il est souvent commode d’écrire l’alternative sous l’une ou l’autre forme visuellement parlante. Chacune des trois méthodes suivantes peut être utilisée.

Première forme : la phrase alternative

Si < expression logique>
Alors action 1
Sinon action 2
Fin Si

- Dites, cette expression exotique et bizarre 'Fin Si', elle est vraiment obligatoire ? Ou bien, c'est pour ceux qui sont un peu miro et qui ne voient pas que c'est la fin ?

- Contrairement à ce que l'on pourrait penser, le ' Fin Si ' n'est pas seulement esthétique : nous n'allons pas tarder à rencontrer des cas, dans des expressions complexes, où il est intéressante de bien visualiser la fin de l'alternative. Prenons donc l'habitude de l'indiquer.

- Et pour cette barre verticale entre ' Si ' et ' Fin Si ', je vais aussi devoir attendre les expressions complexes pour en apprécier l'intérêt ?

- Exactement ! Le moment de bénir l'existence des traits verticaux n'est pas encore toutà fait arrivé. Encore un tout petit peu de patience.

Deuxième forme: graphe de Nassi-Schneiderman (GNS)

Expression logique
Action si vrai Action si faux

Troisième forme: l'arborescence

L'appellation ' arborescence ' prendra tout son sens dans les cas d'alternatives complexes.

Exemples :

Première forme :

Si < il fait beau >
Alors Me faire bronzer
Sinon Prendre un parapluie
Fin Si

Deuxième forme :

Il fait beau
Me faire bronzer
Prendre un parapluie

Troisième forme :


Quand tu as compris le sens des trois représentations de l'alternative, passe à l'étape suivante pour quelques exercices.

Déjà vu, mais un peu plus complexe...

Dans un chapitre précédent du cours, tu as mis au point un 'jeu de dés'. Il serait intéressant que l'ordinateur lui-même annonce le vainqueur.

La situation inititale se présente donc comme sur l'illustration ci-contre. Dans ce cas, c'est le joueur bleu qui a gagné.


Peux-tu exprimer la situation présentée ci-dessus dans chacune des trois formulations proposées dans ce cours?

Quelle difficulté nouvelle apparaît ici ? Attention, il y a un piège !

Quand tu as rédigé les trois formulations sur une feuille de papier, passe à la suite.


Quand tes réponses sont correcte, passe à l'étape suivante.

L'alternative simple : approfondissement

Arbre de décisionParmi les façons d'exprimer la situation d'alternative du jeu de dés, on pourrait écrire la représentation en arbre illustrée à droite ou la phrase alternative indiquée ci-dessous  :


Si (B4 > C4) 
Alors écrire ' Bleu gagne '
Sinon écrire ' Jaune gagne '
Fin Si

Comment formuler ces représentations dans le formalisme imposé par le tableur ?

=SI(Test_logique;Valeur_si_vrai; Valeur_si_faux)

On voit que la situation est relativement simple: il suffit d'écrire :

=SI(B4 > C4; 'Le joueur Bleu a gagné' ; 'Le joueur Jaune a gagné')

Rappel : il faut mettre des guillemets autour des deux phrases car ce ne sont pas des valeurs numériques.

Reporte dans la cellule C5 de la feuille de calcul du jeu de dés, l'expression de l'alternative construite ci-dessus. Vérifie que le jeu fonctionne correctement dans tous les cas.

Dans quelles circonstances y a-t-il un problème ?

- Ben zut alors, tout ça semblait tellement évident et vlan, un problème se pointe !

- Tu viens de faire l'expérience douloureuse de la difficulté de travailler avec un ordinateur. Comme il est, lui-même, très bête, il faut être deux fois plus intelligent à sa place.
La réflexion approfondie sera toujours une part importante du travail de l'informaticien.


Quand ton jeu fonctionne et que tu as situé le problème possible, passe à l'étape suivante. Nous résoudrons ce problème plus loin.

Alternative complexe appliquée au jeu de dés

alternative complexeLa difficulté rencontrée dans le jeu de dés est bien celle du cas d'égalité. Dans la résolution proposée, le joueur Bleu est proclamé gagnant lorsque son score est meilleur ET s'il y a égalité. Ce n'est pas normal.

Mais le problème est simple à traiter en utilisant une arborescence à deux niveaux, comme dans l'exemple de l'équation du premier degré traité à l'étape précédente.

Remarque qu'il existe plusieurs façons de traiter le problème. On aurait pu utiliser d'autres tests : commencer par vérifier si B4=C4, par exemple.


Peux-tu reformuler l'alternative présentée sous forme d'arborescence dessinée ci-dessus, en utilisant une phrase alternative complexe (si... alors... sinon...) ?

Rédige cette phrase alternative puis passe à la suite.


Quand ta phrase alternative est correcte, transpose-la dans la formulation du tableur.
Quand ta feuille de calcul est prête, joue quelques parties afin de vérifier que tout fonctionne correctement. Ensuite, passe à l'étape suivante.

Alternative complexe : (où l'on apprend à l'ordinateur à faire ses devoirs de maths)

Énoncé du problème et analyse

On demande de programmer le tableur de manière à lui faire résoudre les équations du premier degré du type ax + b = 0 d'inconnue x.

Ce type de problème est élémentaire au cours de mathématiques : il se résout de la manière suivante.

Il y a ici une situation d'alternative double :

  1. Il y a un choix entre deux possibilités ; pour choisir, il faut examiner le coefficient de x (il est nul ou il ne l'est pas).
  2. Si a0, il y a encore un choix entre deux possibilités ; pour choisir, il faut examiner le 2ème membre de cette équation (il est nul ou il ne l'est pas).

Résultat attendu et méthode

On attend d’obtenir une feuille de calcul semblable aux exemples ci-dessous.

Pour la facilité, il serait souhaitable de nommer les deux cellules grisées a et b.
Attention ! Suite à un bug dans Excel 2000, il n'est pas possible de donner ces noms aux cellules lorsqu'on utilise ce logiciel. Utiliser impérativement OpenOffice.org Calc.


Alternative dans le tableur

Avant d’écrire le formalisme propre au tableur, nous présenterons l’alternative selon la forme

si <expression logique> alors <action1> sinon <action2>

Si (a<>0)
Alors
écrire (-b/a)
Sinon
Si (b<>0)
Alors écrire ' Impossible '
Sinon écrire ' Indéterminé '
Fin Si
Fin Si

La fonction alternative s’écrira donc :

=SI(a<>0;-b/a;SI(b<>0;'Impossible';'Indéterminé'))

ou, si l'on utilise les coordonnées plutôt que les noms

=SI(A2<>0;-D2/A2;SI(D2<>0;'Impossible';'Indéterminé'))

Utilise toutes les informations données plus haut pour résoudre le problème de la résolution des équations du premier degré avec le tableur.


Quand ta feuille de calcul est prête, teste tous les cas possibles. Ensuite, passe à l'étape suivante.

Comment construire une structure alternative correcte sans (trop) se fatiguer

Dans certains cas, il n'est pas possible d'exprimer aisément la situation d'alternative parce que les conditions ne sont pas simples. Si l'on se trouve dans une telle situation, alors il faut utiliser une méthode pour construire l'alternative. Nous utiliserons la méthode par construction d'un arbre binaire de décision.

Le pape Grégoire XIII sans qui cette page nProblème

Écrire un programme qui détermine si une année dont on donne le millésime est bissextile.

Une année est bissextile si son millésime est multiple de 4; cependant, les années dont le millésime est multiple de 100 ne sont bissextiles que si c'est aussi un multiple de 400 (1900 n'était pas bissextile, 2000 l'a été).

Il faut bien mettre en évidence toutes les conditions particulières à envisager lors de la résolution du problème. Il faut évaluer si:

    • le millésime est un multiple de 4;
    • le millésime est un multiple de 100;
    • le millésime est un multiple de 400.

Construction d'un arbre binaire de décision

Examine attentivement l'arborescence ci-dessous durant la lecture de l'explication de sa construction.

Arbre binaire années bissextilesChoisissons une de ces conditions particulières et voyons ce qu'il convient de faire si elle est vraie et si elle est fausse. Nous commencerons par la condition « multiple de 4 ».

Si la condition est fausse, l'année n'est pas bissextile et c'est fini, sinon, il faut encore travailler.

Quelle question faut-il se poser si le millésime est multiple de 4? Il faut voir si c'est un multiple de 100.

Si la condition est fausse, alors l'année est bissextile et c'est fini, sinon, il faut encore travailler.

Si la condition est vraie, alors l'année est bissextile, sinon, elle n'est pasbissextile. Dans tous les cas, le travail est terminé.

La structure de décision se présente sous la forme d’un arbre inversé, c’est-à-dire dont la racine serait en haut et les branches en bas.

Dans le formalisme Si...Alors...Sinon..., ce tableau pourrait s’exprimer :

Si <Millésime multiple de 4>
Alors
Si <Millésime multiple de 100>
Alors
Si <Millésime multiple de 400>
Alors ' Bissextile '
Sinon ' Non Bissextile '
Fin Si
Sinon
' Non bissextile '
Fin Si
Sinon
' Non bissextile '
Fin Si

Vérifie, à l'aide de l'abre binaire de décision ou de la structure si...alors...sinon, que les années 1930, 2003 et 2100 ne sont pas bissextiles.

Vérifie ensuite que 1980, 1800 et 2400 sont des années bissextiles.


Années bissextilesTranspose le formalisme de l'arbre ou de la phrase alternative dans celui qui est propre au tableur.

Le but est de pouvoir proposer un tableau semblable à celui de l'illustration ci-contre pour toutes les années à partir de 1582.

- Bah! Pourquoi 1582?

- Et bien, cherche. ;o)
Il y a suffisamment d'informations sur cette page pour pouvoir trouver aisément la réponse à cette question.


Quand tu as établi la feuille de calcul demandée, passe à l'étape suivante.

Les années bissextiles, en pratique

La pratique pose deux problèmes :

  1. il faut être capable de déterminer si un nombre est multiple d’un autre ;
  2. il faut être capable d’écrire une alternative complexe.

Pour savoir si un nombre est divisible par un autre, il suffit de faire la division et de déterminer la valeur du reste de cette division. Les programmes tableurs mettent généralement une fonction MOD à la disposition des utilisateurs.

Dans la cellule frappe Résultat
A1 =MOD(27;5) 2, le reste de la division de 27 par 5
A2 12  
A3 =MOD(A2;A1) 0, la division de A2 par A1 a un résultat entier !

Si la cellule qui contient le millésime de l’année est nommée « AN », l’alternative s’écrira alors :

Si MOD(AN;4)=0
Alors
Si MOD(AN;100)=0
Alors
Si MOD(AN;400)=0
Alors ' Bissextile '
Sinon ' Non Bissextile '
Fin Si
Sinon
' Non bissextile '
Fin Si
Sinon
' Non bissextile '
Fin Si

Ce qui s’écrira simplement :

=SI(MOD(AN;4)=0;SI(MOD(AN;100)=0;SI(MOD(AN;400)=0;'Bissextile';'Non bissextile');'Bissextile');'Non bissextile')

dans le formalisme propre au tableur.

Il paraît bien difficile d’écrire cette formule sans réaliser l’analyse complète du problème.


Quand tu as compris la formule pour déterminer les dates bissextiles dans le tableur, passe à l'étape suivante.

Exercices

Pour chacun des exercices qui suivent, il est demandé de réaliser une analyse complète et de tracer l’arbre binaire de décision ou d'écrire la phrase alternative, préalablement au travail au clavier.


1. On demande d'établir une feuille de calcul à l'usage d'un employé de banque. Étant donné le solde du compte en banque d'un client et le montant qu'il désire retirer de son compte, le programme doit indiquer le message « retrait accepté », le montant du retrait et le nouveau solde du compte si le compte est suffisamment approvisionné. Si le solde du compte avant retrait est inférieur à –500 €, le retrait est refusé; le nouveau solde du compte après retrait ne peut être inférieur à –500 €, de sorte que le retrait peut, dans certains cas, être limité à un montant tel que cette exigence soit respectée.


2. Établir une feuille de calcul qui indique le plus grand de trois nombres fournis par l'utilisateur.


3. Une entreprise désire établir une feuille de calculs pour déterminer le nombre de jours de congé auxquels ont droit ses employés sachant qu'ils bénéficient de 2 jours de congé par mois de présence durant l'année écoulée et de 10 jours de congé supplémentaires s'ils ont plus de 10 ans de service dans la société.


4. Le règlement d'un club londonien très fermé précise que tout membre doit répondre aux conditions suivantes : il ne peut pas mesurer plus de 1,85 m ni moins de 1,50 m. Cependant, les personnes de plus petite taille (moins de 1,50 m) sont admises à condition de peser plus de 60 kg et d'être âgées de plus de 18 ans. Les personnes de très grande taille (plus de 1,85 m) sont admises si elles pèsent moins de 100 kg, sauf si elles ont plus de 45 ans, cas où elles ne sont jamais admises.

Écrire l'arbre de décision binaire puis l’alternative qui permet de déterminer si une personne est admissible.


5. Établir une feuille de calcul qui détermine si une date donnée entre le 1 janvier 1901 et le 31 décembre 1999 a existé. Pour rappel, dans cet intervalle, toutes les années dont le millésime est multiple de 4 sont bissextiles.

Ex: le 12/06/1978 est une date licite
le 30/02/1989 est une date illicite
le 34/15/1965 est une date illicite

Astuce: il est possible de déterminer séparément si l’année est bissextile. On peut utiliser le résultat du test dans une autre alternative.


6. Établir une feuille de calcul destinée à rédiger des factures chez un grossiste en disques. Celui-ci vend des disques « single » au prix unique de 5€ et des CD au prix de 9€. Le montant de la TVA à appliquer sur les factures est de 21%.

Le client se voit facturer les frais de port (forfait de 5€) au cas où le montant (hors TVA) de sa commande est inférieur à 125 €. Cependant, s'il s'agit d'un bon client (montant des achats supérieurs à 2.500 € au cours de l'année écoulée), les frais de port sont réduits à 1,25 €. La TVA ne s'applique pas sur les frais de port!


7 Les membres de la secte des « mathos-dingos » considèrent qu'un nombre de 4 chiffres est magique si le premier chiffre est pair et que la somme des deux suivants est impaire. Toutefois, si le dernier chiffre est pair, le nombre n'est réellement magique que si le produit des deux médians est un multiple de 3.

Etablis une feuille de calcul qui détermine si une suite de 4 chiffres constitue un nombre magique.

Ex: 2321 est magique ; 4452 ne l'est pas.

La fonction ENT (qui signifie « partie entière ») permet de connaître la partie entière d’un nombre fractionnaire. Le fragment de tableur ci-contre permet d’isoler les quatre chiffres de la cellule en haut et à gauche dans la deuxième colonne.


8 Établir une feuille de calcul pour résoudre les équations du second degré à une inconnue de la forme ax²+bx+c=0.


Quand tu as réalisé les exercices proposés, tu as fini !!


Droits d'auteur : Yves Mairesse. Ce cours est sous contrat Creative Commons