Université hassan1er
Faculté des Sciences et Techniques
Settat
Série d’exercice N° 2
ALGORITHME & PROGRAMMATION 2
Exercice 1
Donner une fonction qui retourne la moyenne, le minimum et le maximum d’un tableau unidimensionnels ;
Corrigé :
avec pointeur
/*Donner une fonction qui retourne la moyenne, le minimum et le maximum d'un tableau unidimensionnels */
#include<stdio.h>
#include<conio.h>
void fonction(int T[n])
{ int i, n, s=0;
printf("donner la taille du tableaux");
scanf("%d",&n);
for(i=0;i<n;i++)
{printf("t[%d]=",i);
scanf("%d",&t[i]);
}
min=t[0];
max=t[0];
for(i=0;i<n;i++)
{ s=s+t[i];
if(t[i]<min)
{ min=t[i]; }
if(t[i]>max)
{max=t[i]; }
}
moy=s/n;
}
main()
{ int max, min, moy;
Fonction(T[n]);
printf(" le max est %d le min est %d la moyenne est %d",max,min,moy),
getch();
}
Exercice 3 : égalité de tableaux
On veut comparer deux tableaux selon une égalité selon laquelle les deux tableaux T1 et T2 sont égaux si et
seulement si ils ont la même longueur et les éléments de même indice sont égaux, c’est à dire que T1[i] == T2[i]
pour tout indice i.
Ecrire une fonction appelée estEgal qui réalise ce test d’égalité pour des tableaux de type int[].
Corrigé :
Université hassan1er
Faculté des Sciences et Techniques
Settat
{ boolean estEgal (int T1[n] , int T2[m] )
boolean res = true;
int i=0;
if (n != m){ res = false; }
else
{ while (res && (i<n)
If T1[i] ! = T2[i])
{
res=false;
else
i=i+1;
}
}
Return res;
}
Exercice 4 : fonctions sur les tableaux
a- Ecrire une fonction qui cherche si un élément appartient à un tableau de char. Le caractère recherché et
le tableau seront les deux paramètres de la fonction.
b- Ecrire une fonction qui compte le nombre d’occurrences d’un caractère dans un tableau, c’est à dire le
nombre de fois où un élément apparaît dans un tableau de caractères. Le caractère recherché et le
tableau seront les deux paramètres de la fonction.
Corrigé :
a-
#include <stdio.h>
main()
{
/* Déclarations */
int A[50]; /* tableau donné */
int VAL; /* valeur à rechercher */
int POS; /* position de la valeur */
int N; /* dimension */
int I; /* indice courant */
/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Elément %d : ", I);
scanf("%d", &A[I]);
}
printf("Elément à rechercher : ");
scanf("%d", &VAL );
/* Affichage du tableau */
printf("Tableau donné : \n");
for (I=0; I<N; I++)
printf("%d ", A[I]);
Université hassan1er
Faculté des Sciences et Techniques
Settat
printf("\n");
/* Recherche de la position de la valeur */
POS = -1;
for (I=0 ; (I<N)&&(POS==-1) ; I++)
if (A[I]==VAL)
POS=I;
/* Edition du résultat */
if (POS==-1)
printf("La valeur recherchée ne se trouve pas dans le tableau.\n");
else
printf("La valeur %d se trouve à la position %d. \n", VAL, POS);
return 0;
}
B-
int main(){
int i, n, k=0, t[100], x;
printf("saisir la taille du tableau: ");
scanf("%d",&n);
printf("saisir les elements du tableau: \n");
for(i=0;i<n;i++){
printf("t[%d] = ",i);
scanf("%d" ,&t[i]);
}
for(i=0;i<n;i++){
if(t[i]== val{
k++;
} }
printf("l'element%d apparait %d fois!\n",val,k);
}
return 0;
}Exercice 5 : concaténation de tableaux
On appelle concaténation l’opération qui prend deux tableaux et donne un tableau contenant les
éléments du premier tableau, puis, à leur suite, les éléments du second tableau, dans le même ordre.
Ecrire une fonction qui concatène deux tableaux d’entiers.
NB : il faut créer le tableau résultat dans le corps de la fonction.
#include <stdio.h>
int main()
{
int tab1[50], tab2[50], tab3[100];
int nbr1, nbr2, nbr3, i, j;
printf(" Entrez le nombre d'éléments dans le 1er tableau : ");
scanf("%d", &nbr1);
printf(" Entrez les éléments du tableau : ");
for(i = 0; i< nbr1; i++)
{
scanf("%d", &tab1[i]);
Université hassan1er
Faculté des Sciences et Techniques
Settat
}
printf(" Entrez le nombre d'éléments dans le 2éme tableau :");
scanf("%d", &nbr2);
printf(" Entrez les éléments du tableau : ");
for(i = 0; i< nbr2; i++)
{
scanf("%d", &tab2[i]);
}
for(i = 0; i< nbr1; i++)
{
tab3[i] = tab1[i];
}
nbr3 = nbr1 + nbr2;
for(j = nbr1; j < nbr3 ; j++)
{
tab3[j] = tab2[j-nbr1];
}
printf(" Le tableau fusionné est: ");
for(i = 0; i< nbr3; i++)
{
printf("%4d",tab3[i]);
}
return 0;
}
Exercice 6:
Ecrire un programme en C qui permet de calculer la somme des nombres de 1 à n en utilisant la
récursivité?
Exemple d'exécution:
Donnez votre nombre n: 5
La somme est: 15
Corrigé
Int somme(int n)
{ if n==0
Return 0 ;
Else
return somme(n-1)+n ;
}
Exercice 8:
Université hassan1er
Faculté des Sciences et Techniques
Settat
Ecrire un programme qui détermine le plus grand élément dans un tableau en utilisant la récursivité?
Exemple d'exécution:
Donnez la taille du tableau : 3, Donnez les 3 éléments de ce tableau:
Elément 0 : 6 ; Elément 1: 18 ; Elément 2: 45 ;
L'élément le plus grand est : 45