Algorithmique et Structures de Données 2 - TP N°4 : LES POINTEURS

Page 1 sur 3Lecteur de document UniversityLib

Algorithmique et Structures de Données 2 - TP N°4 : LES POINTEURS

Programming, Data Structures, C Language · lab

Voir tous les documents en programmation

Algorithmique et Structures de Donn es 2

TP N 4 : LES POINTEURS

Niveau : 1

re

ann e BC

Ann e universitaire : 2019/2020

Exercice 1

  • Cr er un programme C d clarant deux pointeurs p1 et p2 sur des r els.
  • Utiliser malloc pour r server lespace m moire.
  • Affecter les valeurs -67.3 et 345.89 aux emplacements point s par p1 et p2.
  • Afficher la valeur des pointeurs et des objets point s.
  • Lib rer lespace m moire r serv .

Important : Dans la suite, il est obligatoire dutiliser la syntaxe des pointeurs sur les

tableaux

Exercice 2

1- crire la fonction SaisirTab(int *tab, int n) qui permet de saisir n entiers et de les stoker

dans un tableau tab.

2- crire la fonction PlusSouvent(int *tab, int n) qui d termine l l ment qui apparait le

plus souvent dans le tableau tab.

3- crire la fonction AfficherTab(int *tab, int n) qui permet laffichage des n entiers

contenus dans un tableau tab.

4- En utilisant les fonctions d j d finies, crire un programme principal main() qui permet

de saisir m entiers dans un tableau T et dafficher le tableau et l l ment qui appara t le

plus souvent dans le tableau.

Exercice 3 (DS 2018)

Publicité

Soit le programme C suivant qui consiste cr er un tableau dynamique dentiers, et

initialiser chaque case par la valeur double de son indice (la case 0 contient 0, la case 1

contient 2, .., la case N-1 contient (N*2)) :

include <stdio.h>

include <stdlib.h>

main() {

int T ;

int i;

printf("Saisir la taille du tableau : ");

scanf("%d", N);

T = (int*) malloc(sizeof(int));

for(i=1; i<N;i++)

T = i*2

}

Questions

1. Corriger toutes les erreurs du programme.

2. On suppose que lutilisateur a saisi 8 comme taille du tableau T, et que linitialisation a t

faite comme indiqu e la question 1.

0 2 4 6 8 10 12 14

0

1

Publicité

2

3

4

5

6

7

Soient les d clarations suivantes :

int * p,x;

p = T ;

Quelles valeurs ou adresses fournissent les expressions suivantes :

a) x=*T

b) p = p + 6

c) p =p - 2

d) p = p 4

e) p =p + *(T+5)

3. Donner le nouveau contenu du tableau T apr s son initialisation comme indiqu e dans la

question 1, et lex cution des expressions de la question 2. (0.75pt)

Exercice 4 (Structures et pointeurs)

Reprendre lexercice sur les joueurs de rugby (TP9) o le but est de ne pas utiliser la syntaxe

des tableaux mais seule celle des pointeurs. Dans ce sens, le tableau de structures contenant

les 15 joueurs doit tre allou dune mani re dynamique. Par ailleurs, la structure joueur est

Publicité

d finie comme suit :

typedef struct {

int num ;

char *nom ;

char *pren ;

float poids ;

}JOUEUR ;

Les champs nom et pren sont des pointeurs sur des cha nes de caract res qui seront allou es

dune mani re dynamiques. Nous allons supposer que ces cha nes sont de taille 20.

Exercice 5 (DS2013)

Soit les structures suivantes

typedef struct {

int ncin; // le ncin du participant

char nom[20]; // le nom du participant

char prenom [20]; // le prnom du participant

}PARTICIPANT;

typedef struct{

int identifiant ; // identifiant de la comptition

char nom_comp[10]; // le nom de la comptition

PARTICIPANT tab[20]; // un tableau des diffrents participants & la

comptiton

Publicité

}COMPETITION;

1- d velopper la fonction saisir_participant() qui permet de saisir toutes les

informations relatives un participant puis le retourner comme r sultat.

2- soit la structure C qui permet de repr senter un tableau de n comp titions.

D velopper,

en utilisant la fonction pr c dente, la fonction saisir_competitions(COMPETITION*C,

int n) qui permet de saisir toutes les informations relatives aux n comp titions ;

Remarque : il est imp ratif de ne pas utiliser la syntaxe du tableau mais seule la

syntaxe des pointeurs.

3- d velopper la fonction r cursive nbre_comp(COMPETITION*C, int n, int ncin) qui

permet de retourner le nombre de comp titions dans lesquelles le participant, dont

le ncin est donn en param tre, a particip

4- D velopper le main qui permet de :

  • Saisir le nombre total n de comp tition qui ne doit pas tre n gatif.
  • Allouer un tableau pour les comp titions de 2013 qu'on nomme Comp013

comportant n comp titions.

  • Saisir les donn es concernant les n comp titions.
  • Saisir le ncin d'un participant et afficher le nombre de comp titiions dans lesquelles

il a particip .