begin process at 2012 05 28 23:32:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

création de pile avec INTERFACE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

création de pile avec INTERFACE

samedi 5 décembre 2009 à 16:34:07 | création de pile avec INTERFACE

rosettesouna




slt tous le monde
je suis debutante en C;et je veux savoir comment créer une pile on utilisant un tableau(pointeur) avec interface qui contient un menu(empiler,depiler,quitter),merci c tres urgent
samedi 5 décembre 2009 à 17:07:35 | Re : création de pile avec INTERFACE

lural

Membre Club
Réponse acceptée !
Salut
Je suppose que tu dois créer un programme simulant une pile (sans t'appuyer sur une quelconque librairie). Donc il va falloir que tu créer une fonction main pour lancer ton programme avec l'affichage d'un menu (pour tes 3 fonctionnalités) qui lira l'entrée de l'utilisateur.
Pour sa réponse, tu devra faire un switch/case qui appelera suivant le choix, la fonctionnalité demandé. Et il ne te restera donc qu'a coder tes fonctions empiler/dépiler/quitter qui utiliseront un tableau pour stocker les informations.
Le principe d'une pile, c'est que tu n'as accès qu'à la dernière infos que tu viens d'y mettre, donc dans le principe c'est un tableau vide, et une variable qui indiquera le nombre d'élément.
Lorsque tu veux empiler tu rajoutes la variables donné par l'utilisateur dans ton tableau à l'indice de ta variable donnant le nombre d'élement, puis tu rajoutes 1 à cette dernière.
Pour dépiler, tu affiche l'élément de ton tableau à l'indice de ta variable, et tu décrémente celle-çi.
Pour ne pas avoir d'erreur, tu dois vérifier toutes les entrées de l'utilisateur, et surtout vérifier qu'on ne peut dépiler une pile que si elle contient au moins un élément. Après suivant ton niveau, tu devras gérer l'allocation de ton tableau de façon statique ou dynamique...
Pour quitter un <<return 0;>> devrait suffir.

Bon courage
Bye
dimanche 6 décembre 2009 à 11:18:17 | Re : création de pile avec INTERFACE

rosettesouna




merci lural,c'est un peu prés le meme principe que j ai analyser,mais le probleme est le code?et ca doit tounré en turbo C avec l'interface???
merci
dimanche 6 décembre 2009 à 12:59:40 | Re : création de pile avec INTERFACE

CptPingu

Administrateur CodeS-SourceS
Lural t'a expliqué le principe, à toi et à toi seul d'en faire le code. Si tu bloques sur un point précis, nous t'aiderons en corrigeant le code existant, ou en t'aident à le concrétiser.
Mais aucune ligne de code ne te sera donnée.
dimanche 6 décembre 2009 à 14:13:00 | Re : création de pile avec INTERFACE

rosettesouna

oui ca c'est sur,c'est a moi d'ecrir le code,juste j ai jamais fait un exercice en turbo C ou il ya interface ???
merci


dimanche 6 décembre 2009 à 14:44:08 | Re : création de pile avec INTERFACE

Chouchou182

Réponse acceptée !
Salut,

Ton interface peut être, par exemple (pile.h):
Code C/C++ :
#ifndef PILE_H
#define PILE_H 1

struct pile ;

struct pile* nouvelle();
void detruire(struct pile*);
int est_vide(struct pile*);
int empiler(struct pile*, int);
int depiler(struct pile*);
void afficher(struct pile*);


#endif // ! PILE_H


Ce qui permettrait de faire un joli programme (main.c):
Code C/C++ :
#include<stdio.h>
#include"pile.h"

struct pile* la_pile;

int
main(int argc, char** argv)
{
  int encore = 1;
  la_pile = nouvelle();
  if (la_pile == NULL)
    return 1;
  do
  {
    int ch = getchar();
    int val;
    switch(ch)
    {
      case 'q':
	encore = 0;
	break;
      case 'a':
	afficher(la_pile);
	break;
      case 'e':
	if (
	    scanf("%d", &val) != 1
	 ||	
	    empiler(la_pile, val)
	   )
	  fputs("Ne peut empiler", stderr);
	break;
      case 'd':
	val = depiler(la_pile);
	printf("-> %d\n", val);
	break;
      case 'v':
	if (est_vide(la_pile))
	  puts("vide");
	else
	  puts("non-vide");
	break;
      default:
	fprintf(stderr, "Commande inconnue: %c\n", ch);
    }
  } while (encore);

  detruire(la_pile);
  return 0;
}


Ensuite, il ne resterait plus qu'à écrire les fonctions de manipulation des piles, ce qui pourrait se faire avec des listes chaînées (pile_l.c):
Code C/C++ :
#include<stdio.h>
#include<stdlib.h>
#include"pile.h"

struct __pile {
  int val;
  struct __pile* next;
};

struct pile {
  struct __pile *p;
};

struct pile*
nouvelle()
{
  struct pile* p;
  p = malloc(sizeof(*p));
  if (p == NULL)
    return NULL;
  p->p = NULL;
  return p;
}

void
__detruire(struct __pile* p)
{
  while (p != NULL)
  {
    struct __pile* aux = p->next;
    free(p);
    p = aux;
  }
}

void
detruire(struct pile* p)
{
  __detruire(p->p);
  free(p);
}

int
est_vide(struct pile* p)
{
  return (p->p == NULL);
}

int
empiler(struct pile* p, int val)
{
  struct __pile* n;
  n = malloc(sizeof(*n));
  if (n == NULL)
    return 1;
  n->val = val;
  n->next = p->p;
  p->p = n;
  
  return 0;
}

int
depiler(struct pile* p)
{
  struct __pile* n = p->p;
  int val = n->val;
  p->p = n->next;
  free(n);
  return val;
}

void
afficher(struct pile* p)
{
  struct __pile* n;
  printf("<");
  for (n = p->p; n != NULL; n = n->next)
  {
    printf("%d; ", n->val);
  }
  printf(">\n");
}


ou encore avec des tableaux (pile_t.c):
Code C/C++ :
#include"pile.h"
#include<stdlib.h>
#include<stdio.h>

#define TAILLE 4

struct pile {
  int data[TAILLE];
  int* top;
};

struct pile*
nouvelle()
{
  struct pile* p;
  p = malloc(sizeof(*p));
  if (p == NULL)
    return NULL;
  p->top = p->data;
  return p;
}

void
detruire(struct pile* p)
{
  free(p);
}

int
est_vide(struct pile* p)
{
  return (p->top == p->data);
}

int
empiler(struct pile* p, int val)
{
  if (p->top - p->data >= TAILLE)
    return 1;
  *(p->top) = val;
  ++(p->top);
  return 0;
}

int
depiler(struct pile* p)
{
  --(p->top);
  return *(p->top);
}

void
afficher(struct pile* p)
{
  int *i = p->top;
  printf("<");
  while (i != p->data)
  {
    --i;
    printf("%d; ", *i);
  }
  printf(">\n");
}


Bonne prog,
--
Chouchou.
dimanche 6 décembre 2009 à 14:50:04 | Re : création de pile avec INTERFACE

rosettesouna




merci beaucoup chouchou
je vais comparer maintenant et je vais l'essayer,et je vais voir
dimanche 6 décembre 2009 à 14:52:04 | Re : création de pile avec INTERFACE

CptPingu

Administrateur CodeS-SourceS
C'est très mal exprimée, mais je pense que par "interface", rosettesouna voulait parler de "menu" utilisateur.

En revanche, lui cracher comme cela, la solution, sans lui laisser chercher, sans aucune réflection de sa part, c'est particulièrement anti-pédagogique !
dimanche 6 décembre 2009 à 15:10:13 | Re : création de pile avec INTERFACE

rosettesouna




mais j ai chercher et j ai ecris le code de la pile,mais comment avoir l interface que j ai jamais entendu parlé c pourquoi!!!
dimanche 6 décembre 2009 à 15:15:25 | Re : création de pile avec INTERFACE

CptPingu

Administrateur CodeS-SourceS

mais j ai chercher et j ai ecris le code de la pile,mais comment avoir l interface que j ai jamais entendu parlé c pourquoi!!!


Surveille ton orthographe et relis toi, s'il te plaît.

Il était attendu de toi, que tu postes ton code, notamment la partie qui te faisait défaut. Le processus normal étant que l'on t'aide à parvenir, par toi même, à trouver la solution. Cette démarche à malheureusement été court-circuité...

1 2

Cette discussion est classée dans : création, interface, size, pile


Répondre à ce message

Sujets en rapport avec ce message

Création interface Visual [ par Sandy084 ] Bonsoir, Voila je traville en C++ sous Microsoft Visual. J'aimerai savoir comment créer une interface graphique, assez simple avec 2 ou 3 boutons, une création d'un projet c++ avec interface ???!!!! [ par psycomel ] bONjour A TOUS !!J'aimerais créer un projet visual c++.Pour cela j'aurais besoin d'une interface graphique . En créant un nouveau projet c++ wizard ap Création d'un outil de monitoring pour mon réseau [ par djeleo01 ] Bonjour, Je voudrais programmer en c++, un outil qui permettrait de faire du monitoring et qui pingerais tous mes serveur et poste.Ce qui me pose prob création d'1 interface [ par amina08 ] bonjour,j'ai un projet console visuel c++ et je veux créer 1 interface pour ce projetje veux créer un fichier dll puis je l'utilise pour construire mo création pile [ par estheross ] La vie est belle carte I/O advantech [ par fatenbenhamadi ] [b]amatrice[/b][size=200][/size][^^confus2] Je suis actuellement en possession d'une carte interface entrée sortie advantech pci 1751 et je doit faire Aide pour la création d'interface grahique du jeu mastermind en c++ [ par justosharp ] Slt! création d'une interface graphique [ par ordy ] bonjour, j'aimerais créer une interface graphique assez simple.l'interface graphique comprend 2 champs. un champ unicast et un autremulticast.avec 2 b reponse au sujet : travail sur les files [ par tagada_du_loft ] Yahoo :) j ai reussi pour infos voila mes deux ti prog sur les files et les pilescelui sur les piles: -creer une pile -depile -affiche le sommet de


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales