Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme Médiane

Posté par
oceoce
12-01-17 à 21:27

Bonjour,
je suis en 1ère S SI et je dois faire un algorithme sur algobox permettant de trouver la médiane d'une série mais je n'y arrive pas du tout... J'ai fait 3 tentatives mais ma prof m'a dit qu'il fallait tout changer.
Je doit le rendre pour lundi et ce forum est mon ultime recours car je n'y comprend vraiment rien.

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 21:34

Bonjour,

Un peu vague comme énoncé.

Les valeurs dont on cherche la médiane sont données sous quelle forme et vont être interprétées comment par l'algorithme ?

Avant de faire chercher la médiane par une quelconque machine, comment ferais-tu avec tête et un crayon ?

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 21:41

Voici l'énoncé : "Ecrire un algorithme qui donne la médiane d'une série entrée par l'utilisateur sous la forme d'une liste L donnée de valeurs. On notera L[k] l'élément numéro k de la liste L, la numérotation commençant à 1".

A la main, je sais que :
- si N est pair alors la médiane est la valeur de rang : N/2+1
- si N est impair alors la médiane est la valeur de rang : (N+1)/2

J'ai oublié de préciser que ma prof m'a dit de ne pas trier la liste par ordre croissant car c'est déjà fait.

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 21:48

Alors il faut donc commencer par saisir les valeurs données dans une liste.

Et ensuite comment ferais tu pour savoir si un nombre est pair ou pas ?

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 21:54

je n'ai pas les valeurs donc voilà ce que j'ai fait mais qui ne marche pas (il faut enlever la partie qui trie la liste et j'ai confondu n avec N).
Pour savoir si un nombre est pair je pense qu'il faudrait demander si celui-ci se finit par 0, 2, 4, 6, 8 et pour savoir si un nombre est impair il faudrait demander s'il se termine par 1,3,5,7,9     ?

Algorithme Médiane

Algorithme Médiane

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 22:02

En effet ton prof a eu raison de te dire qu'il fallait tout refaire

1èrement ta saisie est faite par une boucle du style

Pour i allant de 1 à k  ...... or k est inconnu quand on arrive sur cette instruction ! Alors premier beug

2èment aucune machine ne sait dire si un "nombre est pair" ou "impair" .... il faut faire un calcul à la machine pour le savoir comme toi

On verra la suite plus tard

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 22:07

merci de m'aider mais j'avoue que je ne vois pas quoi faire
Est - ce que le début est bon ou pas du tout...? je ne suis vraiment pas douée pour les algos....

Algorithme Médiane

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 22:19

Aucune machine ne peut savoir si un nombre N se termine par 0 , 2 , 4 , 6 , ou 8 !

Il faut faire un calcul.

Pour savoir si N est pair,  il faut que le reste de  N divisé par 2 soit nul.

Il faut trouver la méthode pour exprimer le reste d'une division de N par 2

N = 2*q + r   avec  q = quotient entier de N par 2 et r le reste

r = N - 2*partie entière de (N/2)  

si tu n'as jamais vu cela , je ne vois pas comment tu pourrais l'inventer

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 22:20

je n'avais pas fait d'algo en seconde et c'est bien la première fois que je vois ces formules...

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 22:22

je ne les comprend pas.... à quoi servent-elles ? à exprimer le reste ?

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 22:27

Pas d'algo en seconde, alors il va falloir t'accrocher parce que celui-ci est plutôt hard

On doit saisir N valeurs
Il faut commencer par connaître N
Ensuite on regarde si N est pair ou pas
Et en fonction de la réponse précédente on peut conclure

Tu essayes ce que tu peux

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 22:28

je ne sais pas comment utiliser les formules ensuite

Algorithme Médiane

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 22:34

je pense avoir fini (j'ai supprimé a, b, q et r et j'ai ajouté med)

Algorithme Médiane

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 22:39

Au lieu de faire des essais non productifs, tu pourrais essayer de comprendre mes indices !

Il faut connaître N le nombre de valeurs à saisir, avant de les saisir, alors

Une instruction du genre "Saisir N" serait la bienvenue avant la boucle

Pour i variant de 1 à n
Saisir L(i)
Fin pour

Maintenant , essayons de traduire avec ce qu'une machine peut faire pour savoir si N est pair ou impair.

calculons le reste de la division de N par 2 soit : r = N - 2*partie entière de (N/2)  

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 22:40

parce que N/2 = 0 uniquement quand N = 0 ......

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 22:52

désolé
Donc si N=0 alors N/2=0
afficher N est pair
si N différent de 0 alors N/2=r
r=N-2*(N/2)
afficher r
si r différent de 0 alors N est impair

et ensuite on fait intervenir la médiane ?
Si N est pair
alors med est le terme de rang N/2+1
faire N/2+1
afficher résultat
affecter à med le terme de rang (résultat)
afficher med
sinon med est le terme de rang (N+1)/2
faire (N+1)/2
afficher résultat
affecter à med le terme de rang (résultat)
afficher med
Fin

Il ne faut pas rajouter une étape pour lui faire comprendre la médiane ?

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 22:53

au début il faut comme vous me l'avez dit :
Saisir N
afficher N

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 22:57

Commencer ton algo par si N = 0 est un peu contre productif ! On va donc saisir 0 valeur .... pas facile de trouver la médiane de 0 valeur !

J'ai juste voulu te démontrer que ton premier test Si N/2 = 0 est stupide !

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:01

je n'y comprend rien et même quand on m'explique je suis perdue, je suis une quiche et cet algorithme commence sérieusement à me gaver...

ducoup il faudrait mettre :
N a un minimum de 1 ....?

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:03

merci d'essayer de m'aider mais je pense ne jamais y arriver

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:04

Je te donne un coup de pouce pour le début

Saisir N
(pas besoin d'afficher N .... celui qui utilise le programme se souvient de ce qu'il vient de saisir ! sauf s'il est atteint  d'une maladie gravissime de mémorisation ! )

Pour i variant de 1 à N
Saisir L(i)
Fin pour

Maintenant on se pose la question N est pair ou pas ? Quel calcul faire ?

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:05

Alors si cela te gave , au revoir

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:08

Dommage, en réfléchissant un tout petit pu tu aurais pu y arriver mais je ne suis pas à ta place.

Tu ne veux pas progresser, c'est ton choix. il est stupide mais c'est le tien !

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:17

Le bac c'est dans quelques mois, il va falloir changer ton attitude sur les notions à assimiler !  

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:20

je ne disais pas ça contre vous mais la prof ne nous a donné aucune aide et l'algorithme est très compliqué de base en plus comme c'est un des premiers que je fait je suis totalement perdue...
d'après ce que je crois avoir compris de vos explications :
pour savoir si N est pair ou impair on réalise N/2
pour n'importe quel nombre saisi on doit obtenir un reste r (N/2=r)
et on a r=N-2*(N/2)
ducoup on calcule r et on affiche r
si r =0 alors n est pair car :
pour N = 4 : 4/2=2
r= 4-2*2= 0
pour N = 5
5/2 = 2,5
r = 5 - 2*2,5 =0
mais ca marche pas ducoup.... parce que n est impair mais r vaut quand même 0
j'essaye avec N = 13
13/2=6,5
r=13-2*6,5=0
ca veut dire que pour tous entiers N, r = 0 .....? ca me parait très bizarre ça, quoi que non c'est logique car on enlève à N deux fois N (sa moitié) donc c'est logique d'obtenir 0
donc pour tous entiers N, N est pair donc on n'as jamais de cas où N est impair ?

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:24

je dois être la seule personne sur Terre à avoir des difficultés et à trouver la 1eS dure alors
je n'ai jamais dit que je ne voulais pas progresser, je pose régulièrement des questions en cours et en maths je fait volontairement des exos plus durs que je fait corriger par la prof pour essayer de combler mes lacunes et justement de progresser

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:28

r = N-2*(N/2)
revient à dire que r = N-N alors ?

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:28

Je t'ai dit que cet algorithme n'était pas simple à trouver . je te guide pour y arriver , tu peus peut-être essayer de me suivre !

Le reste de la division de N par 2 se trouve en calculant  N - 2*partie entière de (N/2)  

5/2 =  2,2

la partie entière de 5/2  vaut 2
et
5 - 2*partie entière de (5/2)   = 5 - 2*2 = 1

Donc 5 n'est pas divisible par 2

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:31

Je n'ai pas écrit r = N-2*(N/2)

mais r = N - 2*partie entière de (N/2)  

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:35

Il est l'heure d'aller au lit.

Tu reviens demain en réfléchissant de façon plus zen et plus concentrée.

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:38

donc si j'ai N/2= 4,3
la partie entière est 4 donc on fait : r=N-2*4 ?ducoup c'est le résultat de r qui définit si N est pair ?

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:39

je vais essayer d'avancer sur les recherches, merci et bonne nuit, à demain alors

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:43

Oui c'est ce que je te dis depuis in certain temps !

Un nombre est pair si le reste de sa division par 2 est 0 et je t'ai donné la méthode pour trouver le reste de la division de N par 2

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:48

Ton exemple  N/2= 4,3   est étrange cela voudrait dire que  N = 2 * 4,3 = 8,6 , étrange pour un entier !

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:49

ducoup si en fesant N/2=r puis r = N-2*partie entière de (N/2) on a r=0 (si et seulement si on a 0) alors N est pair et sinon N est impair ?
après il suffit d'appliquer :
- si n est pair alors
-med est la valeur de rang N/2+1
- afficher med
- si n est impair alors
-med est la valeur de rang (N+1)/2
- afficher med

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:50

j'ai pris l'exemple de 4,3 au hasard juste pour être sûre d'avoir compris la notion de  "partie entière", je vous rassure je sais quand même ce qu'est un entier malgré mes lacunes !

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:52

Tout ceci est archi faux

Il va falloir revoir ta copie !

Posté par
cocolaricotte
re : Algorithme Médiane 12-01-17 à 23:52

Bonne nuit

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:54

d'ailleurs N = 2*2,2 = 4,4 et non 5 ahah

Posté par
oceoce
re : Algorithme Médiane 12-01-17 à 23:54

bon...je vais y retravailler alors
bonne nuit

Posté par
cocolaricotte
re : Algorithme Médiane 13-01-17 à 00:03

Tu connais partie entière d'un nombre décimal depuis l'école primère

Posté par
oceoce
re : Algorithme Médiane 13-01-17 à 00:12

Exact :') je suis un peu blonde sur les bords

Posté par
cocolaricotte
re : Algorithme Médiane 13-01-17 à 13:28

Horreur dans mon dernier post : il faut bien sûr lire école primaire.

Et dans Algobox la partie entière d'un nombre x est calculée par floor(x)

Et je viens de vérifier Algobox possède une fonction % utilisée en x%y donne le reste de la division de x par y

Posté par
oceoce
re : Algorithme Médiane 13-01-17 à 13:46

Bonjour
J'avais vu la faute aussi mais c'est pas grave
Bref j'ai retravaillé l'algorithme avec un ami, je vous l'envoie ce soir.
Bonne après-midi

Posté par
oceoce
re : Algorithme Médiane 14-01-17 à 13:59

Bonjour,
J'ai fais l'algorithme avec un ami et il marche, merci de votre aide.

Posté par
cocolaricotte
re : Algorithme Médiane 14-01-17 à 17:14

Alors pour ceux qui en auraient besoin, l'algorithme que j'ai fait:

1   VARIABLES
2     n EST_DU_TYPE NOMBRE
3     r EST_DU_TYPE NOMBRE
4     L EST_DU_TYPE LISTE
5     i EST_DU_TYPE NOMBRE
6     med EST_DU_TYPE NOMBRE
7   DEBUT_ALGORITHME
8     LIRE n
9     POUR i ALLANT_DE 1 A n
10      DEBUT_POUR
11      LIRE L[i]
12      FIN_POUR
13    r PREND_LA_VALEUR n%2
14    SI (r==0) ALORS
15      DEBUT_SI
16      med PREND_LA_VALEUR (L[n/2]+L[n/2+1])/2
17      FIN_SI
18      SINON
19        DEBUT_SINON
20        med PREND_LA_VALEUR L[(n+1)/2]
21        FIN_SINON
22    AFFICHER med
23  FIN_ALGORITHME

Posté par
oceoce
re : Algorithme Médiane 15-01-17 à 11:22

Bonjour, il n'y aurait pas une erreur ligne 16 par hasard ?

Posté par
cocolaricotte
re : Algorithme Médiane 15-01-17 à 11:33

non



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !