0% ont trouvé ce document utile (0 vote)
56 vues20 pages

TP 2

Transféré par

Ahdi Mrad
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
56 vues20 pages

TP 2

Transféré par

Ahdi Mrad
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

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 …

Vous aimerez peut-être aussi