Bureau des Etudiants
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Connexion

Récupérer mon mot de passe

Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  

Calendrier Calendrier

Le Deal du moment : -55%
Coffret d’outils – STANLEY – ...
Voir le deal
21.99 €

Questions diverses sur les structures de données en C.

Aller en bas

Questions diverses sur les structures de données en C. Empty Questions diverses sur les structures de données en C.

Message par Invité Mer 22 Déc - 0:46

Pour info mon sujet concerne le cours6.

Il y a certaines choses que je n'ai pas compris sur le corrigé des exos du td6,

Alors tout d'abord : exo2, l12 : gets(p1.nom) que signifie les gets, est ce une erreur?

l26 : idem pour "puts"
l27 : idem pour "%.2f"

Ensuite la question 1 de l'exercice 5 n'est pas corrigée, quelqu’un aurait une idée?

l12 (exo5) : "%ld"

Question un peu différente : exo6 question3 : l4 : strcmp(p1.nom, p2.nom) == 0 //cette instruction est elle vraiment nécessaire?

Pas de correction pour les exos 7 et 8 , si une âme charitable passe par là Rolling Eyes


Vla!

Invité
Invité


Revenir en haut Aller en bas

Questions diverses sur les structures de données en C. Empty Re: Questions diverses sur les structures de données en C.

Message par Bastien Mer 22 Déc - 20:13

Alors :
  • "gets(p1.nom)" => Get String => fonction permettant de demander une chaine de caractere afin de la mettre dans un tableau de caractere(ici nom[21]), un genre de scanf, plus d'info ici.

  • "puts" => put string => Fonction similaire a printf mais rajoute un retour a la ligne (\n) ala fin, plus d'info ici.

  • "%.2f" => Similaire a "%f" et permet donc d'afficher un float dans un printf mais arrondi au centième.

  • Ta structure planete est définie comme ceci:
    Code:
    struct planete
    {
        char nom[21];
        float densite;
        float distance;
        int nbStatellites;
    } ;

    Connaissant la taille que prend en mémoire un char, un float et un int, tu peux facilement calculer la place que prend la déclaration d'une structure planete en mémoire.
    /!\ La définition d’un type structuré NE RESERVE PAS d’espace mémoire. Elle
    déclare un nouveau type.

  • "%ld" => Permet d'afficher un nombre de type "long" dans un printf, plus d'info ici.

VOila, avec un peu de recherche, tu aurais tout trouvé ^^
Pour les exos 7 et 8, je n'ai malheureusement pas le temps pour le moment. Plus tard si tu veux...
Bastien
Bastien
Admin
Admin

Messages : 116
Date d'inscription : 01/12/2010
Age : 32
Localisation : Luzarches

https://bde-iutv.forumgratuit.org

Revenir en haut Aller en bas

Questions diverses sur les structures de données en C. Empty Re: Questions diverses sur les structures de données en C.

Message par Bastien Mer 22 Déc - 20:56

TD 6


Correction de l'exercice 7:


  1. Code:
    struct date saisirDate()
    {
        struct date maDate;
       
        printf("Veuillez entrer un jour:\n");
        scanf("%d", &maDate.jour);

        printf("Veuillez entrer un mois:\n");
        scanf("%s", maDate.mois);

        printf("Veuillez entrer une annee:");
        scanf("%d", &maDate.annee);

        return maDate;
    }

  2. Code:
    struct etudiant saisirEtudiant()
    {
        struct etudiant monEtudiant

        printf("Veuillez entrer une nom:\n");
        scanf("%s", monEtudiant.nom);

        printf("Veuillez entrer une prenom:\n");
        scanf("%s", monEtudiant.prenom);

        printf("Veuillez entrer une annee:\n");
        scanf("%d", &monEtudiant.datNaiss.annee);

        printf("Veuillez entrer un mois:\n");
        scanf("%s", monEtudiant.datNaiss.mois);

        printf("Veuillez entrer un jour:\n");
        scanf("%d", &monEtudiant.datNaiss.jour);

        return monEtudiant;
    }

  3. Code:
    void afficherEtudiant(struct etaudiant monEtudiant)
    {
        printf("Nom: %s\n", monEtudiant.nom);
        printf("Prenom: %s\n", monEtudiant.prenom);
        printf("Date de naissance: %d/%s/%d\n", monEtudiant.datNaiss.jour, monEtudiant.datNaiss.mois, monEtudiant.datNaiss.annee);



  4. Ce programme utilise évidement les fonctions précédemment codées.
    Code:
    #include <stdio.h>

    struct date {
        int jour;
        char mois[10];
        int annee;
    } ;

    struct etudiant
    {
        char nom[20];
        char prenom[20];
        struct date datNaiss;
    } ;

    int main(void)
    {
        struct etudiant tabEtudiant[4];
        int i;

        for(i=0; i<5; i++)
        {
              tabEtudiant[i]=saisirEtudiant():
        }

        return 0;
    }

  5. Idem que le précédent mais avec l'affichage.
    Code:
    #include <stdio.h>

    struct date {
        int jour;
        char mois[10];
        int annee;
    } ;

    struct etudiant
    {
        char nom[20];
        char prenom[20];
        struct date datNaiss;
    } ;

    int main(void)
    {
        struct etudiant tabEtudiant[4];
        int i;

        for(i=0; i<5; i++) //Saisi
        {
              tabEtudiant[i]=saisirEtudiant():
        }

        for(i=0; i<5; i+) //Affichage
        {
              afficherEtudiant(tabEtudiant[i]);
        }

        return 0;
    }
    J'aurai évidement pu les afficher au fur et a mesure de leur saisi.





Correction de l'exercice 8:

  1. Code:
    void modifiePlanete(struct planete *maPlanete, float dens, int nSat)
    {
        maPlanete->densite = maPlanete->densite * dens;
        maPlanete->nbSatellite = maPlanete->nbSatellite + nSat;
    }

  2. Pas tres bien compris la question, je suppose qu'il faut ecrire un programme qui modifie la planete Mercure donc juste faire un appelle de fonction.
    Code:
    #include <stdio.h>

    struct planete{
        char nom[20];
        float densite;
        float distance;
        int nbSatellite;
    }

    void modifiePlanete(struct planete *maPlanete, float dens, int nSat)
    {
        maPlanete->densite = maPlanete->densite * dens;
        maPlanete->nbSatellite = maPlanete->nbSatellite + nSat;
    }

    int main(void)
    {
        struct planete mercure;

        //Ici on lui donne des valeurs

        modifiePlanete(&mercure, 1.2, 3);  //Ici on la modifie

        return 0;
    }

  3. Idem que précédent mais avec l'affichage.
    Code:
    #include <stdio.h>
    #include <string.h>

    struct planete{
        char nom[20];
        float densite;
        float distance;
        int nbSatellite;
    }

    void modifiePlanete(struct planete *maPlanete, float dens, int nSat)
    {
        maPlanete->densite = maPlanete->densite * dens;
        maPlanete->nbSatellite = maPlanete->nbSatellite + nSat;
    }

    int main(void)
    {
        struct planete mercure;

        strcpy(mercure.nom, "Mercure");  //Ici on lui donne des valeurs(merci Wikipedia)
        mercure.densite=5427;
        mercure.distance=0,387098;
        mercure.nbStellite=0;

        modifiePlanete(&mercure, 1.2, 3);  //Ici on la modifie

        printf("Nom: %s\n", mercure.nom);  //Ici on l'affiche
        printf("Densite: %f\n", mercure.densite);
        printf("Distance avec l'etoile: %f\n", mercure.distance);
        printf("Nombre de satellite: %d\n", mercure.nbStaellite);
        return 0;
    }


VOila si vous avez des questions ou des remarques sur les fautes(oui il doit y en avoir -_-'), n'hésitez pas !
Bastien
Bastien
Admin
Admin

Messages : 116
Date d'inscription : 01/12/2010
Age : 32
Localisation : Luzarches

https://bde-iutv.forumgratuit.org

Revenir en haut Aller en bas

Questions diverses sur les structures de données en C. Empty Re: Questions diverses sur les structures de données en C.

Message par Invité Jeu 23 Déc - 11:28

Merci! Smile

Invité
Invité


Revenir en haut Aller en bas

Questions diverses sur les structures de données en C. Empty Re: Questions diverses sur les structures de données en C.

Message par Bastien Jeu 23 Déc - 12:55

De rien :p
Bastien
Bastien
Admin
Admin

Messages : 116
Date d'inscription : 01/12/2010
Age : 32
Localisation : Luzarches

https://bde-iutv.forumgratuit.org

Revenir en haut Aller en bas

Questions diverses sur les structures de données en C. Empty Re: Questions diverses sur les structures de données en C.

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum