Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 10-11-2014 10:10:01

MF
Invité

[Algobox]Deux exercices et j'ai du mal...

Bonjour à tous,

J'ai deux exercices à réaliser avec Algobox, et j'ai du mal à comprendre. C'est la première fois que je touche à ce logiciel.
Si vous avez des pistes... Merci.


Soit A, B et C trois chiffres compris entre 1 et 9.
On note le nombre ABC, qui aura donc une valeur comprise entre 111 et 999, où A représente les centaines, B les dizaines et C les unités.
Trouvez A, B et C, tel que :
ABC = A3 + B3 + C3
par une méthode itérative, à savoir un test de toutes les valeurs
possibles pour A, B et C.
Ici A3 signifie A au cube, soit A x A x A, et le nombre ABC = A*100 + B*10 + C*1
Le programme affichera les bonnes solutions trouvées au fur et à mesure des itérations.
Ex., si A=2, B=5, C=3, ABC est le nombre 253, maintenant, celui-ci est il solution du problème 253=23+53+33 ? Mystère...:-)

Exo 2

Le chiffrement de César consiste à remplacer chaque lettre de
l'alphabet par la nième lettre qui la suit dans l'ordre alphabétique. Par ex. pour une clé de chiffrement n=3, A est remplacé par D, B par E, etc... ainsi le sigle PHP deviendra SKS.

Dernière modification par yoshi (11-11-2014 11:28:21)

#2 10-11-2014 11:02:31

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 947

Re : [Algobox]Deux exercices et j'ai du mal...

Bonjour,

Déclarer 4 variables A, B, C, N comme NOMBRE (4 lignes)
Cliquer sur DEBUT ALGORITHME
Puis sur Nouvelle Ligne
Tu vas créer 3 boucles POUR
POUR A de 1 à 9
POUR B de 1 à 9
POUR C de 1 à 9
et tu vas calculer
N=100A+10B+C
Pour cela, choisir : AFFECTER VALEUR A UNE VARIABLE
Et tu choisis N  et tu lui affectes la valeur A*100+B*10+C

Cela fait tu dois tester.
Donc clic sur Nouvelle Ligne
Choisir Ajouter SI ALORS
Et là ta condition est N==pow(A,3)+pow(B,3)+pow(C,3)
Double signe = (parce que c'est un test d'égalité)
Moi, je choisirais alors : Ajouter AFFICHER MESSAGE, le message étant : Solution :  (un espace avant et après les deux ponts)
Puis Ajouter AFFICHER VARIABLE , tu choisis N et et coches la case pour retourner à la ligne.

Cela fait, tu choisis Tester Algorithme puis Lancer Algorithme.
Tu auras deux réponses.

Je regarde Cesar...
Ton énoncé est-il complet ? J'en doute un peu...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 10-11-2014 12:36:41

MF
Invité

Re : [Algobox]Deux exercices et j'ai du mal...

Bonjour Yoshi,

Merci de ton aide.
J'ai scrupuleusement respecté tes indications, mais l'algo se lance et se termine sans rien afficher.

#4 10-11-2014 13:07:34

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 947

Re : [Algobox]Deux exercices et j'ai du mal...

Bonjour,

Dommage !

VARIABLES
 A EST_DU_TYPE NOMBRE
 B EST_DU_TYPE NOMBRE
 C EST_DU_TYPE NOMBRE
 N EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
 POUR A ALLANT_DE 1 A 9
   DEBUT_POUR
   POUR B ALLANT_DE 1 A 9
     DEBUT_POUR
     POUR C ALLANT_DE 1 A 9
     DEBUT_POUR
      N PREND_LA_VALEUR A*100+B*10+C
      SI (pow(A,3)+pow(B,3)+pow(C,3)==N) ALORS
        DEBUT_SI
        AFFICHER "Solution : "
        AFFICHER N
        FIN_SI
      FIN_POUR
    FIN_POUR
  FIN_POUR
FIN_ALGORITHME

Ce code fonctionne.

Concernant Cesar, ton énoncé est incomplet : il y manque au moins ce qu'on te demande de faire...
Avec AlgoBox, ça va pas être de la tarte...
Sais-tu ce qu'est le code ACSCII d'une lettre ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 10-11-2014 13:24:18

MF
Invité

Re : [Algobox]Deux exercices et j'ai du mal...

Merci Yoshi,

Concernant l'énoncé de l'exercice, le voici :

Le chiffrement de César consiste à remplacer chaque lettre de
l'alphabet par la nième lettre qui la suit dans l'ordre alphabétique. Par ex. pour une clé de chiffrement n=3, A est remplacé par D, B par E, etc... ainsi le sigle PHP deviendra SKS.
Le recours aux tableaux peut être utile.
Voir le chiffre de César en ligne, et différentes techniques de chiffrage.
D'ailleurs, savez vous quel fût le premier chiffrement (Stéganographie)?

Les lettres de la phrase à chiffrer seront saisies l'une après l'autre, et sauvegarder dans un tableau.

#6 10-11-2014 13:54:35

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 947

Re : [Algobox]Deux exercices et j'ai du mal...

RE,

Les lettres de la phrase à chiffrer seront saisies l'une après l'autre, et sauvegardées dans un tableau.

Oui...
Sauf que AlgoBox est un langage simpliste et que les tableaux y sont des listes... et, sauf erreur (Aide pas claire), les listes ne peuvent contenir que des nombres !
Je cherche encore à vérifier ce que j'avance... parce que si j'essaie de stocker une lettre dans un tableau, j'ai un plantage à l'exécution...

Voilà ce que dit le manuel :

Les listes AlgoBox sont des listes numérotées de nombres.

Donc, celui qui a posé l'exercice doit programmer dans un autre langage et avoir supposé - sans vérifier - que c'était le cas avec AlgoBox...
On va contourner le problème.
Mais ce n'est pas trouvable par un novice en programmation.


@+

Dernière modification par yoshi (10-11-2014 14:11:29)


Arx Tarpeia Capitoli proxima...

Hors ligne

#7 10-11-2014 14:20:03

MF
Membre
Inscription : 10-11-2014
Messages : 1

Re : [Algobox]Deux exercices et j'ai du mal...

RE,

Merci Yoshi, c'est intéressant ce que tu me dis. Tu pourrais m'expliquer un peu plus en détails afin que je fasse suivre ça au prof ? 

Merci pour tes réponses rapide.

Hors ligne

#8 10-11-2014 15:04:47

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 947

Re : [Algobox]Deux exercices et j'ai du mal...

Re,

Bin, y a rien de plus à expliquer...
La consigne ligne 7 dit :

Les lettres de la phrase à chiffrer seront saisies l'une après l'autre, et sauvegardées dans un tableau.

Mais le manuel AlgoBox (ici : http://www.xm1math.net/algobox/doc.html) dit, au point  3. Autres règles d'utilisation d'AlgoBox puis Opérations avec les listes,

Les listes AlgoBox sont des listes numérotées de nombres.

Donc je ne peux pas mettre une lettre dans une liste, seulement un nombre...
Preuve :
Déclarer Variable Tableau comme liste
Puis Début Algorithme
Et Affecter valeur à variable
Choisir Tableau prend valeur "A"
pour le rang 0.

C'est tout.
Et tu lances...
Messages d'erreur :
***L'algorithme contient une erreur : impossible de le lancer***
***Vérifiez la syntaxe des affectations et des conditions***

Si je sélectionne la ligne Tableau[0] prend la valeur "A", que je clique sur Modifier Ligne et que je remplace "A" par 65 (par ex), plus d'erreur !

Essaie !

Je propose de contourner la difficulté comme ça:
Je crée deux chaines une Texte_Clair qui contiendra le texte à coder et  texte_code qui contiendra le message codé...
J'initialiserai la chaine Texte-code à vide -->  ""
Tu dois savoir que chaque caractère dispose d'un code unique qui permet à une touche du clavier de ne pas envoyer un caractère alphanumérique, mais ce code à l'Unité Centrale de ton ordi, lequel retransformera ce code en un caractère... Voilà grosso-modo expliquée cette histoire de code..
Le code du A est 65, celui du Z est 90.
Supposons un décalage de 10 je passe du A(65) au 75 qui est le code de K...
Mais supposons que je parte de la lettre P (80) et que j'aie un décalage de 20 : 80+20, je dépasse 90...
Je dois donc retirer 26 (26 lettres) à 100 et je me retrouve à 74, code de J
Donc P--> J.
Dans ma phrase à coder, écrite en majuscules, je vais
- lire caractère après caractère
- trouver, avec la bonne instruction, son code
- ajouter le décalage à ce code
- tester si le résultat est > 90 et si oui enlever 26
- à partir du code modifié, avec la bonne instruction, retransformer le code en une lettre que je concaténerai à la suite des autres dans Texte_code.

A la fin je demanderai d'afficher le texte codé...

Pigé ?

@+

[EDIT] Code mis en place et testé : ça marche.

Dernière modification par yoshi (10-11-2014 15:47:43)


Arx Tarpeia Capitoli proxima...

Hors ligne

#9 16-11-2014 15:46:15

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 947

Re : [Algobox]Deux exercices et j'ai du mal...

Re,

Voilà le code un peu plus élaboré.
J'ai choisi un décalage de 10 : A --> K

VARIABLES
  Texte_Clair EST_DU_TYPE CHAINE
  Texte_Code EST_DU_TYPE CHAINE
  carac EST_DU_TYPE CHAINE
  code EST_DU_TYPE NOMBRE
  decale EST_DU_TYPE NOMBRE
  long EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  Texte_Clair PREND_LA_VALEUR "JE SUIS FOU DU CHOCOLAT LANVIN DISAIT DALI DANS UNE PUB"
  long PREND_LA_VALEUR Texte_Clair.length-1
  decale PREND_LA_VALEUR 10
  AFFICHER "  -+  Codage selon Cesar  +-"
  AFFICHER "Phrase à coder : "
  AFFICHER " "
  AFFICHER "Phrase Codée : "
    POUR i ALLANT_DE 0 A long
    DEBUT_POUR
    carac PREND_LA_VALEUR Texte_Clair.substr(i,1)
    SI (carac==" ") ALORS
      DEBUT_SI
      Texte_Code PREND_LA_VALEUR Texte_Code+carac
      SINON
        DEBUT_SINON
          code PREND_LA_VALEUR carac.charCodeAt(0)+decale
          SI (code>90) ALORS
            DEBUT_SI
            code PREND_LA_VALEUR code-26
            FIN_SI
          Texte_Code PREND_LA_VALEUR Texte_Code+String.fromCharCode(code)
          FIN_SINON
    FIN_POUR
  AFFICHER Texte_Code
FIN_ALGORITHME
***Algorithme lancé***
  -+  Codage selon Cesar  +-
 
Phrase à coder : JE SUIS FOU DU CHOCOLAT LANVIN DISAIT DALI DANS UNE PUB
 
Phrase Codée : TO CESC PYE NE MRYMYVKD VKXFSX NSCKSD NKVS NKXC EXO ZEL
***Algorithme terminé***

Encore un qui ne voit pas la nécessité de venir donner des nouvelles (ici réaction du Prof) ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
cinquante cinq moins neuf
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums