Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
Alien Messages
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
LE TENOUX--RACHIDI Isham
Alien Messages
Commits
f42d96da
Commit
f42d96da
authored
Oct 24, 2020
by
LE TENOUX--RACHIDI Isham
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nouvelle version fonctionnel avec le test de base
parent
f950bcdc
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
31 deletions
+28
-31
A-tiny-pratice.in.txt
A-tiny-pratice.in.txt
+10
-0
alienLanguageSubject.c
alienLanguageSubject.c
+18
-31
alienlang.exe
alienlang.exe
+0
-0
No files found.
A-tiny-pratice.in.txt
0 → 100644
View file @
f42d96da
3 5 4
abc
bca
dac
dbc
cba
(ab)(bc)(ca)
abc
(abc)(abc)(abc)
(zyx)bc
\ No newline at end of file
alienLanguageSubject.c
View file @
f42d96da
...
@@ -47,13 +47,13 @@ void afficherMotif(Motif *motif) {
...
@@ -47,13 +47,13 @@ void afficherMotif(Motif *motif) {
for
(
i
=
0
;
i
<
motif
->
size
;
i
++
)
{
for
(
i
=
0
;
i
<
motif
->
size
;
i
++
)
{
printf
(
"%s "
,
motif
->
tokens
[
i
]);
printf
(
"%s "
,
motif
->
tokens
[
i
]);
}
}
printf
(
"
\n
"
);
}
}
void
afficherMotifTab
(
MotifTableau
*
motifTab
)
{
void
afficherMotifTab
(
MotifTableau
*
motifTab
)
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
motifTab
->
size
;
i
++
)
{
for
(
i
=
0
;
i
<
motifTab
->
size
;
i
++
)
{
afficherMotif
(
&
motifTab
->
motifs
[
i
]);
afficherMotif
(
&
motifTab
->
motifs
[
i
]);
printf
(
"
\n
"
);
}
}
}
}
...
@@ -91,7 +91,6 @@ int nbCaracteresChaine(Word chaine) {
...
@@ -91,7 +91,6 @@ int nbCaracteresChaine(Word chaine) {
}
}
Motif
*
formaterMotif
(
Word
chaineMotif
,
int
longueurMot
)
{
Motif
*
formaterMotif
(
Word
chaineMotif
,
int
longueurMot
)
{
//nwlr(nqxb)bm(dgqw)bh
Motif
*
motif
=
(
Motif
*
)
malloc
(
sizeof
(
Motif
));
Motif
*
motif
=
(
Motif
*
)
malloc
(
sizeof
(
Motif
));
motif
->
tokens
=
(
Word
*
)
malloc
(
longueurMot
*
sizeof
(
Word
*
));
motif
->
tokens
=
(
Word
*
)
malloc
(
longueurMot
*
sizeof
(
Word
*
));
motif
->
size
=
longueurMot
;
motif
->
size
=
longueurMot
;
...
@@ -102,12 +101,12 @@ Motif* formaterMotif(Word chaineMotif, int longueurMot) {
...
@@ -102,12 +101,12 @@ Motif* formaterMotif(Word chaineMotif, int longueurMot) {
Word
caracteresPossibles
=
""
;
Word
caracteresPossibles
=
""
;
for
(
i
=
0
;
i
<
lengthChaineMotif
;
i
++
)
{
for
(
i
=
0
;
i
<
lengthChaineMotif
;
i
++
)
{
if
(
chaineMotif
[
i
]
==
'('
)
{
if
(
chaineMotif
[
i
]
==
'('
)
{
printf
(
"start concat
\n
"
);
//
printf("start concat\n");
concat
=
true
;
concat
=
true
;
caracteresPossibles
=
""
;
caracteresPossibles
=
""
;
}
}
else
if
(
chaineMotif
[
i
]
==
')'
)
{
else
if
(
chaineMotif
[
i
]
==
')'
)
{
printf
(
"end concat
\n
"
);
//
printf("end concat\n");
concat
=
false
;
concat
=
false
;
motif
->
tokens
[
j
]
=
caracteresPossibles
;
motif
->
tokens
[
j
]
=
caracteresPossibles
;
j
++
;
j
++
;
...
@@ -116,12 +115,12 @@ Motif* formaterMotif(Word chaineMotif, int longueurMot) {
...
@@ -116,12 +115,12 @@ Motif* formaterMotif(Word chaineMotif, int longueurMot) {
if
(
concat
)
{
if
(
concat
)
{
//concaténation
//concaténation
//stockage de la chaine générée dans une case token du motif
//stockage de la chaine générée dans une case token du motif
printf
(
"concat en cours
\n
"
);
//
printf("concat en cours\n");
caracteresPossibles
=
concatenate
(
caracteresPossibles
,
char2str
(
chaineMotif
[
i
]));
caracteresPossibles
=
concatenate
(
caracteresPossibles
,
char2str
(
chaineMotif
[
i
]));
}
}
else
{
else
{
//conversion du caractère en chaine de caractère
//conversion du caractère en chaine de caractère
printf
(
"%s
\n
"
,
char2str
(
chaineMotif
[
i
]));
//
printf("%s\n", char2str(chaineMotif[i]));
motif
->
tokens
[
j
]
=
char2str
(
chaineMotif
[
i
]);
motif
->
tokens
[
j
]
=
char2str
(
chaineMotif
[
i
]);
//incrémentation du compteur lié au motif
//incrémentation du compteur lié au motif
j
++
;
j
++
;
...
@@ -132,36 +131,22 @@ Motif* formaterMotif(Word chaineMotif, int longueurMot) {
...
@@ -132,36 +131,22 @@ Motif* formaterMotif(Word chaineMotif, int longueurMot) {
return
motif
;
return
motif
;
}
}
void
copierChaine
(
Word
chaine
,
Word
chaineTransfert
)
{
int
length
=
strlen
(
chaineTransfert
);
int
i
;
for
(
i
=
0
;
i
<
length
;
i
++
)
{
chaine
[
i
]
=
chaineTransfert
[
i
];
}
}
// Lecture du fichier et création du dictionnaire
// Lecture du fichier et création du dictionnaire
// La fonction fait un malloc pour allouer l'espace memoire
// La fonction fait un malloc pour allouer l'espace memoire
Dictionnaire
*
readDicoFromFile
(
FILE
*
dataFile
,
unsigned
int
nbWords
,
unsigned
int
wordSize
)
{
Dictionnaire
*
readDicoFromFile
(
FILE
*
dataFile
,
unsigned
int
nbWords
,
unsigned
int
wordSize
)
{
//allocation mémoire
//allocation mémoire
Dictionnaire
*
dico
=
(
Dictionnaire
*
)
malloc
(
sizeof
(
Dictionnaire
));
Dictionnaire
*
dico
=
(
Dictionnaire
*
)
malloc
(
sizeof
(
Dictionnaire
));
dico
->
words
=
(
Word
*
)
malloc
(
nbWords
*
sizeof
(
Word
*
));
dico
->
words
=
(
Word
*
)
malloc
(
nbWords
*
sizeof
(
Word
));
dico
->
size
=
nbWords
;
dico
->
size
=
nbWords
;
char
mot
[
wordSize
];
//lecture fichier
//lecture fichier
//remplissage du dictionnaire
//remplissage du dictionnaire
printf
(
"starting
\n
"
);
int
i
;
int
i
;
for
(
i
=
0
;
i
<
dico
->
size
;
i
++
)
{
for
(
i
=
0
;
i
<
dico
->
size
;
i
++
)
{
//printf("entree boucle");
//ou strdup
fscanf
(
dataFile
,
"%s
\n
"
,
mot
);
dico
->
words
[
i
]
=
(
Word
)
malloc
(
wordSize
*
sizeof
(
char
));
dico
->
words
[
i
]
=
mot
;
fscanf
(
dataFile
,
"%s
\n
"
,
dico
->
words
[
i
]);
copierChaine
(
dico
->
words
[
i
],
mot
);
}
}
printf
(
"sortie boucle
\n
"
);
afficherDico
(
dico
);
//printf("%s\n", dico->words[1]);
return
dico
;
return
dico
;
}
}
...
@@ -171,12 +156,13 @@ void detruire_dico(Dictionnaire* dico) {}
...
@@ -171,12 +156,13 @@ void detruire_dico(Dictionnaire* dico) {}
// Allocation en mémoire d'un tableau contenant les motifs de test
// Allocation en mémoire d'un tableau contenant les motifs de test
MotifTableau
*
readMotifTableauFromFile
(
FILE
*
dataFile
,
unsigned
int
nbTestCases
,
unsigned
int
wordSize
)
{
MotifTableau
*
readMotifTableauFromFile
(
FILE
*
dataFile
,
unsigned
int
nbTestCases
,
unsigned
int
wordSize
)
{
//allocation mémoire
//allocation mémoire
MotifTableau
*
motifsTab
=
(
MotifTableau
*
)
malloc
(
sizeof
(
MotifTableau
));
MotifTableau
*
motifsTab
=
(
MotifTableau
*
)
malloc
(
sizeof
(
MotifTableau
));
motifsTab
->
motifs
=
(
Motif
*
)
malloc
(
wordSize
*
sizeof
(
Motif
));
motifsTab
->
size
=
nbTestCases
;
motifsTab
->
size
=
nbTestCases
;
//lecture fichier
//lecture fichier
//remplissage du tableau motif
//remplissage du tableau motif
Word
chaineMotif
;
Word
chaineMotif
=
calloc
(
400
,
sizeof
(
char
))
;
int
i
;
int
i
;
for
(
i
=
0
;
i
<
motifsTab
->
size
;
i
++
)
{
for
(
i
=
0
;
i
<
motifsTab
->
size
;
i
++
)
{
fscanf
(
dataFile
,
"%s
\n
"
,
chaineMotif
);
fscanf
(
dataFile
,
"%s
\n
"
,
chaineMotif
);
...
@@ -185,7 +171,6 @@ MotifTableau* readMotifTableauFromFile(FILE* dataFile, unsigned int nbTestCases,
...
@@ -185,7 +171,6 @@ MotifTableau* readMotifTableauFromFile(FILE* dataFile, unsigned int nbTestCases,
Motif
*
motif
=
formaterMotif
(
chaineMotif
,
wordSize
);
Motif
*
motif
=
formaterMotif
(
chaineMotif
,
wordSize
);
motifsTab
->
motifs
[
i
]
=
*
motif
;
motifsTab
->
motifs
[
i
]
=
*
motif
;
}
}
return
motifsTab
;
return
motifsTab
;
}
}
...
@@ -227,9 +212,11 @@ void afficherNbMotsCorrespondantAuxMotifs(Dictionnaire* dico, MotifTableau* moti
...
@@ -227,9 +212,11 @@ void afficherNbMotsCorrespondantAuxMotifs(Dictionnaire* dico, MotifTableau* moti
for
(
j
=
0
;
j
<
dico
->
size
;
j
++
)
{
for
(
j
=
0
;
j
<
dico
->
size
;
j
++
)
{
if
(
correspondance
(
dico
->
words
[
j
],
motifTab
->
motifs
[
i
]))
{
if
(
correspondance
(
dico
->
words
[
j
],
motifTab
->
motifs
[
i
]))
{
nbMotsCorrespondants
++
;
nbMotsCorrespondants
++
;
printf
(
"mot : %s
\n
"
,
dico
->
words
[
j
]);
afficherMotif
(
&
motifTab
->
motifs
[
i
]);
}
}
}
}
printf
(
"Case #%i: %i
"
,
i
,
nbMotsCorrespondants
);
printf
(
"Case #%i: %i
\n
"
,
i
+
1
,
nbMotsCorrespondants
);
}
}
}
}
...
@@ -259,11 +246,11 @@ int main(int argc, char *argv[]){
...
@@ -259,11 +246,11 @@ int main(int argc, char *argv[]){
//création du dictionnaire
//création du dictionnaire
Dictionnaire
*
dico
=
readDicoFromFile
(
dataFile
,
nbWords
,
wordSize
);
Dictionnaire
*
dico
=
readDicoFromFile
(
dataFile
,
nbWords
,
wordSize
);
//afficherDico(dico);
//afficherDico(dico);
printf
(
"%s"
,
dico
->
words
[
1
]);
//création d'un tableau de motif
//création d'un tableau de motif
//MotifTableau *motifTab = readMotifTableauFromFile(dataFile, nbTestCases, wordSize);
MotifTableau
*
motifTab
=
readMotifTableauFromFile
(
dataFile
,
nbTestCases
,
wordSize
);
//afficherMotifTab(motifTab);
//affichage du nombre de mot du dictionnaire qui correspondent au motif pour chaque test
//affichage du nombre de mot du dictionnaire qui correspondent au motif pour chaque test
//
afficherNbMotsCorrespondantAuxMotifs(dico, motifTab);
afficherNbMotsCorrespondantAuxMotifs
(
dico
,
motifTab
);
//detruire_dico(dico);
//detruire_dico(dico);
//detruire_motifs(motifTab);
//detruire_motifs(motifTab);
...
...
alienlang.exe
View file @
f42d96da
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment