0% ont trouvé ce document utile (0 vote)
53 vues3 pages

Algo Et Programmation

Le document présente des exercices de programmation en C, incluant la simulation de fonctions pour déterminer si un nombre est premier, le calcul de la factorielle, et l'évaluation de puissances. Il demande également d'écrire un programme pour gérer un tableau d'entiers et calculer la somme des positifs et le nombre de zéros, ainsi qu'un algorithme pour classifier des triangles selon leurs côtés. Les solutions incluent des exemples de code et des explications sur le fonctionnement des fonctions.

Transféré par

mamadisavadogo95
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues3 pages

Algo Et Programmation

Le document présente des exercices de programmation en C, incluant la simulation de fonctions pour déterminer si un nombre est premier, le calcul de la factorielle, et l'évaluation de puissances. Il demande également d'écrire un programme pour gérer un tableau d'entiers et calculer la somme des positifs et le nombre de zéros, ainsi qu'un algorithme pour classifier des triangles selon leurs côtés. Les solutions incluent des exemples de code et des explications sur le fonctionnement des fonctions.

Transféré par

mamadisavadogo95
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercice 2 (8 points)

On vous demande de simuler l’exécution des fonctions suivantes en utilisant les


valeurs données dans chaque cas:
a) z=9, z=17, en déduire ce que la fonctionA fait. (3points)
int fonctionA(int z){
int i,n; i=1; n=0; Z=9
Je rentre dans la boucle
while(i<=z/2 and n<2){ I=1 , z%i=0, n=1
if( z%i==0) { I=2
I=3, z%i=0, n=2 : je quitte la boucle
n=n+1; }
i=i+1; N= 2 return 1*
-----------
} Z=17
if (n==2) { I=1, z%i=0, n=1
I=2
return 1 ; } I=3
else { ..
I=8 n=1, je quitte la boucle
return 0; } N=1 return 0
}
La simulation fait 2 points

La fonctionA retourne 1 si Z est premier et 0 sinon (1point)


b) m=2, n=2 (2,5points)
int fact(int m, int n){
Fact(2,2) = fact(1,fact(2,1))
int f; Fact(2,1) = fact(1,2)=2x2=4
if (m==1){ Fact(1,fact(2,1)) = fact(1,4)=4*2=8
f=n*2; }
else{ La simulation fait 2,5 points
if (n==1){
f=fact(m-1,2); }
else {
f = fact(m-1,fact(m,m-1)); }
}
return f ;
}
c) r=2, n=4, en déduire ce que fait la fonction mpcist (2,5 points)

float mpcist (float r, int n){


Mpcist(2,4)= mpcist(2,3)*2
if (n=0){ =mpcist(2,2)*2*2
=mpcist(2,1)*2*2*2
return 1;} =mpcist(2,0)*2*2*2*2
=2*2*2*2
else{
La Simulation fait 1,5point
return mpcist(r,n-1)*r -
} La fonctions calcule r puissance n
Ce que fait la fonction (1 point)
}
Exercice 3 (8 points)
a) Écrire un programme qui utilise l’allocation de mémoire pour définir un tableau de
n entiers et le remplit avec une liste d’entiers relatifs. Le programme doit permettre à
l’utilisateur de saisir le nombre d’entiers à lire. Le programme affichera ensuite la
somme des entiers positifs et le nombre d’entiers nuls contenus dans le tableau.
(4 points)
#include<stdlib.h>
#include<stdio.h>
int main(){
int n, i nbp, nbnul;
int *tab
printf(‘’Veuillez entrer le nombre d’entiers à saisir\n’’);
scanf(“%d”,&n);
tab = (int *) malloc(n*sizeof(int));
//Arrêt du programme en d’échec d’allocation
if(tab ==NULL){
printf(“Echec Allocation mémoire\n”);
exit(0);
}
//Saisie des entiers par l’utilisateur
for(i=0 ; i<n ; i++){
printf(“entrer le %e entier”,i+1);
scanf(“%d ”, tab+i)
}

//et calcul des sommes positif et le nombre de zéros


nbp=0, nbnul=0;
for(i=0 ; i<n ; i++){
if (*(tab+i) >0){
nbp= nbp+1; }
else {
if(*(tab+i) ==0){
nbnul = nbnul+1 ; }
}
printf(“ La somme des positifs = %d\n La somme des zéros est %d\n”nbp,nbnul);
return 0;
}

b) On demande de construire un algorithme (en langage c ou en pseudo code ) qui lit


3 nombres réels représentant les cotés d’un triangle puis affiche le type du triangle.
Un triangle peut être de type équilatérale (3 côtés égaux), isocèle(2 côtés égaux),
isocèle rectangle, rectangle ou quelconque. (4 points)
Variable a, b, c : entier
afficher(‘’ veuillez entrez les 3 côtés du triangle
Lire(a,b,c)
si (a=b et b=c) alors
afficher’(‘’le triangle est équilatérale’’)
sinon {cas des triangles non équilaterale}
si (a=b ou a=c ou b=c ) alors
aficher(‘’le triangle isocèle)
si (b*b=a*a+c*c ou si a*a = b*b + c*c ou c*c =a*a+b*b) alors
afficher(‘’ et rectangle’’)
sinon {cas des triangles non isocèle}
si (b*b=a*a+c*c ou si a*a = b*b + c*c ou c*c =a*a+b*b) alors
afficher(‘’le triangle est rectangle’’)
sinon
afficher(‘’Le triangle est quelconque)

Vous aimerez peut-être aussi