Langage de programmation

Discutez d'informatique ici !
lapras
Membre Transcendant
Messages: 3664
Enregistré le: 01 Jan 2007, 13:00

Langage de programmation

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 :++:

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite