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.
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.
on nous a pas appris a creer une table de multiplication en script, donc je ne sais pas comment m'y prendre
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 :
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
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.
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 :
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 ?
ç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.
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
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 :