Enigmes

Forum dédié aux énigmes et à toutes formes de jeux de logique.

Déconnexion

Tu n'es pas identifié sur Prise2tete : s'identifier.

accueil Accueil forum Forum
[+]

Écrire une réponse

Attention : Aucun indice ou demande d'aide concernant les énigmes de Prise2Tete n'est accepté sur le forum ! Rends-toi sur le cercle des sages si tu as besoin d'aide !
Tout nouveau message ou sujet ne respectant pas cette règle sera supprimé, merci.
Rédige ton message
| | | | Upload | Aide
:) :| :( :D :o ;) :/ :P :lol: :mad: :rolleyes: :cool:
Options
Sécurité

Répondez à la devinette suivante : 

Le père de toto a trois fils : Riri, Fifi et ?

Retour

Résumé de la discussion

Laidzep
18-12-2015 04:48:41

Bonjour à tous. smile

J'ai déjà posté sur ces forums précédemment, et bien que je ne participe pas activement à ce dernier, j'aime y venir et fouiner dans les tonnes d'énigmes intéressantes et inédites qui y foisonnent.

Aujourd'hui, je vous propose un concept neuf (je crois, je n'ai rien trouver d'équivalent ici) : programmer ensemble! Tout un programme... wink

Voici donc de quoi il retourne.



Vous avez entre les mains un ordinateur d'un type un peu nouveau : il est un peu du genre rétro... wink En gros, il s'inspire de façon simple du Pascal ou du C++... Mais, il n'aime pas les programmes trop complexe, ni trop lourd.

En outre, il dispose de quelques fonctionnalités de base (que nous appellerons " éléments " ) lui permettant d'effectuer des tâches qu'on lui assignera en exploitant avec justesse le potentiel que ces dernières recèlent.
Il s'agira donc d'agencer de manière chronologique les différents éléments en lignes successives afin d'obtenir un programme cohérent.

Pour comprendre son fonctionnement, imaginons un humain qui attrape des valeurs quelconques sur un tapis roulant, il les manipule à sa guise, puis quand il est satisfait, il les dépose dans un autre tapis roulant.

Je donnerai un exemple un peu plus bas, après la présentation des diverses éléments à votre disposition.

Les voici :

IN : permet d'introduire un objets dans le programme (chiffres, nombres, lettres, mots, ... )

OUT : permet d'extraire un objets du programme (chiffres, nombres, lettres, mots, ... )

SAUT : permet de sauter des lignes du programme pour reprendre le programme quelques lignes plus bas, ou quelques lignes plus haut.

SAUT SI 0 : permet de sauter des lignes du programme pour reprendre le programme quelques lignes plus bas, ou quelques lignes plus haut, si la condition " objets 0 " est remplie

COLLER EN [X] : permet de mettre en mémoire un objet quelconque (chiffres, nombres, lettres, mots, ... ) dans un emplacement quelconque (citée entre crochet)

COPIER [X] : permet de récupérer un objet (chiffres, nombres, lettres, mots, ... ) coller préalablement dans un emplacement quelconque

AJOUTER [X] : permet d'ajouter à une valeur numérique, une autre valeur numérique préalablement coller dans l'emplacement quelconque (cotée entre crochet)

SOUSTRAIRE [X] : permet de soustraire à une valeur numérique, une autre valeur numérique préalablement coller dans un emplacement quelconque (citée entre crochet)

+ 1 [X] : permet d'ajouter 1 à une valeur numérique préalablement coller dans un emplacement quelconque (citée entre crochet). Attention, cas particulier, cette valeur manipulée par le programme, augmente également de 1 la valeur contenu dans l'emplacement concerné * .

- 1 [X] : permet de soustraire 1 à une valeur numérique préalablement coller dans un emplacement quelconque (citée entre crochet). Attention, cas particulier, cette valeur manipulée par le programme, diminue également de 1 la valeur contenu dans l'emplacement concerné * .



* : par exemple l'emplacement [OUTIL] contient la valeur 3, et le programme manipule en ce moment la valeur T . En effectuant la manipulation + 1 [OUTIL], le programme augmente d'une unité la valeur 3. L'emplacement [OUTIL] contient à présent la valeur 4. De plus le programme manipule maintenant la valeur 4, et non plus la valeur.

Ce sont l'ensemble des éléments à votre disposition.

A noter : le programme ne manipule aucune valeur préalable (la valeur est vide). Il faut utiliser la commande IN pour ramasser une valeur et commencer à la manipuler. Et dès que l'on utilise la commande OUT, le programme ne manipule plus de valeur (la valeur redevient vide).

Bien sur le programme peut bogué. Si vous lui demander d'ajouter la valeur T à un emplacement qui contient un 5, le programme s'arrête immédiatement.
De même, dans le cas où vous demanderiez d'effectuer la commande ajouter alors qu'il ne manipule rien (la valeur vide ne veut pas dire 0).

Le programme se termine dès lors qu'un élément IN ne détecte plus aucune valeur à ramasser.




Et maintenant, pour illustrer le tout, voici un exemple simple.

Vous disposez de cette suite de nombre : 2 - 7 - 10 - 5 - 3
Vous voulez créer un programme qui va rendre dans le même ordre chacun des nombres, mais en l'ayant préalablement doublé.

Exemple possible :

#1

- IN (le programme ramasse le 2 et commence à le manipuler)

- COLLER [NOMBRE] (le programme stock le 2 dans un emplacement appelé [NOMBRE], le programme manipule toujours le 2)

- AJOUTER [NOMBRE] (le programme ajoute le 2 qu'il manipule, au 2 qui est stocké dans l'emplacement [NOMBRE], le programme manipule maintenant la valeur 4)

- OUT (le programme rend la valeur 4 à l'arrivée, et la valeur manipuler par celui-ci est de nouveau vide)

- SAUT #1 (le programme revient en arrière vers #1 et recommence le processus : on crée ainsi une boucle. Elle s'arrêtera lorsque le programme ne trouvera plus de valeur à ramasser lorsqu'il effectuera la commande associée à l'élément IN)

Avec 5 éléments, on a donc créer le programme attendu.



Et maintenant, passons donc au problème que je vous soumets.

Soit une suite contenant un nombre pair de nombre. Essayez de créer un programme qui effectue le produit de deux éléments successifs de cette suite.

Par exemple, si la suite de nombre est : 4 - 1 - 5 - 6 - 0 - 8 - 3 - 0, le programme doit rendre à l'arrivée : 4 - 30 - 0 - 0 .

Il conviendra d'optimiser le programme en utilisant un minimum d'éléments.

Amusez-vous bien. smile
Ce n'est pas très dur.

Pied de page des forums

P2T basé sur PunBB
Screenshots par Robothumb

© Copyright 2002–2005 Rickard Andersson

Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact
© Prise2tete - Site d'énigmes et de réflexion.
Un jeu où seules la réflexion, la logique et la déduction permettent de trouver la solution.

Flux RSS de Prise2Tete Forum Jeux & Prise2Tete Test & Prise2Tete Partenariat et Publicité sur Prise2Tete