Comment realiser une bistro - Programmation
Marsh Posté le 26-10-2001 à 14:49:33
lol ..
alalla ces épitoyables
ça doit etre le bonheur d'etre corrigé par un script quand meme
epita : 50%hommes 50% machine 100% sodomisés
Marsh Posté le 26-10-2001 à 14:55:23
Kouye a écrit a écrit : lol .. alalla ces épitoyables ça doit etre le bonheur d'etre corrigé par un script quand meme epita : 50%hommes 50% machine 100% sodomisés |
Pourkoi associer la bistromathique a Epita?
ca viens d'un livre...
et en plus si il est d'epita il est vachement a la bourre...
EPITECH Powa!!
Inconnu42 => héhé tu te demerde! ttes facons t'auras 0! Mais comme on dit, l'important est de participer!
[edtdd]--Message édité par suri--[/edtdd]
Marsh Posté le 26-10-2001 à 14:57:41
oui enfin le pseudo avec le 42 a la fin .. c un peu gros
et puis le livre c'est al bible de l'épita !!
(mais l'épita n'est surement pas l'église de cette bible )
Marsh Posté le 26-10-2001 à 18:06:04
les nombres de longueur infinie, .... ça me laisse reveur. Bon on a compris, mais utilise le terme "grand nombre" c'est mieux ou alors faut revoir la physique et en passant un peu de thermo ou carrement construire l'ordinateur a capacité infini
Marsh Posté le 26-10-2001 à 18:54:31
barbarella a écrit a écrit : les nombres de longueur infinie, .... ça me laisse reveur. Bon on a compris, mais utilise le terme "grand nombre" c'est mieux ou alors faut revoir la physique et en passant un peu de thermo ou carrement construire l'ordinateur a capacité infini |
ben oui évidemment!
et pour l'ordinateur... il existe!
d'ailleurs c cet ordinateur qui a calculé la question de l'ultime reponse...42
Marsh Posté le 27-10-2001 à 00:39:42
Je suis en TEK 1 et g ma bistro a rendre pour dans 3 semaines/1 mois
Alors vous avez toujours le temps de me donner 2 ,3 conseils .
Comme par exemple comment faire pour additioner 2 grands entier,les diviser etc ...
Marsh Posté le 27-10-2001 à 00:41:54
Ben tu fais comme tu le ferais avec tes petits neurones, un papier et un crayon.
Marsh Posté le 27-10-2001 à 00:50:16
je demande juste un peu d aide je sais meme pas par ou commencer.
Marsh Posté le 27-10-2001 à 00:56:22
T'as vraiment aucune idée
Qu'est ce que tu fous dans une école d'info alors ?
Marsh Posté le 27-10-2001 à 00:58:33
c pas que g pas d idee c que moi les maths c pa trop mon truc surtout que je decouvre d autres bases que la base 10, donc c forcement pas facile de trouver des solutions
Marsh Posté le 27-10-2001 à 01:05:57
Ben une solution (pas forcément très performante en vitesse et en utilisation de la RAM) est de coder tes nombres comme des chaînes de caractères.
Puis pour l'addition, tu parcours les 2 chaines, t'additionnes chiffre par chiffre en propageant la retenue et en mettant le résultat dans une nouvelle chaîne.
Et pour la multiplication, tu fais comme en école primaire, avec des additions en décalant les chaînes:
Code :
|
Evidemment on peut faire bcp mieux.
[edtdd]--Message édité par Verdoux--[/edtdd]
Marsh Posté le 27-10-2001 à 01:07:47
merci de ton aide c deja un debut mais est ce que la note depend enormement de la vitesse
Marsh Posté le 27-10-2001 à 01:10:39
INCONNU42 a écrit a écrit : merci de ton aide c deja un debut mais est ce que la note depend enormement de la vitesse |
Oui mais pour optimiser une solution, il faut au moins en avoir une
Marsh Posté le 27-10-2001 à 02:37:03
INCONNU42 a écrit a écrit : merci de ton aide c deja un debut mais est ce que la note depend enormement de la vitesse |
lol! t'as note c 0... on parie?
verdoux a bon... tes nombres sont des chaines de caracteres...
pour l'addition et la soustraction c simple, la multiplication aussi (serie d'addition en fait..) mais par contre la div!! ... et ya le parser aussi.... halala!
sinon tu decortique les operations comme tu faisais en cp...
genre:
42
+
9
--
je fais 9+2=11; 11 > nb_de_chiffre_de_la_base (ici 10) donc retenue. j'ecris 1 ds le resultat
puis je fais 4 + ma retenue = 5 < 10 donc pas de retenue , j'ecris 5, chaine de caractere au debut donc fini...
resultat 51... c dur hein? (oui je sais c pas evident apres 1 mois de piscine )
donc en resume:
j'ai str1 et str2
je fais pour les deux, un rev_str (42 deviens 24 etc...)
et je parcoure mes 2 chaines en meme tps en additionnant les nombres et en y ajoutant une retenue eventuelle...
pour les bases, c pareil...suffit de bien comprendre le get_position_in_base...
vali valo..c tout le reste tu te debrouille
Marsh Posté le 27-10-2001 à 03:26:18
Quand J'etais en Tek1 ya que 1 groupe qui a pas eu 0 ...
Sur ce ben bonne chance.
Et pis t'inkiet pas ya marvin pour te rattraper.
Marvin Rulez!!!!!!!
Marsh Posté le 27-10-2001 à 11:17:23
Y'a à peu près un an il y avait eu un sujet similaire sur ce forum, un gars du nom de BifaceMcLeod avait donné un commencement de solution, fais un recherche pour voir si le topic existe toujours
Marsh Posté le 27-10-2001 à 12:51:49
zop a écrit a écrit : Y'a à peu près un an il y avait eu un sujet similaire sur ce forum, un gars du nom de BifaceMcLeod avait donné un commencement de solution, fais un recherche pour voir si le topic existe toujours |
ben toute les annees on va l'avoir ce topic!!
Marsh Posté le 27-10-2001 à 12:54:12
kwiky a écrit a écrit : Quand J'etais en Tek1 ya que 1 groupe qui a pas eu 0 ... |
t en tek2?
Marsh Posté le 27-10-2001 à 18:41:31
INCONNU42 a écrit a écrit : Vous aviez du mal vous aussi en piscine? |
ben perso...oui
j'avais jamais fait une ligne de code...
et je dois dire que je me suis accroché et je m'en sort plutot bien maintenant...
Marsh Posté le 27-10-2001 à 18:42:01
INCONNU42 a écrit a écrit : Vous aviez du mal vous aussi en piscine? |
Euh ben la piscine, qd t'a jamais code avant c cho.. mais vers la fin ca semblait commencer a venir... mais bon ca c casse la geule pour la bistro et le corewar.
C pas pour ca que chuis pas passe a l'annee suivante...(question de solvabilite dirons nous, y sont gentils a l'adm )
Marsh Posté le 27-10-2001 à 18:43:34
Kwiky a écrit a écrit : Euh ben la piscine, qd t'a jamais code avant c cho.. mais vers la fin ca semblait commencer a venir... mais bon ca c casse la geule pour la bistro et le corewar. C pas pour ca que chuis pas passe a l'annee suivante...(question de solvabilite dirons nous, y sont gentils a l'adm ) |
roo bistro et corewar ca compte pas!...c marvin et le dernier
resto qui comptent
puis bien sur...RT et shell mais ca c une autre histoire!!
[edtdd]--Message édité par suri--[/edtdd]
Marsh Posté le 27-10-2001 à 22:52:28
HéHé.... C'est pas dur la piscine. Il suffit de pas couler au début.:sol:
En parlant RT.... Je recherche des personnes sérieuse d'Epitech pour faire un raytracer. Mais pas un truc de PD (comme celui de 1ere année ), je parle de quelque chose de très complet du genre Pov'ray.
Avis aux amateurs...
Marsh Posté le 28-10-2001 à 02:14:16
suri a écrit a écrit : roo bistro et corewar ca compte pas!...c marvin et le dernier resto qui comptent |
Paske t'a fais le dernier resto??
ou t'a juste eu les points pour avoir compris le sujet??
Marsh Posté le 28-10-2001 à 11:01:34
kwiky a écrit a écrit : Paske t'a fais le dernier resto?? ou t'a juste eu les points pour avoir compris le sujet?? |
ben 1 au corewar alors...
0 a la bistro alors..
10 au marvin
16 au resto... (un des seul groupe a l'avoir fait aussi )
Marsh Posté le 28-10-2001 à 11:01:59
MrTonio a écrit a écrit : HéHé.... C'est pas dur la piscine. Il suffit de pas couler au début.:sol: En parlant RT.... Je recherche des personnes sérieuse d'Epitech pour faire un raytracer. Mais pas un truc de PD (comme celui de 1ere année ), je parle de quelque chose de très complet du genre Pov'ray. Avis aux amateurs... |
je trouve pas que les RT de tek1 etait de la merde...enfin pas tous...
Marsh Posté le 28-10-2001 à 18:43:33
suri a écrit a écrit : je trouve pas que les RT de tek1 etait de la merde...enfin pas tous... |
C'est sûr pour des 1ere année, il n'y a rien à dire. C'est vraiment du bon boulot. Mai faut tout de même avouer que ce n'etait pas du tout complet.
Marsh Posté le 28-10-2001 à 20:04:25
MrTonio a écrit a écrit : C'est sûr pour des 1ere année, il n'y a rien à dire. C'est vraiment du bon boulot. Mai faut tout de même avouer que ce n'etait pas du tout complet. |
ben ouais enfin yavait pas que ca a faire non plus quoi... il fallait bien attaquer le shell...
Marsh Posté le 28-10-2001 à 22:26:35
ReplyMarsh Posté le 28-10-2001 à 23:11:01
Tu devrais commencer par te concentrer sur l'addition, et à te poser les bonnes questions :
1 - Additionner des nombres, comment ça marche : bah on additionne ensemble les chiffres de même ordre et si besoin on mémorise une retenue pour l'ordre suivant. Pour faire 147 + 12, tu commences par additionner 7+2=9, puis tu fais 4+1=5, 1+0=1 d'où 147+12=159.
2 - Les nombres sont des chaînes de caractères : donc chaque caractère est un "chiffre" du nombre. Pour lire un caractère donné d'une chaîne de caractère, on écrit quelque chose comme "chaine[i]".
3 - Le problème d'une chaîne de caractère, c'est qu'on la lit de gauche à droite, alors que lorsqu'on fait une addition, on raisonne de droite à gauche. Solution : stocker les chiffres à l'envers dans la chaine de caractère.
4 - Le problème est transposé de la façon suivante : 147+12 devient "741" + "21". On additionne les "chiffres" de rang 0 (les unités) : 7+2=9. On additionne les "chiffres" de rang 1 (dizaines) : 4+1=5. Puis les "chiffres" de rang 2 (centaines) : 0+1=1. La chaîne de caractère qui contient le résultat est "951", mais comme on sait que les chiffres sont stockés à l'envers, cela donne le résultat 159.
5 - Attention à la confusion entre le "chiffre" et son code ascii. Quand tu écris "1" dans une chaîne de caractère, tu stockes en réalité la valeur 49. Pour additionner deux "chiffres" de rang i, il faut donc faire une petite translation :
resultat[i] = (nombre1[i]-'0' + (nombre2[i]-'0' ;
Voilà déjà de quoi méditer un peu !
Marsh Posté le 29-10-2001 à 00:00:15
Fork a écrit a écrit : |
ya pas a dire tu explique mieux que moi
enfin bon...si c comme l'an dernier, yaura une soiree d'aide pour faire l'addition
[edtdd]--Message édité par suri--[/edtdd]
Marsh Posté le 29-10-2001 à 00:11:39
n'oublie pas la retenue .
retenu <- 0;
i <- 0;
tant que i < rang_max faire
{
tmp <- (nombreA[i]-'0' + nombreB[i]-'0' + retenu);
si tmp >= 10;
retenu = tmp/10;
resulta[i] <- (tmp - retenu * 10);
}
Marsh Posté le 29-10-2001 à 01:24:45
Pour la multiplication cherche un peu...
piste: Réalise une fonction qui multiplie une Grand nombre par un chiffre... puis fait des adition.
NB: Réfléchis à la méthode utiliser pour représenter un grand nombre... tableaux de char -> 8 bits par chiffre or tu n'as besoin que de 5 bits pour représenter les chiffre de 1 à 9 donc tu a 8-5=3 bits de perdu par chiffre tu pense que ce n'est rien? 3bits sur 8 ça fait qd même 37.5% de perdut... pour calculer les milliards de milliards...de milliard de chiffre de pi ça peut être utile...
Marsh Posté le 29-10-2001 à 12:18:22
sombresonge a écrit a écrit : Pour la multiplication cherche un peu... NB: Réfléchis à la méthode utiliser pour représenter un grand nombre... tableaux de char -> 8 bits par chiffre or tu n'as besoin que de 5 bits pour représenter les chiffre de 1 à 9 donc tu a 8-5=3 bits de perdu par chiffre tu pense que ce n'est rien? 3bits sur 8 ça fait qd même 37.5% de perdut... pour calculer les milliards de milliards...de milliard de chiffre de pi ça peut être utile... |
La bistromatique est un prog de calcul sur des entiers virtuellement infinis, dans des bases quelconques pouvant aller jusqu'a 255 caracteres... donc toute la table ascii étendue.
ce qui implique qu'il faut obligatoirement 8bits(char) pour stocker les nombres.
Voila tout ce que je peux dire.
Marsh Posté le 29-10-2001 à 15:59:34
Faut lui donner la solution non plus !!!!
Le but est de ce creuser la tete et d'avoir 0
suri => Je suis en Tek2
Marsh Posté le 29-10-2001 à 18:06:58
convertir les nombres en binaire ;
ne retenir que les rangs des 1 ;
par exemple 59 = 2^5 + 2^4 + 2^3 + 2 + 1
d'où 59 = (5;4;3;1;0)
définir en suite les règles de calcul
par exemple (n) + (n) = (n+1)
etc..
Marsh Posté le 25-10-2001 à 17:33:07
Salut g pour dans pas longtemps une bistro a rendre . C a dire une calculatrice qui opere sur les chaines de caracteres puisque elle doit gerer les nombres infinies. Le language utilise est le C . Merci de m aider