CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Cherche] Un algorithme à voyelles

Shikkoku
Shikkoku
Niveau 10
11 septembre 2011 à 12:01:20

Bonjour !

Alors voilà, je vais faire clair et simple, je cherche un algorithme ou un programme quoi, qui me permettrait de compter les voyelles d'un texte, et d'avoir plusieurs catégories (du genre a= 67 / e=80).

Etant donné que ce programme serait voué à des recherches en langues, je devrais pouvoir le modificer facilement (ne possédant aucune connaissance en programmation) pour ajouter ou supprimer des voyelles, certaines lettres n'ayant pas le même statut d'une langue à l'autre.

Si vous connaissez un programme du genre, vous seriez bien aimables de me l'indiquer :)

tbop2
tbop2
Niveau 10
11 septembre 2011 à 12:47:27

Quel est ton niveau d'études actuel ? Est-ce pour un objectif personnel ou académique ? Cherches-tu un logiciel ou un programme (car tu te contredis un peu sur l'objectif à la fin) ? Et si un algorithme as-tu un langage en particulier en tête ?

Ce genre d'algorithme de recherche et comptage de caractères dans une string est tout ce qu'il y a de plus simple, basique à faire en programmation, de façon propre ou pas on s'en fout c'est très simple à faire. Donc tu devrais pas avoir trop de mal à le faire toi-même dans tous les cas (genre je vois mal un truc dépassant les 20 lignes).

Pedobeer
Pedobeer
Niveau 6
11 septembre 2011 à 13:52:31

L'idée je pense, c'est de parcourir le texte caractère par caractère et d'incrémenté un tableau de six case (une case par voyelle) à chaque fois où le caractère est une voyelle

tbop2
tbop2
Niveau 10
11 septembre 2011 à 14:07:53

Non puisque la notion de voyelle dépend d'une langue. Qui plus est je crois pas que ton algorithme fonctionne... c'est du basique de chez basique pourtant ce qu'il demande.

guyver2
guyver2
Niveau 10
11 septembre 2011 à 14:15:04

heu, pk sont algo fonctionnerai pas ? Ca me semble tout a fait correct pourtant.
Sinon pour ce qui est de l'adapter a un autre langage, il suffit de changer les caractères a reconnaitre, c'est encore une fois basique et si il est capable d'implémenter l'algo de pedobear, il devrait pouvoir l'adapter a volonter suivant la langue traitée.

Kaoron
Kaoron
Niveau 9
11 septembre 2011 à 14:49:06

Perl c'est vraiment dégueulasse (et je suis certain qu'il y a moyen de faire ça en moins de caractères.

$ echo 'Ceci est un texte court contenant des voyelles.' | perl -ne '$_ = lc($_); foreach $l (split("","aeiou")){print "$l : ".(eval "tr/$l//")."\n";};'
a : 1
e : 8
i : 1
o : 3
u : 2

tbop2
tbop2
Niveau 10
11 septembre 2011 à 16:03:34

En fait j'ai mal lu mais c'est mal écrit. Incrémenter un tableau ça veut dire incrémenter un pointeur et donc dans un tableau statique passer à la case suivante. Or ce qu'on veut c'est faire correspondre chaque case du tableau à une lettre spécifique... mais est-ce que vraiment la situation la plus intelligente.

Un truc un peu moche serait de renvoyer un std::vector< std::pair<char, int> > à une méthode avec la string à comparer. Pour chaque caractère de la string tu regardes dans le vector si cela correspond à une des voyelles recensées par la langue et si c'est le cas tu augmentes sa value. A la fin t'as plus qu'à printfer le std::vector< std::pair<char, int> > et en faire ce que tu veux.

Par exemple !

Shikkoku
Shikkoku
Niveau 10
11 septembre 2011 à 16:22:55

Je ne comprends rien à vos termes techniques. Désolé. :(

Je me doute que ça doit être simple, mais je n'y arrive clairement pas. J'ai quelques bases en algorithmie mais rien à faire, je ne peux pas le faire seul.

Un logiciel ou j'entre le texte et il me sort les données serait classe.

Il s'agit d'un projet personnel, à but d'étude des langues à type d'écriture latin.

tbop2
tbop2
Niveau 10
11 septembre 2011 à 16:37:10

Mais ça répond pas à mes questions tout ça... Ok projet personnel mais quel est ton niveau d'études derrière ?

Kaoron
Kaoron
Niveau 9
11 septembre 2011 à 16:37:52

Encore plus court (concours de zizi sur la table inversé ?)
$ s='Ceci est un texte court contenant des voyelles.'
$ echo $s | perl -ne 'for $l (split("","aeiou")){print "$l:".s/$l//gi."\n"}'
a:1
e:8
i:1
o:3
u:2

@Shikkoku : Ici tu es sur un forum de programmation, c'est à dire que tu recevras principalement des réponses destinées à des programmeurs. Le micro programme perl que je donne au début de ce message fait ce que tu demande, il est exécutable au moins dans un shell unix sur un système équipé de perl.

Shikkoku
Shikkoku
Niveau 10
11 septembre 2011 à 17:03:23

Je suis au Lycée. Mais je ne vois pas le rapport.

@Kaoron :d) J'en suis bien conscient, et je te remercie pour ton programme ! Donc maintenant je dois faire comment pour l'utiliser exactement ?
Je pense que cette question a déjà été posée des dizaines de fois, mais je m'en remets justement à une communauté bien plus calée que moi sur le sujet pour m'aider.

Kaoron
Kaoron
Niveau 9
11 septembre 2011 à 19:07:10

Ça dépend de ton système.

Sur Mac OS et une vaste majorité de distributions GNU/Linux, perl sera vraisemblablement installé. Sur Windows, il faudra vraisemblablement installer perl.

Le programme traite de la donnée texte en entrée standard et imprime le résultat sur la sortie standard, donc à partir d'une ligne de commande, il faut rediriger du texte grâce aux pipes "|" (il me semble que les pipes existent aussi dans Windows, corrigez moi si je me trompe).

En pratique : si ton texte se trouve dans un fichier nommé mon_texte.txt, tu devras taper en ligne de commande (en supposant que le fichier soit dans le dossier courant) :

cat mon_texte.txt | perl -ne 'for $l (split("","aeiou")){print "$l:".s/$l//gi."\n"}'

Le résultat de la commande cat sur sa sortie standard est redirigée en entrée standard du programme perl ; le programme perl ci-dessus signifie en français : Pour chaque lettre parmi (a,e,i,o,u), faire une substitution de cette lettre dans la variable générique (à cet endroit, le contenu de l'entrée standard y est affecté) et écrire à l'écran le nombre de substitutions effectuées (c'est à dire le nombre d'occurrences de la lettre).

Si tu veux changer les lettres à compter, remplace "aeiou" par ce que tu veux.

La commande cat n'est peut-être pas présente sur windows, je laisse les personnes compétentes sur ce système te guider au besoin.

tbop2
tbop2
Niveau 10
11 septembre 2011 à 21:39:33

Ben le rapport c'est de savoir un peu où tu en es niveau maths, algorithmique, etc. Donc au lycée tu ne sais pas grand chose donc effectivement j'ai parlé dans le vide depuis le début en parlant technique. Si tu t'en fous un peu de savoir comment cela fonctionne restes en à la commande perl que certains t'ont filé :ok:

Shikkoku
Shikkoku
Niveau 10
13 septembre 2011 à 21:36:27

Le fait n'est pas que je m'en foutasse ( :hap: ) mais que je n'ai aucune base. Je ne compte ni me spécialiser dans l'algorithmie ni les maths plus tard, mais si les explications sont simples je ne crache pas dessus.

Après, cette chose appelée perl me semble compliquée mais pas insurmontable. Je devrais trouver quelqu'un IRL pour m'expliquer le fonctionnement du programme en direct, sur mon PC.

Merci beaucoup de votre aide à tous !

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment