Accueil > Forum > > > > création de pile avec INTERFACE
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
|
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
|
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
|
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
|
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é...
|
|
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
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|