Résolu Aide Algorithme

Statut
N'est pas ouverte pour d'autres réponses.

TheAuthentic

Besoin d'un site web ?
Premium
Inscription
28 Juin 2012
Messages
2 011
Réactions
532
Points
12 293
Salut à tous,
J'écris ce topic pour vous demander de l'aide sur mon exo d'algo, le voici :

-Ecrire un algorithme qui choisit au hasard un nombre entier entre 1 et 100 (mais ne l'affiche pas). L'utilisateur dispose d'autant d'essais que nécessaire pour trouver le nombre secret, le programme n'indiquant à chaque tentative que les indications "trop grand" ou "trop petit", après que l'utilisateur ait saisi au clavier sa proposition. A la fin d'une partie, l'ordinateur affiche "gagné !", ainsi que le nombre de tentatives pour trouver le nombre. Implémenter en java.

-Modifier l'algorithme précédent pour tenir compte d'une nouvelle règle du jeu : le nombre de tentatives est limité (par exemple à 10), et si on dépasse le nombre permis, l'ordinateur affiche "perdu !". Implémenter en java.


Voici ce que j'ai fait actuellement en pseudo code :

VARIABLES
N EST_DU_TYPE NOMBRE
X EST_DU_TYPE NOMBRE
c EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
N PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1, 100)
c PREND_LA_VALEUR 1
AFFICHER* "J'ai choisi un nombre entre 1 et 100, à vous de le deviner ?"
LIRE X
TANT_QUE (X!=N) FAIRE
DEBUT_TANT_QUE
SI (floor(X)==X) ALORS
DEBUT_SI
AFFICHER "N°"
AFFICHER c
AFFICHER ": "
AFFICHER X
AFFICHER "==> "
SI (X<N) ALORS
DEBUT_SI
AFFICHER* "Votre nombre est inférieur"
FIN_SI
SI (X>N) ALORS
DEBUT_SI
AFFICHER* "Votre nombre est supérieur"
FIN_SI
FIN_SI
SINON
DEBUT_SINON
AFFICHER* "Vous n'avez le droit de proposer que des nombres entiers !!"
c PREND_LA_VALEUR c-1
FIN_SINON
LIRE X
c PREND_LA_VALEUR c+1
FIN_TANT_QUE
AFFICHER* "Bravo, c'est ça"
AFFICHER " Vous avez trouvé en "
AFFICHER c
AFFICHER " essais"
FIN_ALGORITHME

Je dois le faire aussi en java mais je n'y arrive pas du tout :(

Merci d'avance pour votre aide.
 
Dernière édition:
D

deleted293454

Salut,

J'ai réussi à faire ce que tu as demandé, je ne connais pas le java donc il est possible que ce soit mal écrit, j'ai récupéré sur internet le petit bout de code pour la génération du nombre.

Voici le code :

Java:
import java.util.Random;
import java.util.Scanner;


public class main {

    public static void main(String[] args) {
        boolean bool = true;
        int fois = 0;
        int limit = 10;
        int max = 100;
        int min = 1;
        Random rand = new Random();
       int num = rand.nextInt((max - min) + 1) + min;
        System.out.println("Le nombre a été généré, trouvez-le !");
        while (bool == true){
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        int conve = Integer.parseInt(str);
        if (conve > num && limit >= 1)
        {
            fois += 1;
            limit -= 1;
            System.out.println("C'est moins...\nIl vous reste " + limit + " chance(s).");
        }
        else if (conve < num && limit >= 1)
        {
            limit -= 1;
            fois += 1;
            System.out.println("C'est plus...\nIl vous reste " + limit + " chance(s).");
        }
        else if (conve == num && limit >= 1)
        {
            System.out.println("Vous avez trouvé le nombre, bravo !");
            System.out.println("Le nombre est : " + str);
            System.out.println("Trouvé en " + fois + " tentative(s).");
            bool = false;
        }
        else if (limit < 1){
            System.out.println("Vous avez utilisé toutes vos chances...");
        }
        }
    }
    }

J'espère que c'est ce que tu voulais...
 

TheAuthentic

Besoin d'un site web ?
Premium
Inscription
28 Juin 2012
Messages
2 011
Réactions
532
Points
12 293
C'est pas le jeu du plus ou moins :mmh:

Oui c'est ça en gros :')

Salut,

J'ai réussi à faire ce que tu as demandé, je ne connais pas le java donc il est possible que ce soit mal écrit, j'ai récupéré sur internet le petit bout de code pour la génération du nombre.

Voici le code :

Java:
import java.util.Random;
import java.util.Scanner;


public class main {

    public static void main(String[] args) {
        boolean bool = true;
        int fois = 0;
        int limit = 10;
        int max = 100;
        int min = 1;
        Random rand = new Random();
       int num = rand.nextInt((max - min) + 1) + min;
        System.out.println("Le nombre a été généré, trouvez-le !");
        while (bool == true){
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        int conve = Integer.parseInt(str);
        if (conve > num && limit >= 1)
        {
            fois += 1;
            limit -= 1;
            System.out.println("C'est moins...\nIl vous reste " + limit + " chance(s).");
        }
        else if (conve < num && limit >= 1)
        {
            limit -= 1;
            fois += 1;
            System.out.println("C'est plus...\nIl vous reste " + limit + " chance(s).");
        }
        else if (conve == num && limit >= 1)
        {
            System.out.println("Vous avez trouvé le nombre, bravo !");
            System.out.println("Le nombre est : " + str);
            System.out.println("Trouvé en " + fois + " tentative(s).");
            bool = false;
        }
        else if (limit < 1){
            System.out.println("Vous avez utilisé toutes vos chances...");
        }
        }
    }
    }

J'espère que c'est ce que tu voulais...

ça m'a l'air correct tout ça merci beaucoup !!

Tu es en quel filière ? :mmh:

Je suis en BTS SIO ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut