pdf - e-book - archive - github.com

2.7  Structures

2.7.1  Prise en main

Exercice 1

Créez un type structuré st contenant un char appelé c et un int appelé i.

Exercice 1

Créez deux variables k et l de type st. Affectez-leur les valeurs (′a′, 1) et (′b′, 2).

Exercice 1

Affichez les valeurs de tous les champs de ces deux variables.

2.7.2  Heures de la journée

Nous utiliserons pour représenter des heures de la journée au format hh:mm le type

typedef struct
{
  int heure;
  int minute;
}heure_t;

Le champ heure devra contenir une valeur de {0, 1, …, 11} et le champ minute une valeur de {0, 1, 2,…, 59}. Complétez le code source suivant :

#include<stdio.h>

typedef struct
{
  int heure;
  int minute;
}heure_t;

/***************************************************/

/*
  Retourne uen structure initialisee avec les 
  valeurs heures et minutes.
*/

heure_t creerHeure(int heures, int minutes)
{
  heure_t result = {0, 0};
  return result;
}

/***************************************************/

/*
  Convertit t en minutes.
*/

int enMinutes(heure_t t)
{
  return 0;
}

/***************************************************/

/*
  Convertit la duree t en heure_t.
*/

heure_t enHeures(int t)
{
  heure_t result = {0, 0};
  return result;
}

/***************************************************/

/*
  Affiche x au format hh:mm
*/

void afficheHeure(heure_t x)
{
}

/***************************************************/

/*
  Additionne a et b.
*/

heure_t additionneHeures(heure_t a, heure_t b)
{
  heure_t result = {0, 0};
  return result;
}

/***************************************************/

/*
  Retourne la valeur a ajouter a x pour obtenir 00:00.
*/

heure_t inverseHeure(heure_t x)
{
  heure_t result = {0, 0};
  return result;
}

/***************************************************/

/*
  Soustrait b a a.
*/

heure_t soustraitHeures(heure_t a, heure_t b)
{
  heure_t result = {0, 0};
  return result;
}

/***************************************************/

/*
  Retourne 1 si a > b, -1 si a < b, 0 si a = b.
 */

int compareHeures(heure_t a, heure_t b)
{
  return 0;
}

/***************************************************/

/*
  Retourne la plus petite des heures a et b.
*/

heure_t minHeure(heure_t a, heure_t b)
{
  heure_t result = {0, 0};
  return result;
}


/***************************************************/

/*
  Pour tester les fonctions...
*/

int main()
{
  return 0;
}

Télécharger le fichier

2.7.3  Répertoire téléphonique

Nous considérons les déclarations suivantes :

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define TAILLE_NOM 50
#define TAILLE_TEL 10
#define NB_MAX_NOMS 500

struct personne
{
       char nom[TAILLE_NOM+1];
       char tel[TAILLE_TEL+1];
};

Il vous est demandé de programmer un répertoire télphonique en stockant les entrées du répertoire dans un tableau de struct personne. Les entrées devront être triées, il devra être possible de rechercher des entrées avec le préfixe du nom, insérer et supprimer des entrées. Prévoyez aussi la possibilité d’afficher toutes les entrées du répertoire les unes à la suite des autres. Bon courage.