Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Scratch

Posté par
AEK03
30-12-18 à 14:45

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***
Scratch
**même l'algorithme peut être recopié sans difficultés sur notre site**

Posté par
ZEDMAT
re : Scratch 30-12-18 à 14:54

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  

Posté par
cocolaricotte
re : Scratch 30-12-18 à 15:15

Bonjour,

La photo de textes entièrement "recopiables" étant interdite va disparaitre ! Alors comment répondre à une question qui n'existe pas ?  

Posté par
ZEDMAT
re : Scratch 30-12-18 à 20:09

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.

Scratch

Posté par
ZEDMAT
re : Scratch 30-12-18 à 23:10

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 :

Scratch

Posté par
ZEDMAT
re : Scratch 30-12-18 à 23:31

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é"

Posté par
mathafou Moderateur
re : Scratch 31-12-18 à 00:02

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)

Posté par
mathafou Moderateur
re : Scratch 31-12-18 à 00:11

les indices dans Word ne sont pas codés par des balises "BBCODE" ([sub][/sub])
mais par des marques internes à Word.

Posté par
malou Webmaster
re : Scratch 31-12-18 à 09:38

ZEDMAT, oui tu vas te faire tirer les oreilles.....

Posté par
mathafou Moderateur
re : Scratch 31-12-18 à 10:51

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 if x[j] x[j], x[j-1] = x[j-1], x[j] # échange des éléments j et j-1
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 :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1489 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 !