+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Consultant R&D - Mécatronique - MATLAB/Scilab
    Inscrit en
    novembre 2006
    Messages
    19 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant R&D - Mécatronique - MATLAB/Scilab
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 19 373
    Points : 53 926
    Points
    53 926

    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  
    Sur mon blog : Afficher une photo avec la bonne orientation dans MATLAB

    « 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)

    « And the drip and the drip and the drip of the Mississippi cryin' - And Saint Huck hears his own Mississippi just rollin' by him » (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 : 33
    Localisation : France

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

    Informations forums :
    Inscription : novembre 2007
    Messages : 3 111
    Points : 4 659
    Points
    4 659

    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
    Consultant R&D - Mécatronique - MATLAB/Scilab
    Inscrit en
    novembre 2006
    Messages
    19 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant R&D - Mécatronique - MATLAB/Scilab
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 19 373
    Points : 53 926
    Points
    53 926

    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é
    Sur mon blog : Afficher une photo avec la bonne orientation dans MATLAB

    « 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)

    « And the drip and the drip and the drip of the Mississippi cryin' - And Saint Huck hears his own Mississippi just rollin' by him » (Saint Huck)

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Consultant R&D - Mécatronique - MATLAB/Scilab
    Inscrit en
    novembre 2006
    Messages
    19 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant R&D - Mécatronique - MATLAB/Scilab
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 19 373
    Points : 53 926
    Points
    53 926

    Par défaut

    Voici ma solution
    Fichiers attachés Fichiers attachés
    Sur mon blog : Afficher une photo avec la bonne orientation dans MATLAB

    « 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)

    « And the drip and the drip and the drip of the Mississippi cryin' - And Saint Huck hears his own Mississippi just rollin' by him » (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
    Expert éminent sénior

    Avatar de Winjerome
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    9 516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : septembre 2009
    Messages : 9 516
    Points : 39 420
    Points
    39 420

    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
    Avant de poser votre question : FAQ, Tutoriels et recherche sur le forum
    Une erreur ? Messages d'erreur et avertissements
    "Ça ne marche pas" n'apporte aucune information utile permettant de vous aider. Expliquez clairement votre problème (erreurs entières, résultat souhaité vs obtenu...).

    En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
    L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
    Ma version améliorée de FireDVP et son homologue ChroDVP pour Chrome.

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