IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Représentation de nombres en base 10


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Représentation de nombres en base 10
    Bonjour à tous,

    Je suis étudiant en droit du numérique et nous avons un exercice d'algorithmique à faire. Etant un juriste, je n'ai jamais fais d'algorithmique avant cette année donc tout est nouveau pour moi, c'est donc normal si vous trouvez ça très simple ahah

    Alors il nous ait demandé de créer un algorithme permettant, à partir d'un tableau en forme standard représentant un nombre, de renvoyer le même tableau mais sans les éventuels 0 finaux. Je m'explique.

    Nom : IMG_2938 2.jpg
Affichages : 807
Taille : 1,19 Mo

    Le premier tableau représente le numéro 863 car cela représente 13x10^0 + 5x10^1+8x10^2+0x10^3 (car nous somme en base 10)

    Le but de l'algorithme est d'enlever les 0 qui ne servent à rien à la fin.

    Nous avons appris en cours à supprimer des variables d'un tableau avec l'algorithme suivant :
    Nom : Capture d’écran 2021-10-09 à 20.27.33.png
Affichages : 1231
Taille : 123,6 Ko

    Or, si on veut enlever les 0, on ne peut déjà pas écrire (TAB′ [𝑖])0⩽𝑖<N−1 car on ne sait pas combien il y aura de 0 en trop. Donc je suis complètement bloqué depuis maintenant 5h.

    L'algorithmique est vraiment compliqué pour moi et je demande votre aide.

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Ici, tu as un 'outil' pour supprimer systématiquement un caractère, en position n°k.
    Tu peux utiliser cet 'outil'.
    Il faut juste utiliser cet outil autant de fois que nécessaire. Ni plus, ni moins.

    Tu peux présenter ton organigramme ainsi, en 2 parties :
    D'abord une vision 'high-level' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TantQue Le-Dernier-Caractère est 0
         Supprimer Le-Dernier-Caractère
    Fin TantQue
    Puis tu peux présenter le détail sur comment on fait pour Supprimer Le-Dernier-Caractère

    Ici je présente l'algorithme, avec mes habitudes à moi. Selon les profs, selon le niveau du cours, il faut parfois détailler beaucoup plus que ça.

    Mais en principe, un mot clé comme TantQue est accepté dans un algorithme. (en programmation, à peu près tous les langages acceptent l'instruction While, avec des syntaxes variées)
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre réponse !

    J'ai donc fais l'algorithme suivant :
    Entrées : Un tableau d'éléments ((Tab[i])0<=i<N) de longueur N
    Un entier a représentant le nombre de 0 à supprimer
    1.Suppression ((Tab[i])0<=i<N)
    2. Nouveau ((Tab'[i])0<=i<N-a)
    3. Si Tab[0] <-- 0, alors
    4. ((Tab'[i]0<=i<N-a) <-- 0
    5. Sinon, faire
    6. Tant que Tab[i] > 0 faire
    7. Tab'[i] <-- Tab[i]
    8. fin
    9. Retourner ((Tab'[i])0<=i<N-a)

    Sorties : Un tableau d'éléments ((Tab'[i])0<=i<N-a)

    Qu'en pensez- vous ?

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Le premier tableau représente le numéro 863 car cela représente 13x10^0 + 5x10^1+8x10^2+0x10^3 (car nous somme en base 10)
    13 en base 10 ? Y a pas quelque chose qui te choque ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je pensais que écrire en base 10 signifiait exprimer les nombres en puissances de 10. En gros, notre exercice final est bien de transformer les tableaux que j'ai mis en photos en tableau sous forme standard avec uniquement des numéros entre 0 et 9 (donc en base 10).
    C'est pourquoi le premier tableau représente un tableau 3, 6, 8.

    N'avez vous pas un autre algorithme qui me permettrait de supprimer les 0 en trop ? Nous n'avons pas vu en cours " tant que le dernier caractère est 0"

    Bien à vous

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 376
    Points
    1 376
    Par défaut
    Bonjour,
    les meilleures suppressions sont celles que l'on ne fait pas. Dans un cas de figure comme celui-ci il serait bien plus de conserver une taille indiquant le nombre de chiffres significatifs. Par exemple une structure de donnée ressemblant à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {
        taille : 4
        chiffres : [7,3,3,1,0,0,0,0,0]
    }
    représente bien l'entier 1337 … peu importe qu'il y ait ou non des 0 en fin de tableaux.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour WhiteCrow,

    Merci pour votre réponse mais malheureusement vous ne m'apprenez rien. Je le répète, le but de l'exercice est de trouver un algorithme qui enlève les 0 en trop. On sait que 7,3,3,1,0,0,0 est égal à 1337 mais moi je voudrais l'algorithme qui enlève les 0 en trop à la fin.

    Merci encore pour votre aide

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    L'algorithme a déjà été donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Tant que le dernier caractère est un 0
       Enlever le dernier caractère
    Fin
    La notion d'algorithme est une notion très large.
    Selon le cours, selon le prof, selon le public ciblé, on va considérer que les 3 lignes en question, ça suffit, ou bien on va demander de détailler plus. Ici, l'instruction 'Enlever ... ', on peut considérer que ce n'est pas suffisamment détaillé. On peut te demander de plus préciser ce que ça comporte comme étapes.
    Mais dans ce cas, tu as donné toi-même un exemple d'algorithme pour détailler à l'extrême ce que ça sous-entend, enlever un caractère précis dans un tableau. Il reste donc à combiner ces 2 algorithmes.

    Ce qui est un peu troublant/choquant pour des matheux dans cette histoire, c'est qu'on parle de 'nombres en base 10' dans le titre, mais l'exemple initial (13,5,8,2 ...) et les travaux demandés .... tout ça fait qu'on est dans de la manipulation de tableaux, générale, et pas dans de l'écriture en base 10.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion de nombre en base 36
    Par adiGuba dans le forum C
    Réponses: 5
    Dernier message: 16/10/2007, 10h15
  2. Précision nombre en base et hors base
    Par schant dans le forum Oracle
    Réponses: 1
    Dernier message: 25/09/2007, 17h14
  3. [MySQL] Nombre dans base de donnée, ajouter +1 au nombre
    Par abinteractive dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/09/2007, 09h48
  4. Réponses: 3
    Dernier message: 08/02/2007, 11h55
  5. [ODBC] Affichage (représentation) graphique d'une base
    Par Atchoum_002 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/09/2005, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo