exercice 1

Série 1

 

Énoncé :

 

Exercice 1 :

 

·        Ecrire une fonction qui permet le remplissage d’un tableau d’entier, les valeurs sont entrées au clavier ainsi le nombre d’éléments du tableau.

·        Ecrire une fonction qui fournit la somme des élément positifs et négatifs d’un tableau de n entiers.

·        Ecrire une fonction qui appelle c’est deux fonction.

 

Exercice 2 :

 

·        Etant donné un tableau d’entiers, ecrure une fonction qui détermine le nombre d’éléments strictement supérieurs à la valeur moyenne du tableau.

 

Exercice 3 :

 

·        Ecrire une fonction qui permet d’indiquer si un tableau de 100 entiéers est trié dans l’ordre croissant ou non.

 

Exercice 4 :

 

·        Ecrire une fonction qui permet le remplissage d’un tableau d’entier à deux dimension, les valeurs sont entrées au clavier ainsi le nombre d’éléments du tableau.

·        Ecrire une fonction qui cherche une valeur donnée dans le tableau d’entiers à deux dimension et indique l’indice (ligne et colonne) qand celle-ci existe dans le tableau.

·        Ecrit un programme qui lit une valeur entiére et appelle ces deux fonctions.

 

Exercice 5 :

 

(envoyer une demande on indiquant l’exercice pour qu’on vous l’envois)

 

Correction série 1

 

Correction 1 :

 

·        Remplisage : (1)

 

void  remplir(int tab[],int n)

{

int i ;

printf("donner la taille du tableau") ;

scanf("%d",&n) ;

for(i=0 ;i<n ;i++)

{

printf("donner l’élément %d du tableau",i+1) ;

 /* par exemple pour i=0(i+1=1) donner l’élément 1 du tableau*/

scanf("%d",&tab[i]) ;

}

}

 

·        Somme : (2)

 

void somme(int tab[],int n,int s1,int s2)

/* s1 et s2 représente les valeurs extraient de la fonction qui sera envoyer vers main donc il faut les déclaré ici(paramètres)*/

{

int i ;

s1=s2=0 ; /*initialisation du somme*/

for(i=0 ;i<n ;i++)

if(tab[i]<0)

s2+=tab[i] ; /*s2=s2+tab[i] ;*/

else

s1+=tab[i] ;

}

 

#include<stdio.h>

#include<conio.h>

 

(1)

(2)

 

Void main() /*fonction appelante*/

{

int tab[100] ;  /*écrire les valeur déjà utilisé dans les fonction précédentes*/

int n,s1,s2 ;

remplir(tab,n) ;

somme(tab,n,s1,s2) ;

printf(" la somme des valeur négative est %d",s2) ;

printf(" la somme des valeur positive est %d",s1) ;

}

 

Exécution de la fonction somme :

 

 

 

Supposons qu’on à le tableau suivant :

 

i=0         1             2                3

1

-5

6

-7

 

n=4

S1=s2=0

i=0 -> tab[i]=tab[0]=1>0

S1=1

s1=s1+tab[i]=0+1=1 donc

i=1 -> tab[i]=-5<0

S2=-5

s2=s2+tab[i]=0+tab[i]=-5   donc  

i=2 -> tab[i]=6>0

S1=7

s1=s1+tab[i]=1+6=7 donc

 

i=3 -> tab[i]=-7<0

S2=-12

s2=s2+tab[i]=-5+ (-7)=-12 donc

i=4>4 on sort de la boucle (for).

 

Correction 2 :                              

 

int calcul(int tab[],int n)

{

int i,s,nb ;

float moy ;

s=0 ;

for(i=0 ;i<n ;i++)

s+=tab[i] ;

moy=s/n ;

nb=0 ;

for(i=0 ;i<n ;i++)

if(tab[i]>moy)

nb++ ;

return(nb) ;

}

 

Exécution :

 

Supposons qu’on à le tableau suivant :

 

i=0         1             2                3

1

3

2

5

 

S=0

Pour i=0 -> s+=tab[i](s=s+tab[i]) s=s+tab[0]=0+1=1

S=1

Pour i=1 ->s=s+tab[1]=1+3=4

Ainsi de suite jusqu’à :

S=11

 

 

Moy=s/n=11/4=2.------

 

è for est appliqué seulement sur s car il n’existe pas d’accolades.

 

Nb=0(initialisation)

Pour i=0 ->tab[i]=1<moy (on fait rien)

i=1 -> tab[i]=3>moy don nb=nb+1(nb++)=1

i=2 ->tab[i]=2<moy(on fait rien)

i=3 ->tab[i]=5>moy donc nb=nb+1=1+1=2

return(2)

 

Correction 3 :

 

int trie(int tab[],int n)

{

int i,tri ;

tri=1 ; /*tri est vrai(on suppose que 1 veut dire vrai)*/

for(i=0 ;i<n-1&&tri ;i++)

/* && : Et, çà veut dire que for s’exécute tend que i<n-1 et tri reste vrai*/

if(tab[i]>tab[i+1]) /*la croissance est faut*/

tri=0 ; /*conséquence tri est faux*/

return(tri) ;

}

 

è pour l’exécuter par des exemples, m’envoyer un message décrit la partie voulue comprendre de plus.

 

Correction 4 et 5.

Pour me contacté : mahfoudhighaieth2007@yahoo.fr

Créer un site gratuit avec e-monsite - Signaler un contenu illicite sur ce site