Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Python/Algorithme

Posté par
xGad12
13-03-19 à 13:53

Bonjour à tous, j'ai besoin d'aide concernant pour un petit exercice en mathématique sur les algorithme, je n'ai pas du tout avancé car je ne comprend absolument pas grand chose, merci pour votre précieuse aide :

1) Ecrire un script en Python prenant en entrée un entier naturel n et affichant en sortie la table de multiplication de l'entier n. Le programmer à l'ordinateur.

2) Ecrire un algorithme prenant en entrée un entier naturel N et affichant en sortie les tables de multiplication de tous les entiers de 2 à N.

Posté par
mathafou Moderateur
re : Python/Algorithme 13-03-19 à 14:26

Bonjour,

pour tous les algorithmes, la première chose à faire n'est pas de se précipiter sur écrire du langage Python
mais analyser le problème en lui même (ici construire une table de multiplication) pour déterminer quelles opérations (de caclul et de graphisme) il faut faire,
en les décrivant, et leur enchainement, explicitement en français

comment ferais tu à la main avec papier crayon, de façon détaillée au plus de détails précis, pour construire une table de multiplication ?

vas y .

seulement ensuite on s'attaquera au problème de traduire tout ça en Python.

Posté par
xGad12
re : Python/Algorithme 13-03-19 à 14:36

on nous a pas appris a creer une table de multiplication en script, donc je ne sais pas comment m'y prendre

Posté par
mathafou Moderateur
re : Python/Algorithme 13-03-19 à 14:47

on s'en fiche des scripts !!!
je te demande comment fais tu à la main pour écrire une table de multiplication sur ta feuille de papier
en décrivant en français ce que tu fais , quels calculs, et qu'écris tu exactement et où sur ta feuille de papier.

tu ne sais pas ce qu'est une table de multiplication ?
tu n'en as jamais vue en primaire au dos des cahiers de brouillon ??

ça ressemble à ça :

Python/Algorithme

Posté par
xGad12
re : Python/Algorithme 13-03-19 à 14:54

Alors je dis :

pour la table de 1, il suffit de prendre le chiffre 1  à chaque fois et le
multiplier avec les chiffres (1,2,3..10) par ordre, ce qui donne 1x1, 1x2,...

etc.. pour les autres tables

Posté par
mathafou Moderateur
re : Python/Algorithme 13-03-19 à 15:25

on te demande d'en générer une seule :
pour le nombre n qui est donné en entrée
la question b ce sera pour plus tard.

donc OK à condition de modifier ce que tu as écrit en :

pour la table de n, n étant la donnée d'entrée, il suffit de prendre le chiffre nombre n à chaque fois et le
multiplier avec les chiffres nombres (1,2,3..10) par dans l'ordre,
ce qui donne etc ,...

et qu'écrit on exactement sur la feuille ? juste le résultat de ces calculs ou de l'écriture plus détaillée ?

j'ai remplacé "chiffre" par "nombre" parce que rien n'empêche avec cet énoncé de demander la table de 12

et "par ordre" qui n'est pas du français du tout en "dans l'ordre"

une fois ça complètement écrit ainsi (points cités à compléter sur ce qu'on écrit exactement)
on cherche comment on va faire ça "en script"

"à chaque fois" se traduira par une boucle :

n étant en entrée
pour chacun des nombres (1,2,3..10) dans l'ordre
faire ceci cela

et ça commence déja à "ressembler" à du script !

un peu plus d'efforts de traduction de ces phrases françaises en "opérations standard" aboutira de proche en proche à la solution de l'exo.

Posté par
xGad12
re : Python/Algorithme 13-03-19 à 15:34

comment je pourrais proceder pour la suite ?

Posté par
mathafou Moderateur
re : Python/Algorithme 13-03-19 à 15:58

fais le ...
c'est 90% de simple bon sens et d'introspection (de savoir verbaliser exactement ce qu'on fait vraiment quand on fait quelque chose, quoi que ce soit)
et 10% de connaissances

compléter en détaillant exactement ce qu'il faut écrire comme texte en sortie
bref détailler explicitement ce qu'est mon "ceci cela"

puis ensuite (et certainement pas avant !!) commencer à traduire tout ça

"n étant en entrée"
se traduira par la définition de la fonction

def table_mult(n) :
....

"pour chacun des nombres (1,2,3..10) dans l'ordre "
se traduira par
for i in range (1,11) : (pourquoi 11 ? se reporter à la doc de Python)
...

les divers affichages de résultats (pour l'instant pas encore déterminé exactement ce qu'il faut afficher vraiment en détail)
print( ...)

pour toutes ces syntaxes se reporter à la doc Python / l'aide en ligne, incontournable.


mais encore une fois ne pas écrire une seule ligne de "code" tant que ça ce n'est pas complet :

Citation :
n étant en entrée
pour chacun des nombres (1,2,3..10) dans l'ordre
faire ceci cela à détailler

Posté par
alb12
re : Python/Algorithme 13-03-19 à 16:05

salut,
je suis ce fil ... de loin

Posté par
xGad12
re : Python/Algorithme 13-03-19 à 17:12

pour la 1 ce sera donc :

n=int(input("Saisissez un entier naturel"))
for y in range (1,11) :
        p=n*y
        print (n, "x", y, "=" , p)

où je me trompe ?

Posté par
mathafou Moderateur
re : Python/Algorithme 13-03-19 à 18:00

ça marche très bien
mais ... ça peut s'améliorer.
(on verra ça après)

passons maintenant à la question suivante qui demande en fait de mettre tout ça "tel quel" (sauf le input) dans une boucle pour sortir plusieurs tables.

nota : dans ce que j'avais dit j'avais appelé ton y du nom de i
tu as eu une raison pour changer, ou c'est ailleurs qu'on t'a donné ça ?
vu que tu n'as pas franchement répondu à ma question sur ce qu'il faut vraiment écrire comme résultat, mais que à la place tu as craché directement le print complet cela met le doute sur le fait que c'est toi qui a écrit ça ...

j'essaie de te faire prendre conscience de la bonne méthode pour obtenir des scripts :
analyse détaillé d'abord de ce qu'il faut faire faire à ce script , de la traduction précise du "cahier des charges"
et ce toujours avant d'écrire la moindre ligne de code

alors certes dans cet exo simpliste on peut court-circuiter ça et écrire directement du code, mais :
c'est prendre de mauvaises (très mauvaises) habitudes pour la méthode de travail
conduisant à des programmes écrits de bric et de broc qu'on est amené à "bidouiller jusqu'à ce que ça marche" .. (jusqu'à ce que ça "tombe en marche" par hasard ou presque)
et ça coincera si le programme prend un peu "d'ampleur" ou le traitement plus complexe.

Posté par
xGad12
re : Python/Algorithme 13-03-19 à 18:55

Oui c'est moi qui la fait de mon côté, cependant pour la 2e je n'y arrive pas pouvez m'aidez svp?

Posté par
mathafou Moderateur
re : Python/Algorithme 13-03-19 à 23:34

tu mets tout le premier en entier à l'intérieur d'un boucle

pour chacun des entiers n de 2 à N
générer la table de multiplication de cet entier n = recopier ici le premier programme

Posté par
xGad12
re : Python/Algorithme 14-03-19 à 06:20

Comment faire une boucle justement ?

Posté par
mathafou Moderateur
re : Python/Algorithme 14-03-19 à 10:09

bein tu en a déja fait une de boucle dans le premier programme !!

c'était :
n étant en entrée
pour chacun des nombres (1,2,3..10) dans l'ordre
faire ceci cela

maintenant ce sera donc
N étant en entrée
pour chacun des nombres (2,3.....N) dans l'ordre
faire un autre ceci cela

et ce nouveau "faire ceci cela" est "générer toute la table pour ce nombre là"
c'est à dire que ce nouveau "faire ceci cela" est l'ensemble de la recopie exacte du premier
sauf que le n n'y est plus demandé en entrée, (un input) mais directement :
"chacun des nombres (2,3.....N) "

tu es sûr que c'est bien toi qui a fait réellement le premier ???
parce que pour le faire il a bien fallu que tu comprennes ce qu'est une boucle et comment on l'écrit !!



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 !