Vous êtes sur la page 1sur 34

Nom : wahbi prénom : yassine

N_appogé : 2020802 Grp2

TP1

Exercice1

#include<stdio.h>

int main()

double min,T[3];

int i;

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

{ printf("\n entrer l'element %d: ",i+1);

scanf("%lf",&T[i]);

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

printf("\n%lf",T[i]);

min=T[0];

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

if (T[i]< min)

min=T[i];
}

printf("\nle minimum de ces nbrs est: %lf\n",min);

return 0;

Exercice 2

#include<stdio.h>
int main()
{
int n,va;
printf("\nentrer n: ");
scanf("%d",&n);
va=n;
if (n<0)
{
va=-n;
}
printf("\nla valeur absolue de %d est: %d",n,va);
return 0;
}

Exercice 3

#include<stdio.h>

int main()

const pi=3.14;

float r,s,v,k;

printf("\n entrer r: ");

scanf("%f",&r);

s=4*r*r*pi;

v=4/3*(pi*r*r*r);

printf("\n la surface est s=%8.2f\n \tet\n le volume est v=%8.2f\n",s,v);


return 0;

Exercice 4
#include<stdio.h>

int main(){

int i,j;

for(i=0;i<9;i++){

for(j=0;j<9-i;j++)

printf("*");

for(j=1;j<=i+1;j++)

printf("%d",j);

for(j=i;j>=1;j--)

printf("%d",j);

for(j=0;j<9-i;j++)

{
printf("*");

printf("\n");

return 0;

Exercice 5
#include<stdio.h>

int main()

int i,j,n,p,puiss,S;

printf("\n entrer successivement n et p: \n");

scanf("%d%d",&n,&p);

S=0;

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

puiss=1;

for(j=0;j<p;j++)

puiss=puiss*i;

}
S=S+puiss;

printf("la somme des %d premieres puissances %d-emes est: %d",n,p,S);

}
Nom :wahbi prenom :yassine

Gr2 Nappogé :2020802

TP2
Exrcice1 :

#include<stdio.h>

int i;

void f1(void);

void f2(int);

int f3(int);

// fonction f1

void f1(void)

printf("\n Fonction f1 sans valeur de retour et sans argument\n");

// fonction f2

void f2(int n)

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

printf(" Fonction f2 sans valeur de retour et avec argument\n");

// fonction f3

int f3(int n)

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

printf(" Fonction f2 avec valeur de retour et avec argument\n");

return 0;

// l'execution en main

int main()

int n,m;

f1();

printf("\n entrer n=");

scanf("%d",&n);

f2(n);

printf("\n entrer m=");

scanf("%d",&m);

f3(m);

return 0;

Exercice2
#include<stdio.h>

int estImpair(int);

// la fonction estImpair

int estImpair(int nb)

if(nb%2!=0)

return 1;

else

return 0;

// l'execution en main

int main()

int n;

printf(" \n entrer n=");

scanf("%d",&n);

if(estImpair(n)==1)

printf(" %d est impair\n",n);

else

printf(" %d n'est impair\n",n);

return 0;

}
Exercice3

#include<stdio.h>

int i,n;

void appel(int);

// la fonction appel

void appel(int n)

for(i=1; i<=n; i=i*10)

printf(" \n*** appel %d fois ***",i);

printf("\n");

// l'execution en main

int main()

do

printf(" \nentrer (max.100000) n=");

scanf("%d",&n);

while(n>100000);
appel(n);

return 0;

Exercice4

#include<stdio.h>

int i;

// la fonction recherche

int recherche(char a,char A[])

int trv=0;

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

if(a==A[i])

trv=1;

return trv;

// l'execution en main

int main()
{

char a,A[]="Allaho Akbar";

printf("\n");

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

printf(" %c",A[i]);

printf("\n");

printf("\n entrer a=");

scanf("%c",&a);

if(recherche(a,A)==1)

printf("\n %c existe dans le tableau\n",a);

else printf("\n %c n'existe pas dans le tableau\n",a);

return 0;

Exercice5
#include<stdio.h>

int i;

// la fonction recherche

int recherche(char a,char A[])


{

int trv=0;

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

if(a==A[i])

trv+=1;

return trv;

// l'execution en main

int main()

char a,A[]="Allaho Akbar";

printf("\n entrer a=");

scanf("%c",&a);

if(recherche(a,A)!=0)

printf("\n %c existe %d fois dans le tableau\n",a,recherche(a,A));

else printf("\n %c n'existe pas dans le tableau\n",a);

return 0;

}
Exercice6
#include<stdio.h>

// la fonction Ackermann

int Acker(int m,int n)

if(m<0 || n<0)

return 0;

else if(m==0)

return n+1;

else if(n==0)

return Acker(m-1,1);

else return Acker(m-1,Acker(m,n-1)); // a(4,4)=a(2,a(3,3))

// l'execution de la fonction

int main()

int m,n;

printf("\n entrer m=");

scanf("%d",&m);

printf("\n entrer n=");

scanf("%d",&n);

printf("\n A(%d,%d)=%d",m,n,Acker(m,n));

return 0;

}
Nom :wahbi prenom :yassine

Gr2 Nappogé :2020802

TP3
Exrcice1 :
#include <stdio.h>

int main() {

int tab[] = {1, 2, 3, 4, 5};

int *p1 = tab; // pointeur vers le début du tableau

int *p2 = tab + 4; // pointeur vers la fin du tableau

int aide;

while (p1 < p2) {

aide = *p1;

*p1 = *p2;

*p2 = aide;

p1++;

p2--;

// Affichage du tableau inversé

printf("Tableau inversé : ");

for (int i = 0; i < 5; i++) {

printf("%d ", tab[i]);

}
printf("\n");

return 0;

Exercice2

#include <stdio.h>

int main() {

int X;

printf("Entrez un entier X: ");

scanf("%d", &X);

int tab[100];

int n, i;

printf("Entrez la taille du tableau: ");

scanf("%d", &n);

printf("Entrez les éléments du tableau: ");

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

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

}
int* p1 = tab;

int* p2 = tab;

int* fin = tab + n;

while (p1 < fin) {

if (*p1 != X) {

*p2 = *p1;

p2++;

p1++;

n = p2 - tab;

printf("Le nouveau tableau est: ");

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

printf("%d ", tab[i]);

printf("\n");

return 0;

}
Exercice3

#include <stdio.h>

void saisie(int *tab, int *n) {

printf("Entrez la taille du tableau: ");

scanf("%d", n);

printf("Entrez les éléments du tableau: ");

for (int i = 0; i < *n; i++) {

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

void affiche(int tab[], int n) {

printf("Le tableau est: ");

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

printf("%d ", tab[i]);

}
printf("\n");

void chercherVal(int tab[], int n, int X, int *pos, int *nb_occ) {

*pos = -1;

*nb_occ = 0;

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

if (tab[i] == X) {

*pos = i;

(*nb_occ)++;

int main() {

int tab[100];

int n, X, pos, nb_occ;

saisie(tab, &n);

affiche(tab, n);

printf("Entrez une valeur X à rechercher: ");

scanf("%d", &X);
chercherVal(tab, n, X, &pos, &nb_occ);

if (pos == -1) {

printf("La valeur %d n'a pas été trouvée dans le tableau.\n", X);

} else {

printf("La valeur %d a été trouvée à l'indice %d.\n", X, pos);

printf("Elle apparaît %d fois dans le tableau.\n", nb_occ);

return 0;

}
Nom :wahbi prenom :yassine

Gr2 Nappogé :2020802

TP4
Exrcice1 :
#include<stdio.h>

#include<stdlib.h>

int main()

int n,m,*A,*p=A;

float som,moy;

char rep;

// lecture du taille et du tableau et allocation

printf("\n entrer la taille du tableau (max.50) n=");

scanf("%d",&n);

A=malloc(n*sizeof(int));

if(A==NULL)

printf("La memoire n’est pas allouee\n");

exit(0);

for(p=A;p<n+A;p++)

printf(" entrer A[%d]=",p-A);

scanf("%d",p);
}

// affichage du premier tableau avec la somme et la moyenne

printf("\n avant:\t");

som=0;

for(p=A;p<n+A;p++)

printf(" %d\t",*p);

som+=*p;

printf("\n la somme des elements du tableau est somme=%.3f",som);

moy=som/n;

printf("\n la moyenne des elements du tableau est moyenne=%.3f\n",moy);

// confirmation de la possibilte d'une autre operation

printf("\n voullez vous demarrer une autre operation?\n ( <oui='y'> ou <non=ecrire 'n' ou
n'importe quel caractere> ): ");

scanf("\n%c",&rep);

if(rep=='y')

printf("\n votre reponse est oui, donc on continue\n");

else printf("\n votre reponse est non, donc on quitte le programme\n");

// demarrage de la nouvelle operation

while(rep=='y')

printf("\n entrer le nombre d'elements a ajouter m=");

scanf("%d",&m);
// changement de la taille et lecture des nouveaux elements

n=n+m;

A=realloc(A,n*sizeof(int)); // pas necessaire

for(p=A+n-m;p<n+A;p++)

printf(" entrer A[%d]=",p-A);

scanf("%d",p);

printf("\n apres:\t");

som=0;

// affichage du tableau a nouveau avec la somme et la moyenne

for(p=A;p<n+A;p++)

printf(" %d\t",*p);

som+=*p;

printf("\n la somme des elements du tableau est somme=%.3f",som);

moy=som*1./n;

printf("\n la moyenne des elements du tableau est moyenne=%.3f\n",moy);

// une autre confirmation de la possibilte d'une autre operation

printf("\n voullez vous demarrer une autre operation?\n ( <oui='y'> ou <non=ecrire 'n'
ou n'importe quel caractere> ): ");

scanf("\n%c",&rep);
if(rep=='y')

printf("\n votre reponse est oui, donc on continue\n");

else printf("\n votre reponse est non, donc on quitte le programme\n");

free(A);

return 0;

Exercice2

#include<stdio.h>

#include<stdlib.h>

int aide,n,*A,*p1,*p2;

// la fonction de la croissance

void croiss(int *p1,int n)

for(p1=A;p1<A+n-1;p1++)

for(p2=A;p2<A+n-1;p2++)

{
if(*(p2+1)<*p2)

aide=*p2;

*p2=*(p2+1);

*(p2+1)=aide;

// la fonction de la decroissance

void decroiss(int *p1,int n)

for(p1=A;p1<A+n-1;p1++)

for(p2=A;p2<A+n-1;p2++)

if(*(p2+1)>*p2)

aide=*p2;

*p2=*(p2+1);

*(p2+1)=aide;

// l'execution en main

int main()

{
p1=A;

p2=A;

// lecture du taille et du tableau et alloue de memoire

printf("\n entrer la taille du tableau (max.50) n=");

scanf("%d",&n);

A=malloc(n*sizeof(int));

if(A==NULL)

printf("La memoire n’est pas allouee\n");

exit(0);

for(p1=A;p1<n+A;p1++)

printf(" entrer A[%d]=",p1-A);

scanf("%d",p1);

// affichage du tableau sans ordre

printf("\n\n pas d'ordre:\t\t");

for(p1=A;p1<n+A;p1++)

printf(" %d\t",*p1);

// affichage du tableau en ordre croissant

croiss(p1,n);
printf("\n\n ordre croiassant:\t");

for(p1=A;p1<n+A;p1++)

printf(" %d\t",*p1);

// affichage du tableau en ordre decroissant

decroiss(p1,n);

printf("\n\n ordre decroiassant:\t");

for(p1=A;p1<n+A;p1++)

printf(" %d\t",*p1);

printf("\n");

free(A);

return 0;

}
Exercice3

#include<stdio.h>

#include<stdlib.h>

int main()

int d1,d2,d,*T1,*T2,*T,*p1=T1,*p2=T2,*p=T;

// allocation et lecture de la taille du premier tableau

printf("\n entrer la taille du T1 (max.50) d1=");

scanf("%d",&d1);

T1=malloc(d1*sizeof(int));

if(T1==NULL)

printf("La memoire n’est pas allouee pour T1\n");

exit(0);

// Initialise T1 avec la suite des d1 premiers entiers impairs et affichage

printf(" tableau des %d premiers entier impairs: \n\n",d1);

for(p1=T1;p1<d1+T1;p1++)

*p1=(p1-T1)*2+1;

for(p1=T1;p1<d1+T1;p1++)

printf(" %d\t",*p1);

}
// allocation et lecture de la taille du deuxieme tableau

printf("\n\n entrer la taille du T2 (max.50) d2=");

scanf("%d",&d2);

T2=malloc(d2*sizeof(int));

if(T2==NULL)

printf("La memoire n’est pas allouee pour T2\n");

exit(0);

// Initialise T2 avec la suite des d2 premiers entiers pairs et affichage

printf(" tableau des %d premiers entier pairs: \n\n",d2);

for(p2=T2;p2<d2+T2;p2++)

*p2=(p2-T2)*2;

for(p2=T2;p2<d2+T2;p2++)

printf(" %d\t",*p2);

printf("\n\n");

// concatenation des tableaux precedents en un seul tableau

d=d1+d2;

T=malloc(d*sizeof(int));

if(T==NULL)
{

printf("La memoire n’est pas allouee pour T\n");

exit(0);

for(p1=T1,p=T;p1<d1+T1;p1++,p++)

*p=*p1;

for(p2=T2,p=T+d1;p<d+T;p2++,p++)

*p=*p2;

// affichage du tableau concatenee

printf("\n\n\t\t\t\t\t le tableau concatenee: \n\n",d1);

for(p=T;p<d+T;p++)

printf(" %d\t",*p);

printf("\n");

return 0;

}
Exercice4-5

#include<stdio.h>

#include<stdlib.h>

// la fonction de l'allocation initialisee

int *alloue_vect(int dim,int val)

int *vect=malloc(dim*sizeof(int));

int *p=vect;

if(vect==NULL)

printf("La memoire n’est pas allouee\n");

exit(0);

for(p=vect;p<dim+vect;p++)

*p=val;
}

return vect;

// la fonction de la liberation

void libere_vect(int *vect)

free(vect);

// l'execution en main

int main()

int dim,val;

// lecture de la dimension du vecteur et la valeur d'initialisation

printf("\n entrer la dimension du vect (max.50) dim=");

scanf("%d",&dim);

printf("\n entrer la valeur d'initialisation val=");

scanf("%d",&val);

printf("\n");

int *vect=alloue_vect(dim,val);

int *p=vect;

// affichage du tableau

printf(" le tableau initialise par %d: \n\n",val);

for(p=vect;p<dim+vect;p++)
{

printf(" %d\t",*p);

libere_vect(vect);

printf("\n");

return 0;

Vous aimerez peut-être aussi