Débutant cherche de l'aide !

Signaler
-
Messages postés
103
Date d'inscription
lundi 9 octobre 2006
Statut
Membre
Dernière intervention
26 mai 2020
-
Bonjour,

On vient de commencer l'algorithme et python. J'ai toujours pas très bien saisi les fonctions de base. Je vous pose ici deux petits exercices, afin de pouvoir comprendre comment ca marche.

Ecrire en algorithme, et le traduire ensuite en python, qui:
-A partir d'un nombre donné de jours, donne le nombre d'années, de mois et de jours qui le composent.
-A partir d'une somme d'argent donnée, donne le nombre minimal de billets de 50, de 20, et de pièces de 2, et de 1.

J'ai déja fait le premier algorithme, quant au second je sais pas très bien comment s'y prendre. Et pour le code python, meme si j'applique le cours, càd traduire les fonctions une par une... lors du test avec le logiciel, il m'affiche une erreur de syntaxe sans préciser dans quelle ligne elle a été détectée.

Voila tout, merci d'avance pour votre aide, et à bientot !

8 réponses

Messages postés
28931
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 mai 2020
328
Messages postés
28931
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 mai 2020
328
En ce qui concerne cet exercie.. c'est des maths de collège..(et encore...)
-A partir d'une somme d'argent donnée, donne le nombre minimal de billets de 50, de 20, et de pièces de 2, et de 1.


Commencer par diviser le nombre par 50 : Donne le nombre de billets de 50
Prendre ce qui reste.. le diviser par 20 : -> Nb billets de 20...
Etc...

meme si j'applique le cours, càd traduire les fonctions une par une... lors du test avec le logiciel, il m'affiche une erreur de syntaxe sans préciser dans quelle ligne elle a été détectée

Sans nous montrer le code en question ni nous fournir le message d'erreur rencontré.. c'est sur que nous ne pourrons pas t'aider...



Cordialement,
Jordane
Bonsoir,
Tout d'abord, je m'excuse car je n'étais pas assez clair, et j'ai pas respecté certaines règles sans m'en rendre compte.
Ensuite, je tiens à vous remercier pour votre réponse. Mais, le problème en lui meme n'est pas le raisonnement mathématique de toute évidence, mais juste comment l'exprimer d'une manière élégante d'une part, et juste de l'autre!
Pour le premier algo, voici mon travail:

Variables:
njour, a, m, j: entier
Début
écrire("Introduisez un nombre de jours:");
lire(njour);
j <- njour mod 30;
m <- ( njour / 30 ) mod 12;
a <- njour / 365
écrire(njour, "valent:", a, "an(s)", m, "mois", j,"jour(s)");
Fin

Lorsque je traduis en python, ca m'affiche un message du genre: Erreur de syntaxe... etc. Ce que je suppose, c'est qu'il y a plusieurs versions de python, et c'est sur qu'il existe des différences entre ces versions, ca doit etre ca le problème. Mais dans ce cas la, quelle est la version la plus courante et la plus connue ? Et ces différences sont à quel niveau ?
J'attends votre réponse avec impatience !
Messages postés
28931
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 mai 2020
328
N = input("Introduisez un nombre de jours:")
a = N // 365
N = N-a*365
m = N // 30
N = N-m*30
j = N
print(njour, "valent:", a, "an(s)", m, "mois", j,"jour(s)")

quelle est l'erreur dans ce code svp ?
Messages postés
103
Date d'inscription
lundi 9 octobre 2006
Statut
Membre
Dernière intervention
26 mai 2020
56
Bonjour,

L'instruction "input" récupère une chaine de caractères de type string (str)
Si vous voulez effectuer des calculs numériques vous devrez la transformer dans un type compatible "integer" (int)

Vous pouvez coder directement:
N = int(input("Introduisez un nombre de jours:"))


La variable "njour" n'existe pas ça ira mieux avec:
print(N, "valent:", a, "an(s)", m, "mois", j,"jour(s)")


--
Traceback (most recent call last):
File "C:/Python33/1.py", line 1, in <module>
N = int(input("Introduisez un nombre de jours:"))
ValueError: invalid literal for int() with base 10: ''

Il m'affiche ceci..
Messages postés
103
Date d'inscription
lundi 9 octobre 2006
Statut
Membre
Dernière intervention
26 mai 2020
56
Bonjour,

Ma tête à couper que vous n'avez pas entré des caractères numériques.
Le même code avec un contrôle:

N = input("Introduisez un nombre de jours:")
if N.isnumeric():
N = int(N)
a = N // 365
N = N-a*365
m = N // 30
N = N-m*30
j = N
print(N, "valent:", a, "an(s)", m, "mois", j,"jour(s)")
else:
print("ERREUR : Entrez des caracteres numériques!!!")


--
Messages postés
103
Date d'inscription
lundi 9 octobre 2006
Statut
Membre
Dernière intervention
26 mai 2020
56
Bonjour,

Mes réponses précédentes supposaient que vous êtes en Python V3
Si vous êtes en Python V2 vous devrez coder:
N = raw_input("Introduisez un nombre de jours:")


--