Langage de programmation1
COMPTE RENDU DU : TP N°2
Nom et prénom :
Mrad Ahdi
Classe :
GE1 S4
Exercice 1
#include<stdio.h>
int main ()
{
int a = 85;
float b = 278.2;
int *ptr1; ptr1 =&a;
float *ptr2; ptr2=&b;
printf ("l'adresse de a est : %p \n",&a );
printf ("l' adresse de poiture 1 est :%p\n ",& ptr1 );
printf ("le contenu de ponture 1 est :%p\n",ptr1 );
printf ("la valeur pointée est : %d\n",*ptr1 );
printf ("l'adresse de b est :%p \n",&b );
printf ("l' adresse de poiture 2 est : %p\n ",& ptr2 );
printf ("le contenu de ponture 2 est : %p\n",ptr2 );
printf ("la valeur pointée est : %f\n ",*ptr2 );
return 0;
}
Excution 1 :
exercice 2 -1:
#include <stdio.h>
void add_6(int nbre)
{
nbre=nbre+6;
}
int main ()
{
int n = 3;
printf("n=%d\n",n);
add_6(n);
printf("n+6=%d",n);
return 0;
}
EXCUTION 2 -1:
remarque
résultat incorrect car (3+6) n’ est pas égal 3 car on a fait un passage par valeur alors il faut faire
quelques modification comme indique le programme suivant :
Exercice 2 -2:
#include <stdio.h>
void add_6(int *nbre)
{
*nbre=*nbre+6;
}
int main ()
{
int n = 3;
printf("n=%d\n",n);
add_6(&n);
printf("n+6=%d",n);
return 0;
}
EXCUTION 2 -2:
Exercice 3 :
#include <stdio.h>
unsigned factorille (unsigned n )
{
if ((n==0)|| (n==1))
else return n*factorille(n-1);
}
int main ()
{
unsigned n ;
do
{
printf("donner la valeur de n \n");
scanf("%u",&n);}
while (n<0);
printf ("la factorielle de cette valeur est: %u",factorille(n) );
return 0;
}
Excution 3-1 :
Excution 3-2:
Exercice 4 :
#include<stdio.h >
#define pi 3.14
#include<math.h>
void sphere (float r ,float *s ,float *v)
{
*v=(4/3.0)*pi*pow(r,3);
*s= 4*pi*pow(r,2);
}
int main ()
{
float r;
float s,v;
do
{
printf("donner le rayon de la cercle : \n");
scanf ("%f",&r);
}
while (r<0);
sphere(r, &s ,&v);
printf("le volume de sphere est :%f\n", v);
printf("le surface de sphere est :%f\n", s);
return 0;
}
Excution 4 :
EXERCICE 5 :
#include<stdio.h>
void menu ()
{
printf("1:affiche la table de verite de la porte logique AND \n");
printf("2:affiche la table de verite de la porte logique OR \n");
printf("3:affiche la table de verite de la porte logique NAND \n");
printf("4:affiche la table de verite de la porte logique NOR \n");
printf("5:affiche la table de verite de la porte logique OU EXCLUSIVE \n");
printf("6:affiche la table de verite de la porte logique OU INCLUSIF \n");
printf("0:quitter ");
}
int main ()
{
int a [4]={0,0,1,1};
int b [4]={0,1,0,1};
int s [4];
int n,i;
menu ();
do
{
printf("donner votre choix? \n");
scanf("%d",&n);
switch(n)
{
case 1 :
printf(" la table de verite de la porte logique AND est :\n");
for (i=0;i<4;i++)
{s[i]=a[i]&b[i];
printf(" %3d | %3d | %3d\n", a[i], b[i], s[i] );
}break;
case 2 :
printf(" la table de verite de la porte logique OR est :\n");
for (i=0;i<4;i++)
{s[i]=a[i]|b[i];
printf(" %3d | %3d | %3d\n", a[i], b[i], s[i] );
}break;
case 3 :
printf(" la table de verite de la porte logique NAND est :\n");
for (i=0;i<4;i++)
{s[i]=!(a[i]&b[i]);
printf(" %3d | %3d | %3d\n", a[i], b[i], s[i] );
}break;
case 4 :
printf(" la table de verite de la porte logique NOR est :\n");
for (i=0;i<4;i++)
{s[i]=!(a[i]|b[i]);
printf(" %3d | %3d | %3d\n", a[i], b[i], s[i] );
}break;
case 5 :
printf(" la table de verite de la porte logique XOR est :\n");
for (i=0;i<4;i++)
{s[i]=a[i]^b[i];
printf(" %3d | %3d | %3d\n", a[i], b[i], s[i] );
}break;
case 6:
printf(" la table de verite de la porte logique XNOR est :\n");
for (i=0;i<4;i++)
{s[i]=!(a[i]^b[i]);
printf(" %3d | %3d | %3d\n", a[i], b[i], s[i] );
}break;
case 0 :
printf(" quitter ");
exit (1) ;
break;
default: printf(" error ");
}
}
while (1);
return 0;
}
Excution 5 :
Exercice 6
Q1-
#include<stdio.h>
#define tmax 50
int main ()
int tab[tmax];
int min,max,n,i;
do
printf("donner la taille de tableau \n ");
scanf("%d",&n);
while ((n>tmax)||(n<=0));
for(i=0;i<n;i++)
printf("remplir la case tab[%d] \n",i+1);
scanf("%d",&tab[i]);
min=tab[0];
max=tab[0];
for(i=0;i<n;i++)
if( tab[i]<min)
min=tab[i];
if( tab[i]>max)
max=tab[i];
printf("le min est %d \n",min);
printf("le max est %d \n ",max);
return 0;
Excution 6:
Exercice 7 :
#include <stdio.h>
#define tmax 10
int main() {
int n,i,j;
int matrice[tmax][tmax];
do
printf("Entrez la taille de la matrice carree \n: ");
scanf("%d", &n);
while ((n<0)||(n>tmax));
printf("Entrez les elements de la matrice :\n");
for (i = 0; i < n; i++)
for ( j = 0; j < n; j++)
printf("Element [%d][%d] : ", i, j);
scanf("%d", &matrice[i][j]);
printf("Matrice d'origine :\n");
for ( i = 0; i < n; i++)
for (j = 0; j < n; j++)
printf("%d\t", matrice[i][j]);
printf("\n");
for ( i = 0; i < n; i++) {
matrice[i][i] = 0;
printf("Matrice avec la diagonale changee en zero :\n");
for ( i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d\t", matrice[i][j]);
printf("\n");
return 0;
Excution 7 :
Exercice 8 :
#include <stdio.h>
#include <stdlib.h>
void saisir(int n, int **tab)
*tab = (int *)malloc(n * sizeof(int));
for (int i = 0; i < n; i++)
printf("Entrez l'element numero %d : ", i + 1);
scanf("%d", &(*tab)[i]);
void affichage(int *tab, int n)
for (int i = 0; i < n; i++)
printf("Element %d : %d\n", i + 1, tab[i]);
int chercher(int v, int *tab, int n)
for (int i = 0; i < n; i++)
if (tab[i] == v)
return 1;
return 0;
int main()
int n, v;
do
{
printf("Entrez la taille du tableau : ");
scanf("%d", &n);
while (n <= 0);
int *tab = NULL;
saisir(n, &tab);
printf("Entrez l'entier v : ");
scanf("%d", &v);
int index = chercher(v, tab, n)==1;
if (chercher(v, tab, n)==1)
for (int i = 0; i < n - 1; i++)
tab[i] = tab[i + 1];
tab[n - 1] = 0;
printf("Le tableau final est :\n");
affichage(tab, n);
free(tab);
} else {
printf("La valeur %d n'a pas ete trouvee dans le tableau.\n",v);
free(tab);
return 0;
Excution 8-1 :
Excution 8-2 :
/*#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
bool trouve;
vector<int> tab;
int n, i, j, V, a, prem, dern;
do {
cout << "donner la taille de tableau" << endl;
cin >> n;
} while (n <= 0);
tab.resize(n);
for (i = 0; i < tab.size(); i++) {
cout << "remplir la case tab[" << i + 1 << "]:" << endl;
cin >> tab[i];
}
cout << "Tapez la valeur de V : ";
cin >> V;
trouve = false;
i = 0;
while (!trouve && i < n)
if (tab[i] == V)
trouve = true;
else
i++;
if (trouve) {
cout << "La position de v est " << i + 1 << endl;
vector<int>::iterator prem = tab.begin() + i;
vector<int>::iterator dern = tab.end()-(n-1)+i;
tab.erase(prem, dern);
tab.push_back(0);
sort(tab.begin(), tab.end(), greater<int>());
} else {
cout << "La valeur V ne se trouve pas dans le tableau" << endl;
}
for (i = 0; i < tab.size(); i++) {
cout << " la case tab[" << i + 1 << "]:" << tab[i] << endl;
}
return 0;
}*/ Fin …