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;
}
Aucun commentaire:
Enregistrer un commentaire