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
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
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 |
function [nb_total_T, nb_T_par_ligne, nb_mot_deb_T, nb_mot_fin_T] = voilalest_PSEUDO
- 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 |
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) |
Code : | Sélectionner tout |
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 |
----------------------------
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 :