Exercice1
#include<stdio.h>
typedef struct{
char nom[15];
char Pr[20];
char adr[35];
int num;
float solde;
}
Client;
Client T[50];
int i,NC;
float STA,MOY;
int main()
{
printf("programme de gestion d'une banque\n");
printf("entrer le nombre de client\n");
scanf("%d",&NC);
for(i=0;i<NC;i++)
{
printf("Informations du client numero %d\n",i);
printf("entrer le nom du client\n");
scanf("%s",T[i].nom);
printf("entrer le prenom du client\n");
scanf("%s",T[i].Pr);
printf("entrer le numero du client\n");
scanf("%d",&T[i].num);
printf("entrer l adresse du client\n");
scanf("%s",T[i].adr);
printf("entrer le solde du client\n");
scanf("%f",&T[i].solde);
}
STA=0;
for(i=0;i<NC;i++)
STA=STA+T[i].solde;
MOY=STA/NC;
printf("la somme totale est d'argent est:%f\n", STA);
printf("la moyenne d'argent est :%f\n",MOY);
for(i=0;i<NC;i++)
{
printf("information du client numero %d\n",i);
printf("nom %s\n",T[i].nom);
printf("prenom %s\n",T[i].Pr);
printf("adresse %d\n",T[i].adr);
printf("numero de compte %d\n",T[i].num);
printf("solde %f\n",T[i].solde);
}
}
Exercice 2
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <ctype.h>
int main()
{
float somme ;
int i ;
typedef struct
{
char Nom[20] ;
char Prenom[30] ;
float Note[3] ;
float moyenne ;}etudiant ;
etudiant eleve ;
printf("entrer un nom") ;
scanf("%s",eleve.Nom) ;
printf("entrer un prenom") ;
scanf("%s", eleve.Prenom) ;
printf("entrer les notes");
somme=0 ;
for(i=0 ;i<3 ;i++)
{
scanf ("%f",&eleve.Note[i]) ;
somme+=eleve.Note[i] ;
}
i=0 ;
while(eleve.Nom[i]!='\0')
{
eleve.Nom[i]=toupper(eleve.Nom[i]) ;
i++ ;
}
eleve.moyenne=somme/3 ;
printf("Nom=%s\n Prenom=%s\n",eleve.Nom,eleve.Prenom);
printf("Notes");
for(i=0 ;i<3 ;i++)
printf("%6.2f",eleve.Note[i]);
printf("\n Moyenne:%6.2f\n",eleve.moyenne);
return 0 ;
}
Exercice 3
#include<stdio.h>
typedef struct
{
char type;
int reference;
float prix;
int quantite;
}
Produit;
void Saisie(Produit *p)
{
printf("Entrez le code du produit : \n");
scanf("%c", &p->type);
printf("Entrez la référence : \n");
scanf("%d", &p->reference);
printf("Entrez le prix : \n");
scanf("%f", &p->prix);
printf("Entrez la quantité : \n");
scanf("%d", &p->quantite);
}
void Affichage(Produit *p)
{
printf("Produit ");
switch (p->type)
{
case '1':
printf("CM\n");
break;
case '2':
printf("Pr\n");
break;
case '3':
printf("BM\n");
break;
case '4':
printf("CG\n");
break;
default:
printf("inconnue\n");
}
printf("Référence : %d\n",p->reference);
printf("Prix : %f\n",p->prix);
printf("Quantité : %d\n",p->quantite);
}
void Commande(Produit *p)
{
int qte;
printf("Entrez la quantité commandée : ");
scanf("%d", &qte);
printf("Valeur de la commande : %.2f\n", p->prix*qte);
}
int main()
{
Produit p;
Saisie(&p);
printf("\nRécapitulatif de la commande\n");
Affichage(&p);
Commande(&p);
}
Exercice 4
#include <stdio.h>
#include <math.h>
typedef struct
{
int x;
int y;
int z;} vecteur;
void saisir(vecteur*A)
{
printf("donner x y et z\n");
scanf("\n%d%d%d",&A->x,&A->y,&A->z);
}
void affiche(vecteur*A)
{
printf("\n%d %d %d",A->x,A->y,A->z);
}
vecteur*somme(vecteur*A,vecteur*B)
{
A->x+=(B->x);
A->y+=(B->y);
A->z+=(B->z);
return A;
}
int produit(vecteur*A,vecteur*B)
{
int ps;
ps=(A->x)*(B->x)+(A->y)*(B->y)+(A->z)*(B->z);
return(ps);
}
int main(){
vecteur u,v;
int P;
printf("saisir u\n");
saisir(&u);
printf("saisir v\n");
saisir(&v);
printf("affiche u");
affiche(&u);
printf("\naffiche v");
affiche(&v);
printf("\nle produit de u et v");
P=produit(&u,&v);
printf("%d",P);
printf("\nla somme de u et v");
affiche(somme(&u,&v));
return 0;
}
Solution TD 1
Structures de données
Exercice1
#include<stdio.h>
int main()
{
float TabNotes[3],*ptr,Somme=0;
int i;
ptr=TabNotes;
printf("entrez dix notes : ");
for(i=0;i<3;i++)
{
scanf("%f",ptr);
Somme+=*ptr;
ptr++;}
printf("Moyenne:%6.2f\n",Somme/3);
return 0;
}
Exercice2
#include <stdio.h>
int main()
{
/* Déclarations */
int A[100], B[50]; /* tableaux */
int N, M; /* dimensions des tableaux */
int I; /* indice courant */
/* Saisie des données */
printf("Dimension du tableau A (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Elément %d : ", I);
scanf("%d", A+I);
}
printf("Dimension du tableau B (max.50) : ");
scanf("%d", &M );
for (I=0; I<M; I++)
{
printf("Elément %d : ", I);
scanf("%d", B+I);
}
/* Affichage des tableaux */
printf("Tableau donné A :\n");
for (I=0; I<N; I++)
printf("%d ", *(A+I));
printf("\n");
printf("Tableau donné B :\n");
for (I=0; I<M; I++)
printf("%d ", *(B+I));
printf("\n");
/* Copie de B à la fin de A */
for (I=0; I<M; I++)
*(A+N+I) = *(B+I);
/* Edition du résultat */
printf("Tableau résultat A :\n");
for (I=0; I<N+M; I++)
printf("%d ", *(A+I));
printf("\n");
return 0;
}
Exercice3
#include<stdlib.h>
#include<stdio.h>
int main()
{
int N,I;
printf("donner votre dimension N \n");
scanf("%d",&N);
int T[N],V[N],W[N];
printf("lecture du vecteur T\n");
for(I=0;I<N;I++)
{
printf("donner l elt %d \n",I);
scanf("%d",&T[I]);}
printf("lecture du vecteur V\n");
for(I=0;I<N;I++)
{
printf("donner l elt %d \n",I);
scanf("%d",&V[I]);}
//calcul du produit vectoriel
for(I=0;I<N-2;I++)
W[I]=T[I+1]*V[I+2]-T[I+2]*V[I+1];
W[N-2]=T[N-1]*V[0]-T[0]*V[N-1];
W[N-1]=T[0]*V[1]-T[1]*V[0];
printf("Voici votre vecteur W =TxV\n");
for(I=0;I<N;I++)
printf("%d |",W[I]);
printf("\n");
system("PAUSE");
return(0);
}
Exercice4
1-Formalisme tableau
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char T[30], c;
printf("\n Indroduire un texte:");
for(i=0;((c=getchar())!=' ');i++)
{
T[i]=c;
}
printf("\n le nouveau texte est:");
for(i=i-1;i>=0;i--)
{
printf("%c",T[i]);
}
printf("\n");
system("PAUSE");
return 0;
}
2-Formalisme pointeur
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *T,c;
int i;
T=(char*)malloc(30);
printf("\n Indroduire un texte:");
for(i=0;((c=getchar())!='\0 ');i++)
*(T+i)=c;
printf("\ Le nouveau texte est:");
for(i=i-1;i>=0;i--)
{
printf("%c",*(T+i));}
printf("\n");
free(T);
system("PAUSE");
return 0;
}
Exercice6
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int heures, minutes, secondes;
void lecture(int *h, int *m, int *s);
void print_heure();
void set_heure(int *h, int *m, int *s);
void tick();
int main()
{int N,h,m,s;
lecture(&h,&m,&s);
set_heure(&h,&m,&s);
printf("avant tick\n");
print_heure();
tick();
printf("apres tick\n");
print_heure();
printf("FIN \n");
system("PAUSE");
return 0;
}
void lecture(int *h, int *m, int *s)
{
do{printf("donner trois entiers h<24 m<=59 et s<=59\n");
scanf("%d%d%d",h,m,s);}
while((*h>=24)||(*m>59)||(*s>59));
}
void print_heure()
{
printf("Il est %d heure(s) %d minute(s) %d seconde(s)\n",heures,minutes,secondes);
}
void tick()
{
if(secondes<59)
secondes=secondes+1;
if((secondes==59)&&(minutes<59))
minutes=minutes+1;
if((secondes==59)&&(minutes=59))
heures=heures+1;
}
void set_heure(int *h, int *m, int *s)
{
heures=*h;
minutes=*m;
secondes=*s;
}
Structures de données
Exercice1
#include<stdio.h>
int main()
{
float TabNotes[3],*ptr,Somme=0;
int i;
ptr=TabNotes;
printf("entrez dix notes : ");
for(i=0;i<3;i++)
{
scanf("%f",ptr);
Somme+=*ptr;
ptr++;}
printf("Moyenne:%6.2f\n",Somme/3);
return 0;
}
Exercice2
#include <stdio.h>
int main()
{
/* Déclarations */
int A[100], B[50]; /* tableaux */
int N, M; /* dimensions des tableaux */
int I; /* indice courant */
/* Saisie des données */
printf("Dimension du tableau A (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Elément %d : ", I);
scanf("%d", A+I);
}
printf("Dimension du tableau B (max.50) : ");
scanf("%d", &M );
for (I=0; I<M; I++)
{
printf("Elément %d : ", I);
scanf("%d", B+I);
}
/* Affichage des tableaux */
printf("Tableau donné A :\n");
for (I=0; I<N; I++)
printf("%d ", *(A+I));
printf("\n");
printf("Tableau donné B :\n");
for (I=0; I<M; I++)
printf("%d ", *(B+I));
printf("\n");
/* Copie de B à la fin de A */
for (I=0; I<M; I++)
*(A+N+I) = *(B+I);
/* Edition du résultat */
printf("Tableau résultat A :\n");
for (I=0; I<N+M; I++)
printf("%d ", *(A+I));
printf("\n");
return 0;
}
Exercice3
#include<stdlib.h>
#include<stdio.h>
int main()
{
int N,I;
printf("donner votre dimension N \n");
scanf("%d",&N);
int T[N],V[N],W[N];
printf("lecture du vecteur T\n");
for(I=0;I<N;I++)
{
printf("donner l elt %d \n",I);
scanf("%d",&T[I]);}
printf("lecture du vecteur V\n");
for(I=0;I<N;I++)
{
printf("donner l elt %d \n",I);
scanf("%d",&V[I]);}
//calcul du produit vectoriel
for(I=0;I<N-2;I++)
W[I]=T[I+1]*V[I+2]-T[I+2]*V[I+1];
W[N-2]=T[N-1]*V[0]-T[0]*V[N-1];
W[N-1]=T[0]*V[1]-T[1]*V[0];
printf("Voici votre vecteur W =TxV\n");
for(I=0;I<N;I++)
printf("%d |",W[I]);
printf("\n");
system("PAUSE");
return(0);
}
Exercice4
1-Formalisme tableau
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char T[30], c;
printf("\n Indroduire un texte:");
for(i=0;((c=getchar())!=' ');i++)
{
T[i]=c;
}
printf("\n le nouveau texte est:");
for(i=i-1;i>=0;i--)
{
printf("%c",T[i]);
}
printf("\n");
system("PAUSE");
return 0;
}
2-Formalisme pointeur
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *T,c;
int i;
T=(char*)malloc(30);
printf("\n Indroduire un texte:");
for(i=0;((c=getchar())!='\0 ');i++)
*(T+i)=c;
printf("\ Le nouveau texte est:");
for(i=i-1;i>=0;i--)
{
printf("%c",*(T+i));}
printf("\n");
free(T);
system("PAUSE");
return 0;
}
Exercice6
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int heures, minutes, secondes;
void lecture(int *h, int *m, int *s);
void print_heure();
void set_heure(int *h, int *m, int *s);
void tick();
int main()
{int N,h,m,s;
lecture(&h,&m,&s);
set_heure(&h,&m,&s);
printf("avant tick\n");
print_heure();
tick();
printf("apres tick\n");
print_heure();
printf("FIN \n");
system("PAUSE");
return 0;
}
void lecture(int *h, int *m, int *s)
{
do{printf("donner trois entiers h<24 m<=59 et s<=59\n");
scanf("%d%d%d",h,m,s);}
while((*h>=24)||(*m>59)||(*s>59));
}
void print_heure()
{
printf("Il est %d heure(s) %d minute(s) %d seconde(s)\n",heures,minutes,secondes);
}
void tick()
{
if(secondes<59)
secondes=secondes+1;
if((secondes==59)&&(minutes<59))
minutes=minutes+1;
if((secondes==59)&&(minutes=59))
heures=heures+1;
}
void set_heure(int *h, int *m, int *s)
{
heures=*h;
minutes=*m;
secondes=*s;
}
structure de données: TD : N°2
Exercice 1:
Dans une banque le client est connu par :
Son nom ;
Son prénom ;
Son adresse
Son numéro de compte
Son solde
1. Écrire la structure client
2. Écrire un programme permettant :
D’entrer les informations de tous les clients de la banque (on considère NC : nombre de client)
De faire la somme d’argents totale STA et la moyenne d’argent Moy par client
D’afficher les données et les résultats à l’écran
Exercice 2 :
crire une structure Étudiant qui contient les informations suivantes.
Le nom,
Le prénom,
Et ses notes.
Écrire un programme permettant :
1. Transformer le nom en majuscules
2. Calculer la moyenne des notes
Exercice 3:
Un grossiste en composants électroniques vend quatre types de produits :
• Des cartes mères (code 1) • Des processeurs (code 2) ;
• Des barettes mémoire (code 3) ;
• Des cartes graphiques (code 4).
Chaque produit possède une référence (qui est un nombre entier), un prix en euros et des quantités disponibles.
a) Définir une structure Produit qui code un produit.
b)crire une fonction de saisie et d’affichage des données d’un produit.
c) Écrire une fonction qui permet à un utilisateur de saisir une commande d’un produit. L’utilisateur saisit les quantités commandées et les données du produit. L’ordinateur affiche toutes les données de la commande, y compris le prix.
2016/2017 Structures de données
Exercice 4:
Écrire les fonctions qui, étant donnés deux vecteurs u et v (ayant 3 coordonnées chacun stockées dans une structure) permettant :
1. La saisie d’un vecteur
2. L’affichage d’un vecteur
3. La somme de u et v
4. Le produit scalaire de u et v
5. Le produit vectoriel de u par v
6. Écrire un programme de test
Structures de données:
Exercice 1:
Ecrire un programme qui calcule la moyenne de dix notes. Elles sont rangées dans un tableau. L’accès aux éléments du tableaux utilise les pointeurs.
Exercice 2 :
Ecrire un programme en langage C qui lit deux tableaux d'entiers A et B et leurs dimensions N et M au clavier et qui ajoute les éléments de B à la fin de A. Utiliser deux pointeurs PA et PB pour le transfert et afficher le tableau résultant A.
Exercice 3 :
Ecrivez un programme qui calcule le produit vectoriel de deux vecteurs T[N] et V[N]
Exercice 4 :
Ecrire un programme qui lit au clavier un mot (30 caractères) et qui l'affiche "à l'envers".
1. En utilisant le « formalisme tableau » ;
2. En utilisant le « formalisme pointeur ».
Exercice 5:
Écrire un programme comportant :
1. La déclaration de 3 variables globales entières heures, minutes, secondes ;
2. Une fonction print_heure sans argument qui imprimera le message :
Il est ... heure(s) ... minute(s) ... seconde(s)
3. Une fonction set_heure recevant comme arguments trois paramètres de type entiers h, m et s passés par adresse, dont les valeurs seront affectées respectivement à heures, minutes et secondes ;
4. Une fonction tick qui incrémentera l’heure d’une seconde ;
5. Une fonction lecture recevant comme arguments trois paramètres de type entiers h, m et s passés par adresse. Dans cette fonction on lit h, m et s.
6. Une fonction main qui appellera les fonctions print_heure, set_heure et tick.
Inscription à :
Commentaires (Atom)
-
Structures de données: Exercice 1: Ecrire un programme qui calcule la moye...
-
Exercice1 #include<stdio.h> typedef struct{ char nom[15]; char Pr[20]; char adr[35]; int num; float sol...