Problème d'algorithme simple
Résolu
barnabe0057
Messages postés
14455
Date d'inscription
Statut
Contributeur
Dernière intervention
-
barnabe0057 Messages postés 14455 Date d'inscription Statut Contributeur Dernière intervention -
barnabe0057 Messages postés 14455 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je précise que je n'ai jamais fait de Python, mais là mon avenir direct en dépend.
Je dois réaliser un mini script, voilà l'énoncé du problème :
Un socle est ainsi constitué d'étages, chaque étage ayant une hauteur égale à une unité et une base carrée. Le côté des carrés diminue de une unité à chaque étage.
Votre programme doit lire deux entiers, représentant respectivement la largeur du socle au niveau du sol et la largeur du socle au niveau de la face supérieure du socle. Il doit ensuite calculer et afficher le volume du socle.
Si on passe au script la valeur 7 puis ensuite la valeur 3, on doit obtenir en sortie 135.
Voila les explications pour arriver à ce résultat :
Le volume du premier étage est 7 × 7 = 49, le volume du second est 6 × 6 = 36, etc. et le volume du dernier étage est 3 × 3 = 9. Le volume total est donc : 7 × 7 + 6 × 6 + 5 × 5 + 4 × 4 + 3 × 3 = 135.
Mon algorithme (pourtant parfait ;) fonctionne avec certaines valeurs d'entrée mais pas avec tous, je ne comprends vraiment pas pourquoi :
Merci d'avance si vous pouvez m'expliquer ce qui cloche.
Je précise que je n'ai jamais fait de Python, mais là mon avenir direct en dépend.
Je dois réaliser un mini script, voilà l'énoncé du problème :
Un socle est ainsi constitué d'étages, chaque étage ayant une hauteur égale à une unité et une base carrée. Le côté des carrés diminue de une unité à chaque étage.
Votre programme doit lire deux entiers, représentant respectivement la largeur du socle au niveau du sol et la largeur du socle au niveau de la face supérieure du socle. Il doit ensuite calculer et afficher le volume du socle.
Si on passe au script la valeur 7 puis ensuite la valeur 3, on doit obtenir en sortie 135.
Voila les explications pour arriver à ce résultat :
Le volume du premier étage est 7 × 7 = 49, le volume du second est 6 × 6 = 36, etc. et le volume du dernier étage est 3 × 3 = 9. Le volume total est donc : 7 × 7 + 6 × 6 + 5 × 5 + 4 × 4 + 3 × 3 = 135.
Mon algorithme (pourtant parfait ;) fonctionne avec certaines valeurs d'entrée mais pas avec tous, je ne comprends vraiment pas pourquoi :
largeur_Sol = int(input()) largeur_Sup = int(input()) count = largeur_Sol - largeur_Sup result = largeur_Sol * largeur_Sol for loop in range(count): etage = (largeur_Sol - count) * (largeur_Sol - count) result = result + etage print(result)
Merci d'avance si vous pouvez m'expliquer ce qui cloche.
Configuration: Linux / Firefox 88.0
A voir également:
- Un socle est ainsi constitué d'étages, chaque étage ayant une hauteur égale à une unité et une base carrée. le côté des carrés diminue de une unité à chaque étage. votre programme doit lire deux entiers, représentant respectivement la largeur du socle au niveau du sol et la largeur du socle au niveau de la face supérieure du socle. il doit ensuite calculer et afficher le volume du socle.
- Iphone 14 simple - Guide
- Simple pdf - Télécharger - PDF
- Simple ocr - Télécharger - Bureautique
- Simple file locker - Télécharger - Sécurité
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
dans quel cas obtiens-tu quel résultat incorrect?
dans quel cas obtiens-tu quel résultat incorrect?
Merci pour ta réactivité.
C'est un examen en ligne où mon algorithme est testé avec plusieurs paires de valeurs, mais je ne sais pas lesquelles, je sais d'après le résultat qu'il y a juste un cas de figure où mon algo fonctionne, ce qui est encore plus troublant.
C'est un examen en ligne où mon algorithme est testé avec plusieurs paires de valeurs, mais je ne sais pas lesquelles, je sais d'après le résultat qu'il y a juste un cas de figure où mon algo fonctionne, ce qui est encore plus troublant.
Voilà ça fonctionne, j'ai créé une variable qui itère à chaque tour de boucle :
Je passe en "Résolu" merci pour ton aide.
Bonne soirée.
largeur_Sol = 7
largeur_Sup = 3
nbEtages = largeur_Sol - largeur_Sup
volume = largeur_Sol * largeur_Sol
var = 0
for loop in range(nbEtages):
var = var + 1
etage = (largeur_Sol - var) * (largeur_Sol - var)
volume = volume + etage
print(volume)
Je passe en "Résolu" merci pour ton aide.
Bonne soirée.
bonjour
perso, j’initialiserai result à 0 et j'ajouterai 1 à ta valeur de count
Cdlmnt
perso, j’initialiserai result à 0 et j'ajouterai 1 à ta valeur de count
largeur_Sol = int(input()) largeur_Sup = int(input()) count = largeur_Sol - largeur_Sup + 1 result = 0 for loop in range(count): etage = (largeur_Sol - loop) * (largeur_Sol - loop) result = result + etage print(result)
Cdlmnt
C'est une drôle de manière de voir les choses, pour plusieurs raisons :
- je n'ai pas demandé qu'on fasse tout l'exercice à ma place
- j'ai proposé ma solution qui était très proche du résultat recherché
- j'ai finalement trouvé et corrigé mon erreur tout seul comme un grand
Je te souhaite une bonne journée.
- je n'ai pas demandé qu'on fasse tout l'exercice à ma place
- j'ai proposé ma solution qui était très proche du résultat recherché
- j'ai finalement trouvé et corrigé mon erreur tout seul comme un grand
Je te souhaite une bonne journée.
afin de comprendre ce que fait ton programme, ajoute des instructions print() pour visualiser les valeurs de tes variables.