1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
| #include<stdio.h>
#include<stdlib.h>
#include"termine.h"
#define NB_ELEM_MAX 100
/********************************************************************/
/* Exercices sur les Tableaux Strohecker guillaume le 11/03/2008 */
/********************************************************************/
/* Sujet : Ecrire une fonction qui prends en parametre
un tableau d'entiers et son nombre d'élément, et qui
affiche les éléments d'indice impair. */
void afficheImpair(int tab[NB_ELEM_MAX], int taille){
int i;
for (i = 1; i < taille; i += 2)
printf("tab[%d] = %d\n",i , tab[i]);
}
/* Sujet : Ecrire une fonction qui prends en parametre
un tableau d'entiers etcalcule le maximum de tous
les éléments du tableau */
int max(int tab[NB_ELEM_MAX], int taille){
int i;
int maxi = tab[0];
for (i = 1; i < taille; i++){
if (maxi < tab[i])
maxi = tab[i];
}
return maxi;
}
/* Sujet : Ecrie une fonction qui prend en parametre un tableau
d'entiers et qui calcule la somme des éléments */
int somme(int tab[NB_ELEM_MAX], int taille){
int i;
int somme = tab[0];
for (i = 1; i < taille; i++)
somme += tab[i];
return somme;
}
/* Sujet : Ecrire une fonction qui prend en parametre un tableau
d'entiers, son nombre d'élements n et un entier m, et qui
retourn 1 s'il y a un element égal à m dans la tableau, 0
sinon, le type de retour de la fonction doit etre char */
char recherche(int tab[NB_ELEM_MAX], int taille, int m){
int i;
for (i = 1; i < taille; i++){
if(tab[i] == m)
return 1;
}
return 0;
}
/* Sujet : Ecrire une fonction qui prend en parametre un tableau
de taille NB_MAX, son nombres d'élément n < NB_MAX, un entier
i <=n et un entier m. la fonction doit insérer m en position i
dans le tableau sans supprimer d'élémnt */
void insertion(int tab[NB_ELEM_MAX], int taille, int i, int m){
int j = taille;
while (j > i){
tab[j] = tab[j-1];
j--;
}
tab[i] = m;
}
/* Sujet :
a) Ecrire une fonction qui initialise chaque élément tab[i]
passé en parametre à la valeur 2 puissace i */
void initialisation(unsigned int tab[NB_ELEM_MAX], int taille){
int i = 1;
tab[0] = 1;
while ( i < taille){
tab[i] = tab[i - 1] * 2;
i++;
}
}
/* b) En utilisant a) écrire une fonction qui lit au clavier des caractères
égaux à 0 ou 1 et calcule le nombre que ses chiffre représente en binaire. on pourra faire afficher en base 10
le resultat */
void clavier(unsigned int tab[NB_ELEM_MAX], int taille){
char c;
int choix, i = 0;
unsigned int n;
initialisation(tab, taille);
while(!0){
choix = 0;
puts("Entrer 0 ou 1 :");
while(!choix){
c = getchar();
choix = ((c == '0') || (c == '1'));
}
if (c == '1')
n += tab[i];
i++;
printf("Valeur courante : %d\n", n);
}
}
/* FONCTION DE SAISIE DE TABLEAU */
int SaisieTableau(int tab[NB_ELEM_MAX]){
int taille, i;
puts("Saisir le nombre d'elements du tableau :");
scanf("%d", &taille);
if(taille > NB_ELEM_MAX)
termine("Erreur !!! Le tableau est trop petit");
puts("Saisir les elements du tableau");
for(i = 0; i < taille; i++)
scanf("%d", &tab[i]);
return taille;
}
/* FONCTION QUI AFFICHE LE TABLEAU */
void affiche(int tab[NB_ELEM_MAX], int taille){
int i;
for (i = 0; i < taille; i++)
printf("tab[%d] = %d\n",i , tab[i]);
}
/* PROGRAMME TEST */
int main(void){
int taille,tab[NB_ELEM_MAX], valeur_max, valeur_totale;
int m = 7;
taille = SaisieTableau(tab);
afficheImpair(tab, taille);
printf("La valeur totale des elements du tableau est : %d\n", valeur_totale=somme(tab, taille));
printf("La plus grande valeur du tableau est : %d\n", valeur_max=max(tab,taille));
if(recherche(tab, taille, m))
puts("Trouve!");
else{
puts("Pas Trouve!");
insertion(tab, taille, 1, m);
affiche(tab, taille);
}
puts("initialisation.......");
initialisation(tab, taille);
affiche(tab, taille);
clavier(tab, taille);
return 0;
} |
Partager