IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algo - Correction


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Algo - Correction
    Bonsoir à tous.....

    Voilà j'ai un exercice d'algo à réaliser que je vais mettre ci dessous et j'aimerais que vous m'aidiez parce que déjà pour la première question je met :

    2.1
    Ecrire.... pour proposer ce qu'il y a à faire mais ensuite pour récupérer ce qu'à choisi l'utilisateur, je ne sais pas..

    2.2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string choix, string choix2
    Si choix2= quit,
    Ecrire( "Vous avez décidé de"+ choix)
    Fin si;
    2.3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int tab(), int X, int Y, int L, int l, int ov, int rect.
    Ecrire ( "Veuillez entrer les coordonnées de votre rectangle?")
    Lire X;
    Lire Y;
    Lire L;
    Lire I;
    ....
    Non en fait je n'y arrive pas si quelqu'un peut m'aider....

    ----------------------------------------------------------------

    Sujet :

    1 L’éditeur de dessin simplifié
    Vous devez écrire les algorithmes indiqués ci-dessous. Un éditeur de dessin simplifié qui possèdera les fonctionnalités suivantes :
    • créer un rectangle,
    • créer un ovale,
    • afficher la liste des figures,
    • modifier une figure
    • effacer toutes les figures
    • rechercher les figures contenant un point dont les coordonnées sont fournies par l'utilisateur
    • quitter le programme

    2 Les algorithmes à écrire
    2.1 Menu
    Ecrire un algorithme qui affiche, pour l'utilisateur, les fonctionnalités disponibles et qui lit la réponse de l’utilisateur (choix par l’utilisateur de la fonctionnalité).

    2.2 Choix de l’utilisateur
    Ecrire un algorithme qui affiche à l’écran le choix de l’utilisateur en indiquant simplement : « l’utilisateur souhaite créer un rectangle/ovale… ».
    Cet algorithme ne se termine que quand l’utilisateur à choisit de quitter le programme.

    2.3 Créer un rectangle
    Ecrire un algorithme qui permette de créer un rectangle. Pour l’instant, créer un rectangle signifie enregistrer dans un tableau les informations qui caractérisent le rectangle. Ces informations (indiquées par l’utilisateur) sont les suivantes : X (cordonnée horizontale du coin gauche du rectangle), Y (cordonnée verticale du coin gauche du rectangle), longueur (du rectangle), largeur (du rectangle).
    L’utilisateur peut créer au maximum 20 objets (rectangle ou ovale) donc votre tableau devra permettre d’enregistrer ces 20 objets et d’indiquer également (en plus des informations ci-dessus) : un identifiant (un numéro = numéro de la ligne du tableau) et le type d’objet (0 pour un rectangle, 1 pour un ovale).

    2.4 Afficher la liste des figures créées
    A tout moment, l'utilisateur peut vouloir visualiser la liste des figures déjà créées, c'est-à-dire l'identifiant, les coordonnées et les tailles de la figure.
    Ecrire un algorithme présentant les informations de toutes les figures créées. Les informations de chaque figure seront affichées sur une nouvelle ligne.

    2.5 Modifier une figure
    Modifier une figure consiste à modifier sa position (X et Y) ou sa taille (longueur ou largeur). Ecrire l’algorithme permettant de modifier une figure. L’utilisateur indique l’identifiant de la figure et indique également le type de modification qu’il souhaite faire (modifier X, ou modifier Y ou modifier longueur, ou modifier largeur). Cet algorithme termine quand l’utilisateur choisit d’arrêter les modifications.

    2.6 Rechercher une figure contenant le point (X,Y)
    Lorsque l'on aura une version graphique de cette application, l'utilisateur pourra visualiser les rectangles et les ovales. Pour sélectionner la figure à modifier, naturellement il tentera de cliquer sur la figure. Mais si plusieurs figures se superposent, il sera impossible de sélectionner celle du dessous.
    Cet algorithme a donc pour but de trouver toutes les figures existantes (déjà dessinées) et qui pourraient se trouver sous le curseur de la souris lorsque l'utilisateur cliquera. Il s'agit donc de trouver toutes les figures telles que le point de coordonnées (x,y) se trouvent à l'intérieur et d’afficher les identifiants de ces figures.
    Pour simplifier, on considère que les coordonnées (x,y) du point sont données par l’utilisateur.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    et quelle est la question ??

    On n'est pas sur www.onfaittesdevoirs.com

    Montre-nous ce que tu as fait, et on t'aidera

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Points : 486
    Points
    486
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    et quelle est la question ??

    On n'est pas sur www.onfaittesdevoirs.com

    Montre-nous ce que tu as fait, et on t'aidera
    J'suis vachement déçu : le site indiqué n'existe pas !

    Ptinovice : écris au moins les structures de données qui répondent à ton problème.
    Puis liste les fonctions élémentaires qui te sont nécessaires et essaye au moins d'en écrire quelques unes !
    Allez.... essaye.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    oué j'essaye et demain je reviens vous montrez ce que j'ai fait mais j'ai vraiment du mal.....
    Merci d'avoir pris le temps de me répondre

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour alors voilà ce que j'ai fait.....

    2.1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Int x ;
    Ecrire ( " Veuillez choisir l’action à réaliser 
    -	Pour créer un rectangle, x=1
    -	….un ovale, x=2
    -	…..// etc pour tous les autres choix")
    Lire x ;
    2.2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String quit ;
    Si quit alors
    Ecrire( "Vous avez choi d’(e) " + x) 
    Fin si ;
    2.3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Int tab(), float X, floatY, float L, float l, int case, string rect, string ov;
    Ecrire ( "Dans quelle case voulez vous créer l’objet ?")
    Lire case ;
    Si case<=20
    Ecrire("Voulez-vous créer un rectangle ou un ovale ?")
    Lire rect ou ov ;
    Si rect alors rect=0
    Sinon ov=1
    Fin si ;
    Sinon
    Ecrire("La case n’existe pas")
    Fin si ;
    Pour rect=0
    Alors Ecrire ( "Veuillez saisir X, Y , L et l")
    Lire X ;
    Lire Y ;
    Lire L ;
    Lire l ;
    tab(case)==(X,Y,L,l)
    Fin pour ;
    2.4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Ecrire( Vous avez décidé de visionner toutes les figures déjà crées) ;
    i=0 ;
    Tant que i<=20
    Ecrire(Données case+tab(i)) ;
    i=i+1 ;
    Fin tant que ;
    2.5.
    Après je n'y arrive pas....vous pourriez m'aider parce que je galère comme ça depuis longtemps et je ne sais pas du tout si je pars bien si j'ai les bonnes méthodes.......

    Merci

  6. #6
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    L’éditeur de dessin est un sujet maintes et maintes fois abordé en programmation objet, histoire d'expliquer les joies du polymorphisme. Tu trouveras facilement des exemples.

    Pour ta question 2.5, supposons que tu as une liste d'objets "figures" avec leurs attributs positions, dimensions...Il te suffit d'avoir une méthode modifier qui change ces paramètres. Puis tu rappelles ta fonction "afficher_figure".

    A+.

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    alors :
    - 2.2 - tu as oublié de gérer le cas où l'utilisateur décide de sortir. Juste un "si ... alors quitter".
    - 2.3 - Je te conseille de tout d'abord demander la case et de faire ta vérification, c'est tout.
    Ensuite, tu fais un choix multiple, comme le switch de C pour que ce soit plus lisible.
    Pour le rectangle, c'est bon...

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Non mais j'y pense depuis plusieurs jours là je cherche des cours sur internet et je n' y arrive pas, je ne sais pas comment continuer, déclarer correctement les variables enfin....désolé de vous avoir fait perdre votre temps !
    Bonne après-midi.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Points : 486
    Points
    486

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Après une semaine de recherche......et quelques cours trouver sur internet j'ai réussi à faire ceci mais je ne sais pas continuer donc là je pense qu'avec le temps que j'y passe vous pouvez pousser le coup de main au maximum....je vous en prie ^^

    2.1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var reponse
    Debut
    	Afficher("Rectangle, Ovale")
    	Afficher("Veuillez choisir une figure")
    	Saisir( reponse)
    2.2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    	Suivant reponse Faire
    		cas reponse=1
    		Afficher("créer un rectangle")
     
    		cas reponse=2	
    		Afficher("créer un ovale")
     
    		cas reponse=3
    		Afficher("afficher la liste des figures")
     
    		cas reponse=4
    		Afficher("modifier une figure")
     
    		cas reponse=5
    		Afficher("effacer toutes les figures")
     
    		cas reponse=6
    		Afficher("rechercher les figures contenant un point dont les coordonnées sont fournies par l'utilisateur")
     
    		cas reponse=5
    		Afficher("Quitter le programme")
    	FinSuivant
    2.3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Main
    	var: m_x, m_y, m_largeur, m_longueur: entier
    	      unRectangle: rectangle
    Debut
     
    	Afficher("Entrer le point X")
    	Saisir(m_x)
    	Afficher("Entrer le point Y")
    	Saisir(m_y)
    	Afficher("Entrer la largeur")
    	Saisir(m_largeur)
    	Afficher("Entrer le point longueur")
    	Saisir(m_longueur)
    	unRectangle.initialiser(m_x, m_y, m_largeur, m_longueur)
    Fin
     
    Classe rectangle
    privé
    	x,y,largeur, longueur : entier
    public
    	proc: Initialiser(E: p_x,p_y,p_largeur,p_longueur : entier)
    		{
    			x<-p_x
    			y<-p_y
    			largeur<-p_largeur
    			longueur<-p_longueur
    		}
    	Fin
    FinClasse
    // avec tout ca, je cré un point x, point y, longueur et largeur mais je ne dessine pas le rectangle. Il faudrait aussi rajouter une classe oval pour pouvoir creer des ovales mais alors là mystère......

    2.4) on peut pas car il faut finir la question 2.3

    2.5) j'explique juste la marche a suivre pour vous montrer que j'ai compris: vu qu'on a un identifiant par element, il faut appeler l'element via son identifiant dans le tableau et rappeler la methode initialiser de la classe rectangle (si c'est un rectangle, si c'est un ovale, faut rapeler la methode de la classe ovale que je ne sais pas faire). En rapelant les methodes je redefinis ainsi les caracteristiques de la figure. Il faut creer un apel pour finir les modifs (genre une question avec un booleen je pense).


    Non sincèrement là j'en peux plus j'aimerais que vous m'aidiez , que vous me disiez ce qui ne va pas enfin vous êtes forts donc bon ça doit vous sembler ridicule un exercice comme ça :s


  11. #11
    Membre éprouvé Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Points : 960
    Points
    960
    Par défaut
    Envoyé par Ptinovice :
    Il faudrait aussi rajouter une classe oval pour pouvoir creer des ovales mais alors là mystère......

    S'il s'agit ici juste d'avoir les caractéristiques de l'ovale,c'est les mêmes que ceux d'un rectangle,car on peut dessiner un ovale à l'intérieur d'un rectangle.

  12. #12
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    créer un ovale
    S'agit-il bien d'un ovale de Cassini?
    Jean-Marc Blanc

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Oui c'est cela, un ovale simple, ce que tout le monde appelle un ovale.
    Et malheureusement je constate que personne n'est en mesure ou ne souhaite m'aider ce que je déplore.
    Personne?
    Bonne journée quand même

  14. #14
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    personne n'est en mesure ou ne souhaite m'aider
    On souhaite, mais on n'est pas en mesure tant que tu ne formules pas ton problème correctement.
    ce que tout le monde appelle un ovale
    Malheureusement, ce n'est pas la même figure que tout le monde appelle un ovale. Voici au moins trois types d'ovales différents:
    • Deux arcs de cercles de rayon R1 et deux de rayon R2, admettant les mêmes tangentes aux points où ils se rencontrent.
    • Deux demi-cercles et deux segments de droites (cas limite du précédent).
    • L'ovale de Cassini (voir la définition et une figure dans Wikipedia).

    Jean-Marc Blanc

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ainsi c'est bien l'ovale de Cassini.
    Pour ce qui est de mon problème il est clair à mon sens vous avez ce que j'ai mis tant de temps à faire et je n'arrive pas à continuer et j'aimerais qu'on me corrige si cela est possible et qu'on continue ensemble.
    Merci de répondre, c'est déjà m'accorder du temps.
    Cordialement.

  16. #16
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    J'aimerais bien t'aider, mais tes codes sont écrits dans un langage que je n'ai jamais vu. Tout ce que je peux te conseiller, c'est de les traduire dans un langage de programmation normalisé (Fortran, C, Java, ou autre), puis de le compiler et de l'exécuter. Ainsi, tu auras la possibilité de voir toi-même ce qui ne va pas.
    Par cette remarque, je n'essaie pas de résoudre ton problème à ta place, ce dont je serais bien incapable, mais de contribuer à t'apprendre ton métier.
    Jean-Marc Blanc

  17. #17
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Gia,
    Citation Envoyé par FR119492 Voir le message
    Salut!
    J'aimerais bien t'aider, mais tes codes sont écrits dans un langage que je n'ai jamais vu. Tout ce que je peux te conseiller, c'est de les traduire dans un langage de programmation normalisé (Fortran, C, Java, ou autre), puis de le compiler et de l'exécuter. Ainsi, tu auras la possibilité de voir toi-même ce qui ne va pas.
    Par cette remarque, je n'essaie pas de résoudre ton problème à ta place, ce dont je serais bien incapable, mais de contribuer à t'apprendre ton métier.
    Jean-Marc Blanc
    Il s'agit ici du forum algorithmes, et le code n'a pas à être dépendant d'un langage particulier.

  18. #18
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Il s'agit ici du forum algorithmes, et le code n'a pas à être dépendant d'un langage particulier
    Certes, mais comment le déboguer sans l'avoir implémenté?
    Jean-Marc Blanc

  19. #19
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Certes, mais comment le déboguer sans l'avoir implémenté?
    Jean-Marc Blanc
    Tu l'executes dans ta tête, pas à pas, et tu fais une trace manuelle.

    Ca à pas l'air marrant ? Oui.


    C'est pas marrant du tout à faire, juste la tannée

  20. #20
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par kaymak Voir le message
    Tu l'executes dans ta tête, pas à pas, et tu fais une trace manuelle.

    Ca à pas l'air marrant ? Oui.


    C'est pas marrant du tout à faire, juste la tannée
    ?

    Y a une bonne raison pour relancer cette discussion vieille de deux ans ?

Discussions similaires

  1. Correction d'un Algo
    Par P-programmeur dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 07/11/2012, 19h46
  2. Réponses: 2
    Dernier message: 18/12/2011, 20h38
  3. Correction de mon algo
    Par Shakan972 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 27/01/2006, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo