CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide programme sous codeblocks

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 20:23:25

Bonsoir a tous,

voila je dois faire un dossier et j'aurais besoin d'aide pour des fonctions pour lesquels j'ai un peu de mal .

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string.h>
  4. include <conio.h>
  5. define N 50

struct depots {
long NumDepot;
char NomDepot[20];
char Pays[20]; (->champ supplémentaire)
char Adresse[30];
int CodePostal;
char ville[30];
long CapaciteStock;
char Responsable[3];
char MatiereDangereuse;
};

//void EncodeDepot();
//void AfficheNumDepot();
//void AfficheDepot();
//void ConstructionData();
//void AfficheData();
;

int main()
{
struct depots ListeDepots[N]={
{603,"ARCELORMITTAL","LUXEMBOURG","5,Rue de la liberte",3000,"Luxembourg",10,"TT",'0'},
{200,"COCKERILL","BELGIQUE","1,Rue du Puit Marie",4100,"Seraing",50,"XA",'0'},
{300,"DUFERCO","FRANCE","4,Rue de l'acier",6000,"Florange",100,"GT",'1'},
{601,"ARCELORMITTAL","INDE","666,Rue de Lakshmi Mittal",9999,"Bombay",10," ",'1'},
{10,"TOUTPLASTIQUE","BELGIQUE","22,Rue du Vieux PVC",5000,"Liege",80," ",'1'},
{100,"COCKERILL","FRANCE","2,Rue du Puit Joseph",7000,"Dunkerque",100,"LP",'0'},
{602,"ARCELORMITTAL","FRANCE","2,Rue Victor Hugo",7100,"Fos-Sur-Mer",10,"RS",'1'}};

int NbDepot =7;
long NrDepot[N] ={10,100,200,300,601,602,603};
char data[N][40];
int index[N]={0};

return 0;
}

j'ai mis en commentaires les fonctions. J'aimerai savoir comment procédés pour les différents types de fonctions , par quoi commencé .

Merci a ceux qui prendront le temps de me lire et si possible répondre .

godrik
godrik
Niveau 30
21 février 2013 à 20:59:19

il faut passer le tableau en parametre de tes fonctions. (ainsi que sa taille)

Triplepied
Triplepied
Niveau 8
21 février 2013 à 21:01:29

Tu peux faire un truc dans le genre :

void afficher_num_depots(struct depots *liste, int taille_liste)
{
int n = taille_liste/sizeof(struct depots);
int i;
for(i = 0; i < n; i++)
{
printf("Numero : %i", liste[i].NumDepot);
}
}

etc..

Triplepied
Triplepied
Niveau 8
21 février 2013 à 21:06:24

Après tu fais la fonction pour afficher un depot, puis tu parcours ton tableau de depots comme en haut, et tu appelles la fonction :

void afficher_depot(struct depots dep)
{
printf("******************************\n");
printf("ID : %i \n", dep.NumDepot);
printf("Nom : %s\n", dep.NomDepot);
printf("Pays : %s\n", dep.Pays);
printf("Adresse : %s\n", dep.Adresse);
printf("Code postal : %i\n", dep.CodePostal);
printf("Ville : %s\n", dep.ville);
printf("Capacite : %i\n", dep.CapaciteStock);
printf("Resp : %s\n", dep.Responsable);
printf("Matiere dangereuse : %c\n", dep.MatiereDangereuse);
}

void afficher_depots(struct depots *liste, int s)
{
int n = s/sizeof(struct depots);
int i;
for(i = 0; i < n; i++) {
afficher_depot(liste[i]);
}
}

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 21:21:25

Merci godriek et Tripleplied pour avoir répondu si vite pour la fonction encodeDepot je ne sais pas comment faire car il faut faire 2 sous fonctions dans la fonction:

- RechercheNumDepot()
- InsertionNumDepot().

Triplepied
Triplepied
Niveau 8
21 février 2013 à 21:22:35

Elle doit faire quoi ta fonction encodeDepot() ? Et rechercheNumDepot je suppose qu'elle prend en argument un numéro, une liste de dépots et retourne le dépot correspondant ? :(

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 21:33:30

la fonction encodeDepot doit permettre d'encoder un dépôt, retourner 1 si l'encodage à lieu et dans le cas ou elle est interrompu en appuyant sur la touche ENTER retourner 0 quand on encode NumDepot.

Il faut verifier si le NumDepot n'est pas deja utiliser si oui l'inséré de manière trié dans le vecteur NrDepot. Il faut demandez à réencoder s'il est deja utiliser.

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 21:45:52

c'est un exemple du run comme le programme doit être

VOUS AVEZ DEJA 7 DEPOTS ENCODES QUE VOICI:

==================================================

DEPOT 1

    • ******

ARCELORMITTAL [num=603]
Pays:LUXEMBOURG
Adresse:5,Rue de la liberte
3000 Luxembourg
Responsable:TT
Danger=> NON
Capacite de Stock:10
--------------------------------------------------
-------

DEPOT 2

    • ******

COCKERILL [num=200]
Pays:BELGIQUE
Adresse:1,Rue du Puit Marie
4100 Seraing
Responsable:XA
Danger=> NON
Capacite de Stock:50
--------------------------------------------------
-------

DEPOT 3

    • ******

DUFERCO [num=300]
Pays:FRANCE
Adresse:4,Rue de l'acier
6000 Florange
Responsable:GT
Danger=> OUI
Capacite de Stock:100
--------------------------------------------------
-------

DEPOT 4

    • ******

ARCELORMITTAL [num=601]
Pays:INDE
Adresse:666,Rue de Lakshmi Mittal
9999 Bombay
Responsable:
Danger=> OUI
Capacite de Stock:10
--------------------------------------------------
-------

DEPOT 5

    • ******

TOUTPLASTIQUE [num=10]
Pays:BELGIQUE
Adresse:22,Rue du Vieux PVC
5000 Liege
Responsable:
Danger=> OUI
Capacite de Stock:80
--------------------------------------------------
-------

DEPOT 6

    • ******

COCKERILL [num=100]
Pays:FRANCE
Adresse:2,Rue du Puit Joseph
7000 Dunkerque
Responsable:LP
Danger=> NON
Capacite de Stock:100
--------------------------------------------------
-------

DEPOT 7

    • ******

ARCELORMITTAL [num=602]
Pays:FRANCE
Adresse:2,Rue Victor Hugo
7100 Fos-Sur-Mer
Responsable:RS
Danger=> OUI
Capacite de Stock:10
--------------------------------------------------
-------

ENCODAGE SEQUENTIEL DES DEPOTS
================================

DEPOT 8

    • ******

Entrez le NR de DEPOT,(TAPER ENTER pour arreter):RT56

Veuillez ne rentrez que des chiffres!!!
==>Recommencez (Tapez Enter pour stop):602

CE NR EXISTE DEJA !!! ==>RECOMMENCER...
Entrez le NR de DEPOT,(TAPER ENTER pour arreter):105

FIN Recherche et pas trouve...
FIN insertion
Entrez le NOM du Depot: ==>enter

ERREUR DE SAISIE,entrez au moins une lettre
==>Recommencer...ARCELORMITTAL

Entrez le PAYS du Depot:ALLEMAGNE

Entrez le Nr et la RUE du depot:7,Strasse Stahl

Entrez le CODE POSTAL du depot:
50

Entrez le CODE POSTAL du depot:
600

Entrez le CODE POSTAL du depot:
1200

Entrez la VILLE du depot:Dublin

Entrez la CAPACITE DE STOCK du depot:
80

Entrez le RESPONSABLE du depot:
Soit:XA, GT, LP, RS, TT ou NULL:

==>enter
Entrez le critere MATIERE DANGEREUSE:
1= PRODUIT DANGEREUX
0=PRODUIT NON DANGEREUX

Votre choix:...0

10
100
105
200
300
601
602
603
DEPOT 9

    • ******

Entrez le NR de DEPOT,(TAPER ENTER pour arreter): ENTER

AFFICHAGE SEQUENTIEL COORDONNEES DES DEPOTS (Autre présentation)
===============================================

NumId NomDepot Pays capacite Stock Responsable Danger
++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++

1: 603 ARCELORMITTAL LUXEMBOURG 10 TT NON

[5,Rue de la liberte 3000 Luxembourg]
--------------------------------------------------
---------------------------

2: 200 COCKERILL BELGIQUE 50 XA NON

[1,Rue du Puit Marie 4100 Seraing]
--------------------------------------------------
---------------------------

3: 300 DUFERCO FRANCE 100 GT OUI

[4,Rue de l'acier 6000 Florange]
--------------------------------------------------
---------------------------

4: 601 ARCELORMITTAL INDE 10 OUI

[666,Rue de Lakshmi Mittal 9999 Bombay]
--------------------------------------------------
---------------------------

5: 10 TOUTPLASTIQUE BELGIQUE 80 OUI

[22,Rue du Vieux PVC 5000 Liege]
--------------------------------------------------
---------------------------

6: 100 COCKERILL FRANCE 100 LP NON

[2,Rue du Puit Joseph 7000 Dunkerque]
--------------------------------------------------
---------------------------

7: 602 ARCELORMITTAL FRANCE 10 RS OUI

[2,Rue Victor Hugo 7100 Fos-Sur-Mer]
--------------------------------------------------
---------------------------

8: 105 ARCELORMITTAL ALLEMAGNE 80 NON

[7,Strasse Stahl 1200 Dublin]
--------------------------------------------------
---------------------------

Triplepied
Triplepied
Niveau 8
21 février 2013 à 21:48:34

Je pige pas la fonction encoder() :(

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 21:49:51

J'ai vraiment besoin d'aide sur ce programme je suis débutant en programmation les autres exercices que j'ai du faire avant ne me poser pas trop de problèmes mais celui la j'ai quand même du mal...

Je vous remercie vraiment pour l'aide que vous m'avez apporter jusque la et je vous en serez très reconnaissant si vous pouviez m'aider pour ce programme la.

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 21:51:35

EncodeDepot( ) : Cette fct permet d’encoder UN dépôt . Elle retourne 1 si l’encodage a eu lieu et 0 si l’encodage a été interrompu en appuyant sur la touche ENTER lors de l’encodage du NumDepot.
Pour le NumDepot, vérifiez s’il n’est déjà pas utilisé et dans ce cas, inséré le de manière triée dans le vecteur NrDepot.
S’il est déjà utilisé, demandez à l’utilisateur de le réencoder.
Il faudra écrire 2 sous fonctions : RechercheNumDepot() & InsertionNumDepot().

je sais pas si c'est spécialement plus claire comme ca ...

Triplepied
Triplepied
Niveau 8
21 février 2013 à 21:52:40

C'est à dire "Encoder un dépot" ?

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 21:56:18

oui en gros :)

Triplepied
Triplepied
Niveau 8
21 février 2013 à 21:57:26

Nan mais je voulais dire, qu'est ce que tu entends par "encoder" un dépôt je pige pas trop là. :( :hap:

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 22:18:13

Un exemple

"
DEPOT 8

    • ******

Entrez le NR de DEPOT,(TAPER ENTER pour arreter):RT56

Veuillez ne rentrez que des chiffres!!!
==>Recommencez (Tapez Enter pour stop):602

CE NR EXISTE DEJA !!! ==>RECOMMENCER...
Entrez le NR de DEPOT,(TAPER ENTER pour arreter):105

FIN Recherche et pas trouve...
FIN insertion
Entrez le NOM du Depot: ==>enter

ERREUR DE SAISIE,entrez au moins une lettre
==>Recommencer...ARCELORMITTAL

Entrez le PAYS du Depot:ALLEMAGNE

Entrez le Nr et la RUE du depot:7,Strasse Stahl

Entrez le CODE POSTAL du depot:
50

Entrez le CODE POSTAL du depot:
600

Entrez le CODE POSTAL du depot:
1200

Entrez la VILLE du depot:Dublin

Entrez la CAPACITE DE STOCK du depot:
80

Entrez le RESPONSABLE du depot:
Soit:XA, GT, LP, RS, TT ou NULL:

==>enter
Entrez le critere MATIERE DANGEREUSE:
1= PRODUIT DANGEREUX
0=PRODUIT NON DANGEREUX

Votre choix:...0 "

Triplepied
Triplepied
Niveau 8
21 février 2013 à 22:40:16

Enfait tu veux juste ajouter un dépot manuellement mais te faut vérifier que le numéro existe pas déjà ? :hap:
Si t'as un grand tableau qui doit contenir tous les dépots faut que tu le réalloues dynamiquement après avoir créer le nouveau dépot.

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 22:58:40

Oui c'est ça . Mais le probème c'est que j'ai du mal comme je l'ai dit plus haut vue que je débute en programmation. Un coup de main pour ce programme ne sera pas de refus :p)

fastandfurious3
fastandfurious3
Niveau 4
21 février 2013 à 23:12:16

J'ai ces 2 fonctions aussi a faire en dernier mais si tu sais m'aider pour les 3 premiers je te serai très reconnaissant déja.

Je dois le finir pour demain après midi et comme j'ai eu un petit nombre de problèmes avec codeblocks depuis 2 semaines pas possible de faire quelque chose de correcte...

je dois bientot y aller si sa te dérange pas de m'aider laisse des messages ici ou bien envoie moi ca sur mon hotmail: Ali_grozniy@hotmail.com

Merci beaucoup de prendre le temps de m'aider c'est vraiment sympa. bonne soirée :-)))

ConstructionData( ) : Cette fonction parcourt le vecteur ListeDepots et récupère dans chaque fiche les champs NomDepot et Pays pour les mémoriser dans le tableau data sous la forme : NOM‛espace’PAYS.

AfficheData( ) : Cette fonction affiche le contenu du tableau data.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment