Algorithme niveau seconde

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Cshar
Messages: 3
Enregistré le: 03 Jan 2021, 10:52

Algorithme niveau seconde

par Cshar » 03 Jan 2021, 11:17

Bonjour,

Pouvez-vous m'aider à compléter ce programme s'il vous plaît. Voici la question : Compléter le programme ci-dessous afin que la fonction parfait retourne le bouléen True si le nombre n est parfait.

def parfait (n) :
c=0
for in range (1,n) :
r=...
if...... :
c=c+i
return (......)

Merci beaucoup



GaBuZoMeu
Habitué(e)
Messages: 6132
Enregistré le: 05 Mai 2019, 09:07

Re: Algorithme niveau seconde

par GaBuZoMeu » 03 Jan 2021, 14:19

Bonjour,

1°) Si tu écris un code python sur le forum, tu dois le mettre entre les balises "Code" (bouton de la fenêtre d'édition de message). Sinon, toutes les indentations sont perdues, et les indentations sont indispensables en python.

2°) Tu as fait au moins une erreur en copiant l'énoncé :
for in range (1,n) :
n'est pas correct.

Pour compléter la procédure, il faut savoir ce qu'elle fait. Et pour commencer, il faut savoir ce que veut dire "être un nombre parfait". Peux-tu préciser ce que ça veut dire, et peux-tu décrire en gros ce que fait la procédure pour vérifier si le nombre n est parfait ?

Cshar
Messages: 3
Enregistré le: 03 Jan 2021, 10:52

Re: Algorithme niveau seconde

par Cshar » 03 Jan 2021, 14:41

Merci pour ta réponse. J'ai transcrit le programme exactement tel que notre professeur nous l'a donné. J'ai également remarqué plusieurs erreurs commises par ce dernier. Il est évidant qu'il manque les indentations et qu'il serait plus correcte d'écrire "for in range (1,n-1). ".
Voici les réponses que j'ai fournies :
Code: Tout sélectionner
def parfait (n) :
 c=0
for in range (1,n-1) :
 r=n%i
if r=0 :
c=c+i
return (c==n)



Peux-tu me dire si je fais erreur s'il te plaît ?
Modifié en dernier par Cshar le 03 Jan 2021, 15:00, modifié 2 fois.

GaBuZoMeu
Habitué(e)
Messages: 6132
Enregistré le: 05 Mai 2019, 09:07

Re: Algorithme niveau seconde

par GaBuZoMeu » 03 Jan 2021, 14:52

Il faut mettre le code À L'INTÉRIEUR des balises !

Maintenant que tu l'as fait, on peut voir que tes indentations sont incorrectes.
Et si on met les indentations correctes, il reste toujours une faute :
Code: Tout sélectionner
    for in range (1,n-1) :
        ^
SyntaxError: invalid syntax


Par ailleurs, tu n'avais pas à remplacer range(1,n) par range(1,n-1). Heureusement, ça n'a pas d'influence sur ce que retourne la procédure.
Modifié en dernier par GaBuZoMeu le 03 Jan 2021, 15:01, modifié 1 fois.

Cshar
Messages: 3
Enregistré le: 03 Jan 2021, 10:52

Re: Algorithme niveau seconde

par Cshar » 03 Jan 2021, 15:00

Merci, c'est corrigé !

GaBuZoMeu
Habitué(e)
Messages: 6132
Enregistré le: 05 Mai 2019, 09:07

Re: Algorithme niveau seconde

par GaBuZoMeu » 03 Jan 2021, 15:02

Je ne vois toujours pas de procédure correcte ...

Encore une faute :
Code: Tout sélectionner
    if r=0 :
        ^
SyntaxError: invalid syntax



et les indentations ne vont toujours pas.

lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: Algorithme niveau seconde

par lyceen95 » 03 Jan 2021, 16:21

Pour des exercices comme celui-ci, tu as besoin de tester ton programme sur un environnement où Python est installé.

Si tu vas sur ce lien : https://www.onlinegdb.com/online_python_interpreter
Tu fais un copier/coller de ton code sur la fenêtre de travail, et tu cliques sur le bouton 'Run'

Si le programme donne un résultat, même faux, c'est déjà un petit début. Mais si le programme te dit que la syntaxe est invalide, c'est mort.
En plus, c'est cool, le programme affiche l'endroit où ça ne va pas.

Comme ça, tu peux détecter/corriger plein d'erreurs. Ensuite, faire en sorte que le programme donne le résultat correct, c'est un autre challenge.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 39 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite