aidez moi pour resoudre cet algorithme

aidez moi pour resoudre cet algorithme - Algo - Programmation

Marsh Posté le 13-06-2008 à 14:09:49    

slt a tous
voila g un probléme pour resoudre cet algorithme,
merci de m'aider:
on remarque que:
12*42=21*24
12*63=21*36
21*48=12*84
 
1-Ecrire un algorithme qui demande à l'utilisateur de saisir deux entiers à deux chiffres chacun et de tester si les deux vérifient cette propriété ou non.
 
2-Si on désir modifier l'algorithme précédent de telle sorte qu'il donne directement tous les entiers vérifiant cette propriété sans l'intervention de l'utilisateur. Ecrire cet algorithme
 

Reply

Marsh Posté le 13-06-2008 à 14:09:49   

Reply

Marsh Posté le 13-06-2008 à 14:12:52    

On ne fait pas les exercices de cours. et ce n'est pas compliqué. Du tout.


Message édité par skeye le 13-06-2008 à 14:12:56

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-06-2008 à 14:15:37    

doumyas a écrit :

slt a tous
voila g un probléme pour resoudre cet algorithme,
merci de m'aider:
on remarque que:
12*42=21*24
12*63=21*36
21*48=12*84
 
1-Ecrire un algorithme qui demande à l'utilisateur de saisir deux entiers à deux chiffres chacun et de tester si les deux vérifient cette propriété ou non.
 
2-Si on désir modifier l'algorithme précédent de telle sorte qu'il donne directement tous les entiers vérifiant cette propriété sans l'intervention de l'utilisateur. Ecrire cet algorithme
 


tu as une contrainte de langage pour faire cet algo ?

Reply

Marsh Posté le 13-06-2008 à 15:16:47    

nn  c juste en algorithmique

Reply

Marsh Posté le 13-06-2008 à 15:25:49    

doumyas a écrit :

nn  c juste en algorithmique


allez, chuis de bon poil, on va le faire ensemble.
Il faut raconter par étape ce qu'il faut faire pour tester l'égalité.
 
Je commence
1. demander un entier à l'utilisateur
2. vérifier qu'il est >9 et <100
3. si non revenir à 1.
4. si oui, l'enregistrer dans "A"
5. demander un deuxième entier à l'utilisateur
6. vérifier qu'il est >9 et <100
7. si non revenir à 1.
8. si oui, l'enregistrer dans "B"
 
à toi


Message édité par stitch+ le 13-06-2008 à 15:42:56

---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 16:04:04    

ok stitech, mais je suis tous différent de toi
voila ce que je fais:
je dois recup: A,B,C et D de type entier d'un seul chiffre
:AB1, AB2, CD1, CD2 de type entier de deux chiffres
A==A*10 " car dizaine"
C==C*10
AB1=A+B
CD1=C+D
TOTAL1=AB1*CD1
 
A==A/10
B==B*10
C==C/10
D==D*10
AB2=A+B
CD2=C+D
TOTAL2=AB2*CD2
 
si TOTAL1=TOTAL2
alors la propriété est verifié
 
c'est une bonne idé n'est ce pas???

Reply

Marsh Posté le 13-06-2008 à 16:14:16    

non ce n'est pas une bonne idée

 

ce n'est pas à ton utilisateur de décomposer les nombres au moment de la saisie mais à ton programme de le faire.

 

tu récupères le premier nombre P et le second nombre S
(tu vérifies qu'ils n'ont que 2 chiffres)

 

puis tu calcules :
la dizaine de P que tu nommes A
l'unité de P que tu nommes B
la dizaine de S que tu nommes C
et l'unité de S que tu nommes D

 

et après tu fais ce que tu viens d'écrire (et encore ce n'est pas DU TOUT écrit proprement ni correct mais au moins tu es sur la piste)

 


Message édité par stitch+ le 13-06-2008 à 16:42:57

---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 16:18:11    

ah oui tu as droit,  
merci stitch+ pour votre aide

Reply

Marsh Posté le 13-06-2008 à 16:20:51    

pour être sûre que tu as bien compris, dis moi comment tu calcules la dizaine et l'unité stp


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 16:34:30    

je déclare  8 variables de deux chiffres A1,B1,C1,D1,AB1,AB2,CD1,CD2
               2 variable d'un seul chiffre A2,C2,A,B,C,D
et ca sera:
A1==A*10 " car dizaine"
C1==C*10
AB1=A1+B
CD1=C1+D
TOTAL1=AB1*CD1
 
A==A/10
B1==B*10
C==C/10
D1==D*10
AB2=A+B1
CD2=C+D1
TOTAL2=AB2*CD2
 
si TOTAL1=TOTAL2
alors la propriété est verifié

Reply

Marsh Posté le 13-06-2008 à 16:34:30   

Reply

Marsh Posté le 13-06-2008 à 16:38:54    

non.

 

tu n'as pas besoin d'autant de variables.
tu ne sais pas calculer la dizaine d'un nombre à 2 chiffres.

 

Tu n'as besoin que de 2 variables au mieux, 6 pour être à l'aise :
P et S les nombres donnés par l'utilisateur
A, B, C, D les chiffres que tu calcules à partir de P et S

 

et tu ne peux pas contraindre une variable sur son nombre de chiffres.
Sur son type oui (ici on ne veut que des entiers).

 

Si je te demande de calculer la dizaine de 84, quelle opération fais tu ? quel calcul fais tu ?
même chose pour l'unité de 84.


Message édité par stitch+ le 13-06-2008 à 16:39:30

---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 16:39:06    

DSL il ya une faute :
A1==A*10 " car dizaine"
C1==C*10
AB1=A1+B
CD1=C1+D
TOTAL1=AB1*CD1
 
B1==B*10
D1==D*10
AB2=A+B1
CD2=C+D1
TOTAL2=AB2*CD2
 
si TOTAL1=TOTAL2
alors la propriété est verifié

Reply

Marsh Posté le 13-06-2008 à 16:42:11    

tu peux lire le message que j'ai écrit et répondre aux questions stp


Message édité par stitch+ le 13-06-2008 à 16:42:23

---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 16:45:18    

j'espére que j'ai trouvé la solution:
A=84DIV10  ====>8
B=84MOD10 ====>4

Reply

Marsh Posté le 13-06-2008 à 16:49:19    

doumyas a écrit :

j'espére que j'ai trouvé la solution:
A=84DIV10  ====>8
B=84MOD10 ====>4


tu tiens le truc
maintenant décris comment à partir de 84 tu calcules le nombre 48
généralises en écrivant Y au lieu de 84

 

et après tu n'as plus qu'à raconter les étapes les unes après les autres
- la saisie
- la décomposition des unités / dizaines
- les calculs des deux multiplications
- la comparaison


Message édité par stitch+ le 13-06-2008 à 16:49:50

---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 16:57:27    

voila je vous écrit tous le programme:
a,b,c,d: entier inférieur ou = 9
P,S: entier inférieur ou =99
 
saisie de :P,S
 
a= P DIV 10
b= P MOD 10  
c= S DIV 10
d= SMOD 10
 
P=((a*10)+b)*((c*10)+d)
S=((b*10)+a)*((d*10)+c)
 
si P=S alors la propriété est verifie
 
????????????

Reply

Marsh Posté le 13-06-2008 à 17:07:35    

doumyas a écrit :

voila je vous écrit tous le programme:
a,b,c,d: entier inférieur ou = 9  
P,S: entier inférieur ou =99
relis avec le doigt : tu ne peux pas restreindre le fait que ce soit des entiers sur un ou deux chiffres, tu dois le tester au moment de la saisie
 
saisie de : P,S
non :
saisie de P
vérification du fait que P soit un entier sur 2 chiffres
si non on recommence la saisie de P
 
saisie de S
vérification du fait que P soit un entier sur 2 chiffres
si non on recommence la saisie de S

 
a= P DIV 10
b= P MOD 10  
c= S DIV 10
d= S MOD 10
 
P=((a*10)+b)*((c*10)+d)
S=((b*10)+a)*((d*10)+c)
 
si P=S alors la propriété est verifie
plus simple encore tu retournes comme réponse (P==S)
si l'égalité est vraie ça dit vrai, si l'égalité est fausse, ça dit faux

????????????


 
bon ben voilà, maintenant passons à la question suivante.
 
il faut que tu considères ce que tu viens de faire comme une fonction que tu pourras utiliser.


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 17:35:01    

j'ai coincé, vous pouvez m'aider encore??

Reply

Marsh Posté le 13-06-2008 à 17:46:00    

j'ai reflechie de faire 4 boucle:
 
pour i de 0 à 9 faire
  pour j de 0 à 9 faire
     a=a+i;
     b=b+j;        
        pour k de 0 à 9 faire
            pour e de 0 à 9 faire
               c=c+k;
               d=d+e;
                  P=((a*10)+b)*((c*10)+d)
                  S=((b*10)+a)*((d*10)+c)  
             fin pour
           fin pour
         fin pour
       fin pour

Reply

Marsh Posté le 13-06-2008 à 17:48:33    

on vient d'écrire l'algo suivant :
 
déclaration des variables
soit les variables entières a,b,c,d, P et S.
 
saisie des valeurs
saisie de P
vérification du fait que P soit un entier sur 2 chiffres : P>9 et P<100
si non on recommence la saisie de P
saisie de S
vérification du fait que P soit un entier sur 2 chiffres S>9 et S<100
si non on recommence la saisie de S
 
vérification de la propriété
a= P DIV 10
b= P MOD 10  
c= S DIV 10
d= S MOD 10
 
P=((a*10)+b)*((c*10)+d)
S=((b*10)+a)*((d*10)+c)
 
on renvoie (P==S)
si l'égalité est vraie ça dit vrai, si l'égalité est fausse, ça dit faux  

 
 
on peut considérer que la partie en rouge est une fonction "jeTeste(P,S)" : tu lui donnes P et S, elle te renvoie si P et S vérifie la propriété demandée.
 
par exemple,  jeTeste(12,42) renvoie vrai et jeTeste(12,13) renvoie faux.
 
Maintenant, essaye de réfléchir à comment essayer toutes les valeurs de P et de S
 
 
 


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 17:49:59    

doumyas a écrit :

j'ai reflechie de faire 4 boucle:


NON :fou:
 
tu dois penser à des nombres à 2 chiffres comme paramètres en entrée


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 17:59:48    

voila ce que j'ai fais:
 
P=0, S=0
 pour i de 10 à 99 faire
   pour i de 10 à 99 faire
     P=P+i
     S=S+j
     jeteste (P,S)
   fin pour
  fin pour

Reply

Marsh Posté le 13-06-2008 à 18:03:42    

doumyas a écrit :

voila ce que j'ai fais:
 
P=0, S=0
 pour i de 10 à 99 faire
   pour i de 10 à 99 faire
     P=P+i
     S=S+j
     jeteste (P,S)
   fin pour
  fin pour


"presque"
plus simplement :
 
pour P de 10 à 99 faire
  pour S de 10 à 99 faire
     Si (jeTeste(P,S)) alors afficher ( P,S)
  fin pour
fin pour
 
surtout il faut penser à ajouter quelque chose pour afficher ou enregistrer les valeurs qui "marchent" sinon ton algo ne sert à rien


Message édité par stitch+ le 13-06-2008 à 18:04:02

---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 18:07:45    

C'est  beau l'instinct maternel. Quelle patience, quel sens de l'abnégation.

Reply

Marsh Posté le 13-06-2008 à 18:10:36    

Elmoricq a écrit :

C'est  beau l'instinct maternel. Quelle patience, quel sens de l'abnégation.


ouais enfin, tant que l'abnégation ne me mène pas dans la cat php, ma patience tiendra le choc.


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 18:21:04    

wé voila on est fini, je vous remerci encore une fois stitech+
trop sympa la méthode

Reply

Marsh Posté le 16-07-2008 à 14:00:58    

Je viens de lire aussi, quelle patience en effet !

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed