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.
Créer un site internet gratuit avec E-monsite.com
- Signaler un contenu illicite
- Voir d'autres sites dans la catégorie Programmation
Comment créer un site -
Videos Droles
- Clips musique
- Cours création de site web