Langage C, programmation informatique, codage informatique, structure de données, base de données, chaîne de caractères, lecture de fichier, écriture de fichier, liste chaînée
Le document comprend 4 exercices de programmation en langage C. Les objectifs sont les suivants : révision de la notion du pointeur, lecture et écriture de fichiers, listes chaînées.
[...] Voici les prototypes de fonctions qui vous seront utiles dans ce Devoir. Il reprennent ceux du cours, la diff´erence pr`es qu'afin d'´eviter les pointeurs g´en´eriques, l'´el´ement d'une liste est de type _vol. typedef struct _un_element_vols *P_un_element_vols; typedef struct _un_element_vols { char mot[30]; struct _vol * element; P_un_element_vols suivant; } Un_element_vols; P_un_element_vols creer_element_vols(char P_un_element_vols rechercher_element_vols(P_un_element_vols pliste, char * mot); P_un_element_vols inserer_element_fin_vols(P_un_element_vols pliste, P_un_element_vols La compagnie g`ere les vols d'une mˆeme route dans une liste simplement chaˆ?n´ee. typedef struct _route { char *nom_depart; //code du depart char *nom_destination; //code de la destination int nb_vols; //nombre de vols P_un_element_vols vols; //liste des vols } Une_route; Dans la structure Une_route, le champ nom_depart correspond au code de l'a´eroport de d´epart, nom_destination correspond au code de la destination. [...]
[...] //utile notamment pour la fonction rechercher_element_vols suivante. int comp_vols(Un_vol *vol1, Un_vol *vol2){ if (vol1 NULL vol2 NULL) return if(strcmp(vol1 num, vol2 num) 0 strcmp(vol1 h_depart, vol2 h_depart) 0 strcmp(vol1 h_arrivee, vol2 h_arrivee) return } else{ return } } P_un_element_vols rechercher_element_vols(P_un_element_vols pliste, Un_vol while(pliste){ if (comp_vols(pliste element, vol) return pliste; } pliste = pliste suivant; } return NULL; } P_un_element_vols inserer_element_debut_vols(P_un_element_vols pliste, P_un_element_vols el suivant = pliste; return el; } P_un_element_vols inserer_element_fin_vols(P_un_element_vols pliste, P_un_element_vols if (pliste==NULL) return el; P_un_element_vols pl = pliste; while(pl->suivant){ pl = pl->suivant; } pl->suivant = el; return pliste; } //rien n'a change par rapport au Devoir 1 Un_vol *creer_vol(char *num, char * h_depart, char * h_arrivee ) { Un_vol *vol; vol = (Un_vol*)malloc(sizeof(Un_vol)); vol->num = strdup(num); vol->h_depart= strdup(h_depart); vol->h_arrivee = strdup(h_arrivee); return vol; } Un_vol * creer_vol_depuis_ligne(char char dec = decompose_ligne(ch, return creer_vol(dec[0], dec[1], } //rien n'a change par rapport au Devoir 1 Une_route *creer_route(char *nom_depart, char *nom_destination, int nb_vols) { Une_route *route; route = (Une_route malloc(sizeof(Une_route)); route->nom_depart = malloc((strlen(nom_depart) + * sizeof(char)); route->nom_destination = malloc((strlen(nom_destination) + * sizeof(char)); strcpy(route->nom_depart, nom_depart); strcpy(route->nom_destination, nom_destination); route->nb_vols = nb_vols; route->vols = NULL; return route; } Une_route * creer_route_depuis_ligne(char char dec = decompose_ligne(ch, return creer_route(dec[0], dec[1], atoi(dec[2])); } Une_route* chercher_route(Une_route char * depart, char *arrivee){ int for(i = i nom_depart, depart) 0 strcmp(bd[i]->nom_destination, arrivee) return } } return NULL; //recherche si un vol de la route a le numero donne en entree. [...]
[...] C'est cette solution qui est recommand´ee dans le cadre de cette UE, car elle permet de se retrouver avec l'environnement qui sera utilis´e en TME. Il est possible aussi d'utiliser Cygwin (http://sourceware.org/cygwin/) ou Mingw (http://www.mingw. qui sont des outils open source gratuits. Il est noter que le support de ces diff´erents outils ne sera pas assur´e dans le cadre de l'UE. 2017-2018 (by UPMC/Licence d'informatique/2I001 (LI215)) 8 d´ecembre 2017 Module 2I001 (LI215) Devoir 2 Compagne A´erienne - Suite Exercice 1 (obligatoire) Listes Chaˆ?n´ees Nous allons commencer par un r´ecapitulatif des notions vues en Devoir1. [...]
[...] Programmation Langage C : code sur "Compagnie aérienne" Module 2I001 (LI215) Devoir 2 Devoir 2 Version du 8 d´ecembre 2017 Objectif(s) O r´evision de la notion du pointeur O Lecture et criture de fichiers O Listes chaˆ?n´ees Exercice(s) Ce deuxi`eme devoir correspond aux TD et TME 5 7. La lecture des fichiers et la manipulation des chaˆ?nes de caract`ere, n´ecessaire pour certains exercices, est expliqu´ee en chapitre 3 du polycopi´e CNED. Les trois Devoirs portent sur un mˆeme mini-projet que vous allez construire au fur et mesure et qui sera poursuivi en Devoir 3. [...]
[...] Nous allons chercher un vol partir de l'heure de d´epart, donn´ee en forme d'une chaˆ?ne de caract`eres (9h25, 13h45). 3. points) Ecrivez la fonction rechercher_vol qui cherche un vol dans la liste des vols associ´ee une route. Vous pouvez vous servir des fonctions sur les listes simplement chaˆ?n´ees qui vous sont fournies. Voici le prototype de la fonction : Un_vol * rechercher_vol(Une_route *route, char Remarque : on pourrait largir/affiner les crit`eres de recherche, par exemple pour trouver uniquement les vols partant en entre 12 et 14h. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture