Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonctions

Anonyme
10 octobre 2021 à 18:37:54

Bonjour,

j'ai besoin d'aide pour cet exercice:

Je doit  créer un programme qui fait la convertion d'un entier entre 1 et 3999 en numeration romain et je dois le decomposer en 5 fonctions au total

5fonctions au total:

1er fonction est  repeat: prend deux parametres 'un entier n et un texte t' (retourne un texte composé de n repetitions du texte t)par exemple l'appel repeat(3,"") doit retourner "Ⅰ" (je dois pas utiliser n*t)

2eme fonction est extraireChiffre: prend deux parametres 'nombre entier n et un autre nombre p p*10(retourne le chiffre de n correspondant a la position de p)par exemple extraireChiffre (7890,100) retourne 8 qui corresspond au chiffres des centaines de 7890

3eme fonction est chiffreRomain: encode en romain un seul chiffre du nombre decimal et prend 4parametres 'un entier de 0 à 9 (le chiffre) et trois paramètres qui sont des textes de un caractère représentant les chiffres associés à 1, 5 et 10 respectivement

Cette fonction traite 4 cas :

chiffre de 0 à 3

chiffre 4

chiffre de 5 à 8

chiffre 9

utiliser repeat pour les grands nombres

4eme fonction est romain et prend un nombre n entier et retourne la conversion de n en romain. Cette fonction doit utiliser chiffreRomain et extraireChiffre afin d'éviter la duplication de code

5eme fonction est testRomain qui exécutera des tests unitaires tels que vus en classe. Vos tests unitaires doivent tester au moins une fois la conversion de chaque chiffre entre 0 et 9 en plus d'exécuter d'autres tests bien choisis des fonctions repeat, extraireChiffre et chiffreRomain.

NOTE : pas d'appel à print, alert ou prompt


Merci(je m'excuse pour mon post precedent avec le meme titre, je savais pas qu'on avait pas droit de le faire)

-
Edité par Anonyme 10 octobre 2021 à 20:47:26

  • Partager sur Facebook
  • Partager sur Twitter
10 octobre 2021 à 18:45:03

Bonjour, Merci d'indiquer un titre en rapport avec votre problématique.

Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Manque de Politesse

Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?

Mauvais titre

Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

Pour modifier votre titre, éditez le premier message de votre sujet.

(titre originel : Fonctions)

Liens conseillés

-
Edité par AbcAbc6 10 octobre 2021 à 18:45:53

  • Partager sur Facebook
  • Partager sur Twitter
10 octobre 2021 à 18:51:17

def extraire_chiffre(n,u):
    return n//u%10



-
Edité par josmiley 10 octobre 2021 à 18:53:02

  • Partager sur Facebook
  • Partager sur Twitter

Python c'est bon, mangez-en. 

10 octobre 2021 à 19:13:09

Il faudrait préciser que u vaut 10, 100, 1000 suivant ce qu'on veut
   return n//10**u%10
si on veut préciser la position à partir de la droite (on commence à 0)

edit:

pour ton autre post avec le même titre (pas génial):

def repeat(n, t):

    return t*n

-
Edité par PierrotLeFou 10 octobre 2021 à 19:29:47

  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

Anonyme
10 octobre 2021 à 19:45:12

Desole, je suis nouvelle, je savais pas.

-
Edité par Anonyme 10 octobre 2021 à 19:48:30

  • Partager sur Facebook
  • Partager sur Twitter
11 octobre 2021 à 12:54:26

on n'est pas censé faire tes devoirs sans que tu nous montres ce que tu as fait et sur quoi tu bloques; suis les instructions de l'exercice.
  • Partager sur Facebook
  • Partager sur Twitter
11 octobre 2021 à 18:25:56

Définitivement, les romains n'avaient pas d'ordinateur. :)
Ton approche semble bonne à première vue (tu ne donnes pas de code ...)
Je l'avais fait dans un autre langage. Il faut trainer avec soi les triplets (1 5 10) comme (IVX) (XLC) (CDM)
et on pourrait théoriquement aller plus loin ...
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.