23
TP C : TABLEAUX Exo1 : Maximum et minimum des valeurs d'un tableau Ecrire un programme qui détermine la plus grande et la plus petite valeur dans un tableau d'entiers A. Afficher ensuite la valeur et la position du maximum et du minimum. Si le tableau contient plusieurs maxima ou minima, le programme retiendra la position du premier maximum ou minimum rencontré. #include <stdio.h> main() { /* Déclarations */ int A[50]; /* tableau donné */ int N; /* dimension */ int I; /* indice courant */ int MIN; /* position du minimum */ int MAX; /* position du maximum */ /* Saisie des données */ printf("Dimension du tableau (max.50) : "); scanf("%d", &N ); for (I=0; I<N; I++) { printf("Element %d : ", I); scanf("%d", &A[I]); } /* Affichage du tableau */ printf("Tableau donne :\n"); for (I=0; I<N; I++) printf("%d ", A[I]); printf("\n"); /* Recherche du maximum et du minimum */ MIN=0; MAX=0; for (I=0; I<N; I++) { if(A[I]>A[MAX]) MAX=I; if(A[I]<A[MIN]) MIN=I; } /* Edition du résultat */ printf("Position du minimum : %d\n", MIN); printf("Position du maximum : %d\n", MAX); printf("Valeur du minimum : %d\n", A[MIN]); printf("Valeur du maximum : %d\n", A[MAX]); return 0; } Correction TP 04 12 2006 1

Programmation C

Embed Size (px)

DESCRIPTION

Programmation C

Citation preview

TP C

TP C:

TABLEAUXExo1: Maximum et minimum des valeurs d'un tableauEcrire un programme qui dtermine la plus grande et la plus petite valeur dans un tableau d'entiers A. Afficher ensuite la valeur et la position du maximum et du minimum. Si le tableau contient plusieurs maxima ou minima, le programme retiendra la position du premier maximum ou minimum rencontr.

#include

main()

{

/* Dclarations */

int A[50]; /* tableau donn */

int N; /* dimension */

int I; /* indice courant */

int MIN; /* position du minimum */

int MAX; /* position du maximum */

/* Saisie des donnes */

printf("Dimension du tableau (max.50) : ");

scanf("%d", &N ); for (I=0; I=log2N.Rappel:

Dfinition

Un nombre X lev une puissance n donne un rsultat Y : y = xn.

La puissance n reprsente le logarithme de Y en base X.

Exemples

103 = 1000, 24 = 16.

Le logarithme de 1000 en base 10 est 3.

Le logarithme de 16 en base 2 est 4. ( log 2 2n = nLa recherche dichotomique devient extrmement avantageuse pour la recherche dans de grands tableaux (tris) : L'avantage de la recherche dichotomique par rapport la recherche squentielle monte alors exponentiellement avec la grandeur du tableau trier.

Exemple:

Lors de la recherche dans un tableau de 1024 lments:

- le pire des cas pour la recherche squentielle peut entraner 1024 excutions de la boucle.

- le pire des cas pour la recherche dichotomique peut entraner 10 excutions de la boucle.

Lors de la recherche dans un tableau de 1 048 576 lments:

- le pire des cas pour la recherche squentielle peut entraner 1 048 576 excutions de la boucle.

- le pire des cas pour la recherche dichotomique peut entraner 20 excutions de la boucle.

Exo 5: Tri par slection du maximum Problme: Classer les lments d'un tableau A par ordre dcroissant. Mthode: Parcourir le tableau de gauche droite l'aide de l'indice I. Pour chaque lment A[I] du tableau, dterminer la position PMAX du (premier) maximum droite de A[I] et changer A[I] et A[PMAX].

Exemple:

#include

main()

{

/* Dclarations */

int A[50]; /* tableau donn */

int N; /* dimension */

int I; /* rang partir duquel A n'est pas tri */

int J; /* indice courant */

int TEMP; /* pour la permutation */

int PMAX; /* indique la position de l'lment */

/* maximal droite de A[I] */

/* Saisie des donnes */

printf("Dimension du tableau (max.50) : ");

scanf("%d", &N );

for (J=0; J