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

Contribuez Discussion :

[Défis][8] Voila les T, ohé !


Sujet :

Contribuez

  1. #1
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut [Défis][8] Voila les T, ohé !


    Un nouveau défi avec un titre de saison

    Voici un extrait des paroles d'une chanson que je vous invite à enregistrer dans un fichier texte nommé mylittlegirl.txt :

    Hey, little girl
    Black and white and right and wrong
    Only live inside a song, I will sing to you
    You don't ever have to feel lonely
    You will never lose any tears
    You don't have to feel any sadness
    When you look back on the years
    How can I look you in the eyes?
    And tell you such big lies
    The best I can do is try to show you
    How to love with no fear
    My little girl

    You've gone and stole my heart and made it your own
    You stole my heart and made it your own
    Le défi va consister à trouver des statistiques autour des apparitions de la lettre T dans le texte.
    La casse n'étant pas prise en compte, les minuscules et majuscules seront confondues.
    Les résultats prendront en compte à la fois T et t.

    Vous devez donc créer une fonction MATLAB qui lit le texte de la chanson contenu dans le fichier et qui détermine :

    • le nombre total de lettres T (ou t) dans le texte
    • le nombre de lettres T (ou t) pour chaque ligne
    • le nombre total de mot commençant par la lettre T (ou t)
    • le nombre total de mot finissant par la lettre T (ou t)


    Il n'y aucune restriction sur les techniques.
    Vous pouvez utiliser toutes les solutions que vous voulez.

    Vous écrirez votre code dans un fichier nommé voilalest_PSEUDO.m et dont le prototype de la fonction sera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function [nb_total_T, nb_T_par_ligne, nb_mot_deb_T, nb_mot_fin_T] = voilalest_PSEUDO
    En replaçant PSEUDO par votre pseudo DVP et où :

    • nb_total_T : un scalaire
    • nb_T_par_ligne : un vecteur de dimension 1 x nb_lignes ou nb_lignes x 1
    • nb_mot_deb_T : un scalaire
    • nb_mot_fin_T : un scalaire


    Postez vos solutions à la suite de cette discussion.

    Vous pourrez donc simplement exécuter les commandes suivantes pour valider vos résultats :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >> assert(nb_total_T==27)
    >> assert(all(nb_T_par_ligne==[2;2;1;2;1;2;1;1;1;4;2;2;0;3;3]))
    >> assert(nb_mot_deb_T==11)
    >> assert(nb_mot_fin_T==8)
    ou si votre version de MATLAB ne supporte par la fonction assert, vous pourrez vérifier les égalités comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    >> nb_total_T==27
     
    ans =
     
         1
     
    >> all(nb_T_par_ligne==[2;2;1;2;1;2;1;1;1;4;2;2;0;3;3])
     
    ans =
     
         1
     
    >> nb_mot_deb_T==11
     
    ans =
     
         1
     
    >> nb_mot_fin_T==8
     
    ans =
     
         1
    Bon courage

    ----------------------------

    Question subsidiaire

    Saurez-vous répondre aux questions suivantes ?

    • Déterminer le nombre d'apparition de chaque caractère dans le texte à l'exception des caractères de fin de ligne et des espaces
    • Tracer l'histogramme de ces apparitions.
    • Pour chaque bâton de l'histogramme tracé, l’étiquette des abscisse devra être la lettre correspondante.


    Vous trouverez une idée du tracé dans l'image attachée à cette discussion

    ----------------------------

    Amusez-vous bien... ou pas

    Et si vous avez besoin de vous détendre entre deux lignes de code :


    Images attachées Images attachées  
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Si je puis me permettre, je ne suis pas tout à fait d'accord avec tes chiffres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> assert(nb_total_T==27)
    >> assert(all(nb_T_par_ligne==[2;2;1;2;1;2;1;1;1;4;2;2;0;3;3]))
    >> assert(nb_mot_deb_T==11)
    >> assert(nb_mot_fin_T==8)
    Et voici donc en pièce jointe le code qui m'a permit d'y parvenir.

    Duf
    Fichiers attachés Fichiers attachés
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par duf42 Voir le message
    Si je puis me permettre, je ne suis pas tout à fait d'accord avec tes chiffres:
    C'est corrigé
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Voici ma solution
    Fichiers attachés Fichiers attachés
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut, amusant comme jeu, un peu comme cody ...
    Je me suis bien amusé sur le graphique, cela faisait des années que je n'en avais pas fait.
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Une solution un peu originale utilisant les commandes dynamiques (?@cmd).

    On peut remarquer que les don't ne passent pas au test classique du début de mot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regexp('don''t ', '\<t') % 5 plutôt que vide
    enfin peut-on réellement considérer que ce n'est pas un autre mot ?
    C'est en tout cas le choix qui semble être fait selon les assert
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Défi Web : découvrez les projets et faites-nous part de votre avis.
    Par Kerod dans le forum Général Conception Web
    Réponses: 59
    Dernier message: 07/10/2010, 00h42
  2. Réponses: 23
    Dernier message: 30/10/2008, 15h39

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