Aller au contenu

julesx

E-Bahut
  • Compteur de contenus

    2 929
  • Inscription

  • Dernière visite

  • Jours gagnés

    130

Tout ce qui a été posté par julesx

  1. julesx

    Algorithmique

    Bonjour, Tu ne peux pas demander à l'auteur de l'énoncé ce qu'il entend par le projet 'Formatage' ou ce qu'il veut que tu fasses i? Comme déjà dit, si c'est uniquement un tri de noms qu'il faut faire, tu inventes une liste de noms, par exemple ["Pompidou","Coty","De Gaulle","Mitterrand"] et tu la mets à la place de [27, 10, 12, 8, 11], dans l'appel de la fonction sinking_sort. Tu peux aussi utiliser la fonction sorted, qui fait la même chose, mais ce n'est pas dans l'optique de l'énoncé. print(sorted(["Pompidou","Coty","De Gaulle","Mitterrand"]))
  2. julesx

    Conjecturer une longueur

    Pour info, une version de cet exercice trouvée sur la toile. Là, on demande en particulier de retracer la figure, ce qui supprime le problème des dimensions. Par contre, pourquoi la figure "à la main" proposé par le demandeur ? C'est cette dernière qui a été donnée comme sujet ? Mais seul l'élève pourra nous le dire.
  3. julesx

    1ere spé NSI

    De rien, ça a été aussi un plaisir pour moi d'avoir quelqu'un qui suit une demande (c'est de plus en plus rare!). En plus, grâce aux exercices, j'ai pu découvrir quelques finesses de Python. Donc, le bénéfice a été partagé. Bonne continuation. P.S. : Comme j'ai en particulier un doute à propos de l'exercice 7, quand tu auras le corrigé, ce serait gentil de le poster à la suite de ce fil. Tu peux le faire également pour les autres si ma version diffère profondément de celle de ton professeur.
  4. julesx

    Algorithmique

    Bonjour Denis, Ce sont bien des listes que j'ai utilisées. Ma phrase à propos des tableaux et des tuples était une simple remarque mais pouvait effectivement être mal interprétée.
  5. julesx

    1ere spé NSI

    Je vois que tu es passée par là. Comme annoncé, j'ai regardé cet après-midi l'exercice 7. Ci-dessous le résultat de mes cogitations. Je ne suis pas du tout sur que c'est cela qu'il fallait faire. Tu regardes et tu en fais ce que tu veux. Juste une remarque, avec les valeurs de l'énoncé, les temps affichés sont de 0,0 ! Du coup, j'ai tout multiplié par 10. N'hésite pas à faire plusieurs essais successifs, les temps affichés sont très variables. L=[] L1=[] from random import shuffle from time import time for i in range (1060): L1=[i,i] L.append(L1) shuffle(L) Dico=dict(L) def recherche1(L,k): for i in range(len(L)+1): if L[i][1]==k: break return k st=time() for k in range(500): recherche1(L,k) print(time()-st) def recherche2(Dico,k): for i in range(len(Dico)+1): if Dico[i]==k: break return k st=time() for k in range(500): recherche2(Dico,k) print(time()-st)
  6. julesx

    1ere spé NSI

    Bonjour, Merci pour les compliments, mais je n'en mérite pas tant ! En fait, ça fait très longtemps que je fais un peu de programmation en amateur, par besoin quelquefois dans le cadre de mon enseignement. J'ai utilisé plusieurs logiciels, dont le Basic et le Pascal. Par contre, je n'ai découvert Python que depuis que je "sévis" comme papy. Je progresse donc petit à petit avec la méthode dite de l'essai-erreur. Mes expériences anciennes m'aident évidemment dans l'élaboration des démarches, mais surtout, à chaque fois que j'en ai besoin, je trouve sur la toile des explications et des portions de code. Ça a été le cas en particulier pour tout ce qui concerne les dictionnaires.
  7. julesx

    Corde à sauter

    Bonjour, Le problème vient du fait que la figure dans le docx n'a pas les mêmes dimensions que celle dans les pdf ci-dessus. Si on se base sue le document "mon exo.pdf" et le trait correspondant, les cercles que tu as tracés sont bien les bons. Par contre, sur le document "mon exo 2ème essai.pdf", les rayons n'ont plus la même dimension que le trait, donc, pour moi, ce deuxième tracé n'est pas correct. PAVE, qu'en penses-tu ?
  8. julesx

    1ere spé NSI

    Bonsoir, J'avoue que, pour le 7, j'ai du mal à comprendre ce qu'il faut faire à part qu'on doit comparer des vitesses d’exécution. Donc, j'ai zappé pour le moment en préférant regarder le 8. Si, toi, tu as mieux vu de quoi il retourne, dis-le. Je regarderai de toute façon demain cet exercice en espérant y voir plus clair Donc pour le 8, j'ai cru comprendre qu'on se donnait une liste de mots, a priori de longueur au moins égale à 6 lettres (ce que j'ai pris comme postulat), qu'on doit classer par le nombre de points que cela rapporte au scrabble. Je me suis dit qu'au départ, il faut déjà que le script doit comporter la correspondance entre les lettres et les points correspondants. Ma première idée, un peu "bourrin", a été de créer la fonction "points" du premier script, à coups de "if". Après avoir réussi à écrire un script qui fonctionnait, je me suis dit qu'on pouvait peut-être partir d'une idée de dictionnaire des valeurs, d'où le deuxième script, qui ne diffère du premier que par la détection des valeurs de chaque lettre. Je te laisse regarder tout cela et tester. J'attends tes critiques éventuelles et/ou tes remarques. def points(l): pt=0 # évite de planter le script si un des mots ne contient # aucune majuscule, mais cela ne devrait pas arriver. if l in "EAINORSTUL": pt=1 if l in "DMG" : pt=2 if l in "BCP" : pt=3 if l in "FHV" : pt=4 if l in "JQ" : pt=8 if l in "KWXYZ": pt=10 return pt liste=("CHOUCROUTE","HARICOT","FRAMBOISE","MANDARINE","ABRICOT","TOMAHAWK") def valeur(t): liste1={} for i in range(len(t)): t1=t[i] somme=0 for j in range(len(t1)): if j==5: somme=somme+3*points(t1[j]) else: somme=somme+points(t1[j]) liste1[t1]=somme liste1=sorted(liste1.items(), key=lambda x: x[1], reverse=True) return liste1 print(valeur(liste)) Deuxième script. Dico={"E":1,"A":1,"I":1,"N":1,"O":1,"R":1,"S":1,"T":1,"U":1,"L":1,"D":2, "M":2,"G":2,"B":3,"C":3,"P":3,"F":4,"H":4,"V":4,"J":8,"Q":8,"K":10, "W":10,"X":10,"Y":10,"Z":10} liste=("CHOUCROUTE","HARICOT","FRAMBOISE","MANDARINE","ABRICOT","TOMAHAWK") def valeur(t): liste1={} for i in range(len(t)): t1=t[i] somme=0 for j in range(len(t1)): if j==5: somme=somme+3*Dico[t1[j]] else: somme=somme+Dico[t1[j]] liste1[t1]=somme liste1=sorted(liste1.items(), key=lambda x: x[1], reverse=True) return liste1 print(valeur(liste))
  9. julesx

    Algorithmique

    Bonjour, Pour la question 2, il faut écrire un script en Python. Pour moi, une des difficultés est que l'instruction REPETER suivie de TANT QUE n'existe pas dans ce langage. Il faut donc la remplacer par While. D'autre part, il faut aussi adapter la notion TABLEAU a[1:n] dont je ne vois pas nom plus l'équivalent en Python pour lequel je ne connais que les listes et les tuples. Ce préambule pour justifier le script que je te propose ci-dessous. def sinking_sort (a): passage=0 permute=True n=len(a) while permute==True: permute=False for i in range(n-1-passage): if a[i]>a[i+1]: b=a[i] a[i]=a[i+1] a[i+1]=b print(i+1,a) permute=True passage=passage+1 print("fin passage n°",passage,"\n") return a print(sinking_sort([27, 10, 12, 8, 11])) Essaie de le comprendre et demande des explications si nécessaire. A noter que j'ai rajouté des print intermédiaires pour afficher le déroulement des opérations. Ceux-ci peuvent évidemment être supprimés dans la rédaction finale. Pour la question 3), je ne connais pas le projet "Formatage", mais si ça concerne juste un tri de noms, il suffit de remplacer le tableau de chiffres dans l'appel de la fonction par le tableau de noms.
  10. julesx

    1ere spé NSI

    Bonjour, Merci pour le retour. Qu'est-ce que tu fais maintenant, tu regardes le 7 et le 8 et tu essaies quelque chose dans l'optique des exercices précédentes ? P..S. : Dans l'exercice 6, i faut modifier la ligne de tri ainsi statistiques=sorted(statistiques.items()) sinon, on n'affiche que la liste des lettres, pas leurs nombres.
  11. Oui, mais il y a une faute de frappe à ta première ligne. C'est z=4+4*(t+8)/17 pas z=4+4-(t+8)/17. La suite est juste.
  12. Tu as "zappé" le signe - devant l'expression de t'. Et attention à l'écriture en ligne des fractions, il faut mettre des parenthèses pour bien distinguer ce qui appartient au numérateur de ce qui appartient au dénominateur. Je te fais le calcul de y : y=t-(t+8)/17 => y=(17t-t-8)/17 soit y=(16t-8)/17 où on peut éventuellement mettre 8 en facteur au numérateur, mais vu la suite, ça ne me parait pas une bonne idée. Essaie de faire pareil pour z, tu dois obtenir z=(36-4t)/17.
  13. Non, tu as oublié des termes en route. En plus, au départ, c'est t' dans l'expression de z. (t+t')+4(4+4t')-8=0 => t+t'+16+16t'-8=0 => t+8+17t'=0 soit t'=-(t+8)/17
  14. Non, pas tout à fait. La droite passe par le point I(0;t;4) et son coefficient directeur considéré ici est n(0;1;4). Donc, avec t' comme tu l'as appelé, on a y=t+1t'=t+t'. Les deux autres relations sont correctes. Donc, en résumé x=0+0*t'=0 y=t+t' z=4+4t' Tu reportes alors les expressions de y et de z dans l'équation du plan, ce qui te permet d'exprimer t' en fonction de t, de le remplacer dans y et z pour obtenir les coordonnées de K recherchées.
  15. Je ne comprends toujours pas. I n'appartient pas au plan P et t est une valeur quelconque tant que I n'est pas positionné à un endroit précis, ce qui est le cas dans la question 5. A priori, (IK) est une droite de l'espace donc elle est défini par une équation paramétrique. Tu pourrais raisonner dans le plan x=0 mais est-ce que ça va vraiment simplifier ? Donc, commencer par établir l'équation correcte de (IK). Ensuite, utilise le fait que K est l'intersection de cette droite et du plan P. Tu trouveras ainsi les coordonnées de K en fonction, en particulier, du paramètre t. Bien, sûr, tu auras forcément x(K)=0.
  16. Bonjour, Je ne comprends pas ce que tu es en train de faire. K est l'intersection de la droite (IK) avec le plan P. Le vecteur normal au plan P est bien n=(0;1;4 )et on a bien x(K)=0. Mais ensuite, comment procèdes-tu pour trouver y(K) et z(K) ?
  17. julesx

    Algorithmique

    Bonjour, Merci pour le retour. Ça ira pour la suite ?
  18. julesx

    Algorithmique

    Bonjour, Je ne sais pas exactement ce qu'on entend par "donner l'évolution". Moi, je procèderais comme suit. De toute façon, le principe est de comparer successivement tous les termes consécutifs et de les permuter si le premier est supérieur au second. On recommence tant qu'on aura effectué au moins une permutation. Ainsi, pour le tableau [27, 10, 12, 8, 11], au premier passage, comme il y a 5 termes, on fait varier i de 1 à 4. i=1 a[1]=27 a[2]=10 donc on permute les deux [27, 10, 12, 8, 11] devient [10, 27, 12, 8, 11] i=2 a[2]=27 a[3]=12 donc on permute les deux [10, 27, 12, 8, 11] devient [10, 12, 27, 8, 11] i=3 a[3]=27 a[4]=8 donc on permute les deux [10, 12, 27, 8, 11] devient [10, 12, 8, 27, 11] i=4 a[4]=27 a[5]=11 donc on permute les deux [10, 12, 8, 27, 11] devient [10, 12, 8, 11, 27] Il y a donc au moins une permutation, donc on continue. Par contre, comme le plus grand terme est à la fin, il est inutile d'aller jusqu'au dernier, on fait donc varier i de 1 à 4, d'où le "de 1 à n-1-passage". Ceci sera le cas à chaque passage. Le tableau est maintenant égal à [10, 12, 8, 11, 27]. i=1 a[1]=10 a[2]=12 on ne change rien i=2 a[2]=12 a[3]=8 donc on permute les deux [10, 12, 8, 11, 27] devient [10, 8, 12, 11, 27] i=3 a[3]=12 a[4]=11 donc on permute les deux [10, 8, 12, 11, 27] devient [10, 8, 11, 12, 27] De même, il y a au moins une permutation, donc on continue. Je te laisse continuer ou utiliser une autre présentation ?
  19. julesx

    1ere spé NSI

    Bonjour, Après de longues cogitations et de multiples essais (car, comme dit, je débute), voilà à quoi j'aboutis pour le 4 et le 5 : def maxi(t): return sorted(t)[len(t)-1] print(maxi({2,9,4,7,3,-4}) positions={} positions[(48.853585,2.301490)]="Paris" positions[(11.611358,43.147752)]="Djibouti" positions[(43.70000,7.250000)]="Nice" def renvoieposition (x,y,positions): X0=(x,y)[0]*10000 Y0=(x,y)[1]*10000 for cle in positions: X=(cle[0]*10000) Y=(cle[1]*10000) if abs(X-X0)<=1 and abs(Y-Y0)<=1: P=positions[cle[0],cle[1]] break else: P="Position inconnue" return P print(renvoieposition(43.70010,7.25000,positions)) Essaie, regarde si cela te convient et, si nécessaire, demande des explications. Je vais regarder la suite, mais ça ne sera surement pas pour aujourd'hui car je commence à avoir la tête comme une citrouille. Allez, un dernier pour la route. def stat(texte): statistiques={} for i in texte: if 65<=ord(i)<=90 or 97<=ord(i)<=122: if i in statistiques: statistiques[i]=statistiques[i]+1 else: statistiques[i]=1 statistiques=sorted(statistiques.keys()) return statistiques print(stat("Mignonne, allons voir si la rose" "Qui ce matin avoit desclose" "Sa robe de pourpre au Soleil," "A point perdu ceste vesprée" "Les plis de sa robe pourprée," "Et son teint au vostre pareil.")) N.B.: Les print à la fin de chaque script sont là pour visualiser le résultat
  20. Bonjour, En fait, pour toutes les conversions de base, il suffit de regarder combien il y a d'éléments d'arrivée dans le terme initial. A priori, il vaut écrire la liste autrement, en commençant par le 3) : 3) Dans une heure, il y a 60 minutes, dans une minute, il y a 60 secondes, donc, dans une heure, il y 60x60=3600 secondes. Après on peut continuer par 1) : Dans un jour, il y a 24 heures, dans une heure, il y a 3600 secondes, donc, dans un jour, il y a 24*3600 ... je te laisse faire le calcul. Pour le reste, ce sont des démarches similaires, sauf qu'il faut distinguer les mois en fonction des nombres de jours (ne pas oublier 29 des années bissextiles) et les années en fonction des nombres de jour, de même à cause des années bissextiles.
  21. julesx

    Suites numériques

    Bonjour, Bien que le complément soit très petit devant le reste des sommes payées, je pense que l'auteur de l'énoncé souhaiterait que tu y rajoutes les 1,81 € de la dernière annuité. Donc, les intérêts seraient de 7541,81 €.
  22. julesx

    géométrie

    Bonsoir PAVE, Pourquoi tu t'obstines, tu n'as pas l'impression que le demandeur n'en a rien à faire de ta réponse ou manque totalement de savoir-vivre ? Remarque, je suis mal placé pour dire cela, il n'y a pas longtemps, à deux reprises, j'ai également donné suite à un fil sans réponse. On a du mal à s'y faire... Cela dit, ton animation pose un problème car elle donne l'impression que les deux rayons ne sont pas identiques !
  23. julesx

    Les tangente

    Bonjour à tous, En fait, l'erreur est là, c'est -2x², oubli du signe -. Je n'ai pas de mérite, ce problème a été traité plus ou moins récemment sur différents sites d'aide aux devoirs.
  24. Bonsoir, Si tu espères une réponse, remets au moins ta pièce jointe à l'horizontale. Je te signale qu'il y a également la possibilité de la transformer en pdf avec une résolution acceptable.
  25. Comme tu n'es pas revenu sur ce site, en tout cas sans te manifester, je ne sais pas ce que tu recherches. Une solution toute cuite ? Alors dis-le, il y aura peut-être une bonne âme qui te la donnera. Sinon, peut-être que tu l'as trouvée ailleurs, mais, dans ce cas, dis-le, qu'on sache où l'on en est.
×
×
  • Créer...
spam filtering
spam filtering