[PDF] [PDF] Programmation C Corrige du TD#7: Structures - IGM

Exercice 4 1 Fiche • Ecrire des fonctions de lecture et d'écriture d'une variable de type Date Dans un premier temps, on ne se préocupera pas de la validité de 



Previous PDF Next PDF





[PDF] Langage C : énoncé et corrigé des exercices IUP GéniE - LAMSADE

Les exercices 1 à 1 6, 20 à 2 5 , 2 9 à 33, 4 2 à 43 sont corrigés de structure de l iste cha î née dont l es é l é m ents sont des entiers On suppose q ue l a l iste est donnée par l'adresse de l a pre m iè re ce ll u l e , et q ue l'a j out d 'un nou-



[PDF] Programmation en C - Sommaire - ENSA Agadir

VI) SOLUTIONS DES EXERCICES DU CHAPITRE 4 : LIRE ET ÉCRIRE DES DONNÉES : 1) Déclaration statique de données : bien que C soit un langage de programmation structuré, il ne nous force pas à adopter un certain style de 



[PDF] Programmation C Corrige du TD#7: Structures - IGM

Exercice 4 1 Fiche • Ecrire des fonctions de lecture et d'écriture d'une variable de type Date Dans un premier temps, on ne se préocupera pas de la validité de 



[PDF] Langage C : énoncé et corrigé des exercices - Talib24

Vous pouvez découper ce programme en plusieurs sous-fonctions Les exercices qui suivent sont corrigés Exercice 29 Soit un fichier de données structuré en 



[PDF] LANGAGE C Exercices corrigés 1

s'attend à ce que les données soient séparées par */ /* une virgule lors de l' entrée */ printf("Entrez les coordonnées du point A : XA,YA "); scanf(" d, d", &XA, 



[PDF] Exercices en langage C++: 150 exercices corrigés (Noire) (French

Résumé 150 exercices corrigés pour maîtriser la langage C++ dérivés (il s' agira des types structurés comme les tableaux, les structures, les unions et succession de notes (nombres entiers entre 0 et 20) fournies en données, ainsi que le



[PDF] Programmation en C – Exercices - Pages Perso - UPVD

5 exécuter le programme sur différents jeux de données bien choisis, 6 identifier ainsi les ensuite des versions qui utilisent des structures itératives différentes : for, while, PhL version du 18 dans le langage C Types prédéfinis



[PDF] Le C en 20 heures - Framabook

Nous verrons par la suite qu'un programme écrit en Langage C doit res- pecter certaines est possible de lire le contenu de cette boîte ou d'écrire des données dans celle-ci Corrigé de l'exercice n°3 1 — Introduction à une calculatrice # include Une structure est un objet composé de plusieurs champs qui sert à 



[PDF] Algorithmes et structures de données : TD 4 Corrigé - LaBRI

Exercice 4 2 Je constate que la somme des n premiers nombres impairs est égale `a n2, c'est `a dire que 1+3+5+ + (2n − 1) = n2

[PDF] exercices corrigés suites 1ere es

[PDF] exercices corrigés suites 1ere s

[PDF] exercices corrigés suites arithmético géométriques terminale es

[PDF] exercices corrigés suites arithmétiques géométriques pdf

[PDF] exercices corrigés suites numériques bac pro pdf

[PDF] exercices corrigés suites terminale s pdf

[PDF] exercices corrigés sur fichierprogrammation c

[PDF] exercices corrigés sur l état de rapprochement bancaire pdf

[PDF] exercices corrigés sur l ordonnancement des processus

[PDF] exercices corrigés sur l'échantillonnage des signaux

[PDF] exercices corrigés sur l'état de rapprochement bancaire pdf

[PDF] exercices corrigés sur la fonction de production pdf

[PDF] exercices corrigés sur la loi de khi deux pdf

[PDF] exercices corrigés sur la masse salariale

[PDF] exercices corrigés sur la ponctuation pdf

UMLV - IUT

DUT - INFO

1'ere Annee (2012-2013)

Programmation C

Corrige du TD#7: Structures

/* Exercice 1.1 Définition de nom de type Définir un type Date pour des variables formées d'un numéro de jour, d'un nom de mois et d'un numéro d'année.

Exercice 4.1 Fiche

• Ecrire des fonctions de lecture et d'écriture d'une variable de type Date. Dans un premier temps, on ne se préocupera pas de la validité de la date entrée. #include typedef struct { int jour; char mois[10]; int annee; } DATE;

DATE LireDate(void);

void AfficheDate(DATE); int main(void) {

DATE date;

date = LireDate();

AfficheDate(date);

return 0; void AfficheDate(DATE date) { printf("The date is: %d %s %d\n", date.jour, date.mois, date.annee);

DATE LireDate(void) {

DATE temp;

printf("Enter a date (in this form:: Day(1-31) Month(Janvier - Decembre) Year(xxxx)):? ") scanf("%d %s %d", &temp.jour, temp.mois, &temp.annee); return temp;

Exercice 1.2 Définition de nom de type

Ecrire la déclaration d'un type Fiche permettant de mémoriser les informations sur un étudiant : • son nom ; • son prenom ; • sa date de Naissance, de type Date ; • sa formation, représentée par deux lettres ; • s'il est redoublant ou non ; • son groupe de TD, représenté par un entier ; • ses notes, représentées par un tableau note d'au plus MAXNOTES rels; • un entier nbnotes indiquant le nombre de notes valides dans le tableau note.

Exercice 4.2 Fiche

• Ecrire les fonctions LireFiche et EcrireFiche de lecture et d'écriture d'une Fiche. Aucune note n'est entr´ee par la fonction LireFiche. • Ecrire une fonction AjouteNote qui reçoit une Fiche et ajoute une note, si cela est possible. • Ecrire une fonction Moyenne qui reçoit une Fiche et renvoie, si cela est possible, la moyenne des notes de l'étudiant. #include #define MAXNOTES 10 typedef struct { int jour; char mois[10]; int annee; } DATE; typedef struct { char nom[10]; char prenom[10];

DATE date_naissance;

char info[3]; char redoublant; int groupe; float notes[MAXNOTES]; char nom_module[MAXNOTES][30]; int nbnotes; } FICHE;

FICHE LireFiche(void);

void EcrireFiche(FICHE);

FICHE AjouteNote(FICHE);

int main(void) {

FICHE etd_fiche;

etd_fiche = LireFiche(); etd_fiche = AjouteNote(etd_fiche); etd_fiche = AjouteNote(etd_fiche);

EcrireFiche(etd_fiche);

return 0;

FICHE AjouteNote(FICHE fiche) {

if (fiche.nbnotes < MAXNOTES) { printf("Entrez le nom du module: ? "); scanf(" %[^\n]s", fiche.nom_module[fiche.nbnotes]); printf("Entrez sa notes pour ce module: ? "); scanf("%f", &fiche.notes[fiche.nbnotes]); fiche.nbnotes++; else printf("\n <---- c'est pas possible d'ajuter une note ---->\n"); return fiche;

FICHE LireFiche(void) {

FICHE fiche;

printf("Entrez le nom de l'etudiant:? "); scanf(" %s", fiche.nom); printf("Son prenom:? "); scanf(" %s", fiche.prenom); printf("Sa date de Naissance: (dd mm yyyy) ? "); scanf("%d %s %d", &fiche.date_naissance.jour, fiche.date_naissance.mois, &fiche.date_naiss printf("Sa formation: ? "); scanf(" %s", fiche.info); printf("Il est redoublant ou non (O:Oui, N:Non) ? "); scanf(" %c", &fiche.redoublant); printf("Son groupe: ?"); scanf("%d", &fiche.groupe); fiche.nbnotes=0; return fiche; void EcrireFiche(FICHE fiche) { int i; printf("La fiche de %s, %s\n", fiche.nom, fiche.prenom); printf("\tSa date de Naissance est le %d %s %d\n", fiche.date_naissance.jour, fiche.date_naissance.mois, fiche.date_naissance.annee); printf("\tSa formation: %s\n", fiche.info); printf("\tSon groupe: %d\n", fiche.groupe); printf("\tIl est redoublant: %s\n", (fiche.redoublant == 'O')? "Oui":"Non"); printf("\nSes notes: \n"); printf("\t Nom de Module Note\n"); for (i=0; iExercice 2. Polynomes • Définir un type Polynomes permettant de manipuler des polynomes à une variable, à coefficients réels de degré inférieur à DGMAX. • Ecrire une fonction LirePolynome effectuant la saisie monome par monome d'un polynome. Pour chaque monome, on indiquera le degré puis le coefficient. #include #define MAXDEGREE 101 #define MAX(x, y) (x > y ? x : y) typedef struct { int degree; int coef[MAXDEGREE]; } polynomial; typedef struct { int coef; int expo; } term; polynomial add_poly(polynomial, polynomial); polynomial mul_poly(polynomial, polynomial); polynomial mul_poly_by_term(polynomial, term); void display_poly(polynomial, char); polynomial read_poly(); int main(void) { polynomial a, b, c; int i; printf("Enter the terms of the first polynomial:\n"); a = read_poly(); printf("Enter the terms of the second polynomial:\n"); b = read_poly(); display_poly(a, 'a'); display_poly(b, 'b'); c = add_poly(a, b); printf("\nPolynomial c = a + b\n"); display_poly(c, 'c'); c = mul_poly(a, b); printf("\nPolynomial c = a * b\n"); display_poly(c, 'c'); return 0; polynomial mul_poly_by_term(polynomial a, term t) { int i; for (i=a.degree; i >= 0; i--) { a.coef[i + t.expo] = a.coef[i] * t.coef; if (t.expo) a.coef[i] = 0; a.degree = a.degree + t.expo; return a; polynomial mul_poly(polynomial a, polynomial b) { polynomial c = {0,0}; term t; int i; for (i=a.degree; i >= 0; i--) { t.coef = a.coef[i]; t.expo=i; c = add_poly(c, mul_poly_by_term(b, t)); return c; polynomial add_poly(polynomial a, polynomial b) { polynomial c; int i; c.degree = MAX(a.degree, b.degree); for (i=c.degree; i >= 0; i--) c.coef[i] = a.coef[i] + b.coef[i]; return c; polynomial read_poly() { polynomial a={0,0}; /* Initialize the polynomial to zero */ int i, nb_terms, expo, coef, max_expo=0; do { printf("Enter number of terms in your polynomial (a positive integer): "); scanf("%d", &nb_terms); if (nb_terms <= 0) printf("Invalide value assigend to nb_terms, another trail\n"); } while (nb_terms <= 0); for (i=0; i < nb_terms; i++) { printf("Enter the exponent (positive integer) :"); scanf("%d", &expo); if (expo < 0) { printf("Invalid exponent ...Enter a valid exponent\n"); i--; continue; if (expo > max_expo) max_expo = expo; printf("Enter the coefficient: "); scanf("%d", &coef); a.coef[expo] += coef; /* Accumulate similar terms */ a.degree = max_expo; return a; void display_poly(polynomial a, char poly_name) { int i; printf("\nPolynomail %c = ", poly_name); for(i = a.degree; i > 0; i--) if (a.coef[i]) printf("%dx^%d + ", a.coef[i], i); if (a.coef[i]) printf("%d", a.coef[i]); else printf("0"); printf("\n");

Exercice 3. Rationnel

• Définir un type Rationnel composé de deux entiers: un numérateur et un dénominateur. • Ecrire une fonction LireRationnel qui effectue la lecture d'un rationnel valide. Le rationnel mémorisé aura été simplifié. • Ecrire une fonction SommeRationnel qui retourne la somme des deux rationnels valides passés en argument. Le rationnel retourné aura été simplifié. #include typedef struct { int num; int denom; } Rationnel;

Rationnel LireRationnel(char *str);

Rationnel Simplifie(Rationnel);

Rationnel SommeRationnel(Rationnel, Rationnel);

void AfficheRationnel(Rationnel); int main(void) { Rationnel a = LireRationnel("1iere"), b = LireRationnel("2ieme");

Rationnel c = SommeRationnel(a, b);

printf("\nLa somme des deux rationnels est:\n\t\t"); AfficheRationnel(a); printf("+ "); AfficheRationnel(b); printf("= "); AfficheRationnel(c) printf("\n\n"); return 0; Rationnel SommeRationnel(Rationnel x, Rationnel y) { Rationnel z = {x.num * y.denom + x.denom * y.num, x.denom * y.denom}; return Simplifie(z); void AfficheRationnel(Rationnel x) { printf("%d/%d ", x.num, x.denom);

Rationnel LireRationnel(char *str) {

Rationnel x;

printf("\nLire le %s rationnel :\n", str); printf("\tEntrez le numerateur (une entier) :"); scanf("%d", &x.num); do { printf("\tEntrez le denominateur (une entier != 0) :"); scanf("%d", &x.denom); if (x.denom == 0) printf("\t\t <---- Le denominateur ( = %d) n'est pas valide ----> \n", x.denom); } while(x.denom == 0); return Simplifie(x);

Rationnel Simplifie(Rationnel x) {

int diviseur=2; while ((x.num >= diviseur) && (x.denom >= diviseur)) { if ((x.num % diviseur == 0) && (x.denom % diviseur == 0)) { x.num /= diviseur; x.denom /= diviseur; else diviseur++; return x;quotesdbs_dbs21.pdfusesText_27