Bonjour,
SVP je n?arrive pas à traduire cet algorithme en programme scratch.
Merci
** image supprimée **
***malou edit > les scans de devoir ne sont pas autorisés ! * Si tu veux de l'aide, il faut recopier l'énoncé conformément à Sujet ancien- ne plus donner ce lien-merci***
**même l'algorithme peut être recopié sans difficultés sur notre site**
Bonjour,
As tu répondu à la question a) ?
Pas besoin de Scratch ou d'Algobox... on fait tourner "à la main". Et cela donne quoi ?
A toi de dire
Bonjour,
La photo de textes entièrement "recopiables" étant interdite va disparaitre ! Alors comment répondre à une question qui n'existe pas ?
Je viens de voir que c'est ton premier message sur
A l'avenir, respecte bien les consignes. Les modérateurs du site ont de bonnes raisons d'exiger des énoncés saisis manuellement..... Si au moins tu avais saisi à la main les questions et tenté( ??) de passer l'algorithme en image....
Comme j'avais vu ton message et commencé à y répondre.... j'ai récupéré l'énoncé (je vais me faire tirer les oreilles) . Par paresse et dans la perspective de pouvoir VERIFIER le tableau de variables que tu n'allais pas manquer de nous envoyer, j'ai réalisé avec Algobox le programme de ton algorithme (je me suis bien amusé
)
J'ai obtenu le "truc" suivant... si cela peut te servir à vérifier ton tableau, copie le vite...
Dis moi si tu as trouvé pareil.
tentative avec EDUPYTHON (et une aide extérieure
# Créé par Moa, le 08/10/2018 avec EduPython
from lycee import *
def Tri(*xList):
x=list(xList)
n=len(x)
print ("La valeur de n est", n)
# print ("La valeur de x1 est", x[1])
for i in range(1,n):
j=n
while i<j:
#print("i=",i," j=",j)
#print(x)
#print("x[j-1]=",x[j-1], "x[j-2]=",x[j-2])
if x[j-1]<x[j-2]:
tmp=x[j-1]
x[j-1]=x[j-2]
x[j-2]=tmp
j=j-1
print(i," : ", x)
#print("---")
#print(x)
Tri(12,8,11,6,1)
Cela semble fonctionner.....
Plus dans l'esprit de l'énoncé perdu , le programme avec Algobox :
Tant qu'à faire c'est mieux avec l'énoncé retrouvé
Variables :
n, i, j sont des nombres entiers naturels
(x1 ; x2 ; … ; xn) est une liste de nombres réels
Entrée :
Saisir n, x1, x2,…, xn
Traitement :
Pour i allant de 1 à n-1
Affecter à j la valeur de n
Tant que i<j
Si xj<xj-1 alors
Echanger xj et xj-1
Fin Si
Affecter à j la valeur j-1
Fin Tant que
Fin Pour
Sortie :
Afficher x1, x2, …, xn
L'énoncé demandait de faire fonctionner cet algorithme avec n = 5 et la liste 12 ; 8 ; 11 ; 6 ; 1
Et de présenter l'évolution des variables dans un tableau.
En recopiant cet énoncé depuis Word, tous les indices ont "viré"
Bonjour,
il ne reste plus qu'à le faire en Scratch ...
mais comme ça ne sert à rien, comme le dit ZEDMAT au tout début. (de mémoire des questions posées de l'énoncé perdu), ...je ne le ferai pas
c'est de la paraphrase des programmes précédents en Algobox ou Python de toute façon
mais on ne peut pas le copier-coller en texte !
soit on retape du texte approximatif, soit c'est une image graphique, un programme Scratch.
alors au dela de une dizaine de lignes de code Scratch la taille de l'image est trop grande pour survivre sans redimensionnement (et donc sans rendre les textes qui sont dessus, entre autres, illisibles)
et je suis surpris que la première idée qui vienne à un élève de seconde de nos jours soit de vouloir utiliser Scratch plutôt que de la vraie programmation comme Python
vu que il va falloir s'y mettre à Python un jour et laisser de côté les joujoux (=Scratch)
les indices dans Word ne sont pas codés par des balises "BBCODE" ([sub][/sub])
mais par des marques internes à Word.
on remarquera surtout le mutisme criant du demandeur
il me semble que un avertissement sans plus peut être levé par le demandeur sans attendre le délai d'expiration
malou ? confirmation ?
AEK03 n'est peut être pas au courant ...
pour ZEDMAT et Python
autant utiliser la puissance de Python pour traduire
échanger x et y
par
x, y = y, x
sans besoin d'une variable temporaire !
c'est magique
pour éviter les décalages d'indices qui obscurcissent l'algorithme
for i in range(n-1) fait varier i directement de 0 à n-2
et j = n-1
font prendre en compte le décalage d'indices de 1 (de 0 à n-1 au lieu de 1 à n) une bonne fois pour toutes au lieu de devoir en tenir compte dans chaque utilisation de la liste
l'ajout de commentaires dans un programme est de toute façon quasi obligatoire !
def Tri(*xList):
x=list(xList)
n=len(x)
for i in range(n-1): # tous les éléments sauf le dernier
j=n-1 # dernier élément de la liste
while i
j=j-1
print(i+1," : ", x)
on peut laisser l'indiçage "humain" de 1 à n en affichant la traduction de l'indice i interne (de 0 à n-1) en mettant i+1 dans le print
du coup l'utilisateur ne se rend compte de rien et voit ces indices comme s'ils étaient de 1 à n sans s'inquiéter de la tambouille interne (même si on s'arrête un cran avant en fait)
c'est le seul endroit où apparaissent ces indiçages "humains" : dans le dialogue (entrées et sorties)
tout est fait en interne avec les vrais indices machine de 0 à n-1
après tout on a le même problème en maths avec les suites où on définit le premier élément généralement comme u0 et pas comme u1 ...
ça ne devrait donc pas trop perturber de raisonner sur des indices qui varient de 0 à n-1 pour une liste de n éléments.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :