Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercice sur les pointeurs en langage C

    25 septembre 2021 à 18:41:50

    Bonjour,

    J'ai un exercice à faire sur les pointeurs il y a juste une seule question mais je n'ai jamais fait de programmation quelqu'un pourrait m'aider ? (la question se trouve en dessous du programme) 

    Exercice 1 : Pointeurs
    Soit le programme suivant :
    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
    #include<stdio.h>
    #include<stdlib.h>
    typedef char *P_CHAR; /* type "pointeur sur char" */
    typedef int *P_INT; /* type "pointeur sur int" */
    void main()
    {
    P_CHAR p_char, q_char;
    P_INT p_int, q_int;
    char car;
    p_char = malloc(sizeof(char));
    p_int = malloc(sizeof(int));
    printf("Saisissez une lettre de l’alphabet a-z en minuscule : ");
    scanf("%c", &car);
    *p_char = car;
    // instructions manquantes
    ...
    printf("La lettre saisie est %c\n", *p_char);
    printf("Son code ASCII est %d\n", *p_int);
    printf("Sa majuscule est %c\n", *q_char);
    printf("Le code ASCII de la majuscule équivalente est %d\n", *q_int);
    }
    Question 1. Complétez le programme ci-dessus avec les instructions manquantes pour qu’il s’exécute correctement, c’est-à-dire que les affichages réalisés soient corrects. Bien sur, il ne vous est pas demandé de recopier tout le programme, mais uniquement d’écrire sur votre copie les instructions manquantes.
    • Partager sur Facebook
    • Partager sur Twitter
      25 septembre 2021 à 19:06:20

      Tu n'as jamais programmé? Et tu commences avec un tel exercice?
      Je te suggère plutôt de changer de cours.
      C'est fortement déconseillé de mettre des pointeurs dans les typedef.
      Ce qui te manque est la conversion de minuscule en majuscule. Utilises la fonction toupper.
      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

        25 septembre 2021 à 19:13:04

        oui pendant mon bts electrotechnique nous n'avons pas fait de programmation, j'ai intégrer une 3ème année en Licence SPI EEA et il y'a ce type de programmation alors que j'en est jamais fait, le prof m'explique que c'est a moi de rattraper mon retard
        • Partager sur Facebook
        • Partager sur Twitter
          25 septembre 2021 à 20:37:09

          #include<stdio.h>
          #include<stdlib.h>
          #include <ctype.h>
          
          typedef char* P_CHAR; /* type "pointeur sur char" */
          typedef int* P_INT; /* type "pointeur sur int" */
          
          int main(void)
          {
              P_CHAR p_char, q_char;
              P_INT p_int, q_int;
              char car;
              p_char = malloc(sizeof(char));
              p_int = malloc(sizeof(int));
              printf("Saisissez une lettre de l?alphabet a-z en minuscule : ");
              scanf("%c", &car);
              *p_char = car;
          
          // instructions manquantes :
              *p_int = car;
              q_char = malloc(sizeof(char));
              q_int = malloc(sizeof(int));
              *q_char = toupper(car);
              *q_int = *q_char;
          // instructions manquantes.
          
              printf("La lettre saisie est %c\n", *p_char);
              printf("Son code ASCII est %d\n", *p_int);
              printf("Sa majuscule est %c\n", *q_char);
              printf("Le code ASCII de la majuscule équivalente est %d\n", *q_int);
          
              return 0;
          }
          • Partager sur Facebook
          • Partager sur Twitter
            25 septembre 2021 à 21:03:50

            > le prof m'explique que c'est a moi de rattraper mon retard

            C'est clair. Ca fait certainement partie des attendus explicites pour passer de BTS en licence, ce qui n'est pas le parcours normal. Le genre de truc auquel tu as dit "oui oui pas de problème je vais bosser ça pendant les vacances" pendant l'entretien de recrutement.

            Le but des exercices, c'est pas d'avoir une solution à présenter au prof, c'est d'avoir compris et pratiqué POUR être capable de faire un travail avec les notions en questions.

            En demandant les solutions ici, tu court-circuites cette phase (*) et ça va te retomber dessus très rapidement (au prochain exo).

            Remarque que si on te pose cet exercice à faire à la maison, il ne tombe pas du ciel, il fait suite à ce qui t'a été expliqué en cours par le prof. Pointeurs, déréférencement, allocation dynamique.

            PS: comme il y a des malloc(), il faudra penser à faire des free(), un jour.

            (*) c'est une phase énervante il fut bien dire : on comprend rien, ça veut pas marcher "alors qu'on a tout essayé", etc.  Bienvenue au club. Mais c'est comme ça qu'on arrive à se construire un "modèle mental" de ce qui se passe.

            -
            Edité par michelbillaud 25 septembre 2021 à 21:11:26

            • Partager sur Facebook
            • Partager sur Twitter

            exercice sur les pointeurs en langage C

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown