Bonjour,
J'ai besoin d'avoir de l'aide concernant un exercice sur les structures conditionnelles.
Étape 1 : Réaliser un programme qui calcule l'aire de différentes figures (disque, triangle et rectangle). Le programme attend que l'utilisateur choisisse la figure : Sélectionner 1 pour un disque , 2 pour un triangle et 3 pour un rectangle.
Étape 2 : Selon le choix, le programme demande à l'utilisateur d'entrer les données nécessaires (les valeurs entrées peuvent être décimales) :
-rayon du disque (la valeur exacte de pourra être importée depuis le module math)
-base et hauteur du triangle
-longueur et largeur du rectangle
Le programme doit affiché : L'aire de figure est de : surface cm²
(figure et surface prenant les valeurs qui conviennent)
Voici ce que j'ai fait pour l'instant :
#disque
rayon=int(input('le rayon du disque :'))
aire=3,14*rayon**2
print('aire du disque :' ,aire,)
#triangle
Base =int(input('Entrez la base du triangle:'))
hauteur=int(input('Entrez la hauteur du triangle:'))
aire=Base*hauteur//2
print('aire du triangle :' ,aire,)
Merci d'une réponse.
salut
pourquoi ce double slash pour la division par 2 pour l'aire du triangle ?
et pour l'aire du rectangle ?
l'étape 2 : commence par "selon le choix"
tu dois donc commencer par demander quelle est la figure
Je n'arrive pas à savoir comment associer un chiffre à une figure.
Voici ce que j'ai fait concernant l'étape 2 :
#disque
rayon=int(input('le rayon du disque :'))
aire=3,14*rayon**2
print('aire du disque :' ,aire,)
#triangle
Base =int(input('Entrez la base du triangle:'))
hauteur=int(input('Entrez la hauteur du triangle:'))
aire=Base*hauteur/2
print('aire du triangle :' ,aire,)
#rectangle
longueur=int(input('longueur du rectangle'))
largeur=int(input('largeur du rectangle'))
aire=longueur*largeur
print('aire du rectangle :',aire,)
bonjour,
en l'absence de Carpediem :
ce que tu as fait est pas mal, mais il faut commencer par le choix de la figure.
Le programme attend que l'utilisateur choisisse la figure : Sélectionner 1 pour un disque , 2 pour un triangle et 3 pour un rectangle.
demander le choix de l'utilisateur
verifier que le choix est correct
si choix = 1, calculer disque,
si choix = 2 calculer triangle
si choix = 3 calculer rectangle
tu vois ?
bonjour,
l'énoncé dit explicitement que les réponses attendues ne sont pas des mots mais des nombres 1, 2 ou 3
le programme demande (par input, pardi) à l'utilisateur un nombre 1, 2 ou 3 un point c'est tout
il peut être utile de "rappeler" à l'utilisateur dans le message du input, la signification de ces "codes"
puis le programme exécute une suite de tests sur cette réponse (une suite de "if") pour exécuter tel ou tel morceau de ce qui a déja été écrit. (c'est à dire placer chacun de ces morceaux, y compris ses propres input, au bon endroit, dans le bon "si")
bref très exactement ce qu'a écrit Leile
il n'y a rien à "nommer"
ça n'a aucun sens avec cet exo.
certes mais faire un test sur une variable numérique ou alphanumérique change-t-il quoi que ce soit ?
et c'est bien sûr plus parlant ... comme nommer les variables par des mots correspondant au langage usuel
on peut écrire un programme qui calcule les aires de différentes figures selon un choix de l'utilisateur d'innombrables façons
mais ici on part d'un énoncé explicite ...
bon, cet énoncé ne tient pas debout car sa découpe en "étape 1" et "étape 2" est complètement loufoque :
"l'étape 2" n'étant en fait que des précisions de détails de choses déja à faire dans l'étape 1 !
(demander un choix, et bien évidemment que pour calculer quelque chose il faut aussi demander les données)
print('Entrez un chiffre')
if choix= 1,aire_disque,
if choix=2,aire_triangle,
if choix= 3,aire_rectangle,
#disque
rayon=int(input('le rayon du disque :'))
aire_disque=3,14*rayon**2
print('aire du disque :' ,aire_disque,)
#triangle
Base =int(input('Entrez la base du triangle:'))
hauteur=int(input('Entrez la hauteur du triangle:'))
aire_triangle=Base*hauteur/2
print('aire du triangle :' ,aire_triangle,)
#rectangle
longueur=int(input('longueur du rectangle:'))
largeur=int(input('largeur du rectangle:'))
aire_rectangle=longueur*largeur
print('aire du rectangle :',aire_rectangle,)
Yahiko,
as tu revu les structures conditionnelles en python ?
l'instruction if s'écrit
if condition :
instructions (executées si la condition est vraie)
else
instructions (executées si la condition n'est pas vraie).
tu écris if choix = 1
ta condition est mal écrite (il faudrait mettre if choix == 1 : ),
mais surtout le programme ne connaît pas la valeur du choix avant de le tester.
le print est insuffisant. Il affiche le message seulement. Il faut que tu ajoutes une instruction input.
enfin, où est la fonction aire_disque par exemple ?
"la fonction aire_disque"
l'énoncé ne parle pas de créer des fonctions !
on met directement le bon calcul au bon endroit et c'est tout.
relax, mathafou,
j'ai juste parlé de fonction, parce que c'est ce que j'ai pensé que c'était ce à quoi faisait référence Yahiko quand il écrit
"if choix= 1,aire_disque,"
Bonsoir , voici ce que j'ai fait :
chiffre = int(input('Entrez un chiffre :'))
if chiffre == 1:
rayon=int(input('le rayon du disque :'))
aire_disque=3,14*rayon**2
print('aire du disque :' ,aire_disque,)
else chiffre <=1 and chiffre == 2 :
Base =int(input('Entrez la base du triangle:'))
hauteur=int(input('Entrez la hauteur du triangle:'))
aire_triangle=Base*hauteur/2
print('aire du triangle :' ,aire_triangle,)
elif chiffre >=2 and chiffre == 3 :
longueur=int(input('longueur du rectangle:'))
largeur=int(input('largeur du rectangle:'))
aire_rectangle=longueur*largeur
print('aire du rectangle :',aire_rectangle,)
le premier else devrait être un elif comme second
attention à l'indentation
absolument fondamentale en Python
enfin les dimensions ne sont pas forcément entières (int) mais peuvent être décimales (float), c'est dit dans l'énoncé.
amélioration particulièrement utile (nécessaire)
l'utilisateur lors de la demande "Entrez un chiffre" ne va pas deviner que 1 veut dire disque etc
chiffre = int(input("Type de figure, 1 pour disque, 2=triangle, 3=rectangle : "))
lui rappellerait cette convention.
chiffre = int(input("Type de figure, 1=disque, 2=triangle, 3=rectangle : "))
if chiffre == 1:
rayon=int(input('le rayon du disque :'))
aire_disque=3,14*rayon**2
print('aire du disque :' ,aire_disque,)
elif chiffre == 2 :
Base =int(input('Entrez la base du triangle:'))
hauteur=int(input('Entrez la hauteur du triangle:'))
aire_triangle=Base*hauteur/2
print('aire du triangle :' ,aire_triangle,)
elif chiffre == 3 :
longueur=int(input('longueur du rectangle:'))
largeur=int(input('largeur du rectangle:'))
aire_rectangle=longueur*largeur
print('aire du rectangle :',aire_rectangle,)
Presque
l'indentation est à corriger :
if chiffre == 1:
rayon=float(input('le rayon du disque :'))
aire_disque=3,14*rayon**2
print('aire du disque :' ,aire_disque,)
elif chiffre == 2 :
Base =float(input('Entrez la base du triangle:'))
hauteur=float(input('Entrez la hauteur du triangle:'))
etc
ah, et puis :
Bonjour à tous
Yahiko, sais-tu que sous la zone d'écriture de ton message, tu as ce symbole < / > qui te permet d'écrire un code en respectant l'indentation sur notre site
pour les posteurs ordinaires, les espaces sont conservés (mais la police à espacement proportionnel les rend plus petits qu'un caractère normal)
donc même sans le bouton [ code ] les espaces en début de lignes auraient dû être présents
(sans qu'il soit possible de les compter, à cause de la police proportionnelle)
quoi qu'il en soit l'utilisation du bouton [ code ] est fortement recommandée pour écrire ... du code (!)
et est même obligatoire (sous peine de suppression des espaces par le site) pour les correcteurs et autres modérateurs
D'accord , car je copiais collais mon programme réaliser sur le site de programmation afin de me faciliter la tache.
from math import pi
chiffre = int(input("Type de figure, 1=disque, 2=triangle, 3=rectangle : "))
if chiffre == 1:
[/code] rayon=float(input('le rayon du disque :'))
aire_disque=pi*rayon**2
print('aire du disque :' ,aire_disque,)
elif chiffre == 2 :
Base =float(input('Entrez la base du triangle:'))
hauteur=float(input('Entrez la hauteur du triangle:'))
aire_triangle=Base*hauteur/2
print('aire du triangle :' ,aire_triangle,)
elif chiffre == 3 :
[code]
longueur=float(input('longueur du rectangle:'))
tu n'as pas compris l'usage du bouton < / >
tu dois coller le code entre les balises [code] [/code] créées par ce bouton, en un seul morceau
et de toute façon comme pour tout usage de fonctions de saisie spéciales (gras, LaTeX , exposants, symboles, code, image etc)
tu dois faire Aperçu pour vérifier avant de poster.
ton message est illisible et visiblement faux. (des indentations absentes et/ou incorrectes)
les balises "code" sont bien mal utilisées et l'indentation bien mal respectée
on peut faire un peu mieux sur deux points :
- le contexte (ne pas utiliser le codage par nombre)
- la concision sans changer totalement la "philosophie" du script
from math import pi
liste_figure = ["disque", "triangle", "rectangle"]
figure = "truc"
while figure not in liste_figure :
figure = input("figure (disque, triangle, rectangle) ? ")
if figure = "disque" :
rayon = float(input("rayon du disque ? "))
aire = pi * rayon**2
if figure = "triangle" :
Base = float(input("base du triangle ? "))
hauteur = float(input("hauteur du triangle ? "))
aire = Base * hauteur/2
if figure = "rectangle" :
longueur = float(input("longueur du rectangle ? "))
largeur = float(input("largeur du rectangle ? "))
aire = longueur * largeur
print("l'aire du ", figure, "est : ", aire)
from math import pi
chiffre = int(input("Type de figure, 1=disque, 2=triangle, 3=rectangle : "))
if chiffre == 1:
rayon=float(input('le rayon du disque :'))
aire_disque=pi*rayon**2
print('aire du disque :' ,aire_disque,)
elif chiffre == 2 :
Base =float(input('Entrez la base du triangle:'))
hauteur=float(input('Entrez la hauteur du triangle:'))
aire_triangle=Base*hauteur/2
print('aire du triangle :' ,aire_triangle,)
elif chiffre == 3 :
longueur=float(input('longueur du rectangle:'))
largeur=float(input('largeur du rectangle:'))
aire_rectangle=longueur*largeur
print('aire du rectangle :',aire_rectangle,)
tout le code en un seul morceau dans une seule paire de balises
vu que c'est un seul programme
et l'indentation n'est toujours pas correcte :
les print doivent être dans les blocs if et pas à indentation nulle (car ils seraient toujours tous exécutés et pas seulement celui correspondant à la figure que l'on calcule !)
from math import pi
chiffre = int(input("Type de figure, 1=disque, 2=triangle, 3=rectangle : "))
if chiffre == 1:
rayon=float(input('le rayon du disque :'))
aire_disque=pi*rayon**2
print('aire du disque :' ,aire_disque,)
elif chiffre == 2 :
Base =float(input('Entrez la base du triangle:'))
hauteur=float(input('Entrez la hauteur du triangle:'))
aire_triangle=Base*hauteur/2
print('aire du triangle :' ,aire_triangle,)
elif chiffre == 3 :
longueur=float(input('longueur du rectangle:'))
largeur=float(input('largeur du rectangle:'))
aire_rectangle=longueur*largeur
print('aire du rectangle :',aire_rectangle,)
print("l'aire du ", figure, "est : ", aire)
la dernière ligne est à supprimer.
elle ne rime à rien du tout dans ton programme
le programme de carpediem est différent.
Je n'avais pas fait attention.
from math import pi
chiffre = int(input("Type de figure, 1=disque, 2=triangle, 3=rectangle : "))
if chiffre == 1:
rayon =float(input('le rayon du disque :'))
aire=pi*rayon**2
print('aire du disque :' ,aire,)
elif chiffre == 2 :
Base =float(input('Entrez la base du triangle:'))
hauteur=float(input('Entrez la hauteur du triangle:'))
aire=Base*hauteur/2
print('aire du triangle :' ,aire,)
elif chiffre == 3 :
longueur=float(input('longueur du rectangle:'))
largeur=float(input('largeur du rectangle:'))
aire=longueur*largeur
print('aire du rectangle :',aire,)
print('aire de',chiffre,'est de :',aire, 'surface cm²')
non
le message "l'aire de bla bla" a déja été dit au sein de chacune des branches des if
il est inutile et même nuisible de le redire à la fin
à ce que tu crois être à la fin et est en fait dans la branche "rectangle"
c'est uniquement l'indentation qui définit ce qui est ou pas dans le if
le fait d'ajouter autant de lignes vides que l'on veut n'a aucun influence.
je répète donc que la dernière ligne est à supprimer totalement
en plus elle dirait par exemple
aire de 3 est de :120 surface cm²
vachement bien comme message !
et de plus tu as des erreurs de syntaxe dans les print :
la dernière virgule suivie de l'absence d'un terme
ou tu écris ...,aire,'cm²')
ou tu écris ..,aire) tout court
from math import pi
chiffre = int(input("Type de figure, 1=disque, 2=triangle, 3=rectangle : "))
if chiffre == 1:
rayon =float(input('le rayon du disque :'))
aire=pi*rayon**2
print('aire du disque est de :' ,aire,'cm²')
elif chiffre == 2 :
Base =float(input('Entrez la base du triangle:'))
hauteur=float(input('Entrez la hauteur du triangle:'))
aire=Base*hauteur/2
print('aire du triangle est de :' ,aire,'cm²')
elif chiffre == 3 :
longueur=float(input('longueur du rectangle:'))
largeur=float(input('largeur du rectangle:'))
aire=longueur*largeur
print('aire du rectangle est de :',aire,'cm²')
mathafou une petite question :
vaut-il mieux trois "if" comme je l'ai fait ou un "if ... elif ... else ..." ?
d'ailleurs il me semble que le deuxième "elif" devrait être un "else" qui termine le dernier cas
enfin dernière remarque de style : ce "de" dans les réponses est laid et inutile :
il est préférable d'avoir "l'aire ... est"
mettre trois if fera que ces trois conditions sont systématiquement testées
et une seule branche sera exécutée bien sur
avec des elif on gagne quelques milliardième de seconde en ne testant pas du tout les conditions après celle qui est satisfaite
en tout cas la dernière ne peut pas être un simple else car cela serait exécuté si chiffre vaut n'importe quoi de différent de 1 et 2
et pas seulement si = 3
à moins de la tester de façon implicite comme tu le fais en bouclant par un while sur la demande tant qu'elle est incorrecte
on peut aussi avec un python récent utiliser une structure match
(équivalent d'un switch ... case de C)
autre méthode : une "commande par table" et un dictionnaire associant les réponses à l'adresse d'une fonction, je ne sais pas faire en Python
quant au style du dialogue .. bof.
c'est comme les rédactions de démonstrations : le style des démonstrations est si souvent douteux.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :