Langage de programmation
Discutez d'informatique ici !
-
lapras
- Membre Transcendant
- Messages: 3664
- Enregistré le: 01 Jan 2007, 13:00
-
par lapras » 19 Oct 2007, 22:14
Bonsoir,
je cherche un langage de programmation permettant de manier les listes et les tableaux tres tres facilement, tout en étant rapide (aussi rapide que le C au moins).
je travaille sur un probleme de maths (ouvert) et je dois explorer des listes contenant des chaines de caracteres.
En gros, (tres tres gros), je veux faire un "tableau" qui serait organisé comme ceci :
Nombre de caracteres : i
caractere possible [1] : ABCAB[....]
caractere possible [2] : ....
etc...
Vous voyez ce que je veux dire ?
Malheureusement, c'est difficile en C de faire ca... Quelqun pourrait me donner un langage qui serait adapté pour ce genre de manipulation ?
Et si possible, un langage qui a des tutos en français sur le net (ca c'est mon véritable probleme !)
Merci d'avance !
lapras
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 19 Oct 2007, 22:20
lapras a écrit:Nombre de caracteres : i
caractere possible [1] : ABCAB[....]
caractere possible [2] : ....
etc...
Vous voyez ce que je veux dire ?
lapras
pas compris
:doute:
-
lapras
- Membre Transcendant
- Messages: 3664
- Enregistré le: 01 Jan 2007, 13:00
-
par lapras » 19 Oct 2007, 22:24
Désolé, je n'ai pas été assez clair.
En fait j'ai mots de longueurs i=1 jusqu'a i=n
par exemple un mot de longueur 1 : 'A'
Un mot de longueur 3 : 'ABC'
etcc...
Mais pour une longueur de mot i , j'ai plusieurs mots possibles
par exemple plusieurs mots possibles à i = 3 caracteres :
1. 'ABC'
2. 'ACB'
3. 'BCA'
etc...
(c'est pas un probleme tout bête de listage de combinaisons, je simplifie)
donc par exemple si je demande le mot de longueur i numéro 3 j'aurai :
'BCA'
C'est avec ce genre de manipes que je souhaite travailler :happy2:
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 19 Oct 2007, 22:34
et le C c parfait
pourquoi ca va pas ?
-
abcd22
- Membre Complexe
- Messages: 2426
- Enregistré le: 13 Jan 2006, 15:36
-
par abcd22 » 19 Oct 2007, 22:36
Bonsoir,
En C on doit pouvoir faire ça avec un tableau de taille n dont chaque cellule contient un pointeur vers une liste chaînée, chaque cellule de la liste chaînée contenant une chaîne de caractère (un des mots de longueur i possible). Je ne sais pas s'il y a des langages qui permettent de faire ça plus simplement ni si c'est une bonne solution pour ce que tu veux faire (s'il y a i! mots de longueur i et que i peut être grand le temps d'accès aux derniers mots de la liste va vite augmenter...).
-
lapras
- Membre Transcendant
- Messages: 3664
- Enregistré le: 01 Jan 2007, 13:00
-
par lapras » 19 Oct 2007, 22:39
Tu êux gérer en C des tableaux tels que
Tableau[i][n] = "CHAINE DE CARACTERE"
?
Je pense que ca n'est pas tres simple !
Apres je dois aussi explorer les caracteres de Tableau[i][n]
par exemple :
Tableau[i][5] = "ABC"
Je veux pouvoir sortir facilement (et surtout tres rapidement) la 2eme lettre de tableau[i][5] c'est à dire B
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 19 Oct 2007, 22:47
lapras a écrit:Tableau[i][5] = "ABC"
Je veux pouvoir sortir facilement (et surtout tres rapidement) la 2eme lettre de tableau[i][5] c'est à dire B
tableau[i][5][2]='B' en caractère ou en code ascii je sais plus
Sinon :
ADA -> non (c'est une sorte de c un peu chiant)
C++ -> ba c pareil que le c
ocaml -> pas la peine
arf j'en connait pas d'autre je peux plus t'aider dsl :triste:
-
abcd22
- Membre Complexe
- Messages: 2426
- Enregistré le: 13 Jan 2006, 15:36
-
par abcd22 » 19 Oct 2007, 23:25
Quand on fait un tableau à plusieurs dimensions en C la deuxième dimension (et suivantes) doit être fixe, donc je ne pense pas que ça te convienne, il faut passer par des tableaux de pointeurs pour avoir des longueurs variables. Voir par exemple
http://clips.imag.fr/commun/bernard.cassagne/Introduction_ANSI_C/node63.html et pages suivantes. Peut-être qu'il y a des bibliothèques où les structures qu'il faut sont déjà décrites.
En fait si on fait un tableau de pointeurs vers des tableaux de pointeurs (vers les chaînes de caractères) on n'a pas le problème de temps d'accès dont j'ai parlé plus haut avec les listes.
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 19 Oct 2007, 23:34
ouai mais si la dernière dimension c'est un caractère on peut le caser entre 1 et 256 voir moins si on prend que des lettres non ?
le problème c'est que c'est la troisième dimension ici
sinon t'a pas moyen de connaitre la dimension de ton tableau avant ?
parce que tu peux le déclaré après avoir trouvé sa taille
-
bruce.ml
- Membre Rationnel
- Messages: 630
- Enregistré le: 19 Juin 2007, 00:54
-
par bruce.ml » 19 Oct 2007, 23:41
Nan mais utilise O'caml :P c'est le meilleur langage du monde pour faire ce genre de choses. C c'est un langage voué à disparaitre, du moins dans sa forme actuelle ...
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 19 Oct 2007, 23:45
arf un fan
ce qui est bien avec caml c'est que les fonctions sont pas très compliquée en général mais bon y en a plein (pour ce que j'en ait fait => pas beaucoup)
puis y a la compilation "instantané" eee fonctionnel c'est ça ?
-
abcd22
- Membre Complexe
- Messages: 2426
- Enregistré le: 13 Jan 2006, 15:36
-
par abcd22 » 20 Oct 2007, 00:06
gol_di_grosso : Si on fait un tableau à taille fixe en prenant les plus grandes tailles nécessaires pour les 2e et 3e dimension ça risque de faire beaucoup de gaspillage de mémoire... et les tableaux de pointeurs ne sont pas beaucoup plus compliqués si on se donne un peu de mal pour apprendre à manipuler des pointeurs (je ne pense pas qu'on puisse faire grand chose en C si on ne connaît pas les pointeurs).
-
bruce.ml
- Membre Rationnel
- Messages: 630
- Enregistré le: 19 Juin 2007, 00:54
-
par bruce.ml » 20 Oct 2007, 00:21
L'informatique c'est pas la science de faire des trucs super compliqués alors qu'on peut faire très simple, bien au contraire. 90% du temps que passe un informaticien devant son ordinateur, c'est pour débuger le code qu'il ne met que 10% de son temps à écire !!! alors autant faire du code simple dans un langage simple comme l'est ocaml.
-
Joker62
- Membre Transcendant
- Messages: 5028
- Enregistré le: 24 Déc 2006, 20:29
-
par Joker62 » 20 Oct 2007, 03:03
Salut Emmanuel ;)
Tu pourrais rappeler ton problème de maths ouvert au passage !
J'me rapelle plus :(
-
lapras
- Membre Transcendant
- Messages: 3664
- Enregistré le: 01 Jan 2007, 13:00
-
par lapras » 20 Oct 2007, 07:22
Salut David :we:
Le dernier probleme ouvert dont je t'ai parlé samedi, on l'a résolu grace a l'informatique !
celui la c'est un nouveau :
On a des personnes qui ne peuvent parler que avec trois syllabes (qu'on note 'A', 'B' et 'C').
mais ils ne peuvent pas faire de répétition.
Par exemple
ABAB
est interdit
ou bien
ABCABC
est interdit
AA est interdit
etc..
je dois démontrer qu'il y'a une infinité de mots.
Mais c'est trop dur mathématiquement, on doit donc le faire avec un algo qui te sort les mots possibles pour la longueur que tu veux.
Mais cet algo a besoin des mots de la longueurs (i-1) pour faire un mot de la longueur i
Voila ne gros.
Bruce.ml : mon programme va donc prendre rapidement beaucoup beaucoup de place ?
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 20 Oct 2007, 10:07
et tu veux sauvegarder tout ça ou juste y afficher (là t'aurai pas besoin de sauvegarder dans un tableau)
-
Joker62
- Membre Transcendant
- Messages: 5028
- Enregistré le: 24 Déc 2006, 20:29
-
par Joker62 » 20 Oct 2007, 10:29
On ne peut pas faire de répétition de mots ? ou de syllabes ?
Entre chaque mot on met un espace ?
-
lapras
- Membre Transcendant
- Messages: 3664
- Enregistré le: 01 Jan 2007, 13:00
-
par lapras » 20 Oct 2007, 12:44
En fait je garderai en mémoire le tableau des mots de longueurs i-1
Les autres je les effacerai : aucune utilité vu que je veux les mots de longueur i.
non aucune répétition de mot, de syllabe, et pas d'espace entre les mots.
par exemple si on veut un mot de longueur 4, on prend un mot de longueur 3 et on voit si on peut lui ajouter un C, un A ou un B (on a trouvé qu'un exemple de mot où l'on ne peut rien rajouter)
:happy2:
-
Joker62
- Membre Transcendant
- Messages: 5028
- Enregistré le: 24 Déc 2006, 20:29
-
par Joker62 » 20 Oct 2007, 13:11
Si on a par exemple ABCAB
On ne peut pas rajouter de C ?
-
lapras
- Membre Transcendant
- Messages: 3664
- Enregistré le: 01 Jan 2007, 13:00
-
par lapras » 20 Oct 2007, 13:13
Non, mais tu peux rajouter un A :++:
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités