Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > [Exercices] Venez vous entraîner ! > Lecture du sujet

[Exercices] Venez vous entraîner !

Un nouvel exercice chaque mois

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  7  8  9  10  11  12  13  ...  26  27  28  29  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  7  8  9  10  11  12  13  ...  26  27  28  29  Suivante
Hors ligne noob4ever # Posté le 01/06/2008 à 21:22:03
I aim for the middle.
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Petite question, est-ce qu'on doit obligatoirement garder l'odre ? Car quand je decompresse, j'écris en ordre alphabétique.

Exemple :

not compressed : JJJIIIII
compressed : 5@I3@J
decompressed : IIIIIJJJ

Grave ou pas ?


Mets ta bouche contre le trottoir tout de suite.
 
Hors ligne zero ptt # Posté le 01/06/2008 à 21:24:07
Avatar
Groupe : Bannis
d'apres ce que j'ai compris, on ne pourrait pas avoir de conteneur d'elements associé a des clefs qui sot non ordonné :(

mon tout nouveau siteweb: Creations

regroupe tous mes programmes de A à Z :soleil: (piur me soutenir, un clic sur la pub suffit)
attention, google arrive :lol:
 
Hors ligne freecircus # Posté le 01/06/2008 à 21:33:38
"Se coucher tard nuit"
Avatar
Groupe : Membres
noob4ever > bah t'imagines si après avoir décompressé une image les pixels seraient triés par couleur, ça le fait moyen ^^
Je sais qu'ici c'est juste pour l'exercice, mais préserver l'information me semble un principe incontournable.
Édité le 01/06/2008 à 21:34:40 par freecircus

Générateurs de labyrinthes, "concours" tout langages, participez! :)
ma présentation
 
Hors ligne Genius # Posté le 01/06/2008 à 21:44:10
Mais que se passe-t-on ?
Avatar
Groupe : Membres
@Jaloyan :
Exactement ce à quoi je pensais durant ma douche :p
Il faudrait par contre exclure certains caractères (EOF...)

@noob4ever :
Bah oui quand même :D
T'imagines tu compresses "Bonjour" et tu te retrouve avec "ruojnoB" ? ^^
Mais bon c'est pas vraiment un problème, il suffit d'inverser l'ordre lors de la décompression, c'est pas compliqué :)


Je pensais également à un truc : peut être existe t-il dans la table ASCII un nombre qui ne correspond à aucun caractère ? Si oui il pourrait être le flag :)

Un joueur d'échecs c'est comme de la peinture, s'il n'est pas brillant il est mat...
In a world without walls and fences, who needs Windows and Gates ?
(\_/) Copiez/collez lapin dans votre signature,
(='.'=) et aidez le à concrétiser sa domination du monde !
(")_(")
 
Hors ligne Goten # Posté le 01/06/2008 à 21:46:19
Avatar
Groupe : Membres
Inverser l'ordre? il a pas dit qu'il ressortait en fonction de l'alphabet?
Hors ligne Jaloyan1 # Posté le 01/06/2008 à 21:46:57
Choisir = se priver du reste.
Avatar
Groupe : Membres
ben le caractere EOF.

Bien pensé mais c'est déjà pris.

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne Genius # Posté le 01/06/2008 à 21:52:19
Mais que se passe-t-on ?
Avatar
Groupe : Membres
@Goten : Aaaah d'accord, j'avais pas compris :oups:
Ben alors faut revoir la compression je pense, le but est quand même de conserver les informations pour les restituer dans l'état initial non ? (sinon on pourrait faire un "compresseur" qui vide tout simplement le fichier, ça prendrait moins de place :p )

@Jaloyan : Oui, apparement la table est pleine ^^, peut être le 255, DEL ? (je vois pas comment on peut stocker DEL dans un fichier :^o )
Ou sinon 176 par exemple; bien moins utilisé que @ (je savais même pas qu'il existait :D ).
Édité le 01/06/2008 à 21:52:54 par Genius

Un joueur d'échecs c'est comme de la peinture, s'il n'est pas brillant il est mat...
In a world without walls and fences, who needs Windows and Gates ?
(\_/) Copiez/collez lapin dans votre signature,
(='.'=) et aidez le à concrétiser sa domination du monde !
(")_(")
 
Hors ligne Isra17 # Posté le 01/06/2008 à 22:03:08
ouin
Avatar
Groupe : Membres
noob4ever: ben si pour toi décompresse un image et la décompresser pour qu'elle deviennent à l'envers n'est pas grave...
Si tu utilise un conteneur pour stocker tes string, utilise un dequeue.
Édité le 01/06/2008 à 22:10:11 par Isra17

Hero War c'est pour bientôt? Ouais!!
 
Hors ligne Genius # Posté le 01/06/2008 à 22:13:31
Mais que se passe-t-on ?
Avatar
Groupe : Membres
Isra17, tu as mal compris (en fait tu as compris la même chose que moi tout à l'heure ; l'ordre n'est pas inversé, mais le fichier est trié dans l'ordre alphabétique.
Exemple :
fffbjaaaccbb => aaabbbccfffj

Donc là le fichier n'a plus de sens du tout.

Un joueur d'échecs c'est comme de la peinture, s'il n'est pas brillant il est mat...
In a world without walls and fences, who needs Windows and Gates ?
(\_/) Copiez/collez lapin dans votre signature,
(='.'=) et aidez le à concrétiser sa domination du monde !
(")_(")
 
Hors ligne Isra17 # Posté le 01/06/2008 à 22:19:14
ouin
Avatar
Groupe : Membres
ha, d'accord, sinon je viens de trouver un bogue dans la manière de compresser de Nanoc. C'est encore à cause du flag. Disons que nous avons cette chaîne: aaabbb1@yzzz
cela donne: 3@a3@b1@03@z
Vous voyez l'erreur?
je décompresse et j'ai:
aaabbb0zzz
je propose que nous abolissons le flag et que nous fesons comme la méthode officiel (wiki ou comme le dit Genius)
une autre méthode serait d'utiliser 0@ à la place. Ainsi il est clair que nous ne pouvons trouver ambigue de mettre 0 fois @.

Ex: aaabbb1@0zzz
cela donne: 3@a3@b10@3@z
donc: aaabbb1@zzz
Édité le 01/06/2008 à 22:24:28 par Isra17

Hero War c'est pour bientôt? Ouais!!
 
Hors ligne poulecaca # Posté le 01/06/2008 à 22:25:16
Avatar
Groupe : Membres
le beug peut etre reglé en codant le flag @@
Hors ligne Genius # Posté le 01/06/2008 à 22:26:58
Mais que se passe-t-on ?
Avatar
Groupe : Membres
Il faut voir quand même que c'est Nanoc qui crée les exercices et anime ce sujet, à lui de décider :) (même si j'aime pas "sa" méthode :p)

Un joueur d'échecs c'est comme de la peinture, s'il n'est pas brillant il est mat...
In a world without walls and fences, who needs Windows and Gates ?
(\_/) Copiez/collez lapin dans votre signature,
(='.'=) et aidez le à concrétiser sa domination du monde !
(")_(")
 
Hors ligne Isra17 # Posté le 01/06/2008 à 22:44:33
ouin
Avatar
Groupe : Membres
poulecaca : et tu diminue encore plus la compression, 0@ marche très bien
et hop, mon encodeur marche parfaitement :D
Édité le 01/06/2008 à 22:44:54 par Isra17

Hero War c'est pour bientôt? Ouais!!
 
Hors ligne poulecaca # Posté le 01/06/2008 à 22:49:58
Avatar
Groupe : Membres
ben Isra17 coder @@ ou 0@ il y a deux caractère dans les deux cas donc la compression reste la meme :p
Mon encodeur marche parfaitement aussi seulement d'ailleur on m'a toujours pas repondu pour l'histoire du flag entré par la personne : doit on mettre en argument le nouveau flag pour décompresser le fichier ou se débrouiller pour que le flag soit ecrit dans le fichier au risque de perdre un caractère pour le taux de décompression.
Édité le 01/06/2008 à 22:52:03 par poulecaca
Hors ligne zero ptt # Posté le 01/06/2008 à 22:57:23
Avatar
Groupe : Bannis
je ne trouve pas du tout de conteneurs a clefs non ordonnés, je seche vraiment là!

mon tout nouveau siteweb: Creations

regroupe tous mes programmes de A à Z :soleil: (piur me soutenir, un clic sur la pub suffit)
attention, google arrive :lol:
 
Hors ligne Freedom # Posté le 01/06/2008 à 22:59:38
apprenti
Groupe : Membres
Citation : Isra17
Disons que nous avons cette chaîne: aaabbb1@yzzz
cela donne: 3@a3@b1@03@z
Vous voyez l'erreur?
je décompresse et j'ai:
aaabbb0zzz


Si tu respectais l'algo tu aurait pas cette erreur:
aaabbb1@yzzz
3@a3@b1@0y3@z
et en decompressant
3 fois le a, puis 3 fois le b, puis 1 fois ... ha bha non, on a dit que 1 fois on mettais direct donc c'est un 1, puis un @ pui y et 3 fois z :
aaabbb1@yzzz

Citation : The Who
We're not gonna take it
Never did and never will

YAGNI

Architecture logicielle & Développement
 
Hors ligne poulecaca # Posté le 01/06/2008 à 23:06:33
Avatar
Groupe : Membres
D'accord freedom mais la chaîne aaabbb6@yzzz
3@a3@b6@0y3@Z
3 fois a 3 fois b 6 fois (au mince on peut très bien avoir 6 fois quelque chose) 0 1 fois y et 3 fois z
on a donc aaabbb000000yzzz oups
Édité le 01/06/2008 à 23:07:13 par poulecaca
Hors ligne Genius # Posté le 01/06/2008 à 23:06:58
Mais que se passe-t-on ?
Avatar
Groupe : Membres
Mais si tu remplaces la chaîne de départ par "aaabbb3@yzzz" par exemple, le problème est toujours là

Un joueur d'échecs c'est comme de la peinture, s'il n'est pas brillant il est mat...
In a world without walls and fences, who needs Windows and Gates ?
(\_/) Copiez/collez lapin dans votre signature,
(='.'=) et aidez le à concrétiser sa domination du monde !
(")_(")
 
Hors ligne Isra17 # Posté le 01/06/2008 à 23:23:24
ouin
Avatar
Groupe : Membres
bon, il ne reste plus qu'a attendre que Nanoc revienne et change les règle. Sinon, vous êtes rendu où vous autre? Moi j'ai finis l'encodage et l'interface (ligne de commande) j'ai la possibilité de définir le flux de sortie (console ou fichier) et de définir le flux d'entré (chaine ou fichier). reste plus qu'a décoder le tout.

Hero War c'est pour bientôt? Ouais!!
 
Hors ligne Freedom # Posté le 01/06/2008 à 23:34:07
apprenti
Groupe : Membres
Citation : poulecaca
D'accord freedom mais la chaîne aaabbb6@yzzz
3@a3@b6@0y3@Z
3 fois a 3 fois b 6 fois (au mince on peut très bien avoir 6 fois quelque chose) 0 1 fois y et 3 fois z
on a donc aaabbb000000yzzz oups


Oui oui, sa je suis d'accord, je montrais juste l'exemple donné par Isra17, se compressait et decompressait tres bien avec l'algo de Nanoc

Citation : Genius
Mais si tu remplaces la chaîne de départ par "aaabbb3@yzzz" par exemple, le problème est toujours là


La d'accord aussi, le probleme se pose des qu'on a n@0, avec n compris entre 3 et 9, sinon l'algo marche.

Citation : Isra17
Sinon, vous êtes rendu où vous autre?


Me reste a mettre en place la recupération avec les parametre du main(), et la gestion des exeptions, sinon sa a l'air de marcher

Citation : The Who
We're not gonna take it
Never did and never will

YAGNI

Architecture logicielle & Développement
 
Hors ligne Isra17 # Posté le 01/06/2008 à 23:36:52
ouin
Avatar
Groupe : Membres
vite comme ça, qu'est-ce qui ne marche pas avec n@@?

Hero War c'est pour bientôt? Ouais!!
 
Hors ligne poulecaca # Posté le 02/06/2008 à 07:25:06
Avatar
Groupe : Membres
il me reste aussi les exeptions.
Hors ligne Jaloyan1 # Posté le 02/06/2008 à 07:45:46
Choisir = se priver du reste.
Avatar
Groupe : Membres
la solution serait de mettre n@@(comme l'a dit isra17)
Et n peut etre égal a 1 c'est de la perte d'espace mais bon il faut bien.
Comme ca on est sur que l'algo pourra marcher avec cet exemple.
Édité le 02/06/2008 à 07:46:02 par Jaloyan1

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne Nanoc # Posté le 02/06/2008 à 09:16:52
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
Bon bon, je vois qu'une modification s'impose.

La conservation de l'ordre est important. Il faut que la compression puis la décompression d'un fichier me rende le fichier original ! Sinon, ça n'a aucun intérêt.

On ne peut pas abandonner le flag. Que ceux qui pensent ça, essayent de compresser "234555166" et ensuite de décompresser.

Pour ce qui est du choix du flag. En effet, choisir un caractère "rare" est obligatoire. Maintenant, qu'est-ce qu'un caractère rare ? Si vous laissez le choix à l'utilisateur du flag, alors il devra l'indiquer à la compression et à la décompression. Par exemple :
Code : Console
monProgramme -c -f="@" monFichier.txt
Compression avec le flag "@" en cours...
Compression terminée.


Pour ce qui est du codage du flag. Ok, ma méthode n'était certainement pas la meilleure. Prenons donc comme moyen de coder le flag, la syntaxe "flag flag". Ceci pose un autre problème que je vous laisse découvrir.
"333@222224" -> "3@3@@5@24"

Pour ceux qui veulent jouer avec les bits. Non. C'est trop compliqué. Vous vous êtes assez pleint la fois passée quand il fallait faire une simple multiplication de deux entiers. On va pas commencr à jouer sur des tableaux de bits en mémoire.

Je modifie les règles en conséquence.

P.S.: Pour les conteneurs à clés non-ordonnés, bien que je n'en voie pas l'intérêt ici, il n'y en a pas dans le standard.
Édité le 02/06/2008 à 09:27:28 par Nanoc
 
Hors ligne Genius # Posté le 02/06/2008 à 12:53:58
Mais que se passe-t-on ?
Avatar
Groupe : Membres
Citation : Nanoc
On ne peut pas abandonner le flag. Que ceux qui pensent ça, essayent de compresser "234555166" et ensuite de décompresser.


Mais si Nanoc, on peut :
121314351126

Je suis d'accord que ça ne compresse pas étant donné que le résultat est plus long que le texte de départ, mais avec un flag la compression serait nulle, donc ce serait pas super utile non plus...

Par contre sur une chaine comme "1111222333334444555555", sans flag on a : 4132534465 et avec on aurait 4@13@25@34@46@5, et là la méthode sans flag est plus efficace :)

Le bon côté c'est qu'il ne peut y avoir aucun problème de ce type comme tu dis :
"333@222224" -> "3@3@@5@24" (flag @@)
"1116@222224" -> "3@16@05@24" (flag @0)

Un joueur d'échecs c'est comme de la peinture, s'il n'est pas brillant il est mat...
In a world without walls and fences, who needs Windows and Gates ?
(\_/) Copiez/collez lapin dans votre signature,
(='.'=) et aidez le à concrétiser sa domination du monde !
(")_(")
 
Hors ligne zero ptt # Posté le 02/06/2008 à 13:11:24
Avatar
Groupe : Bannis
si il y a par exemple dans une chaine 11 de 'a', la compression devrait retourner 9@a 2@a oubien 9@a aa ?

mon tout nouveau siteweb: Creations

regroupe tous mes programmes de A à Z :soleil: (piur me soutenir, un clic sur la pub suffit)
attention, google arrive :lol:
 
Hors ligne Kurlze # Posté le 02/06/2008 à 13:36:35
L.O.S.T
Avatar
Groupe : Membres
Citation : Nanoc
Pour les "@@@", essaie de décompresser ton truc et tu verras ce qui se passe...


Quel est le problème avec n@@ ? n étant un chiffre. J'ai par exemple ceci à compresser: @@@@@@

Quand je compresse:
6@@

Et quand je décompresse je me retrouve bien avec:
@@@@@@


Si j'ai ceci à compresser: @@@@@@@@@@@@@@

Quand je compresse:
9@@5@@

Quand je décompresse:
@@@@@@@@@@@@@@

Compression & Décompression : OKAY
En tout cas je n'ai pas trouvé de bug dans mon code pour l'instant. Je vais voir si j'en trouve.

EDIT pour zero ptt : Logiquement, d'après l'énoncé de Nanoc, tu te retrouves avec 9@a aa (enfin sans espace normalement).
Édité le 02/06/2008 à 13:38:00 par Kurlze

You cannot change your fate. No man can.
 
Hors ligne aerotec # Posté le 02/06/2008 à 13:38:26
Avatar
Groupe : Membres
Salut !
Il est bien sympa ton exercice Nanoc ! :)
J'ai décidé d'essayer de le faire mais j'ai déjà un problème :lol:

Comment découper une chaine string comme AAAAABBB juste entre le A et le B ?
J'ai pensé a maChaine.substr() comme dans le tuto de M@teo mais il faut indiquer ou couper, ce que l'on ne sait pas...

Merci
Hors ligne zero ptt # Posté le 02/06/2008 à 13:46:53
Avatar
Groupe : Bannis
c'est u exercice ça, reflechis toi meme! et si tu bloque, je suis pret a t'aider dans un mois ^^

mon tout nouveau siteweb: Creations

regroupe tous mes programmes de A à Z :soleil: (piur me soutenir, un clic sur la pub suffit)
attention, google arrive :lol:
 
Hors ligne Genius # Posté le 02/06/2008 à 13:48:39
Mais que se passe-t-on ?
Avatar
Groupe : Membres
Kurzle => S'il n'y a qu'un ou deux @, il y a un problème...

Un joueur d'échecs c'est comme de la peinture, s'il n'est pas brillant il est mat...
In a world without walls and fences, who needs Windows and Gates ?
(\_/) Copiez/collez lapin dans votre signature,
(='.'=) et aidez le à concrétiser sa domination du monde !
(")_(")
 
Hors ligne Isra17 # Posté le 02/06/2008 à 13:55:44
ouin
Avatar
Groupe : Membres
mais c'est quoi le prob?

Hero War c'est pour bientôt? Ouais!!
 

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 420 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.2092s (0.1675s)