Exercices Corrigés Langace C++ : LES TYPES DE VARIABLES COMPLEXES - LES STRUCTURES
LES DECLARATIONS DE TYPE SYNONYMES: TYPEDEF
Exercice 1:
Afficher la taille mémoire d'un point à l'aide de l'opérateur sizeof.
Exercice 2:
Définir le type typedef char ligne[80];
Déclarer dans main() un pointeur de ligne; lui attribuer de la place en mémoire (pour 5 lignes).
Écrire une fonction qui effectue la saisie de 5 lignes puis une autre qui les affiche.
Les mettre en œuvre dans main().Exercice 1:
Afficher la taille mémoire d'un point à l'aide de l'opérateur sizeof.
Exercice 2:
Définir le type typedef char ligne[80];
Déclarer dans main() un pointeur de ligne; lui attribuer de la place en mémoire (pour 5 lignes).
Écrire une fonction qui effectue la saisie de 5 lignes puis une autre qui les affiche.
STRUCTURES ET TABLEAUX
Exercice 3:
Créer une structure point{int num;float x;float y;}
Saisir 4 points, les ranger dans un tableau puis les afficher.
STRUCTURES ET POINTEURS
Exercice 4:
Reprendre l'exercice 2: Une fonction saisie permet de saisir un point, une fonction affiche permet d'afficher un point.
-------------------------------------------------------------------------------------------------------
Correction
-------------------------------------------------------------------------------------------------------Exercice 1:
#include <stdio.h>
#include <conio.h>
typedef float point[2];
void main()
{
printf("TAILLE D'UN POINT: %2d OCTETS\n",sizeof(point));
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}
Exercice 2:
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
/* cette declaration est normalement dans le fichier µ/
/*d’en-tete typedef char ligne[80]; */
void saisie (ligne *tx)
{
int i;
printf("\n SAISIE DU TEXTE\n\n");
for (i=0;i<5;i++)
{
printf("LIGNE Num %d ",i);
scanf("%s",tx+i); /* saisie de la ligne nøi */
}
}
void affiche(ligne *tx)
{
int i;
printf("\n\n\n AFFICHAGE DU TEXTE\n\n");
for(i=0;i<5;i++)
printf("%s\n",tx+i);
}
void main()
{
ligne *texte;
texte = malloc(sizeof(ligne)*5);/* reserve de la place pour 5 lignes */
saisie(texte);
affiche(texte);
free(texte);
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}
Exercice 3:
#include <stdio.h>
#include <conio.h>
typedef struct {int num;float x;float y;} point;
void main()
{
point p[4];/* tableau de points */
int i;
float xx,yy;
/* saisie */
printf("SAISIE DES POINTS\n\n");
for(i=0;i<4;i++)
{
printf("\nRELEVE N¯%1d\n",i);
p[i].num = i;
printf("X= ");scanf("%f",&xx);
printf("Y= ");scanf("%f",&yy);
p[i].x = xx;p[i].y = yy;
}
/* relecture */
printf("\n\nRELECTURE\n\n");
for(i=0;i<4;i++)
{
printf("\nRELEVE N¯%1d",p[i].num);
printf("\nX= %f",p[i].x);
printf("\nY= %f\n",p[i].y);
}
printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}
Exercice 4:
#include <stdio.h>
#include <conio.h>
void saisie(point *pp,int i)
{
float xx,yy;
printf("\nRELEVE Nø%1d\n",i);
printf("X= ");scanf("%f",&xx);
printf("Y= ");scanf("%f",&yy);
pp->num = i;pp->x = xx;pp->y = yy;
}
void affiche(point *pp)
{
printf("\nRELEVE Nø%1d",pp->num);
printf("\nX= %f",pp->x);
printf("\nY= %f\n",pp->y);
}
void main()
{
point p[4];/* tableau de points */
int i;
printf("SAISIE:\n\n");
for(i=0;i<4;i++)saisie(&p[i],i);
printf("\n\nRELECTURE:\n\n");
for(i=0;i<4;i++)affiche(&p[i]);
printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}
Article plus récent Article plus ancien